畢業(yè)設(shè)計--單片機控制電子鎖_第1頁
已閱讀1頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  在PROTEUS模擬仿真軟件上,以AT89C51單片機為核心器件,結(jié)合按鍵電路、LED數(shù)碼管顯示電路、報警指示電路設(shè)計了一款保密性好、編碼量多、隨機開鎖成功率幾乎為零的電子密碼。利用單片機靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性通過軟件程序來控制整個系統(tǒng)實現(xiàn)電子密碼鎖的基本功能。系統(tǒng)能實現(xiàn)密碼的輸入、清除、顯示、密碼

2、正確開鎖,密碼錯誤報警,系統(tǒng)設(shè)定初始密碼。同時也顯示了PROTEUS軟件在硬件設(shè)計和軟件調(diào)試方面的高效性。</p><p>  關(guān)鍵詞:計算機應(yīng)用,電子密碼鎖,AT89C51單片機,PROTEUS軟件,系統(tǒng)仿真</p><p><b>  ABSTRACT</b></p><p>  Abstract: By using AT89C51 mic

3、rocontroller, an advanced electronic password lock circuit is designed. The hardware circuit diagram and some software flowchart are given in this paper. As the software of PROTEUS has the function of simulation, the fun

4、ction of 0-9 number keys, confirmation keys and the delete keys are realized by a 4×3 array. And the circuit composed of tips is displayed by 8-bit digital tube. When a password is entered, only“-”can be displayed.

5、After the entering of password-digi</p><p>  KEY WORDS: computer application, electronic password, AT89C51 microcontroller, </p><p>  PROTEUS software, system simulation</p><p><

6、b>  目 錄</b></p><p><b>  前言1</b></p><p><b>  第1章 單片機3</b></p><p>  1.1 單片機簡介3</p><p>  1.2 單片機的硬件特性3</p><p>  1.3 單片機的特

7、點3</p><p>  1.4 單片機的應(yīng)用范圍4</p><p>  第2章 電子密碼鎖的設(shè)計6</p><p>  2.1 設(shè)計方案的選擇6</p><p>  2.1.1 采用數(shù)字電路控制6</p><p>  2.1.2 采用以單片機為核心的控制6</p><p>  2.

8、2 本設(shè)計所要實現(xiàn)的目標(biāo)7</p><p>  2.3 電子密碼鎖的程序設(shè)計7</p><p>  第3章 主要元器介紹9</p><p>  3.1 主控芯片AT89C51簡介9</p><p>  3.2 AT89C51的主要性能9</p><p>  3.3 AT89C51引腳功能說明10</p

9、><p>  3.4 AT89C51的振蕩器與時鐘電路12</p><p>  3.5 AT89C51的復(fù)位方式13</p><p>  3.5.1復(fù)位原理13</p><p>  3.5.2常用復(fù)位電路14</p><p>  3.6 AT89C51的程序執(zhí)行方式14</p><p> 

10、 3.7 AT89C51的省電方式14</p><p>  3.8 AT89C51的芯片擦除15</p><p>  3.9 鎖存器74LS24515</p><p>  3.10 4×3矩陣鍵盤16</p><p>  第4章 用PROTEUS模擬電子密碼鎖18</p><p>  4.1 PRO

11、TEUS簡介18</p><p>  4.2 PROTEUS仿真過程18</p><p>  4.2.1 啟動PROTEUS ISIS 編輯環(huán)境18</p><p>  4.2.2 選取放置仿真元件19</p><p>  4.2.3 布線21</p><p>  4.2.4 在PROTEUS ISIS中進行

12、軟件編程22</p><p>  4.3 系統(tǒng)調(diào)試35</p><p>  4.3.1 將目標(biāo)代碼添加到電路35</p><p>  4.3.2 電路調(diào)試36</p><p>  第5章 調(diào)試過程與分析39</p><p><b>  結(jié) 論40</b></p><

13、p><b>  謝 辭41</b></p><p><b>  參考文獻42</b></p><p><b>  前言</b></p><p>  在日常的生活和工作中, 住宅與部門的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存多以加鎖的辦法來解決。若使用傳統(tǒng)的機械式鑰匙開鎖,人

14、們常需攜帶多把鑰匙, 使用極不方便, 且鑰匙丟失后安全性即大打折扣。隨著科學(xué)技術(shù)的不斷發(fā)展,人們對日常生活中的安全保險器件的要求越來越高。為滿足人們對鎖的使用要求,增加其安全性,用密碼代替鑰匙的電子密碼鎖應(yīng)運而生。</p><p>  電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品?,F(xiàn)在應(yīng)用較

15、廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機械鎖。其特點如下:</p><p>  1、保密性好,編碼量多,遠遠大于彈子鎖。隨機開鎖成功率幾乎為零。</p><p>  2、誤碼輸入保護,當(dāng)輸入密碼多次錯誤時,報警系統(tǒng)自動啟動。</p><p>  3、無活動零件,不會磨損,壽命長。</p><p>  4、使

