




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 #基于單片機(jī)的電子密碼鎖設(shè)計(jì)及實(shí)現(xiàn)項(xiàng)目可行性研究報(bào)告 摘要本課題設(shè)計(jì)了一種基于單片機(jī)的數(shù)字電子密碼鎖,這種數(shù)字電子密碼鎖以單片機(jī) 作為數(shù)據(jù)處理主控芯片。電子密碼鎖的設(shè)計(jì)主要由四部分組成:4M矩陣鍵盤接口電路、以AT89S52芯 片為核心的密碼鎖的數(shù)據(jù)處理及控制電路、掉電情況下依然能保存密碼的EEPROM存 儲(chǔ)器芯片,輸出七段顯示電路。另外系統(tǒng)還有LED提示燈,報(bào)警蜂鳴器,單片機(jī)復(fù)位 電路等。電子密碼鎖設(shè)計(jì)的關(guān)鍵問(wèn)題是實(shí)現(xiàn)密碼的輸入、清除、開鎖、更改等功能。同時(shí) 該密碼鎖具有設(shè)計(jì)方法合理,簡(jiǎn)單易行,成本低,安全實(shí)用等特點(diǎn),符合住宅,辦公 室等場(chǎng)所的用鎖要求,具有推廣價(jià)值。關(guān)鍵詞 單片機(jī) 密碼鎖
2、4*4矩陣鍵盤EEPROM存儲(chǔ)芯片 實(shí)用經(jīng)濟(jì)目錄 TOC o 1-5 h z 緒論 11.1 國(guó)內(nèi)外研究綜述11.2 選題的目的和意義2本論文的任務(wù)3電子密碼鎖總體設(shè)計(jì)4系統(tǒng)總體設(shè)計(jì)42.2 單片機(jī)52.3 密碼存儲(chǔ)芯片選擇1.02.4 鍵盤輸入方案比較1.22.5 顯示方案比較1.4電子密碼鎖的硬件設(shè)計(jì) 1系統(tǒng)結(jié)構(gòu)框圖13.2 主控部分23.3 顯示部分2鍵盤輸入部分3密碼存儲(chǔ)部分43.6 電源部分53.7 其它功能部分73.8 電子密碼鎖的電路原理圖94 電子密碼鎖的軟件組成 1.04.1 系統(tǒng)軟件設(shè)計(jì)流程1.0Keil uVision2 軟件介紹1.14.3 各主要部分的功能實(shí)現(xiàn)程序設(shè)計(jì)
3、1.24.3.1 初始化程序設(shè)計(jì)1.24.3.2 按鍵處理程序設(shè)計(jì)1.54.3.3 密碼更改程序設(shè)計(jì)2.05 系統(tǒng)仿真 2.45.1 系統(tǒng)仿真過(guò)程2.45.2 仿真調(diào)試中遇到的問(wèn)題及解決辦法2.5 TOC o 1-5 h z 總結(jié)1致謝2參考文獻(xiàn)3附錄4 1 緒論1.1 國(guó)內(nèi)外研究綜述在電子鎖出現(xiàn)以前人們廣泛的使用機(jī)械鎖,但是隨著時(shí)間的推移機(jī)械鎖已不能滿 足人們的要求,于是電子鎖應(yīng)用而生。以前由于電子器件所限,開發(fā)的電子密碼鎖種 類不多,保密性差,最基本的就是只依靠最簡(jiǎn)單的模擬電子開關(guān)來(lái)實(shí)現(xiàn)的,制作雖簡(jiǎn) 單但很不安全。現(xiàn)在電子鎖的技術(shù)可以說(shuō)是時(shí)時(shí)的在進(jìn)步,出現(xiàn)了很多性能強(qiáng),安全可靠的新型電子
4、鎖。如:遙控式電子密碼鎖,卡式電子鎖,生物特征電子鎖等。但是應(yīng)用廣泛的還是 鍵盤式電子密碼鎖。遙控式電子密碼鎖:優(yōu)點(diǎn)是傳輸信息量可以很大、速度極快、人眼識(shí)別不出來(lái), 又無(wú)法在光路徑上用儀器捕獲信號(hào)進(jìn)行復(fù)制,因此保密性極高。缺點(diǎn)是需要隨身保管 遙控器即鑰匙,對(duì)于某些方面來(lái)說(shuō)不是很實(shí)用??ㄊ矫艽a鎖:能夠在卡中存儲(chǔ)大量的個(gè)人信息,即容量非常的大,并且可以實(shí)現(xiàn) 一卡多用。但是卡式密碼鎖也有很大的缺陷,開鎖用的卡很可能受到一些電子產(chǎn)品的 磁干擾,出現(xiàn)“失效”; 同時(shí)卡也很容易被丟失,丟失了卡就需要盡快的取消卡的授 權(quán),一面?zhèn)€人的重要信息丟失,這個(gè)過(guò)程也是相當(dāng)麻煩的。生物特征電子鎖:人的某些與生俱來(lái)的個(gè)性
5、特征(如手、眼睛、聲音的特征)幾 乎不可重復(fù),作為“鑰匙”就是唯一的。但是生物特征電子鎖需要大量的個(gè)人身體上 的信息,這就使其處理上會(huì)變得復(fù)雜,這也確定了生物特征電子鎖目前僅適用于極個(gè) 別的行業(yè)。鍵盤式電子鎖:主要依靠的是鍵盤輸入密碼驗(yàn)證,不需要攜帶專一的“鑰匙”, 只需要記住密碼即可。鍵盤式電子鎖有采用數(shù)字電路控制的,但控制的準(zhǔn)確性和靈活 性比較的差;有以單片機(jī)為核心的鍵盤式電子鎖,它的性能比較的穩(wěn)定,而且性價(jià)比 也比較的高,受到了廣泛的關(guān)注。盡管新式電子防盜鎖層出不窮,但鍵盤式電子密碼 鎖仍然“老樹發(fā)新芽”,在市場(chǎng)上居于主流地位。伴隨著科學(xué)技術(shù)的發(fā)展,電子的應(yīng)用技術(shù)的提高,又出現(xiàn)了一些帶有
6、微型處理器 的智能電子鎖,它除了具有電子密碼鎖的功能外,還引入了智能化管理的功能,從而 使電子密碼鎖具有更高的安全性和可靠性。目前發(fā)達(dá)國(guó)家大規(guī)模使用的智能門禁系統(tǒng), 就是一種使用多種更加安全,可靠方法來(lái)實(shí)現(xiàn)大門管理的新型電子密碼鎖。發(fā)達(dá)國(guó)家 的電子密碼鎖技術(shù)已經(jīng)相當(dāng)?shù)某墒?,智能化、集成化程度很高。而我?guó)的應(yīng)用還不是 很廣泛,一般應(yīng)用在一些高級(jí)的場(chǎng)所之中,例如銀行的保險(xiǎn)柜、保險(xiǎn)箱、高級(jí)酒店等, 家居應(yīng)用很少。我國(guó)的電子密碼鎖的技術(shù)也是比較落后的,不是很成熟。開發(fā)的密碼 鎖大多采用的是普通的數(shù)字電路設(shè)計(jì)生產(chǎn)的,與機(jī)械鎖相比較的確存在著很多的優(yōu)點(diǎn), 但智能化的程度不高,編碼的組合很少。選題的目的和意
7、義 在我們的日常生活中,經(jīng)常會(huì)遇到一些地方需要進(jìn)行防護(hù),而這些地方的防護(hù)多是 以使用各種各樣的鎖來(lái)進(jìn)行的。常見的大致有兩個(gè)大的方面,一種是機(jī)械鎖,一種是 電子密碼鎖鎖。傳統(tǒng)簡(jiǎn)單的機(jī)械鎖一般是結(jié)構(gòu)比較的簡(jiǎn)單,很容易遭到外部的破壞, 而機(jī)密復(fù)雜的大型機(jī)械鎖又比較的笨重,不適合大眾的需要。在科學(xué)技術(shù)不斷發(fā)展的 今天,電子密碼鎖已經(jīng)受到了越來(lái)越多的關(guān)注。電子密碼鎖具有保密性高,無(wú)靈活零 件,不會(huì)磨損,壽命長(zhǎng),靈活性好等特點(diǎn)。它的種類很多,有簡(jiǎn)易的電路產(chǎn)品,也有 基于芯片的性價(jià)比較高的產(chǎn)品。但是電子密碼鎖也存在著缺陷 1.價(jià)格比較的昂貴;2 推廣性不強(qiáng)?,F(xiàn)在采用單片機(jī)制作的電子鎖就克服了這些缺陷。單片機(jī)
8、具有體積小、 功能強(qiáng),性價(jià)比高等特點(diǎn),廣泛應(yīng)用于電子產(chǎn)品?;趩纹瑱C(jī)的電子密碼鎖是一種通 過(guò)密碼輸入來(lái)控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。本次選題的就是設(shè)計(jì)一種基于單片機(jī)控制的具有本機(jī)開鎖和報(bào)警功能的電子密碼 鎖,在電子密碼鎖的顯示和鍵盤輸入有方案的比較,使電子密碼鎖更加的實(shí)用經(jīng)濟(jì), 能夠?qū)嶋H生活中得到廣泛的應(yīng)用。用單片機(jī)制作的電子鎖有以下的特點(diǎn):1.保密性好,采用的是多位密碼輸入。2.破解保 護(hù),能夠及時(shí)的鎖定鍵盤報(bào)警。3.界面簡(jiǎn)潔,密碼操作也非常簡(jiǎn)單。1.3 本論文的任務(wù)本設(shè)計(jì)的電子密碼鎖的實(shí)現(xiàn)是基于單片機(jī)的,任務(wù)及工作如下:1、在 Proteus
9、軟件環(huán)境中進(jìn)行硬件電路圖的設(shè)計(jì)。2、在 Keil 軟件環(huán)境中進(jìn)行系統(tǒng)的軟件編程,并進(jìn)行程序源文件的編譯和調(diào)試, 最后生成.hex文件。此.hex文件是硬件電路運(yùn)行實(shí)現(xiàn)的源代碼來(lái)源。3、把.hex文件加載到單片機(jī)芯片,然后在Proteus軟件環(huán)境中運(yùn)行硬件電路。2電子密碼鎖總體設(shè)計(jì)2.1系統(tǒng)總體設(shè)計(jì)本設(shè)計(jì)主要由單片機(jī)、矩陣鍵盤、LED數(shù)碼管顯示和密碼存儲(chǔ)等部分組成。其中矩 陣鍵盤用于輸入數(shù)字密碼和進(jìn)行各種功能的實(shí)現(xiàn)由用戶通過(guò)連接單片機(jī)的矩陣鍵盤輸 入密碼,后經(jīng)過(guò)單片機(jī)對(duì)用戶輸入的密碼與自己保存的密碼進(jìn)行對(duì)比從而判斷密碼是 否正確,然后控制引腳的高低電平傳到開鎖電路或者報(bào)警電路控制開鎖還是報(bào)警實(shí)際
10、 使用時(shí)只要將單片機(jī)的負(fù)載由繼電器換成電子密碼鎖的電磁鐵吸合線圈即可當(dāng)然也可 以用繼電器的常開觸點(diǎn)去控制電磁鐵吸合線圈。其設(shè)計(jì)原理框圖如圖.1所示:圖2.1原理框圖單片機(jī):本部分的功能包括寫入和讀取各種控制命令及數(shù)據(jù)處理,同時(shí)還要對(duì)各 執(zhí)行單元進(jìn)行控制。單片機(jī)是整個(gè)系統(tǒng)的控制核心及數(shù)據(jù)處理核心。鍵盤部分:本部分由用戶通過(guò)鍵盤輸入各種信息送入到單片機(jī)進(jìn)行處理。顯示部分:本部分完成的是單片機(jī)處理后的數(shù)據(jù)和信息的顯示以及系統(tǒng)提示信息的顯示密碼存儲(chǔ)部分:本部分完成存儲(chǔ)原始密碼和用戶更改密碼數(shù)據(jù)的功能。其它部分:本部分的目的是為了提高系統(tǒng)的可用性和實(shí)用性。主要包括電源部分、 復(fù)位部分、晶振部分、開鎖部分
11、和報(bào)警部分。電源部分主要的功能是為單片機(jī)提供適 當(dāng)?shù)墓ぷ麟娫?,同時(shí)也為其它的部分提供電源。復(fù)位部分功能是使單片機(jī)在出現(xiàn)故障 時(shí)進(jìn)行成功的復(fù)位。晶振部分功能是給單片機(jī)提供時(shí)鐘。開鎖部分主要是根據(jù)單片機(jī) 數(shù)據(jù)處理的結(jié)果驅(qū)動(dòng)繼電器控制開鎖的操作。報(bào)警部分主要的功能就是在錯(cuò)誤操作下 實(shí)現(xiàn)報(bào)警提示。2.2 單片機(jī)選擇單片機(jī)的種類繁多,各種型號(hào)都有其一定的應(yīng)用環(huán)境,因此在選用時(shí)要多加比較, 合理選擇,以期獲得最佳的性價(jià)比。在多數(shù)的電子設(shè)計(jì)中,基于性價(jià)比的考慮,8 位 單片機(jī)為首選。8 位單片機(jī)中以 MCS-51 系列單片機(jī)及其兼容機(jī)所占的份額最大。 MCS-51 的硬件結(jié)構(gòu)決定了其指令系統(tǒng)不會(huì)發(fā)生變化。因
12、此在對(duì)不同公司的單片機(jī)進(jìn) 行選型時(shí),只需要比較芯片內(nèi)部資源即可。在以前的電子設(shè)計(jì)中,應(yīng)用比較廣泛的是 AT89C51 單片機(jī),但是該單片機(jī)存在 著致命的缺陷不支持ISP功能。Atmel公司現(xiàn)在已停止了 AT89C51的生產(chǎn),而加上 了 ISP功能的AT89S51、AT89S52誕生了。AT89S系列單片機(jī)在工藝上進(jìn)行了改進(jìn), 采用了 0.35mm的新工藝,不但降低了成本,而且增加了功能,提升了單片機(jī)的性能, 提高了市場(chǎng)競(jìng)爭(zhēng)力。AT89S 系列單片機(jī)新增了許多功能,性能也有了較大的提升,但是價(jià)格仍舊與AT89C系列的價(jià)格相差不大。新增的功能之中最具影響力的就是ISP在線編程功能, 這個(gè)功能的優(yōu)勢(shì)
13、在于,改寫單片機(jī)Flash存儲(chǔ)器內(nèi)的程序時(shí)不需要把芯片從工作環(huán)境中剝離,是一個(gè)強(qiáng)大易用的功能顯然,AT89S系列單片機(jī)在性能上要比AT89C系列的單片機(jī)優(yōu)良的多,而且價(jià)格 也沒有什么提高。所以選擇AT89S系列作為本系統(tǒng)的的主控部分。而AT89S系列中 的 89S51 和 89S52 在實(shí)際應(yīng)用中最多,本設(shè)計(jì)中軟件部分需要大量的程序編程, 89S51內(nèi)的程序存儲(chǔ)器太小,不能滿足要求,因此選擇AT89S系列的AT89S52作為 本設(shè)計(jì)的主控部分。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)8
14、0C51產(chǎn)品指令 和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在 單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入 式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案o AT89S52具有以下標(biāo)準(zhǔn)功能:8k 字節(jié)Flash,256字節(jié)RAM,32位I/O 口線,看門狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè) 16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電 路。另外,AT89S52可降至OHz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式???閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電 保
15、護(hù)方式下, RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè) 中斷或硬件復(fù)位為止。AT89S52 引腳圖如圖2.2所示:(T2)PH匸n vccH40(T2 EX)PI .1 匚23*9二1 P0 0 ADQ)Pl-全 c33dZJ PO.1 (ADf )ipi.a 匸43T二1 尸6W (A 02)匸53G=1 PO.3 ( A 03)Pl.s 匚B&二1 FXX4 (AD-l s(MISO)IR1-6 匚T34ZZ PO.5 (ADS)尸11.了匸與332 PQ e (AX)FIST 匚日3遲= FXXF (A07)(RXCJ)匚HO31i-1 ES/VPP(TXLJ)尸3
16、.1匚11 130_l AL&HHOO(IMTQ)P3W匸12P O二I PEIXI(INT 1)P3.3 匸換=1 P2I.7 (AIS)(TO)匚1-4ZU P2.6 (A 1-4)S7匸H72-4= P2.3 (Al 1)匚11 B它3ZU(A1OXTAL1 匚11922二I P2.1 (AS)ONO L_R21i_l P2!.O (Afil)圖2.2 AT89S52引腳圖AT89S52引腳功能說(shuō)明如下:VCC:電源電壓GND : 地P0 口 : P0 口是一個(gè)8位漏極開路的雙向I/O 口,也即地址/數(shù)據(jù)總線復(fù)用口。作 為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏 輯電平。對(duì)P0端口寫“1”時(shí),引腳
17、用作高阻抗 輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0 口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這 種模式下,P0內(nèi)部上拉電阻被激活。在flash編程時(shí),P0 口也用來(lái)接收指令字節(jié); 在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1 口 : P1 口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P1輸出緩沖器能驅(qū) 動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電平。對(duì)P1端口寫“1 ”時(shí),內(nèi)部上拉電阻 把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi) 部電阻的原因,將輸出電流(TTL)。此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)
18、數(shù)器2的觸發(fā)輸入(P1.1/T2EX),在flash編 程和校驗(yàn)時(shí),P1 口接收低8位地址字節(jié)。P1端口引腳的第二功能如表1所示表1 P1端口引腳的第二功能端口引腳第二功能P1.0T2 (定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸 出P1.1T2EX (定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和 方向控制)P1.5MOSI (在系統(tǒng)編程用)P1.6MISO (在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P2 口: P2 口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P2輸出緩沖器能驅(qū) 動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫“T時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以 作為輸入口使用。作為輸入使用時(shí),被外
19、部拉低的引腳由于內(nèi)部電阻的原因,將輸出 電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行 MOVX DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口使用很強(qiáng)的內(nèi) 部上拉發(fā)送1。在使用8位地址(如MOVX RI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2 口輸 出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2 口也接收高8位地址字節(jié)和一些控 制信號(hào)。P3 口: P3 口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O 口,P3輸出緩沖器能驅(qū) 動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫“T時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以 作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的
20、原因,將輸出 電流(TTL)。P3 口除了作為一般的I/O 口線外,更重要的用途是它的第二功能。如 表2所示:表2端口引腳第二功能端口引腳第二功能P3.0RXD(串行輸入口)P3.4TO(定時(shí)/計(jì)數(shù)器0)P3.1TXD(串行輸出口)P3.5T1(定時(shí)/計(jì)數(shù)器1)P3.2INTO(外中斷0)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.3INT1(外中斷1)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀 選通)此外,P3 口還接收一些用于FLASH閃存編程和程序校驗(yàn)的控制信號(hào)RST復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使 單片機(jī)復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的D
21、ISRTO位(地 址8EH)可打開或關(guān)閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。ALE/PROG當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE (地址鎖存允許)輸 出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出 固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外 部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR) 區(qū)中的8EH單元的DO位置位,可禁止ALE操作。該位置位后,只有一條MOVX和 MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí), 應(yīng)設(shè)置ALE禁止位無(wú)效。P
22、SEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng) AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即 1O1O輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將有兩次有效的PSE N信號(hào)。EA/VPP 外部訪問(wèn)允許,欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為OOOOH-FFFFH) , EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編 程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部 程序存儲(chǔ)器的指令。XTAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。密碼存儲(chǔ)芯片
23、選擇本部分主要是論證密碼存儲(chǔ)芯片的選型。存儲(chǔ)器的類型按功能分只讀存儲(chǔ)器( Read-Only Memory ,簡(jiǎn)稱 ROM )和隨機(jī)存取存儲(chǔ)器( Random Access Memory,簡(jiǎn)稱RAM )。隨機(jī)存取存儲(chǔ)器與只讀存儲(chǔ)器的根本區(qū)別在于:隨機(jī)存儲(chǔ)器 在正常工作狀態(tài)時(shí)可隨時(shí)向存儲(chǔ)器里寫入數(shù)據(jù)或從中讀出數(shù)據(jù),在存儲(chǔ)器斷電后信息 全部丟失。只讀存儲(chǔ)器又分為固定掩膜存儲(chǔ)器和可編程存儲(chǔ)器。固定掩膜存儲(chǔ)器在生產(chǎn)時(shí)就根 據(jù)用戶的要求把數(shù)據(jù)和程序固化其中,其中的內(nèi)容用戶不可以再修改,只能讀出。而 可編程存儲(chǔ)器便于用戶根據(jù)自己的需要來(lái)寫入特定的信息,根據(jù)存儲(chǔ)矩陣中存儲(chǔ)單元 電路的結(jié)構(gòu)不同,可編程的ROM
24、有PROM、EPROM和EEPROM等三種。PROM 的編程是由用戶而不是生產(chǎn)廠家完成,增加了靈活性,但編程是一次性的,且可靠性 較差,目前已很少使用。 EPROM 作為一種可以多次擦除和重寫的 ROM ,克服了掩 膜式 ROM 和 PROM 只能一次性寫入的缺點(diǎn),滿足了實(shí)際工作中需要多次修改程序 或數(shù)據(jù)的可能,前提條件是存儲(chǔ)矩陣中現(xiàn)有的程序或數(shù)據(jù)必須首先擦除oEPROM的 擦除和編程寫入是采用專門的編程器設(shè)備完成的,并且擦除的周期比較的長(zhǎng)。電可擦 除可編程只讀存儲(chǔ)器EEPROM也稱E2PR0M。與EPROM擦除時(shí)把整個(gè)芯片的內(nèi)容 全變成“T不同,EEPROM的擦除可以按字節(jié)分別進(jìn)行,且字節(jié)的
25、編程和擦除都只 需10ms,并且不需要將芯片從機(jī)器上拔下以及諸如用紫外線光源照射等特殊操作, 可以在線進(jìn)行擦除和編程寫入。因此根據(jù)設(shè)計(jì)的要求,采用的是EEPROMo常見的EEPROM芯片有28256、AT24C系列,28256的EEPROM引腳比較多,功能比較 的多,且容量太大,而本設(shè)計(jì)的存儲(chǔ)器只是存儲(chǔ)密碼數(shù)據(jù),不需要很多的功能和很大 的容量,因而選用的是AT24C系列的EEPROMo常用的AT24C系列如下表3所示:表3 AT24C系列EEPROM對(duì)比表EEPROM型號(hào)AT24C02AT24C08AT24C16容量2K8K16K(bytes)頁(yè)大小81616(bytes)總頁(yè)面數(shù)326412
26、8地址位888(bits)本設(shè)計(jì)中存儲(chǔ)的數(shù)據(jù)不多,因此選用AT24C02即可滿足要求AT24C02是美國(guó)Atmel公司的低功耗CMOS型EEPROM,內(nèi)含256 X8位存儲(chǔ)空間, 具有工作電壓寬(2.55.5 V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10 ms)、 抗干擾能力強(qiáng)、數(shù)據(jù)不易丟失、體積小、掉電情況下可以繼續(xù)保存數(shù)據(jù)等特點(diǎn)AT24C02 芯片作為系統(tǒng)的從器件,它與主器件之間的通信遵循C總線協(xié)議,I2C總線協(xié)議規(guī)定, 任何將數(shù)據(jù)傳送到總線的器件作為發(fā)送器。任何從總線接受數(shù)據(jù)的器件為接收器。數(shù)據(jù) 傳送是由產(chǎn)生串行時(shí)鐘和所有起始停止信號(hào)的主器件控制的主器件和從器件都可以作 為
27、發(fā)送器或者是接收器。AT24C02的引腳如圖2.3所示:圖2.3 AT24C02的弓|腳引腳的功能:串行時(shí)鐘(SCL):用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時(shí)鐘。串行數(shù)據(jù)/地址(SDA):用于器件所有數(shù)據(jù)的發(fā)送或接收,SDA是一個(gè)開漏輸出管 腳,可與其它開漏輸出或集電極開路輸出進(jìn)行線。器件地址輸入端(A0、A1和A2):用于多個(gè)器件級(jí)聯(lián)時(shí)設(shè)置器件地址,當(dāng)有多個(gè)從 器件連接在I2C總線上時(shí),此端口用于選擇不同的從器件。本次設(shè)計(jì)中三個(gè)引腳全部接 地。寫保護(hù)(WP):如果WP管腳連接到VCC,所有的內(nèi)容都被寫保護(hù)(只能讀)。當(dāng)WP 管腳連接地線或懸空,允許器件進(jìn)行正常的讀寫操作。2.4鍵盤輸入方案比較鍵
28、盤輸入是現(xiàn)階段電子設(shè)計(jì)中最常用、最實(shí)用的輸入設(shè)備。設(shè)計(jì)中常用的鍵盤輸入 方案有兩種:獨(dú)立式鍵盤、矩陣式鍵盤。獨(dú)立式鍵盤獨(dú)立式按鍵是指直接用I/O 口線構(gòu)成的單個(gè)按鍵的電路。每個(gè)獨(dú)立式按鍵單獨(dú)占有 一根I/O 口線,每個(gè)按鍵的工作狀態(tài)都是獨(dú)立的不會(huì)影響到其他的按鍵的工作狀態(tài)。獨(dú)立式按鍵的電路如圖2.4所示:rrr15/圖2.4獨(dú)立式按鍵電路原理圖通常獨(dú)立式鍵盤的按鍵輸入都采用低電平有效,上拉電阻保證了按鍵的斷開,1/0 口線有確定的高電平。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但是每個(gè)按鍵都需 要獨(dú)立的I/O 口,如果按鍵的數(shù)量較多的時(shí)候,I/O就會(huì)造成極大的浪費(fèi)。矩陣式鍵盤行列式鍵盤又叫矩陣式
29、鍵盤。用I/O 口線組成行列結(jié)構(gòu),按鍵位于行列的交點(diǎn)位置上。矩陣式鍵盤電路原理如圖2.5所示:丿,/Y/rn丿yr r廠_Lrr1_1yyrL /111 L圖2.5矩陣式鍵盤電路原理圖本次設(shè)計(jì)中電子密碼鎖的鍵盤中,出去0-9的數(shù)字鍵外,還需要一些輔助的功能鍵, 總體上來(lái)說(shuō)按鍵的數(shù)量是相當(dāng)?shù)亩嗟?。采用?dú)立式按鍵的方案,會(huì)對(duì)單片機(jī)的/O 口 造成很大的浪費(fèi);采用矩陣式的按鍵方案就比較的適用于本次設(shè)計(jì)。2.5顯示方案比較設(shè)計(jì)中常用的輸出顯示設(shè)備有兩種:數(shù)碼管和LCDLCD顯示方案LCD是一種被動(dòng)式的顯示器,利用液晶能改變光線通過(guò)方向的特性,來(lái)達(dá)到顯示的 目的。LCD顯示清晰美觀,具有功能低、抗干擾能
30、力強(qiáng)的優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表、 控制系統(tǒng)等。液晶顯示器的驅(qū)動(dòng)方式由電極引線的選擇方式確定,選擇了液晶顯示器 之后便無(wú)法改變驅(qū)動(dòng)的方式。當(dāng)LCD顯示筆端上兩個(gè)電極電壓相位相同時(shí),兩電極之間的電位差為0,該字段就 不顯示;當(dāng)兩個(gè)電極電壓的相位相反時(shí),兩電極之間的電位差為兩倍的方波電壓,該 字段顯示。其原理電路如圖2.6所示:LCD數(shù)碼管顯示方案七段數(shù)碼管顯示器是有8個(gè)發(fā)光二極管組成的(a,b,c,d,e,f,g), LED七段數(shù)碼管的顯 示即相應(yīng)的發(fā)光二極管導(dǎo)通或者是截?cái)嗖煌慕M合等到的字符顯示不一樣的。數(shù)碼管 顯示的數(shù)據(jù)內(nèi)容比較的直觀,一個(gè)數(shù)碼管可以顯示一位,多個(gè)數(shù)碼管就可以顯示多位, 且程序
31、設(shè)計(jì)和外圍電路設(shè)計(jì)都十分的簡(jiǎn)單。數(shù)碼管顯示的每一位都需要有一個(gè)8位輸 出口控制,當(dāng)需要較多的數(shù)碼管顯示的時(shí)候,單片機(jī)如果要直接控制各個(gè)數(shù)碼管的顯 示是不可能的,因?yàn)闆]有足夠的I/O 口線進(jìn)行控制。通常采用串口發(fā)送數(shù)據(jù),然后用 串行輸入并行輸出的移位寄存器來(lái)驅(qū)動(dòng)數(shù)碼顯示器。實(shí)際應(yīng)用中,簡(jiǎn)單的可以使用三 極管來(lái)驅(qū)動(dòng),但是本設(shè)計(jì)為了使顯示更加的穩(wěn)定,采用的是74HC164串行移位寄存 器來(lái)驅(qū)動(dòng)。本次設(shè)計(jì),顯示的東西不需要很復(fù)雜,信息也較少,用數(shù)碼管顯示完全可以滿足要 求,而使用LCD顯示成本可能會(huì)比較的高,所以采用數(shù)碼管顯示。 3電子密碼鎖的硬件設(shè)計(jì)本部分主要介紹基于AT89S52單片機(jī)的電子密碼鎖
32、的硬件設(shè)計(jì)。系統(tǒng)的硬件部分 由鍵盤輸入部分、密碼存儲(chǔ)部分、顯示部分、電源輸入部分、復(fù)位部分、晶振部分、 報(bào)警部分、開鎖部分組成。3.1系統(tǒng)結(jié)構(gòu)框圖系統(tǒng)以AT89S52單片機(jī)作為數(shù)據(jù)和控制部分;以矩陣鍵盤輸入作為鍵盤輸入部分的 方式;數(shù)碼管顯示作為數(shù)據(jù)輸出顯示部分;由繼電器控制電磁閥動(dòng)作的開鎖電路作為開 鎖部分;蜂鳴器作為報(bào)警部分,系統(tǒng)的硬件結(jié)構(gòu)框圖如圖.1所示:圖3.1系統(tǒng)的硬件結(jié)構(gòu)圖3.2主控部分本次設(shè)計(jì)中,選用Ateml公司的51系列單片機(jī)AT89S52芯片作為電子密碼鎖的 數(shù)據(jù)處理及操作控制芯片。只有單片機(jī)芯片是無(wú)法完成數(shù)據(jù)處理及控制功能的,必須 有附加的電路,使單片機(jī)芯片組成一個(gè)可運(yùn)行
33、的系統(tǒng)才能實(shí)現(xiàn)其功能。本次設(shè)計(jì),由 AT89S52單片機(jī)連同附加電路構(gòu)成的單片機(jī)最小系統(tǒng)作為主控電路圖如圖3.2所示:20UIHzl-lHzlol-F-HH-PO.OMDOPO.KADiPO.2MD2PO.3SAD3P0JMD4P0.5MDSPO.6MD6P0.7MD?P2.0JA8P2.1iA9P2.2M10P2.3UL11P2.4M12P2.5W13P2.6M14P2.7W15P3.0JRXDPS.IfTXDP3.2INT0P3.3INTTP3.4JT0P385JT1P3匝P3.7JRD-P1.0PI .1P12PI 3P1.4PI 5PtSP1.71=1isXTiJ匚I刈i12MHZI-
34、XTAL1 qXTAL2RSIpseTALL EALaH- 丄H-XTAL2.1仿真部分掃st.HEX圖3.2最小系統(tǒng)3.3顯示部分電子密碼鎖采用數(shù)碼管進(jìn)行顯示,經(jīng)過(guò)單片機(jī)處理過(guò)的數(shù)據(jù)信息都由數(shù)碼管進(jìn)行顯 示。單片機(jī)數(shù)據(jù)傳輸采用串行方式,數(shù)據(jù)通過(guò)單片機(jī)的串行數(shù)據(jù)口 P3.0 (RXD)進(jìn)行 發(fā)送,接著應(yīng)用74HC164串行移位寄存器把串行的數(shù)據(jù)轉(zhuǎn)換成8位的并行數(shù)據(jù),驅(qū) 動(dòng)LED數(shù)碼管。74HC164芯片中,沒有數(shù)據(jù)鎖存器,使串行數(shù)據(jù)每到達(dá)一位,直接就被送到數(shù)碼管中,造成數(shù)據(jù)顯示不穩(wěn)定。為了使數(shù)據(jù)顯示穩(wěn)定,在移位寄存器和數(shù)碼管之間加入數(shù)據(jù)鎖存器,來(lái)穩(wěn)定數(shù)碼管的數(shù)據(jù)顯示。顯示部分如圖3.3所示:L
35、J J -1 -a5亠U174273ITar-ECDU27JIJS1GJvTEXTa圖3.3顯示部分電路圖3.4鍵盤輸入部分在電子密碼鎖中各種信息的輸入都是通過(guò)鍵盤輸入部分完成的。把單個(gè)按鍵按照4*4組成鍵盤,四條行線連接到單片機(jī)的P1.0-P1.3四條I/O 口線上,四條列線連接到單片機(jī)的P1.4-P1.7四條I/O 口線上,運(yùn)行的時(shí)候,單片機(jī)通過(guò)控制P1 口得高低電平,然后根據(jù)變化進(jìn)行判斷。單片機(jī)向行線輸入高電平,向列線輸入低電平,按鍵未被按下之前保持電平給定不變,按鍵按下,行線的高電平變成低電平。同樣對(duì)列線進(jìn)行判定,即可判斷所輸入的信息。鍵盤部分的電路連接如圖3.4所示:Oil-L_1L
36、n3L35JL-ILrlLIL1L!_1LL TIL . Jt rl. .r 亠;4 士 R -J 円円電丙円內(nèi)円溝fiJT-Pli PI,IPlj附 Pl.7R2-. .:圖3.4鍵盤部分電路圖Sfc1:JB7:Pt 3.5密碼存儲(chǔ)部分在電子密碼鎖中,存入的密碼是需要永久的保存的。在設(shè)計(jì)中采用了在掉電的情況 下依然能夠保存數(shù)據(jù)的EEPROM存儲(chǔ)芯片24C02存儲(chǔ)密碼。設(shè)計(jì)的密碼鎖因?yàn)橹恍?要存儲(chǔ)6位密碼,數(shù)據(jù)量很小,所以24C02的地址選擇端口直接接地,時(shí)鐘輸入端 口(SCK和數(shù)據(jù)輸入端口(SDA)和單片機(jī)的相連即可。電路連接如圖3.5所示:U1PO.O/ADO PE. UADI P0.2/
37、AD2 P0.3/ADQ PQ.d/AEM PD.6/AD6 P0.6/AE6 P0.7/AWP2.山陽(yáng) P2.US P2.2/A1D P2.3/A11 P2.J/A12 P2.5/A13 P2.6/A14 P2.7/A15P3.Q/RXD P3.1fTXD P3.2/iKTTO P3.3/iNlTP3.J/T1OP3.5/T1P3.E 歴P3.7/RD圖3.5密碼存儲(chǔ)部分電路圖3.6電源部分密碼鎖主控制部分電源需要用5V直流電源供電,把頻率為50Hz、有效值為220V 的單相交流電壓轉(zhuǎn)換為幅值穩(wěn)定的5V直流電壓。其主要原理是把交流電經(jīng)過(guò)電源變壓 器、整流電路、濾波電路、穩(wěn)壓電路轉(zhuǎn)換成穩(wěn)定的直
38、流電壓。由于輸入電壓為電網(wǎng)電壓,一般情況下所需直流電壓的數(shù)值和電網(wǎng)電壓的有效值 相差較大,因而電源變壓器的作用顯現(xiàn)出來(lái)起到降壓作用。降壓后還是交流電壓,所 以需要整流電路把交流電壓轉(zhuǎn)換成直流電壓。由于經(jīng)整流電路整流后的電壓含有較大 的交流分量,會(huì)影響到負(fù)載電路的正常工作。需通過(guò)低通濾波電路濾波,使輸出電壓 平滑。穩(wěn)壓電路的功能是使輸出直流電壓基本不受電網(wǎng)電壓波動(dòng)和負(fù)載電阻變化的影 響,從而獲得穩(wěn)定性足夠高的直流電壓。為了防止停電情況的發(fā)生,本電路后備了UPS電源,它包括市電供電電路,停電檢測(cè)電路,電子開關(guān)切換電路,蓄電池充電電路和蓄電池組成。主電源如圖3.6所示:220V市電通過(guò)變壓器降壓成1
39、2V的交流電,再經(jīng)過(guò)整流橋整流,7805穩(wěn)壓到5V 送往電子切換電路,由于本電路功耗較少,所以選用10W的小型變壓器。由R2, R3, R4, R5及J1構(gòu)成電壓比較器,正常情況下,V+V- J6時(shí),由Q1,Q2構(gòu)成的 達(dá)林頓管使繼電器K1開啟,將其常開觸電將蓄電池和電路相連,實(shí)現(xiàn)市電和蓄電池 供電的切換,保證電子密碼鎖的正常工作(視電池容量而定持續(xù)時(shí)間)。Q3,Q4構(gòu)成 的蓄電池自動(dòng)充電電路,它在電池充滿后自動(dòng)停止充電,其中D5亮為正在充電,D7 為工作指示。由R8, R11 , Q4構(gòu)成電壓檢測(cè)電路,蓄電池電壓低,則Q3,Q4導(dǎo)通, 實(shí)現(xiàn)對(duì)其充電;充滿后,Q3,Q4截止,停止充電,同時(shí)D5
40、熄滅,電路中C6的作 用是濾除干擾信號(hào)。如圖3.7、3.8所示:I7-RE5用1fG .nr sTECT JrL j . . . . = . . . . . a丿:舊a ( |和牴- l/Ql :丁EXP -EM:DI01E .:TCT:-圖3.7停電檢測(cè)及電子開關(guān)切換電路圖3.8蓄電池自動(dòng)充放電電路3.7其它功能部分密碼鎖系統(tǒng)中主要的為以上的幾個(gè)部分,但是為了使系統(tǒng)更加的完善,還需要 些附加的部分。復(fù)位部分單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其它功能部件都處在一個(gè)確定的初始狀態(tài)并從這個(gè)狀態(tài)開始工作,單片機(jī)剛開始接上電源,斷電或者是發(fā)生故障時(shí)都需要復(fù)位。單片機(jī)的復(fù)位輸入RST腳持續(xù)兩個(gè)機(jī)器周期高電平
41、將使單片機(jī)復(fù)位。復(fù)位部分如圖3.9 所示:報(bào)警部分報(bào)警部分是由陶瓷壓電發(fā)聲裝置及外圍電路組成。當(dāng)密碼輸入不正確是會(huì)發(fā)出警 報(bào)。報(bào)警電路如圖3.10所示:LSi圖3.10報(bào)警電路晶振部分本部分是為單片機(jī)提供時(shí)鐘控制信號(hào),采用的電路是外接晶振和電容組成的并聯(lián)諧振回路。AT89S52引腳XTAL1和XTAL2與晶體振蕩器及電容C2、C1按圖4-7 所示方式連接。晶振、電容C1、C2及片內(nèi)與非門(作為反饋、放大元件)構(gòu)成了電 容三點(diǎn)式振蕩器,振蕩信號(hào)頻率與晶振頻率及電容C1、C2的容量有關(guān),但主要由晶 振頻率決定,范圍在033MHz之間,電容C1、C2取值范圍在530pF之間。根據(jù)實(shí)際情況,本設(shè)計(jì)中采
42、用12MHZ做為系統(tǒng)的外部晶振。電容取值為20pF。如圖3.11所示:C1AL120UF 口冰ZC220UF 圖3.11晶振部分電路開鎖部分當(dāng)輸入正確的密碼的時(shí)候,單片機(jī)的其中一個(gè)引腳線發(fā)出信號(hào),經(jīng)過(guò)三極管放大后,由繼電器驅(qū)動(dòng)電磁閥動(dòng)作將鎖打開。同時(shí)綠色的指示燈將會(huì)點(diǎn)亮。開鎖電路如圖3.12所示:+22DV圖3.12開鎖電路3.8電子密碼鎖的電路原理圖根據(jù)系統(tǒng)所需要實(shí)現(xiàn)的功能,進(jìn)行的原理圖設(shè)計(jì)如圖3.13所示:圖3.13電子密碼鎖的電路原理圖4電子密碼鎖的軟件組成4.1系統(tǒng)軟件設(shè)計(jì)流程本設(shè)計(jì)的軟件程序設(shè)計(jì)主要有(1)初始化程序(2)按鍵功能實(shí)現(xiàn)程序(3)密碼 修改程序(4)報(bào)警程序等組成。系統(tǒng)
43、的總體流程圖如圖4.1所示:圖4.1系統(tǒng)的總體流程圖4.2 Keil uVisio n2 軟件介紹單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,本系統(tǒng)的軟件編程設(shè)計(jì)是在Keil 軟件環(huán)境中完成的。我們寫的C語(yǔ)言、匯編語(yǔ)言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器 碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編,目前已極少使用手工匯編的方 法了。機(jī)器匯編是通過(guò)匯編軟件將源程序變?yōu)闄C(jī)器碼,用于MCS-51單片機(jī)的匯編軟 件有早期的A51,隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語(yǔ)言到逐漸使用 高級(jí)語(yǔ)言開發(fā),單片機(jī)的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)51系列單片機(jī)的軟件,這從近年來(lái)各仿真機(jī)廠
44、商紛紛宣布全面支持Keil即可看出。Keil提供 了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完 整開發(fā)方案,通過(guò)一個(gè)集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。掌握這一軟 件的使用對(duì)于使用51系列單片機(jī)的愛好者來(lái)說(shuō)是十分必要的,如果使用C語(yǔ)言編程, 那么Keil幾乎就是不二之選。即使不使用C語(yǔ)言而僅用匯編語(yǔ)言編程,其方便易用的 集成環(huán)境、強(qiáng)大的軟件仿真調(diào)試工具也會(huì)令人事半功倍。Keil C51是美國(guó)Keil Software公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開發(fā)系 統(tǒng),與匯編相比, C 語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因 而易學(xué)易
45、用。用過(guò)匯編語(yǔ)言后再使用C來(lái)開發(fā),體會(huì)更加深刻。Keil C51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界 面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成 的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型 軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。各主要部分的功能實(shí)現(xiàn)程序設(shè)計(jì)4.3.1 初始化程序設(shè)計(jì)電子密碼鎖系統(tǒng)在接通電源后,首先要對(duì)系統(tǒng)進(jìn)行初始化。初始化過(guò)程包括密碼鎖 上鎖,密碼的讀入,LED數(shù)碼管的顯示內(nèi)容初始化,設(shè)定系統(tǒng)狀態(tài)指示等。流程圖如 圖 4.2 所示:圖4.2初始化程序設(shè)計(jì)流程圖初始化程序如下:ORG0
46、000HLJMPFIRSTORG000BHLJMPINT_T0ORG0100HFIRST: MOV SET_TIMES,#O;新密碼輸入次數(shù)清零從24C01C中讀數(shù)據(jù),數(shù)據(jù)送AT89C51中38H開始的16個(gè)字節(jié)中MOVSLA,#0A0H;寫入控制字MOVSUBA,#00H;目標(biāo)地址MOVNUMBYTE,#6;寫入的字節(jié)數(shù)LCALLIRDNBYTE;開始寫數(shù)據(jù)BEGIN:MOVCNT_ERROR,#00H;密碼錯(cuò)誤次數(shù)清零START:CLRLED_YELLOW;上鎖指示燈SETBLED_GREEN ;開鎖指示燈滅SETBLED_RED ;密碼錯(cuò)誤指示燈滅MOVKEY_CNT_SET,#00HM
47、OVCNT_A,#00HMOVCNT_B,#00HMOVKEY_CNT,#00HMOVLINE,#00HMOVROW,#00HMOVVAL,#00HMOVWORD_ADRESS,#4CHMOVLED_BIT_1,#0AH;數(shù)碼管全-MOVLED_BIT_2,#0AHMOVLED_BIT_3,#0AHMOVLED_BIT_4,#0AHMOVLED_BIT_5,#0AHMOVLED_BIT_6,#0AHMOVKEY_1,#00H;輸入密碼存儲(chǔ)區(qū)清0MOVKEY_2,#00HMOVKEY_3,#00HMOVKEY_4,#00HMOVKEY_5,#00HMOVKEY_6,#00HMOVTMOD,#01
48、H;初始化定時(shí)器 T0MOVTH0,#(65536-700)/256MOVTL0,#(65536-700)MOD 256MOVIE,#82H4.3.2 按鍵處理程序設(shè)計(jì)介紹)0 9密碼輸入程序否是開鎖?鍵功能程序鍵值=開鎖程序清除程序設(shè)置程序鍵值= 否清除否是鍵值=設(shè)置?否*確認(rèn)程序否確認(rèn)?圖4.3按鍵處理程序流程圖按鍵處理程序如下:A0: NOPLSCAN:MOVP1,#0F0H;掃描行碼,把四條“行”線置成低電平L1:JNBP1.0 ,L2;檢測(cè)第一行是否有鍵按下LCALLDLY_S;消除鍵盤抖動(dòng)JNBP1.0 ,L2;確認(rèn)第一行有鍵按下MOVLINE,#OOH;把值送到指定內(nèi)存,等待計(jì)算
49、LJMP RSCAN;跳轉(zhuǎn)到鍵值計(jì)算部分P1.3,a0LINE,#03HMOV P1,#0FHP1.4,C2ROW,#00H;掃描列碼L2: JNB LCALL JNB MOV LJMPL3: JNB LCALL JNB MOV LJMPL4: JNB LCALL JNB MOV RSCAN:C1: JNBMOV LJMPC2: JNB MOV LJMPP1.1,L3DLY_SP1.1,L3LINE,#01HRSCANP1.2,L4DLY_SP1.2,L4LINE,#02HRSCANP1.3,a0DLY_SCALCUP1.5,C3ROW,#01HCALCUC3: JNB P1.6,C4MOVR
50、OW,#02HLJMPCALCUC4: JNBP1.7,C1MOVROW,#03HLJMPCALCUCALCU:MOVA,LINE;計(jì)算鍵值MOVB,#04HMULABADDA,ROWMOVVAL,A;把鍵值存入VAL單元CJNEA,#0AH,J1;是否為CLR鍵JNB LED_GREEN,CLR_KEY;檢測(cè)是否已開鎖MOVR1,KEY_CNTCJNER1,#00H,J2;判斷已按鍵次數(shù)為零?LCALLALARM_1;調(diào)用報(bào)警子程序LCALLFALSE;數(shù)碼管顯示“FALSELJMPSTARTCLR_KEY: LCALL ALARM_1;鎖開狀態(tài)下,按CLR的處理方法,調(diào)用報(bào)子程序LCALL
51、FALSE ;顯示“ FALSELJMPA1J2:LCALLSHIFTR ;顯示內(nèi)容右移一位DECKEY_CNTLCALLBCDLCALLDISP ;等待按鍵抬起W00:LCALLDLY_1SMOVA,P1CJNEA,#0FH,W01LJMPA0W01:MOVA ,P1CJNEA,#0F0H,W02LJMPA0W02:SJMPW00J1:MOVA,VALCJNEA,#0CH,J11;是否為 SET鍵LCALLDLY_SJB LED_GREEN,SET_ERRORJ11:MOVA,VALCJNEA,#0DH,J22;是否為 LOCK鍵LCALLDLY_SJNB LED_GREEN,LOCKJ22
52、:MOVA,VALCJNE A,#0BH,J3_TEMP ;是否為ENTER鍵LJMPTTTTTTJ3_TEMP: LJMP J34.3.3 密碼更改程序設(shè)計(jì)密碼鎖的密碼就相當(dāng)于我們?nèi)粘I钪杏玫降蔫€匙,而電子密碼鎖可以根據(jù)用戶的 需要,隨時(shí)更改原有的密碼,來(lái)提高密碼鎖的安全性,密碼修改功能是保證密碼鎖有 效的重要保障。在密碼修改子程序中,用戶只有在開鎖狀態(tài)下才能進(jìn)行修改,即要求 用戶知道原有的密碼,否則無(wú)法打開密碼鎖,更無(wú)法修改其密碼。框圖如圖 4.4 所示:圖4.4密碼更改程序設(shè)計(jì)流程圖密碼更改程序如下:SET_P:CLR LED_GREEN更改系統(tǒng)狀態(tài)及屏幕顯示內(nèi)容SETBLED_YEL
53、LOWSETBLED_REDMOVLED_BIT_1,#0CH;關(guān)閉全部數(shù)碼管MOVLED_BIT_2,#0CHMOVLED_BIT_3,#0CHMOVLED_BIT_4,#0CHMOVLED_BIT_5,#0CHMOVLED_BIT_6,#0CHLCALLBCDLCALLDISPA0_SET:NOP;按鍵檢測(cè)并計(jì)算鍵值存放在VAL單元;按鍵處理部分CJNEA,#02H,TIMES1 ;判斷是否已輸入兩次新密碼LCALLDLY_1SMOVA,WORD_6;逐位比較密碼,不一致則重新設(shè)置CJNEA,KEY_1,J_RSETMOVR0,#59HMOVR0,#33HMOVA,WORD_5CJNEA,
54、KEY_2,J_RSETMOVA,WORD_4CJNEA,KEY_3,J_RSETMOVA,WORD_3CJNEA,KEY_4,J_RSETMOVA,WORD_2CJNEA,KEY_5,J_RSETMOVA,WORD_1CJNE A,KEY_6,J_RSET向 24C01C 中寫數(shù)據(jù),數(shù)據(jù)存放在 24C01C 中 4CH 開始的 16 個(gè)字節(jié)中TIMES1:MOV R0,#WORD_1SET ;第一次新密碼暫存內(nèi)存中MOVWORD_1 , R0MOVR0,#WORD_2SETMOVWORD_2 , R0MOVR0,#WORD_3SETMOVWORD_3 , R0MOVR0,#WORD_4SET
55、MOVWORD_4 , R0MOVR0,#WORD_5SETMOVWORD_5 , R0MOVR0,#WORD_6SETMOVWORD_6 , R0LCALLDLY_1S;加延時(shí)程序5系統(tǒng)仿真5.1系統(tǒng)仿真過(guò)程開始時(shí)的數(shù)碼管顯示“-”,等待輸入密碼。如圖5.1所示:圖5.1數(shù)碼管顯示密碼輸入時(shí)顯示F并依次左移,如密碼輸入錯(cuò)誤可以使用Clr”鍵進(jìn)行清除,然后可以從新輸入。如圖5.2所示:圖5.2數(shù)碼管顯示F密碼輸入正確時(shí),數(shù)碼管顯示簡(jiǎn)單的便是pass”,同時(shí)綠色指示燈亮起,開鎖電路運(yùn)行,鎖被打開。如圖5.3所示:圖5.3數(shù)碼管顯pass本次設(shè)計(jì)的密碼鎖的密碼為數(shù)6位,當(dāng)密碼的位數(shù)少于或者多于6位
56、的時(shí)候,數(shù)碼管上將提示“false”。如圖5.4所示:圖5.4密碼是輸入錯(cuò)誤時(shí),數(shù)碼管提示“error 1 ”,如果繼續(xù)輸入第二次、第三次錯(cuò)誤的時(shí),數(shù)碼管將提示“error 2 ”和“error 3 ”,同時(shí)報(bào)警器報(bào)警提示,紅色指示燈閃爍,鍵 盤鎖死,防止繼續(xù)操作。如圖5.5所示:圖5.5當(dāng)需要關(guān)閉密碼鎖的時(shí)候,直接按下鍵盤上的“l(fā)ock”鍵即可鎖定。數(shù)碼管恢復(fù)初始,黃色指示燈亮起。如圖5.6所示:_jsBu_圖5.65.2仿真調(diào)試中遇到的問(wèn)題及解決辦法1問(wèn)題描述:密碼在未輸入6位的情況下,摁下“enter”鍵,數(shù)碼管顯示“false”, 無(wú)法返回初始輸入界面“”。解決辦法:“en ter ”
57、鍵跳轉(zhuǎn)時(shí),跳轉(zhuǎn)到開始即可。2問(wèn)題描述:密碼正確輸入,“e nter ”鍵確認(rèn)后,數(shù)碼管顯示“pass”,這時(shí)直 接按“clr”鍵,屏幕上顯示“errorl”,并且報(bào)警,數(shù)碼管無(wú)法恢復(fù)正常狀態(tài)。原因及解決辦法:“clr ”的后面跳轉(zhuǎn)不對(duì),需要加一個(gè)標(biāo)志位使數(shù)碼管的顯示恢復(fù)“pass”。3問(wèn)題描述:在系統(tǒng)正常運(yùn)行后,如果密碼鎖被用戶打開,此時(shí)用戶可以按下“l(fā)ock” 鍵對(duì)其重新上鎖,但在運(yùn)行過(guò)程中,雖然系統(tǒng)可以重新上鎖,但會(huì)在重新上鎖前,出 現(xiàn)報(bào)警,并且數(shù)碼管顯示“error 1 ”。原因及解決辦法:因?yàn)橄到y(tǒng)運(yùn)行的速度較快,按鍵還沒有復(fù)原,鍵盤的檢測(cè)便又 一次檢測(cè)到了該按鍵,重復(fù)的操作了 “ock
58、 ”鍵,系統(tǒng)提示錯(cuò)誤。所以應(yīng)在檢測(cè)按鍵時(shí),等待按鍵的復(fù)原,再進(jìn)行跳轉(zhuǎn)執(zhí)行該按鍵的程序指令。 總結(jié)本次設(shè)計(jì)經(jīng)過(guò)一個(gè)月的時(shí)間終于完成,在這期間使我對(duì)大學(xué)的知識(shí)又進(jìn)行了一次學(xué) 習(xí)、了解,特別是對(duì)一些以前學(xué)習(xí)過(guò)或者說(shuō)是接觸過(guò)的應(yīng)用軟件加深了了解,并且通 過(guò)網(wǎng)上和書本上的學(xué)習(xí)很成功的運(yùn)用這些軟件對(duì)設(shè)計(jì)的硬件電路和軟件程序測(cè)試成功 實(shí)現(xiàn)。雖然運(yùn)用的還不是很熟練,一些功能還不是很了解,但是通過(guò)同學(xué)和老師的幫 助,還是得到了很好的解決。本次設(shè)計(jì)的目標(biāo)均得到了實(shí)現(xiàn),具體如下:產(chǎn)品性能穩(wěn)定,可靠。加電后,數(shù)碼顯示管顯示 ;輸入密碼時(shí),只逐位顯示F,以防止密碼泄漏;( 4 )在任何掉電情況下,原設(shè)定密碼保持不變。輸
59、入密碼的過(guò)程中,如果不小心出現(xiàn)輸入的密碼錯(cuò)誤,可以清除,然后繼續(xù)的 進(jìn)行密碼的輸入。可以在開鎖后進(jìn)行密碼的修改,但需要兩次輸入確認(rèn)。當(dāng)密碼輸入完畢按下確認(rèn)鍵時(shí),單片機(jī)將輸入的密碼與設(shè)定的密碼比較,若密 碼正確,則密碼鎖打開;若密碼不正確,則密碼鎖無(wú)法打開,在密碼輸入錯(cuò)誤次數(shù)到達(dá) 預(yù)設(shè)值時(shí),啟動(dòng)報(bào)警程序報(bào)警。但是由于水平和時(shí)間的關(guān)系,有些地方的設(shè)計(jì)還不進(jìn)人意。而這些地方還有待今后 一一的去解決。致謝本文從開題到定稿,歷時(shí)一個(gè)多月。在本論文完成之際,首先要向我的指導(dǎo)老師石 軍亮老師致以誠(chéng)摯的謝意。在論文的寫作過(guò)程中,她給了我許許多多的幫助和關(guān)懷。 同時(shí)她對(duì)工作的積極熱情、認(rèn)真負(fù)責(zé)、有條不紊、實(shí)事求
60、是的態(tài)度,給我留下了深刻 的印象,使我受益非淺。在此我向石老師致以真誠(chéng)的謝意。同時(shí)還要感謝各科的老師, 你們的辛勤栽培使我獲得了今天的成績(jī),謝謝老師們。當(dāng)然,我還要感謝我周圍的同學(xué),他們?cè)谶@次設(shè)計(jì)中給予了我很多的幫助,沒有他 們的幫助,在這短短的一個(gè)多月時(shí)間內(nèi),我是不可能這么好的完成我的設(shè)計(jì)的。尤其 是對(duì)一些應(yīng)用軟件的運(yùn)用,開始基本上是不會(huì)用,但是經(jīng)過(guò)了大家的幫助,我學(xué)會(huì)了 基本的操作。同時(shí)感謝寢室的兄弟給予我的鼓勵(lì)和支持,感謝他們的陪伴?,F(xiàn)在即將離開學(xué)校、老師、同學(xué),還有我四年的大學(xué)生活,雖然依依不舍,但是對(duì) 未來(lái)的路,我充滿了信心。最后,感謝在大學(xué)期間認(rèn)識(shí)我和我認(rèn)識(shí)的所有人,有你們 伴隨,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出口寵物食品合同范本
- 倉(cāng)庫(kù)租賃 配送合同范本
- 主力商家合同范本
- 2025年超大型特厚板軋機(jī)項(xiàng)目建議書
- 第六課 友誼之樹常青 教學(xué)設(shè)計(jì)-2024-2025學(xué)年統(tǒng)編版道德與法治七年級(jí)上冊(cè)
- 包裝買賣合同范本
- 北京合伙合同范本咨詢
- 《認(rèn)識(shí)面積》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年三年級(jí)下冊(cè)數(shù)學(xué)人教版
- 信用擔(dān)保借款合同范本你
- 制造珠寶生產(chǎn)訂單合同范本
- 電氣工程師生涯人物訪談報(bào)告
- 無(wú)人機(jī)在公安領(lǐng)域的應(yīng)用
- 水力學(xué)電子教案
- 國(guó)家重點(diǎn)保護(hù)古生物化石及產(chǎn)地名錄(2011年)
- 校園超市經(jīng)營(yíng)投標(biāo)方案(完整技術(shù)標(biāo))
- 第三單元《手拉手》大單元(教學(xué)設(shè)計(jì))人音版音樂(lè)一年級(jí)下冊(cè)
- 《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)(2022年版)》解讀
- 如何做好一名IPQC課件
- 《廣東省高級(jí)會(huì)計(jì)師資格評(píng)審表填表范例》
- 文物保護(hù)概論教學(xué)課件
- 2021年杭州市中考英語(yǔ)試題及答案
評(píng)論
0/150
提交評(píng)論