基于單片機(jī)電子密碼鎖課程設(shè)計報告_第1頁
基于單片機(jī)電子密碼鎖課程設(shè)計報告_第2頁
基于單片機(jī)電子密碼鎖課程設(shè)計報告_第3頁
基于單片機(jī)電子密碼鎖課程設(shè)計報告_第4頁
基于單片機(jī)電子密碼鎖課程設(shè)計報告_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電子密碼鎖- 1 -課程設(shè)計論文課程設(shè)計論文電電子子密密碼碼鎖鎖電子密碼鎖- 2 -目 錄第 1 章 緒 論 .11.1 電子密碼鎖 .11.2 電子密碼鎖的特點.11.3 論文的主要工作 .1第 2 章 系統(tǒng)設(shè)計方案及主控制芯片介紹 .22.1 系統(tǒng)總體設(shè)計方案 .22.2 系統(tǒng)的工作原理 .22.3 主控芯片介紹 .32.3.1 結(jié)構(gòu)概述 .3第 3 章 系統(tǒng)硬件設(shè)計 .43.1 鍵盤輸入裝置.43.2 硬件工作接線口.53.3LED 顯示器結(jié)構(gòu)與原理.53.4 復(fù)位電路.63.5 繼電器開關(guān)門裝置.63.6 聲光報警裝置 .7第 4 章 系統(tǒng)軟件設(shè)計 .74.1 編程工具的介紹.84.1

2、.1 C 語言的主要優(yōu)點 .84.1.2 C 語言使用的工具 .84.1.3 C51 與 C 語言的主要不同點 .84.2 主程序 .8電子密碼鎖- 3 -4.3 矩陣式鍵盤 .10第 5 章 系統(tǒng)調(diào)試 .125.1 硬件調(diào)試 .125.2 軟件調(diào)試 .125.3 系統(tǒng)軟硬件聯(lián)機(jī)調(diào)試 .13第 6 章 焊接技.第 7 章 總 結(jié) .137.1 心得體會 .147.2 系統(tǒng)存在的問題和改進(jìn)方案 .167.3 設(shè)計中遇到的問題和解決方法.16參考文獻(xiàn) .16附 錄 .17附錄一:系統(tǒng)設(shè)計電路總圖 .17附錄二:元件器清單 .18附錄三:軟件程序 .19電子密碼鎖- 4 -電子密碼鎖電子密碼鎖【摘要

3、摘要】 該電子密碼鎖是一種實用型的機(jī)、電一體化設(shè)計,采用單片機(jī)密碼識別及信號輸出控制,提高了整體電路的穩(wěn)定性和可靠性,并且簡化了硬件電路的設(shè)計。由EPROM 構(gòu)成的密碼存儲器可防止主機(jī)在斷電的時候?qū)⒂脩舻脑O(shè)置密碼丟失,更增加了其安全系數(shù)。該設(shè)計是基于 89C52 的單片機(jī)的電子密碼鎖設(shè)計,主要是通過芯片的程序內(nèi)容來控制電路的工作方式,其中包括 89C52 芯片,閃存芯片,鍵盤輸入模塊,電子鎖模塊等模塊,當(dāng) 89C52 檢測到有密碼輸入時就將其和閃存中的密碼相比較,如果相同則傳送開鎖信號到電子鎖模塊電路,實現(xiàn)開鎖功能,而當(dāng)檢測到三次輸入密碼都不正確時則輸出報警信號,同是禁止密碼輸入功能,即實現(xiàn)了

4、防多次試探的可能性,其安全性能有了明顯的提高。關(guān)鍵詞關(guān)鍵詞:穩(wěn)定性 可靠性 89C52 EPRPM【正文正文】第一章緒論11 電子密碼鎖功能本系統(tǒng)采用單片機(jī)作控制器,系統(tǒng)工作時,用戶通過按鍵輸入 8 位密碼,按下“確認(rèn)”鍵后,單片機(jī)將輸入密碼與設(shè)定密碼進(jìn)行比較,若密碼正確,則發(fā)出開鎖信號,相應(yīng)的指示燈閃動,將鎖打開,系統(tǒng)不報警;若密碼不正確,則有相應(yīng)的指示燈閃動,并要求重新輸入密碼,重新輸入密碼的次數(shù)不能超過 3 次,若 3 次輸入的密碼都不正確,顯示“CLOSED” ,且發(fā)出報警信號。鎖打開后還可通過按下“修改/重置”功能鍵,重新設(shè)置新密碼。12 電子密碼鎖的特點電子密碼鎖是一種通過密碼輸入