16、用靈活性好,不像機械鎖必須佩帶鑰匙才能開鎖。</p><p>  5、電子密碼鎖操作簡單易行,一學(xué)即會。</p><p>  基于以上思路,本次設(shè)計使用ATMEL公司的AT89C51實現(xiàn)基于單片機的電子密碼鎖的設(shè)計,其主要具有如下功能:</p><p>  1、設(shè)置6位密碼,密碼通過鍵盤輸入,若密碼正確,則鎖開。</p><p>  2、報警

17、、鎖定鍵盤功能。密碼輸入錯誤,禁止按鍵輸入3秒,同時發(fā)出“滴、滴”報警聲。</p><p>  3、密碼可由程序初始設(shè)定。</p><p>  電子密碼鎖設(shè)計的關(guān)鍵問題是實現(xiàn)密碼的輸入、清除、開鎖等功能。</p><p>  1、密碼輸入功能:按下一個數(shù)字鍵,數(shù)碼管就顯示一個“-”,同時將先前輸入的所有“-”向左移動一位。</p><p> 

18、 2、密碼清除功能:當(dāng)按下“CRTL”鍵時,清除前面剛才輸入的錯誤的數(shù)字。</p><p>  3、開鎖功能:當(dāng)按下“ENTER”鍵,系統(tǒng)將輸入的數(shù)字與密碼進行檢查核對,如果正確則鎖打開,否則則打不開。</p><p>  由于科技的發(fā)展以及人們對保密程度的提高,許多電子密碼鎖已相繼問世。但這類產(chǎn)品的特點是針對特定有效卡、指紋或聲音有效,且不能實現(xiàn)遠程控制,只能適用于保密要求高且供個人使用

19、的箱、柜、房間等。因為數(shù)字、字符、圖形圖像、人體生物特征和時間等要素均可成為鑰匙的電子信息,組合使用這些信息將能夠使電子防盜鎖獲得高度的保密性,如防范森嚴(yán)的金庫。組合使用信息也能夠使電子防盜鎖獲得無窮擴展的可能,使產(chǎn)品多樣化,對用戶而言是“千挑百選、自得其所”。可以看出組合使用電子信息是電子密碼鎖以后發(fā)展的趨勢。</p><p>  本次設(shè)計的主要任務(wù)是在proteus中用編程語言把電子密碼鎖的運行過程模擬出來。

20、</p><p><b>  第1章 單片機</b></p><p><b>  1.1 單片機簡介</b></p><p>  單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路

21、、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。單片機系統(tǒng)結(jié)構(gòu)示意圖如圖1-1所示:</p><p>  圖1-1 單片機系統(tǒng)結(jié)構(gòu)示意圖</p><p>  1.2 單片機的硬件特性</p><p>  1、單片機集成度高。單片機包括CPU、4KB容量的ROM(8031無)、128 B容量的RAM、2個16位定時/

22、計數(shù)器、4個8位并行口、全雙工串口行口。</p><p>  2、系統(tǒng)結(jié)構(gòu)簡單,使用方便,實現(xiàn)模塊化。</p><p>  3、單片機可靠性高,可工作到10^6~10^7小時無故障。</p><p>  4、處理功能強,速度快。</p><p>  1.3 單片機的特點</p><p>  單片機的特點主要有:高集成度

23、,體積小,高可靠性;控制功能強;低電壓,低功耗,便于生產(chǎn)便攜式產(chǎn)品;易擴展;優(yōu)異的性能價格比。單片機是以工業(yè)測控對象、環(huán)境、接口特點出發(fā)向著增強控制功能,提高工業(yè)環(huán)境下的可靠性方向發(fā)展。主要特點如下:</p><p>  1、種類多,型號全。很多單片機廠家逐年擴大適應(yīng)各種需要,有針對性地推出一系列型號產(chǎn)品,使系統(tǒng)開發(fā)工程師有很大的選擇余地。大部分產(chǎn)品有較好的兼容性,保證了已開發(fā)產(chǎn)品能順利移植,較容易地使產(chǎn)品進行升

24、級換代。</p><p>  2、提高性能,擴大容量,性能價格比高。集成度已經(jīng)達到300萬個晶體管以上,總線速度達到數(shù)十微妙到幾百納秒,指令執(zhí)行周期已經(jīng)達到幾微妙到數(shù)十納秒,以往片外XRAM現(xiàn)已在物理上存入片內(nèi),ROM容量已經(jīng)擴充達32K,64K,128K以致更大的空間。價格從幾百到幾元不等。</p><p>  3、增加控制功能,向真正意義上的“單片”機發(fā)展。把原本是外圍接口芯片的功能集

25、成到一塊芯片內(nèi),在一片芯片中構(gòu)造了一個完整的功能強大的微處理應(yīng)用系統(tǒng)。</p><p>  4、低功耗。現(xiàn)在新型單片機的功耗越來越小,供電電壓從5V降低到了3.2V,甚至1V,工作電流從mA降到µA級,gz2頻率從十幾兆可編程到幾十千赫茲。特別是很多單片機都設(shè)置了多種工作方式,這些工作方式包括等待,暫停,睡眠,空閑,節(jié)電等。</p><p>  5、C語言開發(fā)環(huán)境,友好的人機互交

