功能键 S6---S15 数字键0-9 S16---更改密码 S17---更改密码完毕后确认 S18---重试密码、重新设定 S19---关闭密码锁 初始密码:000000 密码位数:6位 注意:掉电后,所设密码会丢失,重新上点时,密码恢复为原始的000000 与P1相连的8位发光LED点亮代表锁被打开;熄灭代表锁被锁上
程序功能: 本程序结合了24C02存储器的存储功能,可以掉电保存密码。 第一次运行时,若输入000000原始密码后无反应,可以试验着将主程序中前面的 一小段被注释线屏蔽的程序前的注释线删掉,然后重新编译下载(可以将密码还原为000000)。 此后,再将这小段程序屏蔽掉,再编译下载。方可正常使用。 1、开锁: 下载程序后,直接按六次S7(即代表数字1),8位LED亮,锁被打开,输入密码时, 六位数码管依次显示小横杠。 2、更改密码: 只有当开锁(LED亮)后,该功能方可使用。 首先按下更改密码键S16,然后设置相应密码,此时六位数码管会显示设置密码对应 的数字。最后设置完六位后,按下S17确认密码更改,此后新密码即生效。 3、重试密码: 当输入密码时,密码输错后按下键S18,可重新输入六位密码。 当设置密码时,设置中途想更改密码,也可按下此键重新设置。 4、关闭密码锁: 按下S19即可将打开的密码锁关闭。 推荐初级演示步骤:输入原始密码000000---按下更改密码按键S16---按0到9设置密码---按S17 确认密码更改---按S18关闭密码锁---输入新的密码打开密码锁 *******************************************************************************/ #include<reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char
uchar old1,old2,old3,old4,old5,old6; //原始密码000000 uchar new1,new2,new3,new4,new5,new6; //每次MCU采集到的密码输入 uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量 uchar wei,key,temp;
bit allow,genggai,ok,wanbi,retry,close; //各个状态位
sbit dula=P2^6; sbit wela=P2^7; sbit beep=P2^3; sbit sda=P2^0; //IO口定义 sbit scl=P2^1;
unsigned char code table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};
/*****************IIC芯片24C02存储器驱动程序************************************/
void nop() { _nop_(); _nop_(); } /////////24C02读写驱动程序//////////////////// void delay1(unsigned int m) { unsigned intn; for(n=0;n<m;n++); }
void init() //24c02初始化子程序 { scl=1; nop(); sda=1; nop(); }
void start() //启动I2C总线 { sda=1; nop(); scl=1; nop(); sda=0; nop(); scl=0; nop(); }
void stop() //停止I2C总线 { sda=0; nop(); scl=1;功能键 S6---S15 数字键0-9 S16---更改密码 S17---更改密码完毕后确认 S18---重试密码、重新设定 S19---关闭密码锁 初始密码:000000 密码位数:6位 注意:掉电后,所设密码会丢失,重新上点时,密码恢复为原始的000000 与P1相连的8位发光LED点亮代表锁被打开;熄灭代表锁被锁上
程序功能: 本程序结合了24C02存储器的存储功能,可以掉电保存密码。 第一次运行时,若输入000000原始密码后无反应,可以试验着将主程序中前面的 一小段被注释线屏蔽的程序前的注释线删掉,然后重新编译下载(可以将密码还原为000000)。 此后,再将这小段程序屏蔽掉,再编译下载。方可正常使用。 1、开锁: 下载程序后,直接按六次S7(即代表数字1),8位LED亮,锁被打开,输入密码时, 六位数码管依次显示小横杠。 2、更改密码: 只有当开锁(LED亮)后,该功能方可使用。 首先按下更改密码键S16,然后设置相应密码,此时六位数码管会显示设置密码对应 的数字。最后设置完六位后,按下S17确认密码更改,此后新密码即生效。 3、重试密码: 当输入密码时,密码输错后按下键S18,可重新输入六位密码。 当设置密码时,设置中途想更改密码,也可按下此键重新设置。 4、关闭密码锁: 按下S19即可将打开的密码锁关闭。 推荐初级演示步骤:输入原始密码000000---按下更改密码按键S16---按0到9设置密码---按S17 确认密码更改---按S18关闭密码锁---输入新的密码打开密码锁 *******************************************************************************/ #include<reg52.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned char
uchar old1,old2,old3,old4,old5,old6; //原始密码000000 uchar new1,new2,new3,new4,new5,new6; //每次MCU采集到的密码输入 uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入数码管显示的变量 uchar wei,key,temp;
bit allow,genggai,ok,wanbi,retry,close; //各个状态位
sbit dula=P2^6; sbit wela=P2^7; sbit beep=P2^3; sbit sda=P2^0; //IO口定义 sbit scl=P2^1;
unsigned char code table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};
/*****************IIC芯片24C02存储器驱动程序************************************/
void nop() { _nop_(); _nop_(); } /////////24C02读写驱动程序//////////////////// void delay1(unsigned int m) { unsigned intn; for(n=0;n<m;n++); }
void init() //24c02初始化子程序 { scl=1; nop(); sda=1; nop(); }
void start() //启动I2C总线 { sda=1; nop(); scl=1; nop(); sda=0; nop(); scl=0; nop(); }
void stop() //停止I2C总线 { sda=0; nop(); scl=1;
|