5、來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價比較高的產(chǎn)品。現(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實現(xiàn)的。其性能和安全性已大大超過了機(jī)械鎖,特點如下: 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開鎖成功率幾乎為零; 密碼可變。用戶可以經(jīng)常更改密碼,防止密碼被盜,同時也可以避免因人員的更替而使鎖的密級下降; 誤碼輸入保護(hù)。當(dāng)輸入密碼多次錯誤時,報警系統(tǒng)自動啟動; 電子密碼鎖操作簡單易行,一學(xué)即會。1.3 論文的主要工作論文的研究內(nèi)容主要如下:(1) 了解單片機(jī)的基本結(jié)構(gòu)和指令系統(tǒng),掌握 STC89C52

6、單片機(jī)的控制功能,應(yīng)用單片機(jī)實現(xiàn)電子密碼鎖的設(shè)計,及其硬件制作;(2) 熟練掌握 C 語言,在 KEIL 的開發(fā)環(huán)境中編譯程序,完成電子鎖的軟件設(shè)計,使電子密碼鎖- 5 -系統(tǒng)更加符合實際;(3) 軟件編制上根據(jù)系統(tǒng)要完成的功能采用模塊化結(jié)構(gòu)設(shè)計,與硬件一起進(jìn)行聯(lián)機(jī)調(diào)試,能達(dá)到預(yù)期的效果;(5) 對實驗結(jié)果進(jìn)行分析,并對出現(xiàn)的問題提出解決方案。第 2 章 系統(tǒng)設(shè)計方案及主控制芯片介紹本章系統(tǒng)介紹了電子密碼鎖的總體方案設(shè)計及其主控芯片 STC89C52 單片機(jī)的介紹。電子密碼鎖主要由硬件部分和軟件部分組成,在經(jīng)過詳細(xì)的討論和實驗之后,制定一套簡單、實用、廉價的方案。2.1 系統(tǒng)總體設(shè)計方案方案一

7、:八位 LED 數(shù)碼管顯示密碼輸入情況,發(fā)光二極管和蜂鳴器做報警裝置,獨立式鍵盤設(shè)置數(shù)值的加減,并確認(rèn)數(shù)字的輸入。密碼輸入錯誤時候的提示信息。方案二:八位 LED 數(shù)碼管顯示密碼輸入情況,發(fā)光二極管和蜂鳴器做報警裝置,由 4*4 矩陣式小鍵盤設(shè)置數(shù)字鍵和功能鍵。方案比較:獨立式鍵盤:直接用 I/O 口線構(gòu)成的單個按鍵電路。每個獨立式按鍵單獨占有一根I/O 口線的工作狀態(tài)。獨立式按鍵當(dāng)按鍵較多時,I/O 口線浪費較大,故只在按鍵數(shù)量不多時才采用這種按鍵電路。矩陣式按鍵:在鍵盤中按鍵數(shù)量較多時,為了減少 I/O 口的占用,通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連

8、通,而是通過一個按鍵加以連接。這樣,一個端口(如 P1 口)就可以構(gòu)成 4*4=16 個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。 經(jīng)比較,我們選擇了方案二,認(rèn)為此方案更合理。 系統(tǒng)框圖如圖 2.1 所示: 單片機(jī) 最小系統(tǒng) 繼電器模塊 矩陣式鍵盤 密碼存儲 燈提示模塊 報警模塊 復(fù)位電路 LED 顯示 圖 2.1 系統(tǒng)設(shè)計總體框圖2.2 系統(tǒng)的工作原理本系統(tǒng)主要由以下模塊組成:電子電路部分采用單片機(jī)控制密碼讀取、密碼判斷、輸入顯示,蜂鳴報警模塊,繼電器模塊顯示開關(guān)狀態(tài),等提示輸入正確錯誤的狀態(tài);單片機(jī)系統(tǒng)采

9、 STC89C52,用矩陣式鍵盤實現(xiàn)密碼的輸入,并由 LED 數(shù)碼管顯示數(shù)值提示密碼輸入信息。電子密碼鎖- 6 -2.3 主控芯片介紹單片機(jī)是指一個集成在一塊芯片上的完整計算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機(jī)所需要的大部分部件:CPU、 內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設(shè)備。而現(xiàn)在最強大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機(jī)也被稱為微處理器(Microcontroller) ,是因為它最早被用在工業(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有 CPU 的專用處理器發(fā)展而

10、來。最早的設(shè)計理念是通過將大量外圍設(shè)備和 CPU 集成在一個芯片中,使計算機(jī)系統(tǒng)更小,更容易集成進(jìn)復(fù)雜的而對體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL 的 Z80 是最早按照這種思想設(shè)計出的處理器,從此以后,單片機(jī)和專用處理器的發(fā)展便分道揚鑣。2.3.12.3.1 結(jié)構(gòu)概述結(jié)構(gòu)概述51 系列單片機(jī)可分 51 子系列和 52 子系列。微控制器內(nèi)部結(jié)構(gòu)如圖 2.2 所示:圖 2.2 STC 單片機(jī)結(jié)構(gòu)框圖51 系列單片機(jī)由 8 個大部分組成:(1) 一個 8 位中央處理機(jī) CPU。它由運算部件、控制部件組成,其中包括振蕩電路和時鐘電路,其中主要完成單片機(jī)的運算和控制功能,是單片機(jī)的核心部件,決定了單片

11、機(jī)的主要功能特性。(2) 128 個字節(jié)(52 子系列為 256 字節(jié))的片外數(shù)據(jù)存儲器 RAM。其片外數(shù)據(jù)存儲器的尋址范圍位 64KB,用于存放可讀寫的數(shù)據(jù),如運算的中間結(jié)果或最終結(jié)果等。(3) 4KB(52 子系列為 8KB)的片內(nèi)程序只讀存儲器 ROM 或 EPROM(8031 和 8032無)。其片外尋址范圍為 64KB,主要用于存放已編制的程序,也可以存放一些原始的數(shù)據(jù)電子密碼鎖- 7 -和表格。(4) 18 個(52 子系列為 21 個)特殊功能寄存器 SFR。它用于控制和管理片內(nèi)算術(shù)邏輯部件、并行 I/O、串行 I/O、定時計數(shù)器、中斷系統(tǒng)等功能模塊的工作。(5) 4 個 8 位

12、并行輸入輸出 I/O 接口:P0 口、P1 口、P2 口、P3 口(共 32 線),用于并行輸入或輸出數(shù)據(jù)。(6) 1 個串行 I/O 接口。它可使數(shù)據(jù) 1 位以為串行地在計算機(jī)與外設(shè)之間傳送,可用軟件設(shè)置為 4 種工作方式,用于多處理機(jī)通訊、I/O 擴(kuò)展或全雙工通用異步接收器(UART) 。(7) 2 個(52 子系列為 3 個)16 位定時計數(shù)器。它可用設(shè)置位計數(shù)方式對外部事件進(jìn)行計數(shù),也可以設(shè)置位定時方式進(jìn)行定時。計數(shù)或定時的范圍由軟件來設(shè)定,一旦計數(shù)或定時到則向 CPU 發(fā)出中斷請求,CPU 根據(jù)計數(shù)或定時的結(jié)果對計算機(jī)或外設(shè)進(jìn)行控制。(8) 5 個(52 子系列為 6 個或 7 個)

13、中斷源,可編程為 3 個優(yōu)先級的中斷系統(tǒng),它可用接受外部中斷申請、定時計數(shù)器中斷申請和串行口中斷申請。場合用于實時控制、故障自動處理、計算機(jī)與外設(shè)間傳送數(shù)據(jù)及人機(jī)對話等。第 3 章 系統(tǒng)硬件設(shè)計在系統(tǒng)設(shè)計方案設(shè)計的基礎(chǔ)上,本章為系統(tǒng)硬件部分的設(shè)計,其中包括:LED 顯示模塊、鍵盤模塊、報警模塊等部分。LED 顯示以其鍵盤模塊相當(dāng)于人機(jī)界面部分,將用戶通過在鍵盤操作,并通過 LED 反應(yīng)最終結(jié)果;報警是在密碼輸入錯誤的情況下,或者使在非正常操作的情況下通過 LED 發(fā)光二極管和蜂鳴器報警通知異常;3.1 鍵盤輸入裝置矩陣式鍵盤的結(jié)構(gòu)與工作原理:在鍵盤中按鍵數(shù)量較多時,為了減少 I/O 口的占用,

14、通常將按鍵排列成矩陣形式。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。這樣,一個端口(如 P1 口)就可以構(gòu)成 4*4=16 個按鍵,比之直接將端口線用于鍵盤多出了一倍,而且線數(shù)越多,區(qū)別越明顯,由此可見,在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。 矩陣式鍵盤的按鍵識別方法:電子密碼鎖- 8 -P1.0P1.1P1.2P1.3P1.5P1.4P1.6P1.7圖 3.1 44 矩陣式鍵盤列掃描法又稱為逐行(或行)掃描查詢法,是一種最常用的按鍵掃描方法,介紹過程如下:(1) 判斷鍵盤中有無鍵按下 將全部列線置低電平,然后檢測列線的狀態(tài)。只要有一行的電平為

15、低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與 4 根列線相交叉的 4 個按鍵之中。若所有行線均為高電平,則鍵盤中無鍵按下。(2) 判斷閉合鍵所在的位置 在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將列線置為低電平,即在置某根列線為低電平時,其它線為高電平。在確定某根列線位置為低電平后,再逐行檢測各行線的電平狀態(tài)。若某行為低,則該行線與置為低電平的列線交叉處的按鍵就是閉合的按鍵。3.2 硬件工作接線口P0 口接數(shù)碼管,用來顯示按鍵是否按下,P1 口接鍵盤,P2 口接數(shù)碼管的控制端 com 端。把單片機(jī)系統(tǒng)區(qū)域中的 P0 口用導(dǎo)線連接“數(shù)碼顯示”的任一端口上,把單片機(jī)系

16、統(tǒng)區(qū)域中的 P1 口上接矩陣式鍵盤。3.3 LED 顯示器結(jié)構(gòu)與原理LED 顯示塊是由發(fā)光顯示二極管顯示字段的顯示器件。在單片機(jī)中我們通常用七段LED,這種顯示共有共陰極和共陽極兩種,本設(shè)計是用共陽極,是 LED 顯示塊的發(fā)光二極管與陽極并接,如圖所示K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a10 K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a101KR11KR21KR31KR41KR

17、51KR61KR7K1f2g3e4d5K6c8DP7b9a101KR8PNPPNPPNPPNPPNPPNPPNPPNPVCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7圖 3.2 數(shù)碼管的連接通常的七段顯示塊中共有 8 個發(fā)光二極管,其中 7 個發(fā)光二極管構(gòu)成七筆字形“8” ,一電子密碼鎖- 9 -個發(fā)光二極管構(gòu)成小數(shù)點。七段顯示塊與單片機(jī)接口非常容易。只要將一個 8 位并行輸出與顯示塊的發(fā)光二極管引腳相連即可。8 位并行輸出口輸出不同的字節(jié)數(shù)據(jù)即可獲得不同的數(shù)字或字符,通常將控制發(fā)光二極管的 8 位字節(jié)數(shù)據(jù)稱

18、為段選碼。顯示字符共陽極段選碼顯示字符共陽極段選碼0C0HA88H1F9HB7CH2A4HCC6H3B0HDA1H499HE86H592HF8EH682H7F8H880H990H表 13.4 復(fù)位電路如圖所示為 80C51 型單片機(jī)上電復(fù)位電路。RC 構(gòu)成微分電路,在接電瞬間,產(chǎn)生一個微分脈沖,其寬度若大于 2 個機(jī)器周期,80C51 型單片機(jī)將復(fù)位,為保證微分脈沖寬度足夠大,一般取 10F 電容、8.2K 電阻。圖 3.3 復(fù)位電路3.5 繼電器開關(guān)門裝置電子密碼鎖- 10 -繼電器控制模塊是整個系統(tǒng)的重要部分,用來實現(xiàn)開門關(guān)門的動作。繼電器控制模塊原理電路如圖 3.2 所示:PNP100R

19、11KR2GNDVCCVCCHRS1H-S-DCGNDP3.3yellow圖 3.4 繼電器控制模塊3.6 聲光報警裝置P3.3 和 P3.5 和 P3.4 口分別控制 LED 和蜂鳴器,程序中將 P0.0 和 P0.1 口設(shè)置為同步電平,當(dāng)他們同時高電平時三極管 9012 導(dǎo)通 LED 亮并且蜂鳴器鳴叫報警。聲光報警電路圖如圖 3.3 所示:greenredPNPPNP100R13100R12VCCGNDP3.3P3.5圖 3.5 指示燈模塊第 4 章 系統(tǒng)軟件設(shè)計本章主要介紹系統(tǒng)軟件部分,主程序由 C 語言編寫,簡潔易懂。主程序主要執(zhí)行鍵盤掃描的工作,判斷是否有鍵按下,并判斷執(zhí)行什么動作,

20、其中包括數(shù)字鍵和功能鍵,當(dāng)按電子密碼鎖- 11 -下功能鍵時完成所設(shè)定的功能,數(shù)字鍵用來輸入數(shù)值。4.1 編程工具的介紹C 語言是計算機(jī)中廣泛使用的一種高級語言,在作為單片機(jī)編程語言之前,已經(jīng)應(yīng)用到許多領(lǐng)域。C 語言的功能強大、使用簡單、有豐富的庫函數(shù)、運算速度快、邊場合效率高、可移植性好。本設(shè)計就是利用 C 語音完成的程序編寫,下面對應(yīng)用于單片機(jī)的 C51做簡單的介紹。4.1.14.1.1 C C 語言的主要優(yōu)點語言的主要優(yōu)點C 語言包含了多種高級語言的優(yōu)點,最主要的優(yōu)點是能于匯編語言兼容,可直接操作硬件端口,這是單片機(jī)應(yīng)用所需要的。C 語言是一種結(jié)構(gòu)化的語言,采用函數(shù),循環(huán)語句或條件語句很

21、容易實現(xiàn)代碼模塊化,使用戶很容易實現(xiàn)模塊程序結(jié)構(gòu)。此外其源代碼可讀性較強,容易理解和編程,并且極大的縮短了源文件的長度,可大大縮短編程時間。C語言良好的可移植性可以使相同的功能模塊方便地移植到另一種單片機(jī)上。此外,使用C 語言不要求對指令系統(tǒng)很熟悉,能理解就可以。許多計算機(jī)都支持對 C 語言的應(yīng)用,因而可以方便地在 PC 機(jī)上直接編寫和調(diào)試部分程序。多數(shù)情況,在 PC 機(jī)上調(diào)試正常的代碼段可以直接移植到目標(biāo)單片機(jī)上。這樣可以在沒有硬件的情況下開始編寫和調(diào)試程序。減少在硬件上的調(diào)試,就會加快開發(fā)過程。4.1.24.1.2 C C 語言使用的工具語言使用的工具正如匯編程序是將符號語言翻譯成機(jī)器碼的

22、工具,C 編譯器是將 C 語言源文件翻譯成臨時目標(biāo)文件的軟件工具。目前,很多軟件開發(fā)公司都是把 C 語言用于單片機(jī)的軟件開發(fā),用于 80C51 系列單片機(jī)的 C 語言在 1985 年就已經(jīng)出現(xiàn),稱為 C51 編譯器,通常簡稱為 C51。本設(shè)計所使用的程序的集成開發(fā)環(huán)境是 Keil,該開發(fā)環(huán)境使用簡單,容易上手,為調(diào)試工作提供了很多方便。4.1.3 C51 與 C 語言的主要不同點由于 C 語言最初是為通用計算機(jī)設(shè)計的,在通用計算機(jī)中只有一個程序和數(shù)據(jù)統(tǒng)一尋址的內(nèi)存空間,而在單片機(jī)中,程序保存在 ROM 中,數(shù)據(jù)存放在 RAM 中。標(biāo)準(zhǔn) C 語言并沒有提供對這部分內(nèi)存地址范圍的定義,對于單片機(jī)中

23、大量的特殊功能寄存器也沒有定義,此外,標(biāo)準(zhǔn) C 語言沒有處理單片機(jī)中斷的定義。而 C51 則解決了以上的問題,因此,采用 C51 來編寫程序。4.2 主程序主程序是整個軟件系統(tǒng)的核心部分,具體步驟如下:當(dāng)用戶按下按鈕 open 時,可以輸入密碼。此時,用戶可以在小鍵盤輸入密碼,當(dāng)用戶輸入的密碼與預(yù)設(shè)的密碼相同時,就會在 LED 數(shù)碼管上顯示密碼輸入正確的提示“OPENED,并且綠燈亮,繼電器完成開鎖功能使黃燈亮。如果輸入密碼錯誤,LED 數(shù)碼管上顯示“ERROR” ,并且紅燈亮提示。如果連續(xù)輸入三次,則由蜂鳴報警提示密碼輸入錯誤的信息,紅燈亮,同時鎖定系統(tǒng),顯示“CLOSED” ,限制一些操作

24、。當(dāng)輸入密碼位數(shù)超過六位,進(jìn)行鍵盤鎖定。輸入密碼鍵處理流程圖如下:電子密碼鎖- 12 -輸入密碼處理讀密碼密碼是否正確顯示ERROR報警(紅燈亮)鎖定系統(tǒng)開鎖否否是返回圖4.1 輸入密碼鍵處理流程圖電子密碼鎖- 13 -修改密碼流程圖如圖所示:開始按ALTER鍵修改密碼輸入原密碼密碼是否正確輸入新密碼返回蜂鳴(紅燈亮)否是圖4.2 修改密碼鍵處理流程圖4.3 矩陣式鍵盤由于設(shè)計要求使用矩陣鍵盤,所以本設(shè)計就采用行列式鍵盤,同時也能減少鍵盤與單片機(jī)接口時所占用的 I/O 線的數(shù)目,在按鍵比較多的時候,通常采用這樣方法。每一條水平與垂直線的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結(jié)

25、構(gòu)只需要 N 條行線和 M 條列線,即可組成具有 NM 個按鍵的鍵盤。在這種行列式矩陣鍵盤非鍵盤編碼的單片機(jī)系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段。當(dāng)確認(rèn)有按鍵按下后,下一步就要識別哪一個按鍵按下。對鍵的識別通常有兩種方法:一種是常用的逐行掃描查詢法;另一種是速度較快的線反轉(zhuǎn)法。 44 小鍵盤使用掃描的原理來檢測按鍵是否被按下,以及被按下的是哪一個按鍵。鍵盤掃描的原理是每次送出信號到一列,再利用按鍵信號返回線檢測按鍵是否導(dǎo)通,如果按鍵導(dǎo)通,就表示按鍵已按下,然后就可以知道被按下的是哪一個按鍵。利用這個原理,先將 P1_0P1_3 接到列的位置,再講 P1_4P1_7 接

26、到行的位置。接下來將 P1_0P1_3 作為輸入,并將 P1_4P1_7 作為輸出,這里的矩陣式鍵盤的特點是不需要外接電壓或低信號。具體電路圖如圖 4.4 所示:電子密碼鎖- 15 -P1_4 0 P1_5 0 P1_6 0 P1_7 0 1 P1_0 1 P1_1 1 P1_2 1 P1_3 輸出 輸入 圖 4.2 鍵盤掃描示意圖首先將 P1_7、P1_6、P1_5、P1_4 依次設(shè)為0,即將(P1_7、P1_6、P1_5、P1_4)依次設(shè)為(0111) 、 (1011) 、 (1101) 、 (1110)。用戶按下某個按鍵之后,因為被按下的按鍵會造成導(dǎo)通,所以 P1_0P1_3 中會有一支

27、引腳變成低電平。因此從 P1_0P1_3 讀回數(shù)值時,P1_0P1_3 中會有一個數(shù)值是0,根據(jù)從 P1_0P1_3所讀回的數(shù)值,就可以判斷按下的是哪一個按鍵。按鍵的操作面板共計數(shù)字鍵 10 個,功能鍵 6 個。10 個數(shù)字鍵用來輸入密碼,另外6個功能鍵分別是:ESC、ALTER、SAVE、OPEN、ENTER 和 DEL鍵。如圖 4.5 所示: 7 8 9 ESC 4 5 6 ALTER 1 2 3 SAVE 0 DEL ENTER OPEN 圖 4.3 按鍵操作面板修改密碼時按下 ALTER 鍵,顯示“OLD-CODE”必須先輸入正確的舊密碼,然后顯示-CODE 才可以輸入新修改的密碼。當(dāng)

28、新修改的密碼輸入之后,系統(tǒng)會要求用戶重新輸入新修改的密碼再次確認(rèn),如果兩次輸入的密碼相同,密碼修改成功。其中,ENTER 鍵用來啟動輸入密碼,當(dāng)按下此鍵時輸入密碼。如果密碼輸入正確,則繼電器門開。第 5 章 系統(tǒng)調(diào)試電子密碼鎖- 16 -系統(tǒng)調(diào)試共分三大部分:硬件調(diào)試,軟件調(diào)試和軟硬件聯(lián)機(jī)調(diào)試。系統(tǒng)的調(diào)試包括硬件調(diào)試和軟件調(diào)試,但硬件調(diào)試和軟件調(diào)試并不能完全分開,一些硬件錯誤是在軟件調(diào)試過程中被發(fā)現(xiàn)和糾正的。調(diào)試一般分為單元調(diào)試和整體調(diào)試兩個階段。單元調(diào)試是對單元模塊進(jìn)行單獨的檢查調(diào)試。(1) 萬用表測試。先用萬用表復(fù)核目測中認(rèn)為可以的連線或接點,查看它們通斷狀態(tài)是否與設(shè)計規(guī)定相符。再察看各種

29、電源線與地線之間是否有短路現(xiàn)象,如有則仔細(xì)查處并排除。短路現(xiàn)象一定要在器件安裝及加電查出。如果電源與地之間短路,系統(tǒng)中所有期間或設(shè)備都有可能被毀壞后果十分嚴(yán)重。所以,對電源與地的處理,在整個系統(tǒng)調(diào)試及今后的運行中都要相當(dāng)小心。(2) 加電檢查。當(dāng)給印制板加電時,首先檢查所有插座或器件引腳的電源是否符合要求的電壓值(注意,CPU 插座上不該有大于 5V 的電壓,否則聯(lián)機(jī)時將損壞仿真器) ,接地端電壓知是否接近于零,接固定電平的引腳是否正確。然后在斷電狀態(tài)下將芯片逐個插入印制板上的相應(yīng)插座中,每插入一塊做一遍上述的電壓檢查,特別是檢查電源到地是否短路,這樣就可以確定電源錯誤或與地短路發(fā)生在哪塊芯片

30、上。全部芯片插入印制板后,如均未發(fā)現(xiàn)電源或接地錯誤,將全部芯片取下,把印制板上除芯片外的其它器件逐個焊接上去,并反復(fù)做前面的各電源、電壓檢查,避免因某器件的損壞或失效造成對地短路或其它電源加載錯誤。在對各芯片、器件加電過程中,還要注意觀察芯片是否出現(xiàn)、火花、過熱、變色、冒煙、異味等現(xiàn)象,如出現(xiàn)這些現(xiàn)象,應(yīng)立即斷電,仔細(xì)檢查電源加載等情況,找出產(chǎn)生異味的原因并加以解決。此外,也可以在加電期間,利用給邏輯功能簡單的芯片加載固定輸入電平,利用萬用表測其輸入電平來判斷該芯片的好壞。聯(lián)機(jī)測試一般可檢查出硬件設(shè)計上的邏輯錯誤以及模塊軟件的編寫錯誤。需要注意的是,聯(lián)機(jī)測試要負(fù)責(zé)檢查單元模塊能否實現(xiàn)其預(yù)定的功

31、能指標(biāo),因為有時單元模塊雖然能實現(xiàn)預(yù)定的邏輯功能,但是達(dá)不到預(yù)定的功能指標(biāo)(如測量精度不夠)。這時,亦需重新設(shè)計單元模塊。5.1 硬件調(diào)試5.1.15.1.1 元器件的檢測元器件的檢測眾所周知,一個系統(tǒng)由若干模塊組成,而一個模塊又由于若干元器件組成,所以在設(shè)計系統(tǒng)之前要先檢查所使用的元器件是否能正常工作。可以在面包板上先設(shè)計一個簡單電路對元器件進(jìn)行測試,如果元器件能正常工作再進(jìn)行實驗,這樣可以節(jié)省很多寶貴的時間。下面對這次設(shè)計所用的部分元器件測試作一簡單介紹。(1) LED 數(shù)碼顯示器:直接給液晶顯示器加上電壓,看液晶屏是否被點亮。(2) 蜂鳴器:直接給蜂鳴器加方向正確的電壓,看蜂鳴器是否能正

32、常發(fā)聲。5.1.2 模塊電路的檢測(1) 報警模塊:直接給 P3_3 和 P3_4,P3_5 送低電平,看發(fā)光二極管和蜂鳴器能否正常工作。(2) 矩陣式鍵盤模塊:按下某一個按鍵,用萬用表檢測是否有兩個口導(dǎo)通。(3)顯示模塊:用萬用表檢測,給 COM 端一個高電平,逐個給每個 LED 的 ag 低電平,看是否按預(yù)定要求電量。電子密碼鎖- 17 -5.2 軟件調(diào)試本系統(tǒng)的軟件系統(tǒng)很龐大,用 C 和匯編語言來編寫。單片機(jī)應(yīng)用系統(tǒng)一般都需要開發(fā)系統(tǒng)和開發(fā)軟件來設(shè)計。調(diào)試步驟:(1) 先獨立后聯(lián)機(jī):軟件對被測參數(shù)進(jìn)行加工處理或作某項事務(wù)處理時,往往是與硬件無關(guān)的,這樣就可以獨立進(jìn)行調(diào)試。此時與硬件無關(guān)的

33、程序快調(diào)試就可以與硬件調(diào)試同步進(jìn)行,以提高軟件調(diào)試的速度。當(dāng)與硬件無關(guān)的程序快調(diào)試完成后,可將仿真機(jī)與主機(jī)、用戶系統(tǒng)連接起來,進(jìn)行聯(lián)機(jī)調(diào)試。(2) 先分塊后組合:將用戶程序分成與硬件無關(guān)和依賴于硬件兩大程序快后,程序仍較為龐大的話,常規(guī)的調(diào)試方法是分別對兩類程序快進(jìn)一步采用分模塊調(diào)試,以提高軟件調(diào)試的有效性。各模塊調(diào)試完后,將相互有關(guān)聯(lián)的程序模塊逐塊組合起來加以調(diào)試,以解決在程序模塊連接中可能出現(xiàn)的邏輯錯誤。(3) 先單步后連續(xù):調(diào)試好程序模塊的關(guān)鍵是實現(xiàn)對錯誤的準(zhǔn)確定位,而發(fā)現(xiàn)程序中錯誤的最有效方法是采用單步加斷點運行方式調(diào)試程序。這樣就可以精確定位錯誤所在,就可以做到調(diào)試的快捷和準(zhǔn)確。一般

34、情況下,單步調(diào)試完成后,還要作連續(xù)運行調(diào)試,以防止某些錯誤在單步執(zhí)行的情況下被覆蓋。在系統(tǒng)軟件的調(diào)試過程中,首先將程序分成幾個程序段分別進(jìn)行調(diào)試,對于一些獨立的程序模塊隔離出來分別進(jìn)行調(diào)試。例如對鍵盤及數(shù)碼顯示管部分,進(jìn)行單獨調(diào)試,用單步、斷點和連續(xù)等方法,觀察各數(shù)據(jù)窗口的數(shù)據(jù)是否正常,檢查出程序中出錯的地方并加以糾正。此外,還可以借助仿真軟件來測試軟件的運行情況,在這里我用的是 PROTEUS 仿真軟件,能非常逼真的看到系統(tǒng)的的運行狀況,并能反應(yīng)單片機(jī)各個口高低電平的變化情況。5.3 系統(tǒng)軟硬件聯(lián)機(jī)調(diào)試系統(tǒng)聯(lián)機(jī)調(diào)試是將用戶系統(tǒng)的軟件在其硬件上實際運行,進(jìn)行軟硬件聯(lián)合調(diào)試,從中發(fā)現(xiàn)硬件故障或軟

35、硬件設(shè)計上的錯誤。如果直接將軟硬件連起來調(diào)試,出現(xiàn)了問題就不知道是軟件上還是硬件上的問題。所以在聯(lián)機(jī)調(diào)試之前,一定將軟件和硬件分別調(diào)試好,再進(jìn)行聯(lián)機(jī)調(diào)試。當(dāng)各個部分都經(jīng)過測試后沒有問題,就可以將軟硬件聯(lián)機(jī)進(jìn)行系統(tǒng)調(diào)試,這樣出現(xiàn)的問題就會比較少,同時也能減少調(diào)試的難度。第 6 章 焊接技術(shù)焊接技術(shù)先將準(zhǔn)備好的元件插入印刷電路板規(guī)定好的位置上,在元件與印刷電路板銅箔的連接點上,涂上少許焊劑,待電烙鐵加熱后用烙鐵頭的刃口上些適量的焊錫,上的焊錫多少要根據(jù)焊點的大小來決定。焊接時,要將烙鐵頭的刃口接觸焊點與元件引線,根據(jù)焊點的形狀作一定的移動,使流動的焊錫布滿焊點并滲入被焊物的縫隙,接觸時間大約在 3

36、-5秒左右,然后拿開電烙鐵。拿開電烙鐵的時間,方向和速度,決定了焊接的質(zhì)量與外觀的正確的方法是,在將要離開焊點時,快速的將電烙鐵往回帶一下,后迅速離開焊點,這樣焊出的焊點既光亮,圓滑,又不出毛刺。在焊接時,焊接時間不要太長,免得把元件燙壞,但亦不要太短,造成假焊或虛焊。焊接結(jié)束后,用列子夾住被焊元件適當(dāng)用力拉撥一下,檢查元件是否被焊牢。如果發(fā)現(xiàn)有松動現(xiàn)象,必須重新進(jìn)行焊接。電子密碼鎖- 18 -第 7 章 總 結(jié)7.1 心得體會課程設(shè)計已經(jīng)完成,回想兩周來的努力,真可謂百感交集,受益匪淺。電子密碼鎖不算是非常難的題目,所以,我們在基礎(chǔ)功能的實現(xiàn)上盡量的多加一些附加的功能,使整個系統(tǒng)更加完善。雖

37、然談不上有多復(fù)雜,但也會遇到一些問題,值得欣慰的是通過一遍一遍的檢查、調(diào)試、修改終于使其完成了基本功能。在此過程中,我們學(xué)到了很多書本中永遠(yuǎn)學(xué)不到的知識。這些知識對于以后的學(xué)習(xí)與工作將會有巨大的幫助。心得一心得一:(。(。 。 。的心得體會)。的心得體會) 兩周的實習(xí)雖然很短,但我學(xué)到的知識確實一個學(xué)期的理論學(xué)習(xí)所不能替代的。在實習(xí)期間,我們自己動手完成了軟硬件部分的設(shè)計,連接。在這個過程中,我經(jīng)歷了難易難。剛聽說要課程設(shè)計,準(zhǔn)備選擇設(shè)計題目時,覺得這是一個很難的任務(wù),認(rèn)為我們不可能獨立作出東西來;當(dāng)翻閱大量書籍,準(zhǔn)備定下課題,并找到幾個設(shè)計方案時,又突然覺得沒有想象中那么難,于是,眼高手低,

38、不想做簡單的交通燈,選擇了電子密碼鎖,信心滿滿的認(rèn)為能完成的很好。當(dāng)我們開始動手設(shè)計時,無論是軟件方面還是硬件方面,問題不斷,困難重重。 為了更好的完成設(shè)計,我們翻閱大量書籍,學(xué)習(xí)了每個元器件的引腳,功能等。什么時候需要放大,什么時候片選,應(yīng)該相應(yīng)的加哪些元器件,如何能使顯示器穩(wěn)定等等問題都耗費我們大量時間和精力來解決,但在解決過程中,我們學(xué)到了實際中應(yīng)用的真知識。 通過這次實習(xí),我總結(jié)了以下幾點心得: 1、仔細(xì)研究課題:只有充分了解課題要求,才能做出符合條件的作品。這是設(shè)計的基礎(chǔ)。 2、不懂就問,多問多得:因為之前沒有相應(yīng)的學(xué)習(xí)和訓(xùn)練,所以遇到的不懂得問題特別多,這時如果單靠自己死“鉆” ,

39、效率極低。我周圍有幾個在實驗室的同學(xué),我經(jīng)常讓他們幫我講解一些知識,同時也常常請教老師,聽取他的意見。問題大多能得到有效解決。在問的過程中,也是我的學(xué)習(xí)過程,問的越多,你收獲就越多。 3、建立信心:起初,我們的密碼鎖最大的問題就是顯示問題:管子亮度很暗,只有在較黑的環(huán)境下才能看到。為此,我們采用過:加三極管放大,加 244 電流驅(qū)動,加非門等許多方法,但都不見效,而且好像越弄越糟,自信心受損,情況越來越糟。當(dāng)我們重拾信心,下定決心要把它完成,做好時,經(jīng)過努力問題得到了有效地解決。4、發(fā)散思維:不要被書本上的死知識所限定,在利用所學(xué)到的理論知識的同時,發(fā)散你的思維,活學(xué)活用才能真正掌握這門課程。

40、 通過此次實習(xí),使我對單片機(jī)及相關(guān)知識有了更進(jìn)一步的了解,也使我的動手能力提高很多。雖然只有兩周,但學(xué)到的東西卻讓我受益終身。心得二:(。心得二:(。 。 。的心得)。的心得)經(jīng)過這次課程設(shè)計,讓我明白了理論學(xué)習(xí)與實踐實現(xiàn)之間的巨大差異,要想實現(xiàn)具體的內(nèi)容就必須以正確的理論知識為指導(dǎo),只具備純碎的理論知識也是不夠的,因為在實踐實現(xiàn)的過程中的不定干擾性因素太多,實踐起來出現(xiàn)了不少的問題,在提出問題和解決問題的過程中,給我的學(xué)習(xí)和生活都帶來了很深刻的影響,現(xiàn)歸納如下:電子密碼鎖- 19 -(1) 要仔細(xì)分析題目確定設(shè)計方案。在分析題目的過程中一定要多查資料多聽取老師同學(xué)的意見,盡量的少走彎路。對所

41、選的題目得有大概的了解,在這樣一個基礎(chǔ)上,綜合已有的資料來更透徹的分析題目。然后再在此基礎(chǔ)上提出適合該題目的設(shè)計方案。俗話說有的放矢,設(shè)計方案對于設(shè)計是至關(guān)重要的,合理的方案不僅給以后的設(shè)計帶來很大的方便,也能使結(jié)果更好一點。(2) 要注意查詢資料的方式。信息時代資料滿天飛,上網(wǎng)查資料是必不可少的,但是到圖書館去也有其可取之處的。總之,不管通過哪種方式查的資料都是有利用價值的,要一一記錄下來以備后用,這也是整個設(shè)計的基礎(chǔ)。(3) 要注意學(xué)習(xí)能力的提高。遇到了問題并且分析了問題,然后就是如何解決問題了,這個時候?qū)W習(xí)能力顯得特別的重要。如何通過自己的努力把不明白的東西搞明白,這也是學(xué)習(xí)能力的體現(xiàn),

42、從中也體味到了學(xué)習(xí)的樂趣。(4) 要多動手。很多事情想起來是一回事真正做起來就并不是那么簡單。隨著設(shè)計的逐步進(jìn)行,諸多問題也就暴露了出來,這點我深有體會。所以在平時就應(yīng)該注意培養(yǎng)自己的動手能力,實踐出真知。(5) 要勤學(xué)好問。敢于請教,樂于助人。要多向老師、同學(xué)請教,同時也要樂于幫助別人,互相探討,互相學(xué)習(xí),這樣才能很快的進(jìn)步。以上就是我的一些心得,在實際動手的過程中總比想象的要困難的多。在設(shè)計過程中,我通過查閱大量有關(guān)資料,向老師請教,與同學(xué)互相交流,使自己學(xué)到了不少知識,也收獲了很多,充分體會到了在學(xué)習(xí)過程的艱難和成功的喜悅。在課程設(shè)計過程中我學(xué)到了許多東西,也培養(yǎng)了我獨立工作的能力,樹立

43、了信心,這也對今后的學(xué)習(xí)、工作、生活有重要的影響。通過這次的課程設(shè)計不僅使我對單片機(jī)有了進(jìn)一步的理解和學(xué)習(xí),也使我感到還有很大的不足。當(dāng)然,本次課設(shè)還存在一些缺點,所設(shè)計的內(nèi)容也還存在一些不足,還懇請老師給與批評和指正。最后,再次感謝老師不辭辛苦的精心指導(dǎo),感謝我們組員之間的相互協(xié)作,相互幫助。心得三:(。心得三:(。 。 。的心得)。的心得)今天我們完成并提前做好了自選題目的設(shè)計,本次單片機(jī)課程設(shè)計的課題是 44 鍵盤及 8 位數(shù)碼管顯示構(gòu)成的電子密碼鎖的實現(xiàn)與運用。通過一周的努力,基本達(dá)到了預(yù)期的功能,密碼的輸入、刪除,密碼的保存、改寫,錯誤報警、自鎖等。 本次設(shè)計我們?nèi)唤M員一起計劃、談