26、環(huán)境。大多數(shù)單片機都提供基于C語言開發(fā)平臺,并提供大量的函數(shù)供使用,這使產(chǎn)品的開發(fā)周期、代碼可讀性、可移植性都大為提高。</p><p>  1.4 單片機的應(yīng)用范圍</p><p>  1、在智能儀表中的應(yīng)用</p><p>  這是單片機應(yīng)用最多最活躍的領(lǐng)域之一。在各類儀器儀表中引入單片機,使儀器儀表智能化,提高測試的自動化程度和精度,簡化儀器儀表的硬件結(jié)構(gòu),提

27、高其性能價格比。</p><p>  2、在機電一體化中的應(yīng)用</p><p>  機電一體化產(chǎn)品是指集機械技術(shù),微電子技術(shù),計算機技術(shù)于一體,使其產(chǎn)品具有智能化特征的電子產(chǎn)品。它是機械工業(yè)發(fā)展的方向。</p><p>  3、在實時控制系統(tǒng)中的應(yīng)用</p><p>  單片機廣泛用于各種實時過程控制系統(tǒng)中,例如工業(yè)過程控制、過程監(jiān)測、航空航

28、天、間斷武器、機器人系統(tǒng)等各種實時控制系統(tǒng)。用單片機進行實時系統(tǒng)數(shù)據(jù)處理和控制,保證系統(tǒng)工作在最佳狀態(tài),有利于提高系統(tǒng)的工作效率和產(chǎn)品的質(zhì)量。</p><p>  4、在人們生活中的應(yīng)用</p><p>  目前國內(nèi)外各種家具已經(jīng)普遍用單片機代替?zhèn)鹘y(tǒng)的控制電路,例如,洗衣機、電冰箱、空調(diào)機、微波爐、電飯煲、收音機、音像、電風(fēng)扇及許多高級電子玩具都配上了單片機。</p><

29、;p>  5、在其他方面的應(yīng)用</p><p>  單片機還廣泛應(yīng)用于辦公自動化領(lǐng)域、商業(yè)營銷領(lǐng)域、安全防衛(wèi)、汽車及通信系統(tǒng)、計算機外部設(shè)備、模糊控制等領(lǐng)域。</p><p>  第2章 電子密碼鎖的設(shè)計</p><p>  2.1 設(shè)計方案的選擇</p><p>  2.1.1 采用數(shù)字電路控制</p><p>

30、;  用以74LS112雙JK觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了9個用戶輸入鍵,其中只有4個是有效的密碼按鍵,其它的都是干擾按鍵,若按下干擾鍵,鍵盤輸入電路自動清零,原先輸入的密碼無效,需要重新輸入;如果用戶輸入密碼的時間超過10秒(一般情況下,用戶不會超過10秒,若用戶覺得不便,還可以修改)電路將報警20秒,若電路連續(xù)報警三次,電路將鎖定鍵盤2分鐘,防止他人的非法操作。采用數(shù)字電路設(shè)計的方案好處就是設(shè)計簡單但控制的準(zhǔn)

31、確性和靈活性差。故不采用。</p><p>  2.1.2 采用以單片機為核心的控制</p><p>  由于單片機種類繁多,各種型號都有其一定的應(yīng)用環(huán)境,因此在選用時要多加比較,合理選擇,以期獲得最佳的性價比。一般來說在選取單片機時從下面幾個方面考慮:性能、存儲器、運行速度、I/O口、定時/計數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還有一

32、些最基本的比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、有沒有低電壓檢測功能、單片機內(nèi)有無時鐘振蕩器、有無上電復(fù)位功能等。在開發(fā)過程中單片機還受到:開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持</p><p><b>  和服務(wù)等等因素。</b></p><p>  基于以上因素本設(shè)計選用單片機AT89C51作為本設(shè)計的核心元件,利用單片機靈活的編程設(shè)計和豐富的

33、I/O端口,及其控制的準(zhǔn)確性,實現(xiàn)基本的密碼鎖功能。在單片機的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接7SEG-MPX8-CC-BLUE顯示器用于顯示作用。當(dāng)用戶需要開鎖時,先按鍵盤開鎖鍵之后按鍵盤的數(shù)字鍵0-9輸入密碼。當(dāng)數(shù)字輸入超過6個時,給出報警信息。在密碼輸入過程中,若輸入錯誤,可以利用“CLR”鍵刪除剛才輸入的錯誤的數(shù)字。</p><p>  可以看出方案二控制靈活準(zhǔn)確性好且保密性強還具

