功能鍵 S6---S15 數(shù)字鍵0-9 S16---更改密碼 S17---更改密碼完畢后確認(rèn) S18---重試密碼、重新設(shè)定 S19---關(guān)閉密碼鎖 初始密碼:000000 密碼位數(shù):6位 注意:掉電后,所設(shè)密碼會(huì)丟失,重新上點(diǎn)時(shí),密碼恢復(fù)為原始的000000 與P1相連的8位發(fā)光LED點(diǎn)亮代表鎖被打開;熄滅代表鎖被鎖上
程序功能: 本程序結(jié)合了24C02存儲(chǔ)器的存儲(chǔ)功能,可以掉電保存密碼。 第一次運(yùn)行時(shí),若輸入000000原始密碼后無反應(yīng),可以試驗(yàn)著將主程序中前面的 一小段被注釋線屏蔽的程序前的注釋線刪掉,然后重新編譯下載(可以將密碼還原為000000)。 此后,再將這小段程序屏蔽掉,再編譯下載。方可正常使用。 1、開鎖: 下載程序后,直接按六次S7(即代表數(shù)字1),8位LED亮,鎖被打開,輸入密碼時(shí), 六位數(shù)碼管依次顯示小橫杠。 2、更改密碼: 只有當(dāng)開鎖(LED亮)后,該功能方可使用。 首先按下更改密碼鍵S16,然后設(shè)置相應(yīng)密碼,此時(shí)六位數(shù)碼管會(huì)顯示設(shè)置密碼對(duì)應(yīng) 的數(shù)字。最后設(shè)置完六位后,按下S17確認(rèn)密碼更改,此后新密碼即生效。 3、重試密碼: 當(dāng)輸入密碼時(shí),密碼輸錯(cuò)后按下鍵S18,可重新輸入六位密碼。 當(dāng)設(shè)置密碼時(shí),設(shè)置中途想更改密碼,也可按下此鍵重新設(shè)置。 4、關(guān)閉密碼鎖: 按下S19即可將打開的密碼鎖關(guān)閉。 推薦初級(jí)演示步驟:輸入原始密碼000000---按下更改密碼按鍵S16---按0到9設(shè)置密碼---按S17 確認(rèn)密碼更改---按S18關(guān)閉密碼鎖---輸入新的密碼打開密碼鎖 *******************************************************************************/ #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; //送入數(shù)碼管顯示的變量 uchar wei,key,temp;
bit allow,genggai,ok,wanbi,retry,close; //各個(gè)狀態(tài)位
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存儲(chǔ)器驅(qū)動(dòng)程序************************************/
void nop() { _nop_(); _nop_(); } /////////24C02讀寫驅(qū)動(dòng)程序//////////////////// void delay1(unsigned int m) { unsigned intn; for(n=0;n<m;n++); }
void init() //24c02初始化子程序 { scl=1; nop(); sda=1; nop(); }
void start() //啟動(dòng)I2C總線 { sda=1; nop(); scl=1; nop(); sda=0; nop(); scl=0; nop(); }
void stop() //停止I2C總線 { sda=0; nop(); scl=1;功能鍵 S6---S15 數(shù)字鍵0-9 S16---更改密碼 S17---更改密碼完畢后確認(rèn) S18---重試密碼、重新設(shè)定 S19---關(guān)閉密碼鎖 初始密碼:000000 密碼位數(shù):6位 注意:掉電后,所設(shè)密碼會(huì)丟失,重新上點(diǎn)時(shí),密碼恢復(fù)為原始的000000 與P1相連的8位發(fā)光LED點(diǎn)亮代表鎖被打開;熄滅代表鎖被鎖上
程序功能: 本程序結(jié)合了24C02存儲(chǔ)器的存儲(chǔ)功能,可以掉電保存密碼。 第一次運(yùn)行時(shí),若輸入000000原始密碼后無反應(yīng),可以試驗(yàn)著將主程序中前面的 一小段被注釋線屏蔽的程序前的注釋線刪掉,然后重新編譯下載(可以將密碼還原為000000)。 此后,再將這小段程序屏蔽掉,再編譯下載。方可正常使用。 1、開鎖: 下載程序后,直接按六次S7(即代表數(shù)字1),8位LED亮,鎖被打開,輸入密碼時(shí), 六位數(shù)碼管依次顯示小橫杠。 2、更改密碼: 只有當(dāng)開鎖(LED亮)后,該功能方可使用。 首先按下更改密碼鍵S16,然后設(shè)置相應(yīng)密碼,此時(shí)六位數(shù)碼管會(huì)顯示設(shè)置密碼對(duì)應(yīng) 的數(shù)字。最后設(shè)置完六位后,按下S17確認(rèn)密碼更改,此后新密碼即生效。 3、重試密碼: 當(dāng)輸入密碼時(shí),密碼輸錯(cuò)后按下鍵S18,可重新輸入六位密碼。 當(dāng)設(shè)置密碼時(shí),設(shè)置中途想更改密碼,也可按下此鍵重新設(shè)置。 4、關(guān)閉密碼鎖: 按下S19即可將打開的密碼鎖關(guān)閉。 推薦初級(jí)演示步驟:輸入原始密碼000000---按下更改密碼按鍵S16---按0到9設(shè)置密碼---按S17 確認(rèn)密碼更改---按S18關(guān)閉密碼鎖---輸入新的密碼打開密碼鎖 *******************************************************************************/ #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; //送入數(shù)碼管顯示的變量 uchar wei,key,temp;
bit allow,genggai,ok,wanbi,retry,close; //各個(gè)狀態(tài)位
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存儲(chǔ)器驅(qū)動(dòng)程序************************************/
void nop() { _nop_(); _nop_(); } /////////24C02讀寫驅(qū)動(dòng)程序//////////////////// void delay1(unsigned int m) { unsigned intn; for(n=0;n<m;n++); }
void init() //24c02初始化子程序 { scl=1; nop(); sda=1; nop(); }
void start() //啟動(dòng)I2C總線 { sda=1; nop(); scl=1; nop(); sda=0; nop(); scl=0; nop(); }
void stop() //停止I2C總線 { sda=0; nop(); scl=1;
|