44、論、實踐,但由于本人基礎(chǔ)知識掌握的不夠牢固,在設(shè)計時發(fā)揮的作用有限,但我抱著學(xué)習(xí)的態(tài)度積極參與,從中也學(xué)習(xí)到了很多理論與實踐的知識,比如 LED 數(shù)碼管如何通過 MCS-51 單片機(jī)實現(xiàn)控制、電焊時應(yīng)該注意的電子密碼鎖- 20 -常識、元器件組裝時如何合理布局等等 當(dāng)然設(shè)計過程中也難免遇到各種各樣的問題,但有老師的耐心講解與幫助,基本能得以解決。在設(shè)計時我們相應(yīng)遇到了硬件軟件等問題,比如插槽的選擇會影響數(shù)碼管顯示的穩(wěn)定性,LED 共陰共陽選擇相應(yīng)的問題,程序的輸入與存儲,還有其他的一些問題。我們組設(shè)計的密碼鎖在顯示上遇到了問題,數(shù)碼管顯示亮度不夠,在老師的指導(dǎo)下經(jīng)過一系列改進(jìn)終于達(dá)到了預(yù)期的效

45、果,并且加入了一些擴(kuò)展功能,有密碼位數(shù)鎖定、密碼輸入保密措施、還有老師建議的開鎖控制脈沖改進(jìn)。 經(jīng)過這些設(shè)計與改進(jìn),我們也認(rèn)識到了無論是在生活還是工作中遇到問題是難免的,關(guān)鍵是如何從解決問題的過程中提高知識儲備與排除問題的能力,這些都是我們今后學(xué)習(xí)工作不可或缺的,并且我在設(shè)計的過程中認(rèn)識到自己的不足,好多知識需要扎實的基礎(chǔ)才能更好的運用,實踐是檢驗真理的唯一方法,多動手做,哪怕是從點亮一只指示燈開始,也要動手去做,否則就會永遠(yuǎn)停留在書本上。同時,今后也要努力學(xué)習(xí)掌握專業(yè)知識,方便今后工作與學(xué)習(xí)。7.2 系統(tǒng)存在的問題和改進(jìn)方案本系統(tǒng)的缺陷有:(1) 系統(tǒng)模塊直接由排線連接,存在接觸不良的現(xiàn)象,