34、有擴展功能,根據(jù)現(xiàn)實生活的需要此次設(shè)計采用此方案。</p><p>  2.2 本設(shè)計所要實現(xiàn)的目標(biāo)</p><p>  用4×3組成0~9數(shù)字鍵及確認(rèn)鍵、刪除鍵;用8位數(shù)碼管組成顯示電路提示信息,當(dāng)輸入密碼時,只顯示“-”,當(dāng)密碼位數(shù)輸入完畢按下確認(rèn)鍵時,對輸入的密碼與設(shè)定的密碼進行比較,若密碼正確,則鎖開,此處用LED發(fā)光二極管亮一秒鐘作為提示;若密碼不正確,禁止按鍵輸入3秒

35、,同時發(fā)出“滴、滴”報警聲。</p><p>  2.3 電子密碼鎖的程序設(shè)計</p><p>  程序流程圖設(shè)計如圖2-1所示:</p><p><b>  圖2-1程序流程圖</b></p><p>  軟件流程圖設(shè)計如圖2-2所示:</p><p><b>  圖2-2軟件流程圖&

36、lt;/b></p><p>  第3章 主要元器介紹</p><p>  3.1 主控芯片AT89C51簡介</p><p>  AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051

37、是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。</p><p&

38、gt;  3.2 AT89C51的主要性能</p><p>  1、與MCS-51 兼容</p><p>  2、4K字節(jié)可編程FLASH存儲器</p><p>  3、壽命:1000寫/擦循環(huán)</p><p>  4、數(shù)據(jù)保留時間:10年</p><p>  5、全靜態(tài)工作:0Hz-24MHz</p>

39、<p>  6、三級程序存儲器鎖定</p><p>  7、128×8位內(nèi)部RAM</p><p>  8、32可編程I/O線</p><p>  9、兩個16位定時器/計數(shù)器</p><p><b>  10、5個中斷源</b></p><p>  11、可編程串行通道<

40、;/p><p>  12、低功耗的閑置和掉電模式</p><p>  13、片內(nèi)振蕩器和時鐘電路</p><p>  3.3 AT89C51引腳功能說明</p><p>  圖3-1AT89C51芯片引腳圖</p><p><b>  VCC:供電電壓。</b></p><p&g

41、t;<b>  GND:接地。</b></p><p>  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。</p><p> 

42、 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。</p><p>  P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電

43、阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。</p><p>  P3口:P3口管腳是8個帶內(nèi)部上拉電

44、阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。</p><p>  P3口也可作為AT89C51的一些特殊功能口,如表3-1所示:</p><p>  表3-1 P3口的一些特殊功能</p><p>  P3口同時為閃爍編程和編程校

45、驗接收一些控制信號。</p><p>  RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。</p><p>  ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。

46、然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。</p><p>  /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN

47、信號將不出現(xiàn)。</p><p>  /EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。</p><p>  XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。&l

48、t;/p><p>  XTAL2:來自反向振蕩器的輸出。</p><p>  3.4 AT89C51的振蕩器與時鐘電路</p><p>  單片機內(nèi)各部件之間有條不紊的協(xié)調(diào)工作,其控制信號是在一種基本節(jié)拍的指揮下按一定時間順序發(fā)出的,這些控制信號在時間上的相互關(guān)系就是CPU時序。而產(chǎn)生這種基本節(jié)拍的電路就是振蕩器和時鐘電路。</p><p>  

49、AT89C51單片機內(nèi)部有一個用于構(gòu)成振蕩器的單級反相放大器,如圖3-2所示。</p><p>  圖3-2AT89C51內(nèi)部振蕩器電路圖</p><p>  引腳XTAL1為反相器輸入端,XTAL2為反相器輸出端。當(dāng)在放大器兩個引腳上外接一個晶體(或陶瓷振蕩器)和電容組成的并聯(lián)諧振電路作為反饋元件時,便構(gòu)成一個自激振蕩器。</p><p>  單片機也可采用外部

50、振蕩器向內(nèi)部時鐘電路輸入一固定頻率的時鐘源信號。此時,外部信號接至XTAL1端,輸入給內(nèi)部時鐘電路,而XTAL2端浮空即可。</p><p>  3.5 AT89C51的復(fù)位方式</p><p>  單片機在開機時或在工作中因干擾而使程序失控或工作中程序處于某種死循環(huán)狀態(tài)等情況下都需要復(fù)位。復(fù)位的作用是使中央處理器CPU以及其他功能部件都恢復(fù)到一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。&l

51、t;/p><p><b>  3.5.1復(fù)位原理</b></p><p>  AT89C51單片機的復(fù)位靠外部電路實現(xiàn),信號由RESET(RST)引腳輸入,高電平有效,在振蕩器工作時,只要保持RST引腳高電平兩個機器周期,單片機即復(fù)位。復(fù)位后,PC程序計數(shù)器的內(nèi)容為0000H,其他特殊功能寄存器的復(fù)位狀態(tài)如表3-2所示。片內(nèi)RAM中內(nèi)容不變。</p><

