電子密碼鎖單片機設(shè)計完整程序電路_第1頁
電子密碼鎖單片機設(shè)計完整程序電路_第2頁
電子密碼鎖單片機設(shè)計完整程序電路_第3頁
電子密碼鎖單片機設(shè)計完整程序電路_第4頁
電子密碼鎖單片機設(shè)計完整程序電路_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上單片機課程設(shè)計1 系統(tǒng)的總體設(shè)計和主要元器件介紹(1)設(shè)計要求² 以STC89C516單片機為核心器件,結(jié)合按鍵電路、LCD1602顯示電路、報警指示電路和開鎖機構(gòu),利用單片機靈活的編程設(shè)計和豐富的I/O端口,及其控制的準確性通過軟件程序來控制整個系統(tǒng)實現(xiàn)電子密碼鎖的以下基本功能:² (1)輸入密碼時顯示所輸入“*”,具有一定防偷看功能。² (2)密碼通過鍵盤輸入,若密碼正確,則顯示燈發(fā)光,將鎖打開² (3)密碼輸入錯誤,蜂鳴器將報警提示。密碼輸錯四次,則蜂鳴器報警15秒,顯示燈亮。² (4)用戶可以自由設(shè)定密碼

2、78; 本密碼鎖具有設(shè)計方法合理,簡單易行成本低,安全實用等特點,具有一定的推廣價值。(2)系統(tǒng)的總體思路設(shè)計以STC89C516單片機為主控制單元,鍵盤為主要輸入單元,結(jié)合開鎖裝置、報警器和顯示器完成整個系統(tǒng)設(shè)計。² 系統(tǒng)的運行過程大致如下:² 假設(shè)初始狀態(tài)為閉鎖,此時整個系統(tǒng)只等待按鍵輸入,顯示屏顯示“Input password Press key A”。按下A后,每按下一個數(shù)據(jù)鍵(即每輸入一個密碼),lcd1602顯示一個“*”,當密碼全部輸入完成后,需按下確認鍵“#”,此時系統(tǒng)判斷密碼是否正確,正確則開鎖,錯誤則報警。若按下密碼重置鍵“*”,則需先輸入原密碼,正確