46、使 LED 有時產(chǎn)生亂碼現(xiàn)象。解決方案:將模塊之間焊接起來,使系統(tǒng)更加穩(wěn)定。(2) 本次系統(tǒng)電路板均由手工焊接而成,故對整個系統(tǒng)的穩(wěn)定性有著很大的考驗。(3)LED 數(shù)碼管有功耗大、體積大,顯示內(nèi)容單調(diào)的缺點。解決方法:LCD 液晶屏顯示模塊與數(shù)碼管相比,有功耗小、體積小、顯示內(nèi)容豐富、畫面美觀、超薄輕巧、使用方便等特點。7.3 設(shè)計中遇到的問題和解決方法設(shè)計中遇到的問題: 數(shù)碼管顯示不完全解決方法:顯示不完全的原因是硬件焊接存在使其不穩(wěn)定,由于我們之前的焊接方法不理想,本身存在不穩(wěn)定問題,為此,我們重新焊了數(shù)碼顯示部分,在數(shù)碼管底部采用芯片底座。因為芯片底座內(nèi)部有彈簧,會增強管子連接部分的穩(wěn)

47、定度。 數(shù)碼管的亮度不夠,很暗解決方法:我們嘗試過:加電流驅(qū)動器 244,加三極管,但由于一起驅(qū)動 8 個共陰極數(shù)碼管所需電流太大,仍不見效;最終我們選擇了共陽極的 LED 數(shù)碼管,并修改了相應(yīng)程序,亮度得以完善。 蜂鳴器的響聲非常小 解決方法:將蜂鳴器所接電阻換為較小阻值的電阻。參考文獻(xiàn)1 晁陽. 單片機(jī) MCS-51 原理及應(yīng)用開發(fā)教程M.清華大學(xué)出版社,2007.102 蔡朝洋. 單片機(jī)控制實習(xí)與專題制作M.北京:北京航空航天大學(xué)出版社,2006.3 周立功. 增強型 80C51 單片機(jī)速成與實踐M.北京:北京航空航天大學(xué)出版社,2003.4惠仇. 手把手教你 51 單片機(jī) M.北京:電