52、;p>  表3-2特殊寄存器的復(fù)位狀態(tài)</p><p>  3.5.2常用復(fù)位電路</p><p>  一般有上電復(fù)位、手動開關(guān)復(fù)位和自動復(fù)位電路三種,如圖3-3所示:</p><p>  圖3-3單片機復(fù)位電路圖</p><p> ?。╝)上電復(fù)位電路;(b)手動復(fù)位電路;(c)自動復(fù)位電路</p><p>

53、  3.6 AT89C51的程序執(zhí)行方式</p><p>  程序執(zhí)行方式是單片機的基本工作方式,即執(zhí)行用戶編寫好并存放在ROM中的程序。</p><p>  3.7 AT89C51的省電方式</p><p>  AT89系列單片機有兩種省電運行方式,即空閑方式和掉電方式。省電方式可使單片機功耗最小。</p><p>  單片機正常工作時消耗

54、10~20 mA電流,空閑方式工作時消耗1.75 mA電流,掉電方式工作時消耗5~50 μA電流。</p><p>  在空閑和掉電方式下,單片機內(nèi)部硬件控制電路如圖3-4所示:</p><p>  3-4 空閑和掉電方式內(nèi)部電路圖</p><p>  3.8 AT89C51的芯片擦除</p><p>  整個PEROM陣列和三個鎖定位的電擦

55、除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。</p><p>  此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時器,計數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內(nèi)容并且凍結(jié)振蕩器,禁止所用其

56、他芯片功能,直到下一個硬件復(fù)位為止。</p><p>  3.9 鎖存器74LS245</p><p>  圖3-574LS245引腳圖</p><p>  74LS245是我們常用的芯片,用來驅(qū)動led或者其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。</p><p>  74LS245還具有雙向三態(tài)功能,既可以輸出,也可以

57、輸入數(shù)據(jù)。</p><p>  當(dāng)8051單片機的P0口總線負載達到或超過P0最大負載能力時,必須接入74LS245等總線驅(qū)動器。</p><p>  當(dāng)片選端/CE低電平有效時,DIR=“0”,信號由 B 向 A 傳輸;(接收)</p><p>  DIR=“1”,信號由 A 向 B 傳輸;(發(fā)送)當(dāng)CE為高電平時,A、B均為高阻態(tài)。</p><

58、;p>  由于P2口始終輸出地址的高8位,接口時74LS245的三態(tài)控制端1G和2G接地,P2口與驅(qū)動器輸入線對應(yīng)相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。8051的/RD和/PSEN相與后接DIR,使得RD且PSEN有效時,74LS245輸入(P0.1←D1),其它時間處于輸出(P0.1→D1)。</p><p>  3.10 4×3矩陣鍵盤</p><

59、;p>  如圖3-6所示,本系統(tǒng)采用4×3矩陣鍵盤,12個按鍵分為輸入數(shù)字鍵:0、1、2、3、4、5、6、7、8、9;功能鍵CRL、ENTER矩陣鍵盤。</p><p>  圖3-6 4×3矩陣鍵盤</p><p>  第4章 用PROTEUS模擬電子密碼鎖</p><p>  4.1 PROTEUS簡介</p><p&

60、gt;  Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風(fēng)標(biāo)電子技術(shù)有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學(xué)的教師、致力于單片機開發(fā)應(yīng)用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到

61、單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/-</p><p>  DsPIC33、AVR、ARM、8086和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,

62、它也支持IAR、Keil和MPLAB等多種編譯器。</p><p>  4.2 PROTEUS仿真過程</p><p>  4.2.1 啟動PROTEUS ISIS 編輯環(huán)境</p><p>  點擊“開始”菜單,選擇“Proteus 7 Professional”程序,在出現(xiàn)的子菜單中選擇“ISIS 7 Professional”選項,系統(tǒng)啟動界面如圖4-1所示。

63、</p><p><b>  圖4-1 啟動界面</b></p><p>  運行結(jié)果如圖4-2所示:</p><p><b>  圖4-2 運行結(jié)果</b></p><p>  4.2.2 選取放置仿真元件</p><p>  按照需要的元件清單如表4-1所示添加元件<

64、;/p><p><b>  表4-1 元件清單</b></p><p>  在器件選擇按鈕中單擊“P”按鈕,或是執(zhí)行菜單命令“Library”-“Pick Device/Symbol”,分別添加AT89C51、74LS245、7SEG-MPX8-CC-BLUE、BUTTON、LED-YELLOW、RES、SOUNDER器件,如圖4-3所示:</p><

65、p><b>  圖4-3 添加元件</b></p><p>  在ISIS原理編輯窗口中放置元件,再單擊工具箱中的“元件終端圖標(biāo)”,在對象選擇器中單擊“POWER”和“GROUND”放置電源和地,如圖4-4所示:</p><p>  圖4-4放置電源和地</p><p><b>  4.2.3 布線</b><

66、/p><p>  放置好元件后,點擊總線圖標(biāo),先布總線,再連接其他各線。左鍵雙擊各元件。設(shè)置相應(yīng)元件參數(shù),完成電路圖設(shè)計,如圖4-5所示:</p><p><b>  圖4-5 電路圖</b></p><p>  4.2.4 在PROTEUS ISIS中進行軟件編程</p><p>  1、在PROTEUS ISIS中創(chuàng)建源