3、后請輸入新密碼,還要確認一遍新密碼。按下刪除鍵可以刪除輸錯的密碼。(3)主要元器件介紹1、stc89C52介紹圖一 stc89C52引腳圖本次課程設(shè)計選用的是AT89C52,AT89C52是一種帶8K字節(jié)FLASH(FPEROMFlash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C52是

4、一種高效微控制器。AT89C52單片機為很多提供了一種靈活性高且價廉的方案。振蕩器特性: XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。(2)LCD1602顯示器接口信號說明:1602型LCD的接口信號說明如表2-2所示。表2-2 LCD1602接口信號說明編號符號引腳說明編號符號引腳說明1VSS電源地9D2數(shù)據(jù)2VDD電源正極10D3數(shù)據(jù)3VL液晶顯示偏壓11D4數(shù)據(jù)4RS數(shù)據(jù)

5、/命令選擇12D5數(shù)據(jù)5R/W讀/寫選擇13D6數(shù)據(jù)6E使能信號14D7數(shù)據(jù)7D0數(shù)據(jù)15BLA背光源正極8D1數(shù)據(jù)16BLK背光源負極1602型LCD主要技術(shù)參數(shù):顯示容量:16×2個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm1602型LCD基本操作程序如下表所示:表2-3 LCD1602基本操作程序讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0D7=

6、數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0D7=數(shù)據(jù),E=高脈沖輸出無(3) AT24C02 1. 概述AT24C02是一個2K位串行CMOS E2PROM, 內(nèi)部含有256個8位字節(jié),CATALYST公司的先進CMOS技術(shù)實質(zhì)上減少了器件的功耗。AT24C02有一個16字節(jié)頁寫緩沖器。該器件通過IIC總線接口進行操作,有一個專門的寫保護功能。 2. 管腳配置管腳封裝如右圖1所示。 圖1 管腳封裝 DIP:雙列直插式封裝,是最簡單的一種封裝技術(shù)。 3. 極限參數(shù)工作溫度工業(yè)級-55 +125 商業(yè)級0 +75 貯存溫度-65 +150 各管腳承受電壓-2.0 Vcc+2.0V Vcc管腳承受電壓

7、-2.0 +7.0V 封裝功率損耗(Ta=25) 1.0W 焊接溫度(10 秒) 300 輸出短路電流100mA 表1 可靠性參數(shù) 符號 參數(shù) 最小 最大 單位 參考測試模式 NEND 耐久性 1,000,000 周期/字節(jié) MIL-STD-883 測試方法1033 TDR 數(shù)據(jù)保存時間 100 年 MIL-STD-883 測試方法1008 VZAP ESD 2000 V MIL-STD-883 測試方法3015 ILTH 上拉電流 100 mA JEDEC 標準17 4.特性:1.數(shù)據(jù)線上的看門狗定時器 2.可編程復位門欄電平 3.高數(shù)據(jù)傳送速率為400KHz和1C總線兼容 4.2.7V至7

8、V的工作電壓 5.低功耗CMOS工藝 6.16字節(jié)頁寫緩沖區(qū) 7.片內(nèi)防誤擦除寫保護 8.高低電平復位信號輸出 9.100萬次擦寫周期 10.數(shù)據(jù)保存可達100年 11.商業(yè)級、工業(yè)級和汽車溫度范圍 5. 功能描述AT24C02支持IC,總線數(shù)據(jù)傳送協(xié)議IC,總線協(xié)議規(guī)定任何將數(shù)據(jù)傳送到總線的器件作為發(fā)送器。任何從總線接收數(shù)據(jù)的器件為接收器。數(shù)據(jù)傳送是由產(chǎn)生串行時鐘和所有起始停止信號的主器件控制的。主器件和從器件都可以作為發(fā)送器或接收器,但由主器件控制傳送數(shù)據(jù)(發(fā)送或接收)的模式,通過器件地址輸入端A0、A1和A2可以實現(xiàn)將最多8個AT24C02器件連接到總線上。 6. 管腳描述表2 管腳描述

9、 管腳名稱 功能 A0 A1 A2 器件地址選擇 SDA 串行數(shù)據(jù)/地址 SCL 串行時鐘 WP 寫保護 Vcc +1.8V 6.0V 工作電壓 Vss 地 SCL 串行時鐘 AT24C02串行時鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時鐘,這是一個輸入管腳。 SDA 串行數(shù)據(jù)/地址 AT24C02 雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收,SDA 是一個開漏輸出管腳,可與其它開漏輸出或集電極開路輸出進行線或(wire-OR)。 A0、A1、A2 器件地址輸入端 這些輸入腳用于多個器件級聯(lián)時設(shè)置器件地址,當這些腳懸空時默認值為0。當使用AT24C02 時最大可級聯(lián)8個器件。如果只有

10、一個AT24C02被總線尋址,這三個地址輸入腳(A0、A1、A2 )可懸空或連接到Vss,如果只有一個AT24C02被總線尋址這三個地址輸入腳(A0、A1、A2 )必須連接到Vss。 WP 寫保護 如果WP管腳連接到Vcc,所有的內(nèi)容都被寫保護只能讀。當WP管腳連接到Vss 或懸空允許器件進行正常的讀/寫操作2、 硬件電路設(shè)計(1) 設(shè)計原理本設(shè)計主要由單片機、矩陣鍵盤、液晶顯示器和密碼存儲等部分組成。其中矩陣鍵盤用于輸入數(shù)字密碼和進行各種功能的實現(xiàn)。由用戶通過連接單片機的矩陣鍵盤輸入密碼,后經(jīng)過單片機對用戶輸入的密碼與AT24C02中保存的密碼進行對比,從而判斷密碼是否正確,然后控制引腳的高

11、低電平傳到開鎖電路或者報警電路控制開鎖還是報警,實際使用時只要將單片機的負載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可,當然也可以用繼電器的常開觸點去控制電磁鐵吸合線圈。stc89C52鍵盤輸入復位電路AT24C02密碼存儲電路晶振電路電源輸入顯示電路報警電路開鎖電路圖二(2) 電路總體構(gòu)成圖三(3) 單片機主控制模塊(含晶振、復位基本工作電路)圖四(4)鍵盤電路設(shè)計按鍵模塊采用4×4行列矩陣結(jié)構(gòu),由4條行線和4條列線構(gòu)成。行線和列線共有16個交叉點每個交叉點可以放置一個按鍵,這樣共可以放置16個按鍵。按鍵電路如圖五所示。圖五KEYL0KEYL3為行線,分別接單片機的P1.0P1.3

12、;KEYR0KEYR3為列線,分別接單片機的P1.4P1.7。軟件編程采用行掃描法,程序編寫比較復雜,但是理解較容易切。圖中順序前十個按鍵為09,最后3個按鍵分別為修改密碼鍵、確認鍵和關(guān)機鍵。(5)顯示電路設(shè)計顯示電路由LCD1602構(gòu)成。其結(jié)構(gòu)圖如圖六所示。圖六(6) 報警電路設(shè)計報警電路主要由PNP三極管和蜂鳴器構(gòu)成。報警電路圖如圖七所示。圖七LS1為一個5V的壓電蜂鳴器,當對其1、2號引腳施加5V電壓時,便會鳴叫。由圖七可知,當P3.7輸出低電平時蜂鳴器鳴叫;當P3.7輸出高電平時,蜂鳴器停止鳴叫。通過控制P3.7輸出低電平的時間長短來控制蜂鳴器長叫或短叫。(7) 電子鎖控制電路電子鎖控

13、制電路主要由繼電器、三極管和發(fā)光二極管構(gòu)成。電子鎖控制電路圖如圖5所示。圖八繼電器線圈的一個引腳接電源正極,另一端接NPN三極管的集電極。三極管的基極通過一個電阻接單片機的引腳。當LOCKCON輸出高電平時,三極管導通,繼電器線圈得電,觸點閉合,發(fā)光二極管發(fā)光,相當于電子鎖閉鎖;當LOCKCON輸出低電平時,三極管截止,繼電器線圈失電,觸點釋放,發(fā)光二極管熄滅,相當于電子鎖開鎖。圖中普通二極管是繼電器線圈的續(xù)流二極管,為感應(yīng)電動勢提供回路,以免損壞三極管。(8) 密碼存儲電路AT24C02是ATMEL公司的2KB字節(jié)的電可擦除存儲芯片,采用兩線串行的總線和單片機通訊,電壓最低可以到2.5V,額

14、定電流為1mA,靜態(tài)電流10Ua(5.5V),芯片內(nèi)的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。其電路原理如圖九所示。圖九圖中1、2、3腳是三條地址線,用于確定芯片的硬件地址,在AT89S51上它們都能接地,第5腳和第8腳分別為正、負電源。AT24C02中帶有片內(nèi)地址寄存器,每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實現(xiàn)對下一個儲存單元的讀寫,所有字節(jié)均以單一操作方式讀取。 圖十 本電路中的應(yīng)用圖(9) 復位電路 單片機復位是使CPU和系統(tǒng)中的其他功能部件都處在一個確定的初始狀態(tài),并從這個狀態(tài)開始工作,例如復位后PC0000H,使單片機從第個單元取指令

15、。無論是在單片機剛開始接上電源時,還是斷電后或者發(fā)生故障后都要復位。在復位期間(即RST為高電平期間),P0口為高組態(tài),P1P3口輸出高電平;外部程序存儲器讀選通信號PSEN無效。地址鎖存信號ALE也為高電平。根據(jù)實際情況選擇如圖十所示的復位電路。該電路在最簡單的復位電路下增加了手動復位按鍵,在接通電源瞬間,電容C1上的電壓很小,復位下拉電阻上的電壓接近電源電壓,即RST為高電平,在電容充電的過程中RST端電壓逐漸下降,當RST端的電壓小于某一數(shù)值后,CPU脫離復位狀態(tài),由于電容C1足夠大,可以保證RST高電平有效時間大于24個振蕩周期,CPU能夠可靠復位。增加手動復位按鍵是為了避免死機時無法

16、可靠復位。當復位按鍵按下后電容C1通過R5放電。當電容C1放電結(jié)束后,RST端的電位由R11與R15分壓比決定。由于R11<<R15 因此RST為高電平,CPU處于復位狀態(tài),松手后,電容C1充電,RST端電位下降,CPU脫離復位狀態(tài)。R11的作用在于限制按鍵按下瞬間電容C1的放電電流,避免產(chǎn)生火花,以保護按鍵觸電 。圖十 一復位電路原理圖(10) 單片機電路及PCB圖單片機電路主要由單片機、振蕩電路和復位電路構(gòu)成。單片機電路圖如圖十一所示。圖十二AT89C52單片機的P0口用于輸出LCD顯示。P1口用于構(gòu)成行列矩陣鍵盤。P3.7用于控制蜂鳴器的鳴叫。P3.3用于控制電子鎖的開閉。P

17、3.1 P3.0控制儲存芯片的sda、sck。P3.4 控制lcd顯示的E P3.5 控制rs P3.6控制rw。 1、 軟件設(shè)計 軟件設(shè)計主要是對鍵盤進行掃描,根據(jù)按鍵控制報警電路、電子鎖電路,并將結(jié)果顯示。因此整個軟件分為按鍵子程序、顯示子程序、儲存子程序,電子鎖控制子程序及主程序。主函數(shù)按鍵子程序unsigned char keyscan()unsigned char temp,key;key = 0xff;JPJK = 0xfe; temp = JPJK;/temp &= 0xf0;/ temp = temp & 0xf0 if(temp != 0xf0)delay_m

18、s(10);temp = JPJK;temp &= 0xf0; if(temp != 0xf0)temp = JPJK;baoj1();switch(temp)case 0xee: key = 1;break;case 0xde: key = 2;break;case 0xbe: key = 3;break;case 0x7e: key = 0x0a;break;while(temp != 0xf0)temp = JPJK;temp &= 0xf0;JPJK = 0xfd;temp = JPJK; temp &= 0xf0;/ temp = temp & 0xf

19、0if(temp != 0xf0)delay_ms(10);temp = JPJK;temp &= 0xf0; if(temp != 0xf0)temp = JPJK;baoj1();switch(temp)case 0xed: key = 4;break;case 0xdd: key = 5;break;case 0xbd: key = 6;break;case 0x7d: key = 0x0b;break;while(temp != 0xf0)temp = JPJK;temp &= 0xf0;JPJK = 0xfb; temp = JPJK;temp &= 0xf0

20、;if(temp != 0xf0)delay_ms(10);temp = JPJK;temp &= 0xf0; if(temp != 0xf0)temp = JPJK; baoj1();switch(temp)case 0xeb: key = 7;break;case 0xdb: key = 8;break;case 0xbb: key = 9;break;case 0x7b: key = 0x0c;break;while(temp != 0xf0)temp = JPJK;temp &= 0xf0;JPJK = 0xf7;temp = JPJK;temp &= 0xf0

21、temp = temp & 0xf0if(temp != 0xf0)delay_ms(10);temp = JPJK;temp &= 0xf0; if(temp != 0xf0)temp = JPJK;baoj1();switch(temp)case 0xe7: key = 0;break;case 0xd7: key = 0x0e;break;case 0xb7: key = 0x0f;break;case 0x77: key = 0x0d;break;while(temp != 0xf0)temp = JPJK;temp &= 0xf0; return key; 顯

22、示程序bit lcd_busy() bit result; lcdrs = 0; lcdwr = 1; lcden = 1; _nop_(); _nop_(); result = (bit)(DATA&0x80); lcden = 0; return result; void write_com(unsigned char com) while(lcd_busy(); lcdwr = 0; lcdrs = 0; lcden = 0; DATA = com;delay_ms(5); lcden = 1;delay_ms(5); lcden = 0;void write_data(unsi

23、gned char date)while(lcd_busy(); lcdwr = 0; lcdrs = 1; lcden = 0; DATA = date;delay_ms(5); lcden = 1;delay_ms(5); lcden = 0; void write_1_char(unsigned char zifu)write_data(zifu);void write_n_char(unsigned char zifu)unsigned char count;for(count=0; ;count+)write_1_char(zifucount);if(zifucount+1='

24、;0')break;void lcd_pos(unsigned char x,unsigned char y) unsigned char pos;if(x = 0)x = 0x80;else if(x = 1)x = 0x80 + 0x40;pos = x + y;write_com(pos);void yjinit() dula = 0; wela = 1; lcden = 0;write_com(0x38); write_com(0x0c);write_com(0x06); write_com(0x01); 存儲子程序void delay() ;void i2cinit()SDA

25、 = 1;delay();SCL = 1;delay();void start()SDA = 1;SCL = 1;delay();SDA = 0;delay();void stop()SDA = 0;delay();SCL = 1;delay();SDA = 1;delay();void respons()unsigned char i = 0;SCL = 1;delay();while(SDA = 1 && i < 255)i+;SCL = 0;delay();void writebyte(unsigned char date)unsigned char i,temp;

26、temp = date;for(i = 0; i < 8; i+)temp <<= 1;SCL = 0;delay();SDA = CY;delay();SCL = 1;delay();SCL = 0;delay();SDA = 1;delay();unsigned char readbyte()unsigned char i,k;SCL = 0;delay();SDA = 1;for(i = 0; i < 8; i+)SCL = 1;delay();k = (k << 1) | SDA; SCL = 0;delay();delay();return k;v

27、oid write_add(unsigned char address,unsigned char date)start();writebyte(0xa0);respons();writebyte(address);respons();writebyte(date);respons();stop();unsigned char read_add(unsigned char address)unsigned char date;start();writebyte(0xa0);respons();writebyte(address);respons();start();writebyte(0xa1

28、);/respons();date = readbyte();stop();return date;void write_n_add(unsigned char * p,unsigned char address,unsigned char n)unsigned char i;for(i = 0; i < n; i+)write_add(address + i),*(p + i);delay_ms(30);void read_n_add(unsigned char * p,unsigned char address,unsigned char n)unsigned char i;for(

29、i = 0; i < n; i+)*(p + i) = read_add(address + i);密碼處理及主函數(shù)bit mimaduibi(unsigned char *string1,unsigned char *string2)unsigned char count;for(count = 0; count < 6; count+)if(string1count != string2count)return 0;return 1;unsigned char step_choose(void)uchar key;key = 0xff;write_com(0x06);write

30、_com(0x01);lcd_pos(0,0);write_n_char(" Input password ");lcd_pos(1,0);write_n_char(" Press key A ");while(key != A) && (key != B)key = keyscan();return key;bit input_mima(uchar * mima)unsigned char count,key;lcd_pos(1,0);for(count = 0; count < 7; count+)delay_ms(100);i

31、f(count < 6)dokey = keyscan();while(key = 0xff);if(key != backspace) && (key != A) && (key != enter)write_data('*');mimacount = key;continue;if(key = backspace)if(count > 0) lcd_pos(1,-count);write_data(' ');mimacount = ' 'lcd_pos(1,count);count-;if(key

32、= enter)lcd_pos(0,0);return(0);if(key = clear) if(count > 0)count=0;write_com(0x01);write_com(0x0f); lcd_pos(0,0); write_n_char(" press password ");lcd_pos(1,count);count-; if(count=6)dokey = keyscan();while(key != backspace)&&(key != enter);if(key = backspace)lcd_pos(1,-count);

33、write_data(' ');mimacount=' 'lcd_pos(1,count);count-;if(key = enter)return(1);void baoj1()int i;for(i = 0;i < 10; i+)baojing = 0;delay_ms(6);baojing = 1;delay_ms(6);void baoj()uchar i;for(i = 0; i < 10; i+)baoj1();void baoj2()uchar i;for(i = 0; i < 20; i+)baoj1();void mimach

34、uli() uchar key,i;uchar idata mima_16=' ',' ',' ',' ',' ',' 'uchar idata mima_26=' ',' ',' ',' ',' ',' 'uchar idata mima_36=' ',' ',' ',' ',' ',' 'key = ste

35、p_choose();if(key = A)read_n_add(mima_1,0x00,6);write_com(0x06);write_com(0x01);write_com(0x0f);lcd_pos(0,0);write_n_char(" press password ");if(input_mima(mima_2)if(mimaduibi(mima_2,mima_1) lcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" Password right &

36、quot;);lcd_pos(1,0);write_n_char("welcome to home");aa = 0; lock = 1; baojing = 0; delay_ms(1000);baojing = 1;TR0 = 1;flag_t0 = 1;while(key != D && flag_t0) key = keyscan();TR0 = 0;lock = 0;Elselcd_pos(0,0);write_com(0x0c); write_com(0x06);write_com(0x01);write_n_char(" passwo

37、rd wrong");delay_ms(1000);aa+;if(aa = 3)lcd_pos(0,0); write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" Password wrong");lcd_pos(1,0);write_n_char(" you are thief");aa = 0; i = 20; while(i-) baoj();else lcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(

38、0x01);/write_n_char(" password wrong");delay_ms(1000);aa+;if(aa = 3)lcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" Password wrong");lcd_pos(1,0);write_n_char(" you are thief");aa = 0; i = 20; while(i-) baoj();if(key = B)/Bread_n_add(mima_1

39、,0x00,6);write_com(0x06);write_com(0x01);write_com(0x0f);lcd_pos(0,0);write_n_char(" input password");write_com(0x0f);if(input_mima(mima_2)if(mimaduibi(mima_2,mima_1) lcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" password right ");aa = 0; delay_ms(

40、1500);flag_change = 1;while(flag_change) write_com(0x06);write_com(0x01);write_com(0x0f);lcd_pos(0,0);write_n_char(" In new password");delay_ms(1500);if(input_mima(mima_2)lcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" Input new pass "); lcd_pos(1,0)

41、;write_n_char(" word again");delay_ms(2000);lcd_pos(0,0);write_com(0x0f); write_com(0x06); write_com(0x01);write_n_char("In new password");if(input_mima(mima_3) if(mimaduibi(mima_2,mima_3) lcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" Password

42、 has ");lcd_pos(1,0);write_n_char(" change already");write_n_add(mima_3,0x00,6);delay_ms(2000);flag_change = 0;Elselcd_pos(0,0);write_com(0x0c); write_com(0x06);write_com(0x01);write_n_char("password wrong");delay_ms(1000);aa+;if(aa = 3)aa = 0; i = 20; while(i-) baoj();flag_

43、change = 0;Elselcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" password wrong");delay_ms(1000);aa+;if(aa = 3)aa = 0; i = 20; while(i-) baoj();Elselcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char("password wrong");delay_ms(1

44、000);flag_change = 0;aa+;if(aa = 3)aa = 0; i = 20;while(i-) baoj();Elselcd_pos(0,0);write_com(0x0c);write_com(0x06);write_com(0x01);write_n_char("password wrong");delay_ms(1000);aa+;if(aa = 3)lcd_pos(0,0); write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" Password wrong

45、");lcd_pos(1,0);write_n_char(" you are thief");aa = 0; i = 20; while(i-) baoj();Elselcd_pos(0,0);write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char("password wrong");delay_ms(1000);aa+;if(aa = 3)lcd_pos(0,0); write_com(0x0c); write_com(0x06); write_com(0x01);write_n_char(" password wrong");lcd_pos(1,0);write_n_char(" you are thief");aa = 0; i = 20; while(i-) baoj();void timer0() interrupt 1 TH0 = 0x4c;TL0 = 0x00;bb+;if(bb = 200)bb = 0;flag_t0 = 0;void main()yjinit();i2cinit();baojing = 1;lock = 0;TMOD = 0x21; PC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論