48、子工業(yè)出版社,2009.15 閻石. 數(shù)字電子技術(shù)基礎(chǔ)M.北京:高等教育出版社,2006.5. 電子密碼鎖- 21 -附錄一:系統(tǒng)電路總圖電子密碼鎖- 22 -電子密碼鎖- 23 -K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a10 K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a10K1f2g3e4d5K6c8DP7b9a101KR11KR21KR31KR41KR51KR61KR7K1f2g3e4d5K6c8DP7b9a101KR8

49、PNPPNPPNPPNPPNPPNPPNPPNPVCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P1.0P1.1P1.2P1.3P1.5P1.4P1.6P1.7PNP100R11KR2GNDVCCVCCHRS1H-S-DCGNDP3.3100R11PNPSpeakerGNDVCCP3.4greenredPNPPNP100R13100R12VCCGNDP3.3P3.5P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7GNDVCCP2.

50、0P2.1P2.2P2.3P2.4P2.5P2.6P2.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7STC89C52RCVCCGNDATMLU836VCCWCSCLSDAE0E1E2VSSGNDVCCGND1KR141KR15VCCVCCP3.0P3.1yellow附錄二: 元器件清單:元件清單元件名元件數(shù)量89C52RC 單片機(jī)一個共陽極 LED 數(shù)碼管八個按鍵開關(guān)十六個9012 三極管八個1K 電阻八個40 腳芯片底座兩個ATMLU836 芯片一個100 歐電阻四個個9013 三極管一個3906 三極管三個繼電器一個蜂鳴器一個發(fā)光二極管三個排針若干導(dǎo)線若干焊接電路板四

