




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 單片機(jī)技術(shù)課程設(shè)計(jì)說明書 密碼鎖院 、 部: 學(xué)生姓名: 指導(dǎo)教師: 職稱: 專 業(yè): 班 級: 完成時(shí)間: 摘 要隨著現(xiàn)代科技的發(fā)展,鎖變得更加的多樣化,實(shí)用性和安全性最為重要的,于是電子密碼鎖毋庸置疑的成為了最受歡迎的鎖類。電子密碼鎖具有眾多的優(yōu)點(diǎn),保密性強(qiáng)、不需要鑰匙、修改密碼方便等。該課程設(shè)計(jì)是一個(gè)基于51單片機(jī)的液晶顯示電子密碼鎖的設(shè)計(jì)。單片機(jī)技術(shù)是智能化檢測與控制領(lǐng)域應(yīng)用非常普及并且擁有很大潛力的技術(shù)。本設(shè)計(jì)硬件方面采用美國Atmel公司的AT89S52單片機(jī)作為系統(tǒng)處理核心, AT24C02作為數(shù)據(jù)存儲(chǔ)器,用于斷電保護(hù),液晶顯示器則是采用LCD12684,作為系統(tǒng)輸出設(shè)備,顯示
2、系統(tǒng)提示信息,4*4矩陣鍵盤作為輸入設(shè)備,再加以蜂鳴器、電源等電路構(gòu)成整個(gè)系統(tǒng)硬件;軟件方面則采用C語言編寫。關(guān)鍵詞:密碼鎖;at89s52;at24c02;lcd12684ABSTRACTWith the development of modern technology, diversification of the lock becomes more, practicality and safety is the most important, so the electronic password lock undoubtedly become the most popular lock.
3、 Electronic cipher lock has numerous advantages, strong confidentiality, do not need to modify the password key, convenient etc.The curriculum design is a design of electronic password lock based on MCU 51 LCD display. SCM technology is the application of intelligent detection and control field is v
4、ery popular and have great potential technique. The design of hardware with USA Atmel company AT89S52 microcontroller as the core processing system, AT24C02 is used as the data memory, for power-off protection, liquid crystal display is the use of LCD12684, as the system output device, display syste
5、m information, 4*4 matrix keyboard as input device, and then the buzzer, the power supply circuit of the whole system hardware; software using C language.Key words: password-lock; at89s52; at24c02; lcd12684目 錄1 設(shè)計(jì)課題任務(wù)、功能要求說明及總體方案介紹11.1 設(shè)計(jì)課題任務(wù)11.2 功能要求說明11.3 設(shè)計(jì)課題總體方案介紹及工作原理說明12 設(shè)計(jì)課題的硬件系統(tǒng)設(shè)計(jì)32.1 設(shè)計(jì)課題硬件
6、系統(tǒng)各模塊功能簡要介紹32.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖42.3 設(shè)計(jì)課題元器件清單43 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)53.1 設(shè)計(jì)課題使用單片機(jī)資源的情況53.2 設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡要介紹53.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖64 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤差分析、教學(xué)建議等等84.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明84.2 設(shè)計(jì)課題的仿真結(jié)果94.3 設(shè)計(jì)課題的誤差分析144.4 設(shè)計(jì)體會(huì)14參考文獻(xiàn):15致 謝16附 錄17附錄 A17附錄 B18附錄 C19附錄 D21附錄 E221 設(shè)計(jì)課題任務(wù)、功能要求說明及總體方案介紹1.1 設(shè)計(jì)課題任務(wù)設(shè)計(jì)并制作一個(gè)液晶電子密碼
7、鎖,具有密碼修改,超級密碼,報(bào)警等功能。1.2 功能要求說明(1)密碼鎖上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”;(2)可以存儲(chǔ)原始密碼,超級密碼和修改后的密碼;(3)顯示提示信息;(4)密碼輸入時(shí)處于保密顯示狀態(tài);391.3 設(shè)計(jì)課題總體方案介紹及工作原理說明1.3.1 設(shè)計(jì)課題總體方案介紹本課程設(shè)計(jì)采用AT89S52作為系統(tǒng)處理核心,4*4鍵盤輸入密碼,AT24C02用于存儲(chǔ)密碼,進(jìn)行掉電保護(hù),蜂鳴器用于報(bào)警功能,LCD12684用于顯示系統(tǒng)提示信息,5V電源供電。硬件系統(tǒng)框圖如圖1所示。圖1 硬件系統(tǒng)結(jié)構(gòu)框圖1.3.2 工作原理說明用4*4鍵盤輸入密碼,單片機(jī)調(diào)用AT24C02中存儲(chǔ)
8、的原始密碼對輸入密碼進(jìn)行比較,通過顯示屏輸出相應(yīng)的系統(tǒng)提示信息,通過提示信息,可修改密碼,并存儲(chǔ)新密碼,用于下次開鎖??蛇M(jìn)行手動(dòng)復(fù)位,回到初始界面。2 設(shè)計(jì)課題的硬件系統(tǒng)設(shè)計(jì)2.1 設(shè)計(jì)課題硬件系統(tǒng)各模塊功能簡要介紹本課程設(shè)計(jì)硬件系統(tǒng)采用AT89S52為核心,再加以LCD12684液晶顯示電路,蜂鳴器電路,AT24C02密碼存儲(chǔ)電路,4*4鍵盤輸入電路,手動(dòng)復(fù)位電路,晶振電路,電源電路,下載口電路等模塊。2.1.1 單片機(jī)AT89S52模塊AT89S52是一款低功耗、高性能CMOS8位微控制器,具有8K可編程 Flash存儲(chǔ)器。使用 Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 80C
9、51 產(chǎn)品指令和引腳完全兼容。價(jià)格低廉,不過在性能方面上完全可以勝任本設(shè)計(jì)課題中硬件系統(tǒng)中的處理核心。結(jié)合各個(gè)方面,所以決定采用AT89S52單片機(jī)作為核心處理模塊。2.1.2 LCD12684液晶顯示模塊LCD12684帶有中文字庫,是一種具有4位/8位并行、2線或3線串行多種接口方式,可以顯示出8*4行16*16點(diǎn)陣的漢字,綜合各方面,所以采用了LCD12684為本設(shè)計(jì)課題的液晶顯示模塊。AT89S52的P0口接LCD12684的八位數(shù)據(jù)線,用于顯示提示信息。P3.1 接寄存器選擇端RS,當(dāng)RS=1時(shí),DB0DB7為顯示數(shù)據(jù);當(dāng)RS=0時(shí),DB0DB7為顯示指令數(shù)據(jù)。 P3.6接讀寫控制端
10、R/W,當(dāng)R/W=1的時(shí)候,寫操作;當(dāng)R/W=0的時(shí)候,讀操作。P3.7接使能端E,寫入操作時(shí),使能端下降沿有效。2.1.3 蜂鳴器模塊用P3.0口控制一個(gè)無源蜂鳴器,作為提示音,當(dāng)密碼錯(cuò)誤時(shí)會(huì)發(fā)出聲音,進(jìn)行提示。由于單片機(jī)輸出的電流過小,無法驅(qū)動(dòng)蜂鳴器工作,所以使用了三極管進(jìn)行放大電流,使蜂鳴器可以正常工作。本設(shè)計(jì)課題通過控制單片機(jī)的P3.0口進(jìn)而控制蜂鳴器的工作狀態(tài)。2.1.4 AT24C02密碼存儲(chǔ)模塊AT24C02是美國Atmel公司生產(chǎn)的低功耗CMOS型E2PROM,內(nèi)部含含256*8位存儲(chǔ)空間,具有抗干擾能力強(qiáng),不易丟失數(shù)據(jù),體積小,成本低等優(yōu)點(diǎn)。AT24C02有一個(gè)16字節(jié)頁寫緩
11、沖器,該器件通過I2C總線接口進(jìn)行操作,還有一個(gè)專門的寫保護(hù)功能。本設(shè)計(jì)課題主要用到AT24C02的寫保護(hù)功能。其中其串行時(shí)鐘SCL端接P2.4;串行數(shù)據(jù)/地址SDA端接P2.3口,完成數(shù)據(jù)和指令的傳送,相比較并行傳輸,更加節(jié)省I/O口資源。2.1.5 4*4鍵盤輸入電路本設(shè)計(jì)課題采用4*4行列式鍵盤,共有鍵位16個(gè),4根行線連接P1口低四位,另外4根列線連接P1口高四位,在一開始的時(shí)候,給4根行線賦高電平,當(dāng)有按鍵按下時(shí),則某行和某列相通,高電平變低,可知該行有按鍵被按下,然后進(jìn)行列掃描,同理可識別出按鍵所在列。最后則可知按下的鍵位。、2.1.6 手動(dòng)復(fù)位模塊為確保系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)
12、位電路是必不可少的一部分。本設(shè)計(jì)課題采用AVR復(fù)位電路,當(dāng)按下復(fù)位按鈕的時(shí)候, VCC的高電平就會(huì)直接加到RET端。由于人的動(dòng)作再快也會(huì)使按鈕保持接通一段時(shí)間,所以完全能夠滿足復(fù)位的時(shí)間要求。2.1.7 晶振模塊單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證能夠?qū)崿F(xiàn)同步工作方式,必須提供時(shí)鐘信號,以使其系統(tǒng)在時(shí)鐘信號的控制下按時(shí)序協(xié)調(diào)工作。晶振電路是不可缺少的一部分,AT89S52芯片中的高增益反向放大器輸入端為引腳XTAL1,輸出端引腳為XTAL2。通過這兩個(gè)引腳在芯片外并接石英晶體振蕩器和兩只負(fù)載電容。保證單片機(jī)能夠進(jìn)行正常工作。2.1.8 電源模塊本設(shè)計(jì)直接采用5V電源進(jìn)行外部供電,這可
13、使整個(gè)系統(tǒng)處于正常工作狀態(tài)。2.1.9 下載口模塊通過下載口模塊,可以將用KEIL軟件產(chǎn)生的Hex文件下載入單片機(jī)AT89S52中,使其進(jìn)行正常工作。2.2 設(shè)計(jì)課題電路原理圖、PCB圖、元器件布局圖詳見附錄A、B、C、2.3 設(shè)計(jì)課題元器件清單詳見附錄D3 設(shè)計(jì)課題軟件系統(tǒng)的設(shè)計(jì)3.1 設(shè)計(jì)課題使用單片機(jī)資源的情況P0口接LCD12684的八位數(shù)據(jù)線,用于顯示提示信息;P3.1 接寄存器選擇端RS;P3.6接讀寫控制端R/W;P3.7接使能端E;P3.0口控制一個(gè)無源蜂鳴器,用于提示;P1口接4*4矩陣鍵盤,用于輸入數(shù)據(jù);P2.3、P2.4分別接AT24C02的SDA、SCL端;RET接手動(dòng)
14、復(fù)位模塊RET端;XTAL1、XTAL2分別接晶振模塊的XTAL1和XTAL2端。3.2 設(shè)計(jì)課題軟件系統(tǒng)各模塊功能簡要介紹主函數(shù):主體的布局,并調(diào)用相應(yīng)的子函數(shù),使其構(gòu)成一個(gè)完整的系統(tǒng);延遲子函數(shù):用于去抖,顯示間隔,使系統(tǒng)更加的有條理;顯示子函數(shù):用于顯示系統(tǒng)提示的信息;密碼鎖子函數(shù):用于密碼的邏輯關(guān)系,使整個(gè)程序擁有密碼鎖的功能,可以存儲(chǔ)密碼和調(diào)用密碼,主要控制AT24C02的工作;按鍵掃描子函數(shù):用于輸入鍵值,實(shí)現(xiàn)與用戶的交互;蜂鳴器子函數(shù):實(shí)現(xiàn)蜂鳴器的報(bào)警功能。3.3 設(shè)計(jì)課題軟件系統(tǒng)程序流程框圖圖2 主程序流程圖圖3 密碼處理函數(shù)流程圖圖4 按鍵掃描流程圖4 設(shè)計(jì)結(jié)論、仿真結(jié)果、誤
15、差分析、教學(xué)建議等等4.1 設(shè)計(jì)課題的設(shè)計(jì)結(jié)論及使用說明本設(shè)計(jì)課題使用AT89S52單片機(jī)作為主控芯片, LCD12684作為其液晶顯示器, 用AT24C02串行傳輸存儲(chǔ)器來存儲(chǔ)密碼,4*4矩陣鍵盤,蜂鳴器,以及其他外圍電路,用C語言編寫其控制程序,最終成功設(shè)計(jì)出一款密碼鎖,可以進(jìn)行隨時(shí)改密,并存儲(chǔ)新的密碼可以用于下次開啟,當(dāng)忘記密碼時(shí)配有專有的超級密碼,可以解決忘記密碼所帶來的麻煩,同時(shí)擁有豐富聲光提示信息。此密碼鎖具有很高的使用價(jià)值,可在日常生活中發(fā)揮巨大的作用。利用單片機(jī)控制,矩陣鍵盤輸入密碼,液晶顯示器顯示中文提示字符,蜂鳴器發(fā)聲,密碼鎖運(yùn)行的效果非常的良好,設(shè)計(jì)課題取得了圓滿的成功。
16、密碼鎖的初始密碼為88888888,超級密碼為99999999,可以修改密碼;當(dāng)輸錯(cuò)三次密碼時(shí),密碼鎖將會(huì)報(bào)警,并鎖死,按下返回鍵和復(fù)位鍵可以回到初始界面。加入了AT24C02模塊,擁有掉電保護(hù)功能,就算停電,也不用擔(dān)心密碼的遺失。4.2 設(shè)計(jì)課題的仿真結(jié)果圖5 初始頁面圖6 菜單頁面圖7 進(jìn)入界面圖8 密碼輸入界面圖9 密碼輸入正確提示圖10 密碼輸入錯(cuò)誤界面圖11 超級密碼功能界面圖12 超級密碼輸入界面圖13 重新輸入密碼選擇界面圖14 安全退出選擇界面4.3 設(shè)計(jì)課題的誤差分析LCD12684顯示有亂碼,跟延遲沒有設(shè)置合理有一定的關(guān)系,通過多次試驗(yàn),無改變,不過不影響正常的使用,此誤差
17、可以忽略。4.4 設(shè)計(jì)體會(huì) 本設(shè)計(jì)課題最終成功運(yùn)行,不過存在一些小誤差,LCD12684顯示有瑕疵,至今無力解決,頗感無奈。通過設(shè)計(jì),對多方面的知識都有很大的增加,對以后設(shè)計(jì)有很大的作用,積累了大量的經(jīng)驗(yàn),收獲頗豐。對于幾個(gè)芯片的理解和運(yùn)用更加的自如。再設(shè)計(jì)中感到很大的壓力。同時(shí)對單片機(jī)的功能更加期待,其強(qiáng)大的功能還有待后續(xù)發(fā)掘,其潛力無窮。參考文獻(xiàn)1 劉迎春.MCS-51單片機(jī)原理及應(yīng)用教程M .北京:清華大學(xué)出版社,2005Liu Yingchun. MCS-51 tutorial Microcomputer Principle and application M. Beijing: Ts
18、inghua University press, 20052 沙占友.單片機(jī)外圍電路設(shè)計(jì)M . 北京:電子工業(yè)出版社,2003Sha Zhanyou. Peripheral circuit design M. Beijing: Publishing House of electronics industry, 20033 李念強(qiáng).單片機(jī)原理機(jī)及應(yīng)用M .北京:機(jī)械工業(yè)出版社,2013Li Nianqiang. Principle of single chip machine and application of M. Beijing: Mechanical Industry Press, 20
19、13致 謝 本次設(shè)計(jì)課題圓滿結(jié)束,在此要先感謝我的指導(dǎo)老師王韌老師,他嚴(yán)謹(jǐn)求實(shí)的作風(fēng)給我很大的鼓舞。設(shè)計(jì)過程中,從前期的功能設(shè)計(jì),電路設(shè)計(jì),軟件上每一條語句的調(diào)試,期間遇到許許多多的難點(diǎn),眾多意想不到的問題??朔@些困難,最終獲得成果,知識融入到設(shè)計(jì)的每個(gè)角落里。當(dāng)最終完成整個(gè)設(shè)計(jì),自是欣喜不已。最后還要感謝幫助過我的眾多同學(xué)。附 錄附錄 A 圖15 密碼鎖原理圖(Altium Designer繪制)附錄 B圖16 密碼鎖原理圖(AUTO CAD繪制)附錄 C圖17 PCB底層圖 圖18 PCB頂層圖圖19 元器件布局圖附錄 D表1 元器件清單名稱規(guī)格數(shù)量DS1302加底座1 AT24C02加
20、底座1TLC549加底座1 發(fā)光二極管9 下載口座子1 六腳按鍵開關(guān)1 大按鍵(帶鍵帽)18 排阻10k5AT89S52加底座DIP(40)1 12864液晶1 電解質(zhì)電容22uF2 瓷片電容33pf4 晶振12MHz1 精密可調(diào)電位器50K2 蜂鳴器1 三極管90121 電阻1k2 電阻2001 電阻4701 電阻4.7K1 電阻10K1 短路帽8 單排插針40p2 單排插槽40p1 電源5V1附錄 E程序代碼:/*標(biāo)題:液晶顯示電子密碼鎖 *日期:2013-12-24*作者:徐恩彬*功能:可以實(shí)現(xiàn)密碼的修改,密碼的存儲(chǔ),掉電后密碼不丟失,擁有超級密碼, 根據(jù)液晶的提示便可進(jìn)行操作。 初始密
21、碼為88888888;超級密碼為99999999;修改密碼要輸入初始密碼或超級密碼才能修改密碼*/*主函數(shù)*/#include <reg52.h>#include <intrins.h>#include "LCD12864.h"/液晶顯示模塊頭文件#include "delay.h"/延時(shí)模塊頭文件#include "keyscan.h"/鍵掃描模塊頭文件#include "mimasuo.h"/頻率測試模塊頭文件#include"beep.h"/報(bào)警模塊頭文件#defi
22、ne uchar unsigned char#define uint unsigned intvoid main() uchar v,flag_2;lcdset();delay(1000); /液晶顯示初始化display(1,2,"湖南工學(xué)院 P."); display(2,2,"密碼鎖 D鍵進(jìn)入"); display(3,2,"通信1103徐恩彬"); display(4,1,"學(xué)號11401340334"); /開機(jī)界面beepoff(); dov=keyscan();while(v!=0x28); writ
23、ecommand(0x01); /清屏,DDRAM的地址歸零 while(v=0x28|v=0x88) display(1,2,"密碼鎖菜單 D"); display(2,1,"輸入密碼"); display(3,1,"重新設(shè)置密碼"); display(4,1,"超級密碼"); dov=keyscan(); while(v!=0x28); writecommand(0x01); /清屏,DDRAM的地址歸零 if(v=0x28) display(2,1,"進(jìn)入系統(tǒng)嗎?");display(4,
24、1,"確認(rèn)E 退出D/F ");dov=keyscan();while(v!=0x48)&&(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏,DDRAM的地址歸零 if(v=0x48) /確認(rèn)鍵鍵值 display(1,2,"請輸入密碼"); display(4,1,"確認(rèn)E 退出F "); jingrumima(); dov=keyscan();while(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏
25、,DDRAM的地址歸零 if(v=0x28) display(2,1,"重新設(shè)置密碼嗎"); display(4,1,"確認(rèn)E 退出D/F "); dov=keyscan(); while(v!=0x48)&&(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏,DDRAM的地址歸零 if(v=0x48) display(1,2,"請輸入當(dāng)前密碼"); display(4,1,"確認(rèn)E 退出/F "); flag_2=jingrumima();
26、/ 當(dāng)前密碼函數(shù)if(flag_2=1) writecommand(0x01); /清屏,DDRAM的地址歸零 display(1,2,"設(shè)置新密碼"); display(4,1,"確認(rèn)E 退出/F "); stepupmima(); /設(shè)置新密碼函數(shù) flag_2=0; dov=keyscan();while(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏,DDRAM的地址歸零 if(v=0x28) display(2,1,"輸入超級密碼嗎"); display(4,1,&q
27、uot;確認(rèn)E 退出D/F "); dov=keyscan();while(v!=0x48)&&(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏,DDRAM的地址歸零 if(v=0x48) display(1,1,"請輸入超級密碼"); display(4,1,"確認(rèn)E 退出/F "); chaojimima(); /超級密碼函數(shù) dov=keyscan();while(v!=0x28)&&(v!=0x88); writecommand(0x01); /清
28、屏,DDRAM的地址歸零 /*beep*/#include"beep.h"void beepon() beep=0; void beepoff() beep=1; /*delay*/#include"delay.h"#define uint unsigned intvoid delay(uint x) while(-x);/* LCD12864顯示程序*/#include "LCD12864.h"#include"delay.h"#include <reg52.h> #define uchar unsi
29、gned charsbit rs = P31;sbit rw = P36;sbit en = P37;/*液晶寫命令函數(shù)*/void writecommand(uchar command) delay(100); rs=0; rw=0; en=1; P0=command; /液晶數(shù)據(jù)線P0 en=0; /*液晶寫數(shù)據(jù)函數(shù)*/void writedata(uchar date) delay(100); rs=1; rw=0; en=1; P0=date; en=0; /*液晶設(shè)置函數(shù)*/ void lcdset(void) writecommand(0x30); /基本指令集 writecomm
30、and(0x01); /清屏,DDRAM的地址歸零 writecommand(0x02); /地址歸位 writecommand(0x0c); /顯示開,光標(biāo)關(guān),反白關(guān) writecommand(0x06); /DDRAM地址加1 /*液晶顯示函數(shù)*/void display(uchar y, uchar x, uchar *p) switch (y) case 1:writecommand(0x7f+x); break; /液晶第一行 case 2:writecommand(0x8f+x); break; /0x90+(x-1) case 3:writecommand(0x87+x); br
31、eak; case 4:writecommand(0x97+x); break; default:break;while(*p) writedata(*p+); /*按鍵掃描程序*/#include "keyscan.h"#include"delay.h"#include <reg52.h> #define uchar unsigned charuchar keyscan(void)uchar scan,tmp; /列號,行號 P1=0xf0; /發(fā)全行0掃描碼 if(P1&0xf0)!=0xf0) /若有鍵按下 delay(1000
32、); / 延時(shí)去抖 if(P1&0xf0)!=0xf0) /延時(shí)再判鍵是否還按下 scan=0xfe; while(scan&0x10)!=0) /逐行掃描 P1=scan; /輸出行掃描碼 if(P1&0xf0)!=0xf0) /本行有鍵按下 tmp=(P1&0xf0)|0x0f; delay(50000); /按鍵判釋放 return (scan)|(tmp); /還回鍵值else scan=(scan<<1)|0x01; /行掃描碼左移一位 return (0); /無鍵按下,還回0 /*密碼鎖函數(shù)程序*/#include "keys
33、can.h"#include"delay.h"#include "mimasuo.h"#include "LCD12864.h"#include"beep.h" #include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#defineOP_READ0xa1/ 器件地址以及讀取操作#defineOP_WRITE 0xa0/ 器件地址以及寫入操作 #defineMA
34、X_ADDR 0xff/ AT24C02最大地址(256字節(jié))sbit SDA = P23; /串行數(shù)據(jù)/地址sbit SCL = P24; /串行時(shí)鐘uchar m,n;uchar i,ii,k;uchar code dis_code = 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39; /0-9,寫入到AT24C01的數(shù)據(jù)串 uchar code surper_code=0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39;/ 超級密碼9個(gè)9uchar password=0x38,0x38,0x38,0x38,0
35、x38,0x38,0x38,0x38; /原始密碼8個(gè)8uchar Userpassword8; /按鍵輸入密碼存放數(shù)組uchar find_code16=" " /安全顯示“*”緩沖數(shù)組 uchar table8;/ 讀取密碼存放緩沖數(shù)組uchar table_18;/新密碼存放緩沖數(shù)組uchar j; /計(jì)算密碼輸入次數(shù)變量uchar flag_2; /密碼輸入正確標(biāo)志位,當(dāng)前密碼輸入正確后,方可重置密碼uchar flag_3; /原始密碼與設(shè)置密碼判斷標(biāo)志位uchar flag_4;/ 連續(xù)三次輸入判斷標(biāo)志位uchar jingrumima() flag_4=rea
36、d_random(254);/讀取三次輸入判斷標(biāo)志位 if(flag_4!=1) while(m!=15) m=key_return();switch(m) case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: if(ii<8) Userpasswordii=m; /輸入原始密碼 find_codeii='*' /對顯示數(shù)組賦值“*” Display_String(find_code,0x89); ii+;
37、break;case 14: flag_3=read_random(255);/讀取設(shè)置密碼判斷標(biāo)志位 if(flag_3=1) for(k=0;k<8;k+) tablek= read_random(k);/單片機(jī)從24C02上讀回?cái)?shù)據(jù),送給比較數(shù)組 else for(k=0;k<8;k+) tablek=passwordk; if( table0=Userpassword0&&table1=Userpassword1&& table2=Userpassword2&&table3=Userpassword3&&tab
38、le4=Userpassword4&&table5=Userpassword5&&table6=Userpassword6&&table7=Userpassword7)/判輸入密碼與原始密碼是否相等 writecommand(0x01); /清屏,DDRAM的地址歸零 display(1,2,"恭喜你!密碼輸入正確"); display(4,6,"退出/F"); j=0; flag_2=1; /密碼輸入正確標(biāo)志位 else writecommand(0x01); /清屏,DDRAM的地址歸零 display
39、(1,1,"密碼輸入錯(cuò)誤!"); display(2,2,"請重新輸入密碼"); display(4,1,"確認(rèn)E 退出/F "); do m=key_return();while(m!=14)&&(m!=15); j+; k=9; /跳出For循環(huán)條件 ii=0; flag_2=0; clear_password(); /清除密碼函數(shù) writecommand(0x01); /清屏,DDRAM的地址歸零 display(1,2,"請重新輸入密碼"); display(4,1,"確認(rèn)E 退
40、出/F ");if(j=3)/報(bào)警條件及函數(shù) writecommand(0x01); /清屏,DDRAM的地址歸零display(1,2,"您連續(xù)三次輸入");display(2,1,"錯(cuò)誤!界面鎖死"); display(3,1,"重新輸入!");display(4,6,"退出/F");j=0;SDA = 1; SCL = 1;delay(5000);write_byte(254, 1);/三次機(jī)會(huì)已經(jīng)到,判斷標(biāo)志位beepon(); /報(bào)警 dom=key_return();while(m!=15);
41、/等待您按下返回鍵 beepoff(); /關(guān)閉報(bào)警 break; ii=0; m=0; clear_password(); writecommand(0x01); display(1,2,"安全退出密碼輸入界面"); display(4,5,"返回D/F"); return(flag_2); void stepupmima() while(m!=15) m=key_return(); switch(m) case 0x30: case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case
42、 0x37:case 0x38:case 0x39: if(ii<8) Userpasswordii=m; /輸入新密碼 find_codeii='*' /對顯示數(shù)組賦值“*” Display_String(find_code,0x89); ii+; break; case 14: for(k=0;k<8;k+) table_1k=Userpasswordk; /準(zhǔn)備數(shù)據(jù) SDA = 1; SCL = 1; delay(5000); for(i = 0 ; i < 8; i+) write_byte(i, table_1i); /寫入數(shù)據(jù) 到24C02 wri
43、te_byte(255, 1); /存儲(chǔ)設(shè)置密碼判斷標(biāo)志位 clear_password(); /清除密碼函數(shù) writecommand(0x01); /清屏,DDRAM的地址歸零 display(2,1,"恭喜你!密碼設(shè)置成功"); display(4,6,"退出/F"); dom=key_return();while(m!=15); break; clear_password(); ii=0; m=0; writecommand(0x01); display(1,2,"安全退出密碼重置界面"); display(4,5,"
44、;返回D/F");void chaojimima()while(m!=15&&m!=14) m=key_return(); switch(m) case 0x30: case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39: if(ii<=7) Userpasswordii=m;find_codeii='*' Display_String(find_code,0x89);ii+; break; case 14: for(k=0
45、;k<8;k+) /確認(rèn)鍵 if(surper_codek=Userpasswordk) /判輸入密碼與超級密碼是否相等 writecommand(0x01); /清屏,DDRAM的地址歸零display(1,2,"超級用戶權(quán)限"); display(4,1,"還原/E 退出/F "); dom=key_return();while(m!=15&&m!=14);if(m=14) writecommand(0x01);display(2,2,"成功還原出廠設(shè)置");display(4,6,"返回/F"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/ZHCA 010-2020染發(fā)類化妝品皮膚變態(tài)反應(yīng)體外測試方法人源細(xì)胞系激活試驗(yàn)法
- T/YNIA 008.1-2022工業(yè)過濾用非織造布第1部分:熔噴法非織造布
- 2025年院校招生與選拔管理的相關(guān)考試試題及答案
- 現(xiàn)代企業(yè)運(yùn)作與創(chuàng)新2025年考試試卷及答案
- 2025年新聞傳播專業(yè)學(xué)生綜合測試題及答案
- 2025年生物醫(yī)學(xué)工程專業(yè)考試試題及答案
- 2025年汽車維修技師職業(yè)資格考核試卷及答案
- 2025年船舶駕駛員考試試卷及答案
- 2025年車輛工程師考試試題及答案
- 2025年建筑施工員考試試卷及答案
- 醫(yī)學(xué)生青年紅色筑夢之旅項(xiàng)目計(jì)劃書
- 金融學(xué)科研究新高度:黃達(dá)《金融學(xué)》2025課件解讀
- 遼寧省沈陽市2025年高中三年級教學(xué)質(zhì)量監(jiān)測(一)地理試題(含答案)
- 2025年東莞市長安鎮(zhèn)事業(yè)單位招考工作人員高頻重點(diǎn)提升(共500題)附帶答案詳解
- 鋼箱梁加工制作及安裝方案
- 鐵路貨物運(yùn)價(jià)規(guī)則
- 2024版園林景觀工程建設(shè)項(xiàng)目招投標(biāo)代理合同3篇
- 2024-2025學(xué)年上學(xué)期上海六年級英語期末復(fù)習(xí)卷3
- 十四五人才發(fā)展規(guī)劃
- 【MOOC】中國稅法:案例·原理·方法-暨南大學(xué) 中國大學(xué)慕課MOOC答案
- 習(xí)近平總書記教育重要論述(宜賓學(xué)院)知到智慧樹章節(jié)答案
評論
0/150
提交評論