67、代碼文件</p><p>  選用Source→Add/Remove Source files 命令,如圖4-6所示:</p><p>  圖4-6選用Source→Add/Remove Source files 命令</p><p>  將彈出如圖4-7所示的Add/Remove Source Code Fils對話框</p><p> 

68、 圖4-7Add/Remove Source Code Fils對話框</p><p>  點擊code generation tool 下方的下拉式菜單,將列出系統(tǒng)提供的代碼生成工具,如圖4-7所示。在本例中微處理器為80C51,因此選擇“ASEM51”代碼生成工具。</p><p>  點選“NEW”按鈕,將出現(xiàn)圖4-8所示的新的源文件建立對話框。</p><p&

69、gt;  在文件名一欄中為源代碼鍵入文件名“AT89C51”,并在文件類型中指定新建源文件的類型為“ASM51 source files (*.asm),如圖4-8所示:</p><p>  圖4-8 新的源文件建立對話框</p><p>  點擊打開按鈕,將出現(xiàn)如圖4-9所示的對話框,點選“是(Y)”按鈕,即可完成新源文件的創(chuàng)建和添加,如圖4-10所示。點擊“OK”按鈕關(guān)閉源代碼文件創(chuàng)建

70、對話框。</p><p>  圖4-9新建源文件對話框圖 4-10源代碼文件創(chuàng)建完成</p><p>  2、在PROTEUS ISIS 中編輯源代碼</p><p>  在PROTEUS ISIS 編輯環(huán)境中按動ALT-S鍵,打開Source菜單,如圖4-11所示。</p><p>  點選“1.AT89C51.ASM”

71、,即可打開源文件編輯窗口,如圖4-12所示,在編輯環(huán)境中鍵入程序,并保存。</p><p>  圖4-11打開Source菜單</p><p>  圖4-12源文件編輯窗口</p><p>  控制電路軟件源程序如下:</p><p>  ;**************************************************

72、***** ;以下8個字節(jié)存放8位數(shù)碼管的段碼 LED_BIT_1 EQU 30H </p><p>  LED_BIT_2 EQU 31H </p><p>  LED_BIT_3 EQU 32H </p><p>  LED_BIT_4 EQU 33H </p&g

73、t;<p>  LED_BIT_5 EQU 34H </p><p>  LED_BIT_6 EQU 35H </p><p>  LED_BIT_7 EQU 36H </p><p>  LED_BIT_8 EQU 37H </p><p>  ;

74、以下6個字節(jié)存放初始密碼 </p><p>  WORD_1 EQU 38H </p><p>  WORD_2 EQU 39H </p><p>  WORD_3 EQU 3AH </p><p>  WORD_4 EQU 3BH </p

75、><p>  WORD_5 EQU 3CH </p><p>  WORD_6 EQU 3DH </p><p>  ;以下6個字節(jié)存放用戶輸入的6位密碼 </p><p>  KEY_1 EQU 3EH </p><p>  KEY_2

76、EQU 3FH </p><p>  KEY_3 EQU 40H </p><p>  KEY_4 EQU 41H </p><p>  KEY_5 EQU 42H </p><p>  KEY_6 EQU 43H </p>&

77、lt;p>  ;****************************************************** </p><p>  CNT_A EQU 44H </p><p>  CNT_B EQU 45H </p><p>  KEY_CNT EQU 46H ;已輸出的

78、密碼位數(shù) </p><p>  LINE EQU 47H ;按鍵行號 </p><p>  ROW EQU 48H ;按鍵列號 </p><p>  VAL EQU 49H ;鍵值 </p><p>  ;*******************

79、*********************************** </p><p>  ;以下為初始化程序,包括數(shù)據(jù)存儲空間初始化,設(shè)置初始密碼 </p><p>  ORG00H </p><p>  SJMPSTART </p><p>  ORG0BH </p

80、><p>  LJMP INT_T0 </p><p>  START: MOV CNT_A,#00H ;程序初始化 </p><p>  MOV CNT_B,#00H </p><p>  MOV KEY_CNT,#00H </p><p>  MOV

81、LINE,#00H </p><p>  MOV ROW,#00H </p><p>  MOV VAL,#00H </p><p>  SETB P1.0 </p><p>  MOV LED_BIT_1,#00H ;段碼存儲區(qū)清0 </p><p&g

82、t;  MOV LED_BIT_2,#00H </p><p>  MOV LED_BIT_3,#00H </p><p>  MOV LED_BIT_4,#00H </p><p>  MOV LED_BIT_5,#00H </p><p>  MOV LED_BIT_6,#00H

83、 </p><p>  MOV LED_BIT_7,#79H </p><p>  MOV LED_BIT_8,#73H </p><p>  MOV KEY_1,#00H ;輸入密碼存儲區(qū)清0 </p><p>  MOV KEY_2,#00H </p>