51、塊10K 電阻兩個電池盒一個排線若干八腳芯片底座一個附錄三:軟件程序電子密碼鎖- 24 -#includeintrins.h#includereg52.h#includetop.h#includekeyscan.h#includeleddisp.h#includedydisp.h#includetest.h/uchar temp18,temp28;void main () num=16; su=1; start:hel();loop: cddisp(4); dydisp(); if(esc=1) esc=0;count=0;goto start; num1=next(); while(num1

52、) if(esc=1) esc=0;count=0;goto start; j=chang(); if(j=1) ok=0; su=0;delay(500);su=1; ok=1;break; while(!num1) if(esc=1) if(num2=2) while(1) disp(CLOSED,6); 電子密碼鎖- 25 - er=1; esc=0; num2+; break; goto loop;/*-INTRINS.HIntrinsic functions for C51.Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil S

53、oftware, Inc.All rights reserved.-*/#ifndef _INTRINS_H_#define _INTRINS_H_extern void _nop_ (void);extern bit _testbit_ (bit);extern unsigned char _cror_ (unsigned char, unsigned char);extern unsigned int _iror_ (unsigned int, unsigned char);extern unsigned long _lror_ (unsigned long, unsigned char)

54、;extern unsigned char _crol_ (unsigned char, unsigned char);extern unsigned int _irol_ (unsigned int, unsigned char);extern unsigned long _lrol_ (unsigned long, unsigned char);extern unsigned char _chkfloat_(float);extern void _push_ (unsigned char _sfr);extern void _pop_ (unsigned char _sfr);#endif

