




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 數字密碼鎖 湖南大學電氣與信息工程學院本科生課程設計題 目: 數字密碼鎖課 程:單片機課程設計專 業:電氣工程及其自動化班 級: 學 號:性 名:同組人姓名: 指導老師: 設計時間: 2016. 06目錄一、任務及要求3二、本次設計實際能完成的功能.3三、系統原理框圖.4四、硬件設計及說明.44.1板上資源分布44.2單片機ADuC84854.3 電源模塊74.4 顯示模塊84.5 蜂鳴器94.6 按鍵輸入104.7 復位與下載114.8 硬件電路圖.12五、程序.135.1程序流程圖135.2主程序main()175.3 lcd12864.c程序355.4 lcd12864.h程序.415
2、.5 bless.h程序42六、使用說明書46七、心得體會46八、參考文獻47一、任務及要求1、任務設計一多位電子密碼鎖2、要求1)設計一多位電子密碼鎖,輸入密碼用“F”表示,輸入密碼正確,綠燈亮(或顯示其它標志、蜂鳴器替代),輸入密碼錯誤,紅燈亮(或顯示其它標志、蜂鳴器替代)2)具有確定鍵和取消鍵,在未確定之前可以取消,重新輸入3)連續輸入三次錯誤密碼,紅燈閃爍,報警電路動作,鍵盤鎖定4)具有密碼重置、修改功能5)具有密碼輸入等待操作時間限制功能,超過限定時間報警6)顯示北京時間,時間可調整7)可利用蜂鳴器添加提示音二、本次設計實際能完成的功能1)6位電子密碼鎖,輸入密碼用“*”表示,輸入密
3、碼正確,八位LED閃爍及蜂鳴器發出音樂,輸入密碼錯誤,八位LED閃爍及蜂鳴器報警2)具有確定鍵和取消鍵,在未確定之前可以取消,重新輸入3)連續輸入三次錯誤密碼,八位LED閃爍及蜂鳴器報警,鍵盤鎖定4)具有密碼重置、修改功能5)具有密碼輸入等待操作時間限制功能,超過限定時間報警6)顯示北京時間,時間可調整三、系統原理框圖ADuc848驅動電路報警電路振蕩電路LCD12864顯示4×4鍵盤輸入復位電路八路LED顯示 ADUc848作為數字密碼鎖的中樞,對輸入的密碼進行判斷處理,根據密碼的正確與否做出不同的反應,此外,還通過LCD12864顯示時間;LCD12864作為數字密碼鎖的主要顯示
4、設備;電源向整個數字密碼鎖供電;矩陣鍵盤作為數字密碼鎖的輸入設備;八位LED和蜂鳴器則作為數字密碼鎖的提示設備。三、硬件原理圖本單片機學習板集成多個基礎硬件資源模塊,各個資源模塊可以相互組合使該板實現不同的功能。因此,本學習板既可用于51單片機的教學實驗,又可用于做功能比較強的單片機課程設計,是51單片機初學者的好幫手。 3.1板上資源分布 單片機學習板板上資源如下圖所示:1、2、3:單片機P0、P2、P3口引出接口(有限流保護電阻);4:上排圖形點陣LCD12864的接口、下排LCD1602的接口;5、6:兩路16位ADC輸入、可作差分輸入;7、8:12位DAC輸出、對DAC輸出進行比例放大
5、或者跟隨的運放;9:單片機AduC848;10:無源蜂鳴器、由單片機PWM模塊輸出信號控制;11:8位數碼管;12、13:LCD亮度調節口;14:USB接口(通過USB接口供電、在線下載、單步、斷點、運行到某一行等方式調試程序);15:8路LED,從左至右為LED70,分別被P0.7P0.0控制;16:步進電機(5V、70歐姆、6線4相)接口;17:UART接口;18:復位按鍵和下載按鍵;19、20:IIC總線上的EEPROM AT24C08和RTC DS1307;21:IIC接口;22:PS/2接口;23:紅外接收頭;24:功能選擇和配置插針;25:4X4矩陣式鍵盤或4個獨立按鍵;26:SP
6、I接口;27:直流電源輸入;此外還有紅外二極管(由單片機PWM 模塊輸出信號控制)。3.2單片機ADuC848 3.2.1 ADuC848的簡要介紹(針對本設計所選擇的型號) 詳細情況請參考芯片手冊。1、8051-based core、5V供電電壓; 2、可以通過串口在線下載程序和單步、斷點、運行到某一行等方式調試程序; 3、16位8通道-ADC,片內有1.25V參考電壓、buffer和PGA; 4、12位電壓輸出DAC、Dual 16-BIT - DAC; 5、32kbyte程序存儲器、4kbyte用戶信息Flash存儲器、256RAM+2048XRAM(byte); 6、PLL(12.58
7、 MHz max)(片外只需接32.768kHz晶振); 7、3×16位定時/計數器、看門狗定時器; 8、11中斷源(2優先級)、11位堆棧指針; 9、24I/O+8模擬或數字輸入; 10、UART、 SPI和I2C、高速115200波特率發生; 11、Power supply monitor、上電復位、Dual 200A激勵電流源。3.2.2 單片機引腳分布 詳見原理圖。Pin14:(P1.0P1.3)作為矩陣式鍵盤或獨立按鍵的輸入,P1口只能用于輸入,默認用于模擬輸入,作為數字輸入使用時應先往P1口相應引腳寫0,這里可以用P0&=0xf0。若P2、P3、P0口要作為輸入,
8、則應往相應引腳寫1。Pin5、6:AVDD、AGND,模擬電源輸入。Pin7、8:外部參考電壓接入,Pin7接AGND。片內DAC有2.5V內部參考,ADC有1.25V內部參考。Pin9、10:(P1.4、P1.5)兩路AD輸入,可做差分輸入,需要設置ADC的寄存器。Pin11、12:(P1.6、P1.7)各200uA激勵電流源,可配合RTD等做應用。Pin13:兩路AD輸入做普通輸入時的電壓參考端,AD輸入電壓不能低于此引腳電壓。Pin14:片內DAC輸出。Pin15:復位引腳。Pin16、17:單片機RS232接口的RXD(P3.0) TXD(P3.1)。Pin18:(P3.2) 外部中斷
9、0,用于紅外接收和PS/2接口。Pin19:(P3.3)LCD1602,LCD12864A的EN引腳,控制第一位數碼管。Pin20、21:DVDD、DGND數字電源輸入。Pin22:(P3.4)PS/2接口的data信號。Pin23:(P3.5)LCD1602和LCD12864A的RW。Pin24:(P3.6)LCD1602和LCD12864A的RS。Pin25:LCD12864A的CS1。Pin26:IIC接口時鐘信號。Pin27:IIC接口data信號。Pin28:(P2.0)SPI接口時鐘信號。Pin29:(P2.1)SPI接口MOSI信號、控制第6位數碼管的位碼。Pin30:(P2.2
10、)SPI接口MISO信號、控制第7位數碼管的位碼。Pin31:(P2.3)SPI接口SS信號、控制第8位數碼管的位碼;P2.03也作為4X4矩陣式鍵盤的掃描輸出信號、步進電機的控制信號、數碼管第數碼管第6、7、8位位碼。但是SPI、4X4矩陣式鍵盤、步進電機、數碼管第6、7、8位功能不能同時實現。Pin32、Pin33:接外部32.768KHz晶振。Pin34、Pin35:DVDD、DGND。Pin36:(P2.4)LCD12864A的CS2。Pin37:(P2.5)內部PWM模塊輸出,控制紅外LED。Pin38:(P2.6)內部PWM模塊輸出,控制蜂鳴器。Pin39:(P2.7)內部PWM模
11、塊的外部時鐘輸入(也可以用內部時鐘)。Pin40:EA,低電平有效,正常使用時拉低。Pin41:PSEN,在此引腳電平為低時按復位鍵進入debug模式,可以下載和調試程序。Pin42:ALE。Pin47、Pin48:DGND、DVDD。Pin43、44、45、46、49、50、51、52:P0口、LCD1602和LCD12864的數據總線,數碼管的段碼。3.3 電源模塊 電源模塊原理圖如圖1.2所示。本學習板共有如下3種供電方式: (1)5V電源適配器供電(開關往上撥、插針1下面兩腳接跳線帽)。將開關sw4第2、3腳接通(開關往上撥),電源網絡DVDD連接到插針1第2腳的輸出,將插針1的第1、
12、2腳(插針1下面兩腳)接跳線帽,DVDD直接連接到電源適配器輸入端,即為5V電源適配器供電模式。(2)712V電源適配器供電(開關往上撥、插針1上面兩腳接跳線帽) 將開關sw4第2、3腳接通(開關往上撥),電源網絡DVDD連接到插針1第2腳的輸出,將插針1的第2、3腳(插針1上面兩腳)接跳線帽,DVDD連接到穩壓芯片7805的輸出,而7805的輸入端連接到電源適配器輸入端,即為712V的電源適配器經7805給學習板供電的模式。(3)USB供電(開關往下撥)。將開關sw4第1、2腳接通(開關往下撥),電源網絡DVDD連接到USB電源輸入端。對DVDD網絡和AVDD網絡設了測試點,方便調試。測試點
13、具體位置參見附圖1。3.4 顯示模塊 本系統共有四種顯示模式可供選擇,這四種模式分別是:LCD12864、LCD1602、數碼管、8路LED。引腳復用:四種顯示模式復用數據總線,控制總線,故用戶只可選擇其中一種使用。我們選用了LCD12864顯示。3.4.1 LCD顯示 LCD顯示信號連接圖如圖1.7所示。圖1.7 LCD信號連接關鍵網絡名和引腳名解釋: (1)DISCTRL04:顯示控制信號。(2)D0D7、DB0DB7:數據總線。(3)E:LCD使能信號。(4)RS:數據、指令選擇信號。(5)RW:讀、寫選擇信號。(6)CS1、CS2:LCD12864由兩部分組成,CS1和CS2為選擇信號
14、。板上接口4的上排位LCD12864的接口,下排位LCD1602的接口,排針和排母左對齊插入。切勿插錯。3.4.2 8路LED 該模塊原理如圖1.9所示。圖1.9 8路LED 8個LED接P0口,低電平時LED亮,這樣不會影響P0口邏輯電平。LED限流電阻取4.7K,通過LED電流約為0.8mA,在P0口驅動能力范圍之內。該部分可以用于做跑馬燈等實驗、幫助用戶更好的了解和熟練對端口的操作、還可以用于觀測P0口的狀態。插針配置: (1)若要使用該模塊,可以接通插針2,為減少功耗,不用請斷開。3.5 蜂鳴器該模塊原理圖如圖1.10所示。圖1.10 蜂鳴器和紅外發送本設計中采用無源電磁式蜂鳴器,蜂鳴
15、器由PWM1(P2.6)控制,紅外二極管由PWM0(P2.5)控制。PWM1和PWM0均為片內PWM模塊的輸出。蜂鳴器和紅外LED的驅動均采用普通NPN三極管。為方便調試,對該模塊中的信號設了測試點,具體位置參見附圖1。插針配置: (1)若要使用蜂鳴器,可以接通插針3,為減少功耗,不用請斷開。(2)若要使用紅外二極管,可以接通插針4,為減少功耗,不用請斷開。3.6 按鍵輸入 該模塊原理如圖1.12所示。圖1.12 按鍵模塊由于P1口(用于行掃描)內部無上拉電阻,為使無鍵按下時行信號為高電平,故將行信號接上拉電阻,電阻大小10K即可。引腳復用:P2.0P2.3為4X4矩陣式鍵盤列掃描信號,又復用
16、作步進電機控制信號,SPI信號、P2.1P2.3還復用為數碼管第5、6、7位位碼控制信號。參與復用的一項功能使用時,其他參與復用的功能則不能使用。插針配置: (1)插針10上面兩腳接跳線帽,4X4矩陣式鍵盤輸入,行掃描信號為P1.0P1.3,列掃描信號為P2.02.3。(2)插針10下面兩腳接跳線帽,獨立按鍵輸入,該模式有4個獨立按鍵可用,按鍵掃描所用端口為P1.0P1.3。這4個按鍵為4X4矩陣鍵盤的左邊4個按鍵。3.7 復位與下載 復位與下載電路如圖1.14所示。圖1.14 復位與下載進入下載或調試模式的步驟為: (1)按住BTN1(down or debug按鍵)不要放開; (2)按下B
17、TN2(reset按鍵),然后放開BTN2(reset按鍵);(3)放開BTN1(down or debug按鍵)。這樣單片機就進入了調試模式,可以下載或調試程序。4.8 硬件電路圖五、程序5.1 程序流程圖 開始進入主菜單功能選擇輸入密碼修改密碼顯示時間1235.1.1 功能菜單流程圖5.1.2 輸入密碼子程序流程圖5.1.3重置密碼子程序流程圖5.1.4時間子程序流程圖顯示時間掃描鍵盤,讀取鍵值Showtime=0,跳出時間顯示14關定時器1Set加一0開定時器1Set置零912Set=16分別對應秒分時日月年加一15Set=16分別對應秒分時日月年減一Y關定時器0給定時器0賦初值time
18、count減一判斷timecount是否等于0超時報警,LED8路閃爍判斷sjflag是否不等于2N開定時器0Y關定時器0N5.1.5定時器0中斷流程圖5.1.6定時器1中斷流程圖關定時器1給定時器1賦初值判斷count是否等于250Y開定時器1count加一count置零秒加一根據條件確定分時日月年是否加一5.2主程序main()#include<aduc848.h>#include<lcd12864.h>#include <math.h>#include <intrins.h>#define uint unsigned int#define
19、uchar unsigned char#define ulong unsigned long void inputkey(); /輸入密碼子程序 void setkey(); /重置密碼子程序 void LED(unsigned int x);/LED標志顯示程序/ void display0();/顯示子程序 void delay_0(int numb); /延時子程序 void bee(unsigned int b);/蜂鳴器子程序 unsigned char getkey();/密碼鎖主鍵盤程序int timecount=1500,alarmcount=0,sjflag;/報警時用的變量
20、int realkey; /正確密碼int yourkey=0;/用戶輸入密碼int keynum=0; /輸入密碼的位數 uchar okflag;/輸入密碼正確標志uchar showtime=0;/是否顯示時間uchar count=0,set=0,ShowMode=0;/修改時間變量uchar time6=16,5,20,8,8,8;/存儲時間uchar key; uchar pmdeng;/跑馬燈uchar kbflag=0,purrentlock=0,mimaflag;/鍵盤鎖定標志,KB是總的鍵盤鎖定標志,PURR是暫時鎖定主鍵盤,MIMA是決定是否釋放后有效bit change
21、=1;bit change1=0;void init(void);/初始化uchar FUNSEL=0;/功能選擇 uchar keyscan();/按鍵掃描uchar keyNO=16;/按鍵返回值。設置初值void delayms(uint n);/1ms延時void xianshi0(void);/顯示菜單void SHOW_TIME();/音符與PWM1L對應數據(按照下面規定,實際上低1DO不存在)uchar code dat= 125,118,111,105,99,94,89,84,79,74,70,66,63,59,57,53,50,47,44,42,39,37,35,33,31
22、,30,28,26,25,23,22,21,20,19,18,17;/音符對應編號(0代表前一個音符為附點音符,0xff表示結束),每行與樂譜對應uchar code dat2=9,12,14,16,17,16,14,11,7,0,9,11,12,9,9,0,8,9,11,8, 4,9,12,14,16,0,17,16,14,11,19,0,9,11,12,0,11,9,8,6,7, 9,9,9,19,19,18,16,14,11,7,0,9,11,12,9,9,0,7,9, 11,8,4,19,19,0,6,16,14,11,7,0,9,11,12,0,11,9, 8,0,6,7,9,9,0
23、xff;/音符對應八分之一節拍數,每個與編號相對應uchar code dat3=2, 4, 2, 2, 1, 2, 4, 2,2,2,2, 2, 4,2,2,2,1,2, 4,2, 4,2, 4, 2, 2,2, 1, 2, 4, 2, 2,2,1, 2, 2,2, 1,2,2,1,2, 4,2,6, 6, 2, 1, 2, 4, 2,2,2,1, 2, 4,2,2,2,1,2, 4,2,6, 6, 2,2,1, 2, 4, 2,2,2,1, 2, 2,2, 1,2, 2,2,1,2,6,6; /產生相應的音符并延時void sound(uchar s); void main() realk
24、ey=888888; init(); PLLCON&=0xf8;/設置頻率為12.58MHz okflag=0; /輸入密碼正確標識 LCD_init(); /屏幕初始化 LCD_Write_Sentence(2,0,"歡迎使用密碼鎖"); delayms(3000); LCD_init(); /屏幕初始化 LCD_Write_Sentence(2,0,"設計者"); LCD_write_fuhao(2,6,0); LCD_Write_Sentence(4,3,"黃金朋"); LCD_write_fuhao(4,9,2); L
25、CD_Write_Sentence(4,10,"張晗"); delayms(3000); LCD_init(); /屏幕初始化 while(1) TR1=1; SHOW_TIME();/顯示時間 PT0=1; /定時中斷0為優先 key=16; if(kbflag=0) key=keyscan(); if(key=10) TR0=1;/開啟定時中斷0 inputkey();/密碼輸入 else if(key=13) /13鍵確認 if(okflag=1) setkey();change=1; if(change=1) LCD_init(); PT1=1;TR0=0; FUN
26、SEL=0; while(change) keyNO=keyscan(); if (FUNSEL=0&&keyNO=1)FUNSEL=1;LCD_init();keyNO=16; if (FUNSEL=0&&keyNO=2)FUNSEL=2;LCD_init();keyNO=16; if (FUNSEL=0&&keyNO=3)FUNSEL=3;LCD_init();keyNO=16; if(FUNSEL=0)/顯示菜單 xianshi0(); if(FUNSEL=1)/輸入密碼 change=0; okflag=0; LCD_Write_Sent
27、ence(2,3,"密碼輸入"); if(FUNSEL=2) /重置密碼 change=0; LCD_Write_Sentence(2,3,"密碼重置"); if(FUNSEL=3)change=0;showtime=1; /*顯示時間*/void SHOW_TIME()while(showtime=1) int keyvalue=keyscan(); okflag=0; if(keyvalue=0) showtime=0;break; switch(set) case 0:ShowMode=0;break; case 1:ShowMode=0x01;b
28、reak; case 2:ShowMode=0x02;break; case 3:ShowMode=0x04;break;case 4:ShowMode=0x08;break; case 5:ShowMode=0x10;break; case 6:ShowMode=0x20;break; default:break; LCD_Write_Sentence(2,2,"現在是"); LCD_write_fuhao(2,8,0); LCD_write_shuzi(4,2,0,2); LCD_write_shuzi(4,3,0,0); LCD_write_shuzi(4,4,Sho
29、wMode&0x20,time0/10); LCD_write_shuzi(4,5,ShowMode&0x20,time0%10);/顯示年 LCD_Write_Sentence(4,6,"年"); LCD_write_shuzi(4,8,ShowMode&0x10,time1/10); LCD_write_shuzi(4,9,ShowMode&0x10,time1%10);/顯示月 LCD_Write_Sentence(4,10,"月"); LCD_write_shuzi(4,12,ShowMode&0x08,t
30、ime2/10); LCD_write_shuzi(4,13,ShowMode&0x08,time2%10);/顯示日 LCD_Write_Sentence(4,14,"日"); LCD_write_shuzi(6,2,ShowMode&0x04,time3/10); LCD_write_shuzi(6,3,ShowMode&0x04,time3%10);/顯示時 LCD_Write_Sentence(6,4,"時"); LCD_write_shuzi(6,6,ShowMode&0x02,time4/10); LCD_wr
31、ite_shuzi(6,7,ShowMode&0x02,time4%10);/顯示分 LCD_Write_Sentence(6,8,"分"); LCD_write_shuzi(6,10,ShowMode&0x01,time5/10); LCD_write_shuzi(6,11,ShowMode&0x01,time5%10);/顯示秒 LCD_Write_Sentence(6,12,"秒"); if(keyvalue=12) set+,TR1=0; if(set>6) set=0; if(keyvalue=9) TR1=1,s
32、et=0; if(keyvalue=14) switch(set) case 1:time5+;if(time5>=60)time5=0; break; case 2:time4+;if(time4>=60)time4=0; break; case 3:time3+;if(time3>=24)time3=0; break; case 4:time2+;if(time2>31)time2=1; break; case 5:time1+;if(time1>12)time1=1; break; case 6:time0+;if(time0>99)time0=0;
33、break; default: break; if(keyvalue=15) switch(set) case 1:time5-;if(time5>254)time5=59; break; case 2:time4-;if(time4>254)time4=59; break; case 3:time3-;if(time3>254)time3=23; break; case 4:time2-;if(time2<1)time2=31; break; case 5:time1-;if(time1<1)time1=12; break; case 6:time0-;if(t
34、ime0>254)time0=99; break; default: break; /*密碼輸入子程序 *void inputkey() int i,j; int yourkey=0;int keyv; /讀取鍵號值 keynum=0; /輸入密碼位數 LCD_init();LCD_Write_Sentence(2,3,"請輸入密碼"); LCD_write_fuhao(2,13,0); for(i=0;i<3;i+) yourkey=0; if(okflag!=0) /是否跳出最外循環標志 break; for(j=0;j<9;j+) timecount
35、=1500;sjflag=0; if(alarmcount=1) sjflag=2;/作為關閉定時器的標志 alarmcount=0; do /掃描鍵盤 if(kbflag=0) keyv=keyscan(); /keyv為鍵值 if(sjflag=0) sjflag=1;TR0=1; if(alarmcount=1) break; while(keyv>=14); TR0=0;/關閉定時 if(keyv=11) /j=j-keynum; j-;keynum=0;break; else if(keyv<10&&keyv>=0) keynum+; yourkey
36、=yourkey*10+keyv; if(keynum=1) LCD_write_fuhao(4,13,1); if(keynum=2) LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=3) LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=4) LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_w
37、rite_fuhao(4,13,1); if(keynum=5) LCD_write_fuhao(4,9,1); LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=6) LCD_write_fuhao(4,8,1); LCD_write_fuhao(4,9,1); LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_wri
38、te_fuhao(4,13,1); if(keyv=12) LCD_write_fuhao(4,8,2); LCD_write_fuhao(4,9,2); LCD_write_fuhao(4,10,2); LCD_write_fuhao(4,11,2); LCD_write_fuhao(4,12,2); LCD_write_fuhao(4,13,2); keynum=0; j=0; yourkey=0; if(yourkey=realkey) /密碼輸入成功 P3&=0x17; LED(1); /密碼正確,LED左右四位閃爍LCD_init(); LCD_Write_Sentence(
39、2,5,"恭喜你"); LCD_Write_Sentence(4,6,"成功");bee(3); /蜂鳴器短鳴/delayms(3000);okflag=1; /成功標志change=1; /成功后顯示主菜單 break; else if(i=0) LCD_init(); LCD_Write_Sentence(0,4,"密碼錯誤一次"); LCD_Write_Sentence(2,4,"請重新輸入"); LCD_write_fuhao(2,14,0); LED(0);bee(1); else if(i=1) LCD
40、_init(); LCD_Write_Sentence(0,4,"密碼錯誤二次"); LCD_Write_Sentence(2,4,"請重新輸入"); LCD_write_fuhao(2,14,0); LED(0); bee(1); if(i>=3) kbflag=1; P3&=0x17; LCD_init(); LCD_Write_Sentence(2,4,"密碼錯誤"); LCD_Write_Sentence(4,4,"鎖定屏幕"); LED(4); bee(2); /* 密碼重置子程序*void
41、 setkey() int yourkey1=0,yourkey2=0,keyv0,yourkey=0; int i,j; for(j=0;j<2;j+) yourkey=0;keynum=0;/密碼的位數if(j=0) LCD_init(); LCD_Write_Sentence(2,2,"請輸入新密碼"); LCD_write_fuhao(2,14,0);if(j=1) LCD_init(); LCD_Write_Sentence(2,4,"請再次輸入"); LCD_write_fuhao(2,14,0); for(i=0;i<8;i+)
42、 /第一次輸入新密碼 timecount=1500; /定時中斷,在1500個時間單位內按鍵有效 sjflag=0; if(alarmcount=1) sjflag=2;/作為關閉定時器的標志 okflag=1; alarmcount=0; break; do if(kbflag=0) keyv0=keyscan();if(sjflag=0) sjflag=1;TR0=1;if(alarmcount=1) break; while(keyv0>=15); if(keyv0=11) /重置密碼確認 i=0; break; else if(keyv0<10)&&(key
43、v0>=0) keynum+; yourkey=yourkey*10+keyv0; if(keynum=1) LCD_write_fuhao(4,13,1); if(keynum=2) LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=3) LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=4) LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD
44、_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=5) LCD_write_fuhao(4,9,1); LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_write_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keynum=6) LCD_write_fuhao(4,8,1); LCD_write_fuhao(4,9,1); LCD_write_fuhao(4,10,1); LCD_write_fuhao(4,11,1); LCD_w
45、rite_fuhao(4,12,1); LCD_write_fuhao(4,13,1); if(keyv0=12) LCD_write_fuhao(4,8,2); LCD_write_fuhao(4,9,2); LCD_write_fuhao(4,10,2); LCD_write_fuhao(4,11,2); LCD_write_fuhao(4,12,2); LCD_write_fuhao(4,13,2); keynum=0; i=0; yourkey=0; if(j=0) yourkey1=yourkey; if(j=1) yourkey2=yourkey; if(yourkey1=yourkey2) realkey=your
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫學生臨床實踐能力的核心要素與提升策略
- 利用遠協合作推動醫學繼續教育的創新發展
- 小學生防疫志愿活動總結
- 推動農業高等教育創新發展策略與行動計劃
- 提升醫院實力的醫管合力策略與實施路徑
- 高校思想政治工作創新路徑與策略探討
- 五年級下期中試卷及答案
- 《知識產權基礎理論》課件
- 現場活動工作人員協議
- 續簽勞動合同的行業規定
- 2025年湖北行測試題及答案
- 閩教版四年級英語下冊全冊單元知識點
- 課件圍術期下肢深靜脈血栓的預防與護理
- 2013年7月國家開放大學專本科《法律文書》期末紙質考試試題及答案
- 2025年四川成都農業科技職業學院招聘工作人員16人高頻重點模擬試卷提升(共500題附帶答案詳解)
- 2024年全國高考甲卷歷史試題含答案解析
- 八年級數學下冊 第4章 單元綜合測試卷(北師版 2025年春)
- 《現代教育技術》教學設計公開課教案教學設計課件資料
- 人教版高中物理選擇性必修第三冊期末檢測試卷
- 2025年春新人教版語文一年級下冊教學課件 15 一分鐘
- 山東鐵投集團筆試
評論
0/150
提交評論