84、<p>  MOV KEY_3,#00H </p><p>  MOV KEY_4,#00H </p><p>  MOV KEY_5,#00H </p><p>  MOV KEY_6,#00H </p><p>  MOV WORD_1,#6 ;設(shè)置初始密碼”

85、123456”</p><p>  MOV WORD_2,#5 </p><p>  MOV WORD_3,#4 </p><p>  MOV WORD_4,#3 </p><p>  MOVWORD_5,#2 </p><p>  MOV WORD_6,

86、#1 </p><p>  MOV TMOD,#01H </p><p>  MOV TH0,#(65536-700)/256 </p><p>  MOV TL0,#(65536-700)MOD 256 </p><p>  MOV IE,#82H </p><p&

87、gt;  A0: LCALL DISP </p><p>  ;***********************************************************</p><p>  ;以下為鍵盤掃描程序,計算鍵值并存入VAL </p><p>  LSCAN: MOV P3,#0F0H ;掃描行碼

88、60;</p><p>  L1: JNB P3.0,L2 </p><p>  LCALL DLY_S </p><p>  JNB P3.0,L2 </p><p>  MOV LINE,#00H </p><p>  LJMP RSCAN 

89、</p><p>  L2: JNB P3.1,L3 </p><p>  LCALL DLY_S </p><p>  JNB P3.1,L3 </p><p>  MOV LINE,#01H </p><p>  LJMP RSCAN <

90、;/p><p>  L3: JNB P3.2,L4 </p><p>  LCALL DLY_S </p><p>  JNB P3.2,L4 </p><p>  MOV LINE,#02H </p><p>  LJMP RSCAN </p&

91、gt;<p>  L4: JNB P3.3,A0 </p><p>  LCALL DLY_S </p><p>  JNB P3.3,A0 </p><p>  MOV LINE,#03H </p><p>  RSCAN: MOV P3,#0FH ;

92、掃描列碼 </p><p>  C1: JNB P3.4,C2 </p><p>  MOV ROW,#00H </p><p>  LJMP CALCU </p><p>  C2: JNB P3.5,C3 </p><p>  MOV

93、ROW,#01H </p><p>  LJMP CALCU </p><p>  C3: JNB P3.6,C1 </p><p>  MOV ROW,#02H </p><p>  CALCU:MOVA,LINE ;計算鍵值 </p>

94、<p>  MOVB,#03H </p><p><b>  MUL AB </b></p><p>  ADD A,ROW </p><p>  MOV VAL,A </p><p>  ;*****************************

95、********************* </p><p>  ;以下為按鍵處理程序,對不同的按鍵作出響應(yīng) </p><p>  CJNE A,#0AH,J1 ;是否為"CLR"鍵 </p><p>  MOV R1,KEY_CNT </p><p>  CJNE R1,#0

96、0H,J2 </p><p>  LCALL ALARM_1 </p><p>  LJMP START </p><p>  J2: LCALL SHIFTR </p><p>  DEC KEY_CNT </p><p>  W00:L

97、CALL DISP ;等待按鍵抬起 </p><p>  MOV A,P3 </p><p>  CJNE A,#0FH,W01 </p><p>  LJMP A0 </p><p>  W01:MOV A,P3 </p><p> 

98、 CJNE A,#0F0H,W02 </p><p>  LJMP A0 </p><p>  W02:SJMP W00 </p><p>  J1: MOV A,VAL </p><p>  CJNE A,#0BH,J3;判斷是否為"ENTER"鍵

99、60;</p><p>  MOV R1,KEY_CNT </p><p>  CJNE R1,#06H,J4</p><p>  MOV A,WORD_1 ;比較密碼 </p><p>  CJNE A,3EH,J5 </p><p>  MOV A,WORD

100、_2 </p><p>  CJNE A,3FH,J5</p><p>  MOV A,WORD_3 </p><p>  CJNE A,40H,J5 </p><p>  MOV A,WORD_4 </p><p>  JNE A,41H,J5 &

101、lt;/p><p>  MOV A,WORD_5 </p><p>  CJNE A,42H,J5 </p><p>  MOV A,WORD_6 </p><p>  CJNE A,43H,J5 </p><p>  CLR P1.0 </p&

102、gt;<p>  LCALL DLY_L </p><p>  LJMP FINI </p><p>  J5: LCALL ALARM_2 </p><p>  LJMP START </p><p>  J4: LCALL ALARM_1 &l

103、t;/p><p>  LJMP START </p><p>  J3: INC KEY_CNT ;按下數(shù)字鍵 </p><p>  MOV A,KEY_CNT </p><p>  CJNE A,#07H,K1 </p><p>  LCALL AL

104、ARM_1 </p><p>  W10:LCALL DISP ;等待按鍵抬起 </p><p>  MOV A,P3 </p><p>  CJNE A,#0FH,W11 </p><p>  LJMPSTART </p><p>  W