55、/*-REG52.HHeader file for generic 80C52 and 80C32 microcontroller.Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.-*/#ifndef _REG52_H_#define _REG52_H_/* BYTE Registers */電子密碼鎖- 26 -sfr P0 = 0 x80;sfr P1 = 0 x90;sfr P2 = 0 xA0;sfr P3 = 0 xB0;sfr PSW = 0 xD0;sf

56、r ACC = 0 xE0;sfr B = 0 xF0;sfr SP = 0 x81;sfr DPL = 0 x82;sfr DPH = 0 x83;sfr PCON = 0 x87;sfr TCON = 0 x88;sfr TMOD = 0 x89;sfr TL0 = 0 x8A;sfr TL1 = 0 x8B;sfr TH0 = 0 x8C;sfr TH1 = 0 x8D;sfr IE = 0 xA8;sfr IP = 0 xB8;sfr SCON = 0 x98;sfr SBUF = 0 x99;/* 8052 Extensions */sfr T2CON = 0 xC8;sfr RCA

57、P2L = 0 xCA;sfr RCAP2H = 0 xCB;sfr TL2 = 0 xCC;sfr TH2 = 0 xCD;/* BIT Registers */* PSW */sbit CY = PSW7;sbit AC = PSW6;sbit F0 = PSW5;sbit RS1 = PSW4;sbit RS0 = PSW3;sbit OV = PSW2;sbit P = PSW0; /8052 only/* TCON */sbit TF1 = TCON7;sbit TR1 = TCON6;sbit TF0 = TCON5;sbit TR0 = TCON4;電子密碼鎖- 27 -sbit

