freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)字密碼鎖單片機(jī)課程設(shè)計-文庫吧

2025-06-03 12:48 本頁面


【正文】 按鍵N判斷按鍵值返回主界面NY設(shè)置解碼次數(shù)產(chǎn)生隨機(jī)密碼輸入密碼N=0x84N=0x82N=0x11圖9 系統(tǒng)程序流程圖 主程序模塊主程序主要用于定義全局變量,給全局變量賦初值,初始化E2PROM,啟動定時器以及從AT24C02中讀取密碼,為整個程序提供數(shù)據(jù);檢測按鍵;調(diào)用顯示等功能。 密碼比較判斷模塊該模塊的功能是將鍵盤輸入的密碼利用if語句與設(shè)定的密碼進(jìn)行逐個比較,若密碼完全正確則開鎖;若不正確,則開啟報警電路,復(fù)位后重新輸入密碼。其密碼輸入和比較判決流程圖如圖10所示。輸入密碼核對鍵盤鎖定,開啟報警電路開鎖,燈亮,可密碼修改NY復(fù)位圖10 密碼輸入和比較判決流程圖 鍵盤掃描模塊鍵盤使用矩陣式鍵盤,由行和列組成,CPU對所有鍵盤進(jìn)行監(jiān)視,從而實現(xiàn)逐列掃描鍵盤確定被按鍵的具體位置、判斷鍵盤上有無鍵按下、消除去抖動、判斷閉合的鍵是否釋放等功能。如圖11所示,為鍵盤掃描流程圖。開始延時去抖動計算輸入鍵值鍵值送入單片機(jī)有按鍵輸入?有按鍵輸入?有按鍵輸入?返回NNYY圖11 鍵盤掃描流程圖 修改密碼模塊在密碼輸入正確情況下,可以按下“重置密碼”對密碼進(jìn)行重新設(shè)置,每設(shè)定一位就將密碼送給AT24C02存儲起來,當(dāng)設(shè)置6位密碼完畢后,系統(tǒng)將自動跳到程序開始,調(diào)用新設(shè)置的密碼。圖12為修改密碼流程圖。開始輸入原密碼密碼比較比較正確?輸入新密碼再次輸入新密碼調(diào)用AT24C02中密碼比較正確修改成功返回菜單鍵盤鎖定,啟動報警電路復(fù)位YN圖12 修改密碼流程圖五、系統(tǒng)功能本設(shè)計中系統(tǒng)可實現(xiàn)功能如下:(1)通過切換,對輸入的1—8位密碼進(jìn)行顯示或隱藏;(2)通過發(fā)光二極管和蜂鳴器,對解密正確或者錯誤進(jìn)行聲光報警;(3)1—8位密碼修改;(4)在密碼遺失情況下,通過初始密碼進(jìn)行密碼再設(shè)置;(5)具有13次的解鎖次數(shù)任意設(shè)定功能;六.設(shè)計總結(jié)作為一名電子信息工程的學(xué)生,通過本次課程設(shè)計,我很好的了解了單片機(jī)C語言設(shè)計的思考模式,熟悉了C語言的編程規(guī)則,知道了如何去運用一個完全陌生的單片機(jī),會根據(jù)單片機(jī)的不同結(jié)構(gòu)來采用不同的命令實現(xiàn)功能。在此次課程設(shè)計中我負(fù)責(zé)的模塊出現(xiàn)了問題導(dǎo)致在數(shù)碼管上顯示狀態(tài)的時候混亂了,主要是因為延時上沒有處理好,Aduc848的定時器處理時是要加上一定的延時來防止沖突的。另外還有鍵盤的防抖模塊,一開是沒有考慮好,所以鍵盤按下后顯示會亂變。綜上而言,通過此次課程設(shè)計,我很好的學(xué)習(xí)了單片機(jī)的應(yīng)用以及其編程。七、附錄:源程序include includedefine uint unsigned intdefine uchar unsigned char /*狀態(tài)聲明*/define opened 0define new1 15define new2 16define succed 5define fanin 10define null 11define error 12define different 13define tover 14/*按鍵聲明*/define enter 10define back 11define trevise 12define revise 13define cancel 14define vain 15define off 16define end 17define finish 18/*函數(shù)聲明*/void p_base()。void p_revise()。void p_new1()。void p_new2()。void p_trevise()。 void p_show()。 uchar p_scan()。void p_record()。void p_delay(uint f_n)。void p_state(uchar f_s)。uchar p_pare(uchar *f_k1,uchar *f_k2)。void p_copy(uchar *f_s,uchar *f_k)。/*I/O口聲明*/sbit p00=P0^0。sbit p10=P1^0。sbit p11=P1^1。sbit p12=P1^2。sbit p13=P1^3。sbit p14=P1^4。sbit p15=P1^5。sbit p16=P1^6。sbit p17=P1^7。sbit p20=P2^0。sbit p21=P2^1。sbit p22=P2^2。sbit p23=P2^3。sbit p24=P2^4。sbit p25=P2^5。sbit p26=P2^6。sbit p27=P2^7。sbit p30=P3^0。sbit p31=P3^1。sbit p32=P3^2。sbit p33=P3^3。sbit p34=P3^4。sbit p35=P3^5。sbit p36=P3^6。sbit p37=P3^7。/*變量聲明*/uchar bot,key1[9],key2[9],save[9],t[4],s,min,h,mino,mint,ho,ht,n1=1,n2=1,lock,minu,sign,tov,state,n,sound,point=1, showlist[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0x71,0xff,0x21,0x85,0xe1,0x7f,0x7d}。uint ms。 /*主函數(shù)*/void main(){ EA=1。 //開總中斷 ET0=1。 //開內(nèi)部中斷0 ET1=0。 //關(guān)內(nèi)部中斷1 TMOD=0x11。 TH0=0xf9。 //計數(shù)器0高八位 TL0=0xdb。 //計數(shù)器0低八位 TR0=1。 //計數(shù)器0開始計數(shù) I2CCON=0xe8。 sound=0。 tov=1。 //超時計數(shù)置為1 P1=0x00。 //P1全置為0作為輸入 if(sign!=1) p_new1()。 //調(diào)用首次使用判斷函數(shù) p_base()。 //調(diào)用基礎(chǔ)解鎖函數(shù)}/*基礎(chǔ)解鎖函數(shù)*/void p_base() { n=0。 //密碼數(shù)組置首位 state=fanin。 //指示管置為輸入狀態(tài)fanin while(1) //無限循環(huán) { if(n==0) state=fanin。 else state=n。 bot=p_scan()。 if(n!=0amp。amp。tov==0) //判斷密碼數(shù)組是不是在首位,超時計數(shù)是否為0 { p_state(tover)。//調(diào)用指示管狀態(tài)閃爍函數(shù),置為用超時狀態(tài)tover main
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1