105、11:MOV A,P3 </p><p>  CJNE A,#0F0H,W12 </p><p>  LJMP START </p><p>  W12:SJMP W10 </p><p>  LJMP START</p><p>  LJMP STAR

106、T </p><p>  K1: LCALL SHIFTL </p><p>  W20:LCALL DISP ;等待按鍵抬起 </p><p>  MOV A,P3 </p><p>  CJNE A,#0FH,W21 </p><p

107、>  LJMP A0 </p><p>  W21:MOV A,P3 </p><p>  CJNE A,#0F0H,W22 </p><p>  LJMP A0 </p><p>  W22:SJMP W20 </p><p><b&

108、gt;  LJMP A0</b></p><p>  ALARM_1:SETB TR0 ;操作錯誤報警 </p><p>  JB TR0,$ </p><p><b>  RET </b></p><p>  ALARM_2:SETB TR0

109、;密碼錯誤報警 </p><p>  JB TR0,$ </p><p>  LCALL DLY_L </p><p><b>  RET </b></p><p>  ;**********************************************

110、**** </p><p>  ;定時器中斷服務(wù)程序,用于聲音報警 </p><p>  INT_T0: CPL P1.7 </p><p>  MOV TH0,#100</p><p>  MOV TL0,#253 </p><p>  INC CNT_A&

111、#160;</p><p>  MOV R1,CNT_A </p><p>  CJNE R1,#30,RETUNE </p><p>  MOV CNT_A,#00H </p><p>  INC CNT_B </p><p>  MOV R1,CNT_B&

112、#160;</p><p>  CJNE R1,#20,RETUNE </p><p>  MOV CNT_A,#00H </p><p>  MOV CNT_B,#00H </p><p>  CLR TR0 </p><p>  RETUNE: RETI&

113、#160;</p><p>  ;************************************************** </p><p>  ;段碼,輸入密碼左移子程序 </p><p>  SHIFTL: MOV LED_BIT_6,LED_BIT_5 </p><p>  MOV

114、LED_BIT_5,LED_BIT_4 </p><p>  MOV LED_BIT_4,LED_BIT_3 </p><p>  MOV LED_BIT_2,LED_BIT_1 </p><p>  MOV LED_BIT_1,#40H </p><p>  MOV KEY_6,KEY

115、_5 </p><p>  MOV KEY_5,KEY_4 </p><p>  MOV KEY_4,KEY_3 </p><p>  MOV KEY_3,KEY_2 </p><p>  MOV KEY_2,KEY_1 </p><p>  MOV

116、KEY_1,VAL </p><p><b>  RET </b></p><p>  ;************************************************** </p><p>  ;段碼,輸入密碼右移子程序 </p><p>  SHIFTR:

117、 MOV LED_BIT_1,LED_BIT_2 </p><p>  MOV LED_BIT_2,LED_BIT_3 </p><p>  MOV LED_BIT_3,LED_BIT_4 </p><p>  MOV LED_BIT_4,LED_BIT_5 </p><p>  M

118、OV LED_BIT_5,LED_BIT_6 </p><p>  MOV LED_BIT_6,#00H </p><p>  MOV KEY_1,KEY_2 </p><p>  MOV KEY_2,KEY_3 </p><p>  MOV KEY_3,KEY_4 <

119、;/p><p>  MOV KEY_4,KEY_5 </p><p>  MOV KEY_5,KEY_6 </p><p>  MOV KEY_6,#00H </p><p><b>  RET </b></p><p>  ;***********

120、*************************************** </p><p>  ;以下為數(shù)碼顯示子程序 </p><p>  DISP: CLR P2.7 </p><p>  MOV P0,LED_BIT_8 </p><p>  LCALL DLY_S 

121、;</p><p>  SETB P2.7 </p><p>  CLR P2.6 </p><p>  MOV P0,LED_BIT_7 </p><p>  LCALL DLY_S </p><p>  SETB P2.6 </p>

122、<p>  CLR P2.5 </p><p>  MOV P0,LED_BIT_6 </p><p>  LCALL DLY_S </p><p>  SETB P2.5 </p><p>  CLR P2.4 </p><p>  M

123、OV P0,LED_BIT_5 </p><p>  LCALL DLY_S </p><p>  SETB P2.4 </p><p>  CLR P2.3 </p><p>  MOV P0,LED_BIT_4 </p><p>  LCALL

124、DLY_S </p><p>  SETB P2.3 </p><p>  CLR P2.2 </p><p>  MOV P0,LED_BIT_3 </p><p>  LCALL DLY_S </p><p>  SETBP2.2 

125、</p><p>  CLR P2.1 </p><p>  MOV P0,LED_BIT_2 </p><p>  SETB P2.1 </p><p>  CLR P2.0 </p><p>  MOV P0,LED_BIT_1 </p&g

126、t;<p>  LCALL DLY_S </p><p>  SETB P2.0 </p><p><b>  RET </b></p><p>  ;********************************************** </p><p&g

溫馨提示

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

評論

0/150

提交評論