58、 IE1 = TCON3;sbit IT1 = TCON2;sbit IE0 = TCON1;sbit IT0 = TCON0;/* IE */sbit EA = IE7;sbit ET2 = IE5; /8052 onlysbit ES = IE4;sbit ET1 = IE3;sbit EX1 = IE2;sbit ET0 = IE1;sbit EX0 = IE0;/* IP */sbit PT2 = IP5;sbit PS = IP4;sbit PT1 = IP3;sbit PX1 = IP2;sbit PT0 = IP1;sbit PX0 = IP0;/* P3 */sbit RD =

59、 P37;sbit WR = P36;sbit T1 = P35;sbit T0 = P34;sbit INT1 = P33;sbit INT0 = P32;sbit TXD = P31;sbit RXD = P30;/* SCON */sbit SM0 = SCON7;sbit SM1 = SCON6;sbit SM2 = SCON5;sbit REN = SCON4;sbit TB8 = SCON3;sbit RB8 = SCON2;sbit TI = SCON1;sbit RI = SCON0;/* P1 */sbit T2EX = P11; / 8052 onlysbit T2 = P

60、10; / 8052 only電子密碼鎖- 28 - /* T2CON */sbit TF2 = T2CON7;sbit EXF2 = T2CON6;sbit RCLK = T2CON5;sbit TCLK = T2CON4;sbit EXEN2 = T2CON3;sbit TR2 = T2CON2;sbit C_T2 = T2CON1;sbit CP_RL2 = T2CON0;#endif#ifndef _top_H_#define _top_H_#include#include#define uint unsigned int#define uchar unsigned charsbit ok=P33;sbit er=P35;sbit su=P34;uchar code CO

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論