【正文】
供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位信號。 通常 ,電源穩(wěn)定后還要經(jīng) 過 一定的延時才撤銷復位信號,以防電源開關(guān)或電源插頭分 合過程 中引起抖動而影響復位。 復位電路通常采用上電自動復位和按鈕復位兩種方式。 最簡單的上電復位電路如上圖所示。上電自動復位是通過外部復位電路的電容充電來實現(xiàn)的。只要 Vcc 的上升時間不超過 1ms,就可以實現(xiàn)自動上電復位。當時鐘頻率選用 6MHz時, C取 22uF,R 取 1KΩ 【 10】 。 系統(tǒng)電源 該設計中的電源部分采用了 7805 三端穩(wěn)壓器作為穩(wěn)壓電源使用。 7805 是三 端穩(wěn)壓器,雖然也是三條腿,但不是三極管 。 它的管腳 1 是輸入端,管腳 2 是公用端,管腳 3 是輸出端 。 7805 輸入端最高輸入電壓為 35V, 輸出正 5V,最大 輸出電流為 。 輸入輸出之間的電壓差不可小于 2V,最好在 5V左右。 7805 運用其器件內(nèi)部電路來實現(xiàn)過壓保護、過流保護、過熱保護 。 這使它的性能很穩(wěn)定。能夠?qū)崿F(xiàn) 1A以上的輸出電流 。 器件具有良好的溫度系數(shù) 。 本產(chǎn)品有多種電壓輸出值 5V~24V,因此產(chǎn)品的應用范圍很廣泛 。 可以運用本地調(diào)節(jié)來消除噪聲影響,解決了與單點調(diào)節(jié)相關(guān)的分散問題 。 輸出電壓誤差精度分為 177。3% 和 177。5% 。其原理圖如圖 33所示。 1 2 3 4 5 6ABCD654321DCBAT i t l eN u m b e r R e v i s i o nS i z eBD a t e : 1 0 J u n 2 0 0 0 S h e e t o f F i l e : C : \ P r o g r a m F i l e s \ D e s i g n E x p l o r e r 9 9 S E \ L i b r a r y \ S c h \ B A 4 6 A 6 ~ 1 . D D BD r a w n B y :1 32V VG N DIN O U TU2 7 8 L 0 512J1C O N 2C5+ C41 0 uC6+ C71 0 uV C C 圖 33 78L05原理圖 18 第四章 軟件程序設計 軟件設計思路 電子密碼鎖工作的主 要過程是 LED 數(shù)碼管提示開始輸入密碼,通過鍵盤輸入密碼,同時 LED顯示密碼輸入情況,按下確認鍵后判斷密碼的正確性,作出開鎖或報警處理。當輸入密碼連續(xù)輸入錯誤 3次時,鎖定鍵盤 10min。 程序?qū)⒎譃橹鞒绦蚝椭袛喾兆映绦?。主程序負責鍵盤鍵值讀取,密碼判斷和開鎖或報警處理。中斷服務子程序主要是負責 LED 數(shù)碼管顯示。 根據(jù)程序功能,程序主要分為以下幾部分: 1)鍵盤鍵值讀取程序 鍵盤鍵值讀取程序包括鍵盤掃描、消除抖動、鍵譯碼等內(nèi)容。按鍵的識別主要有兩種方法:行反轉(zhuǎn)法和行掃描法。因為鍵盤為機械開關(guān),容易引入抖動。為 了消除抖動干擾,在程序中要加入消除抖動的部分 ( HD7279A 內(nèi)含去抖動電路) 。 2)LED 數(shù)碼顯示程序 LED 數(shù)碼顯示器是一種應用很普遍的顯示器。程序主要負責把要顯示的數(shù)字或字母對應的顯示碼送到相應的 LED 顯示管。有多位需要同時顯示時,可以采用動態(tài)刷新的方法,就可以得到穩(wěn)定的輸出。內(nèi)部定時器模擬 SPI 總線,定時時間到時請求中斷服務,進入中斷服務程序輸出 1位顯示數(shù)據(jù)。循環(huán)顯示 6個數(shù)碼管,可以實現(xiàn)穩(wěn)定的數(shù)字顯示。中斷服務程序只負責數(shù)據(jù)的輸出顯示,主程序根據(jù)所處的狀態(tài)修正顯示數(shù)據(jù)。 3)密碼判斷程序 密碼判斷程序 放在主程序中,有按鍵時讀取,當確定鍵按下時作出判斷。在程序中設置 6字節(jié)的空間存放設定的密碼和 6 字節(jié)存放鍵盤輸入的數(shù)據(jù)。根據(jù)讀取的鍵盤數(shù)據(jù)和預先設定的密碼逐位比較就可以判斷輸入密碼的正確性。 4)開鎖和報警程序 通過仿 SPI總線時序來完成對 HD7279 的控制,通過中斷來識別按鍵, 相應位的輸出數(shù)據(jù)然后延時一段時間就可以控制發(fā)光二極管的亮滅和蜂鳴器的鳴叫。 主 程序流程圖 主程序流程圖見 圖 41 所示 19 圖 41 主程序 流程圖 軟件工具及其說 明 Keil C Keil uVision2 是美國 Keil Software 公司出品的 51 系列兼容單片機 C 語言軟件開發(fā)系統(tǒng),使用接近于傳統(tǒng) c語言的語法來開發(fā),與匯編相比, C 語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用 ,而且大大的提高了工作效率和項目開發(fā)周期 ,他還能嵌入?yún)R編,您可以在關(guān)鍵的位置嵌入,使程序達到接近于匯編的工作效率。Keil C51 軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全 Windows 界面, 運行開始 初始化 調(diào)用顯示 有鍵按下? 啟動定時 識別按鍵 全部按完 超時? 比較密碼 開鎖 開始 超過 3次? 鎖定 Y N Y N Y N Y N 20 Keil 軟件需要 Pentium 或以上 的 CPU, 16MB 或更多 RAM、 20M 以上空閑的硬盤空間、 WIN9NT、 WIN20 WINXP 等操作系統(tǒng)。 C51 是針對 8051 系列單片機開發(fā)的高級語言。它與一般的標準 C 語言基本一致,但根據(jù) 8051 單片機的硬件特點作了少量的擴展和重新定義。例如: C51支持位變量, printf函數(shù)由 串行口輸出而不是屏幕以及不同的廠家的單片機為描述其硬件的差異需要使用特定的頭文件等。 C51 主要有以下幾個主要特點: ? 語言簡潔、緊湊、使用方便靈活 ? 運算符極其豐富 ? 生成的目標代碼質(zhì)量高,程序執(zhí)行效率高(與匯編相比) ? 可移植性好(與匯編語言相比 ) ? 可以直接操作硬件 Protel 99 SE 隨著計算機技術(shù)的發(fā)展,計算機軟件在電路設計中的應用越來越廣泛, OrCad, Protel等都是人們熟悉的常用 EDA 軟件。 Protel 99 SE 是 Protel 公司推出的最新版本,應用于電路原理圖設計、電路板設計等,他基于 Windows 環(huán)境,功能強大,人機界面友好,能讓人們在具有最完整的功能環(huán)境下,提升設計上的品質(zhì)和效率。 用 Protel 99 SE 進行電路設計的基本步驟 : (1) 路原理圖設計的步驟 電路原理圖的設計是整個電路設計的基礎(chǔ),因此電路 原理圖要設計好,以免影響后面的設計工作。電路原理圖的設計一般有如下步驟: (a) 置原理圖設計環(huán)境; (b) 置元件; (c) 理圖布線; (d) 輯和調(diào)整; (e) 查原理圖; (f) 成網(wǎng)絡表。 (2) 電路板設計的步驟 : 印刷電路板設計是從電路原理圖變成一個具體產(chǎn)品的必經(jīng)之路 ,因此 ,印刷電路板設計是電路設計中最重要、最關(guān)鍵的一步。通常,印刷電路板設計的具體步驟如下: (a)規(guī)劃電路板 (b)設置參數(shù) (c)裝入網(wǎng)格表 (d)元器件布局 (e)自動布線 (f)手工調(diào)整 隨 電子工業(yè)的飛 速發(fā)展,電路設計越來越復雜,手工設計越來越難以適應形勢發(fā)展的需要, Protel 99 SE 以其強大的功能、快捷實用的操作界面及良好的開放性,為設計者提 21 供了現(xiàn)代電子設計手段,使設計者能快捷、準確地設計出滿意的電路原理圖和印刷電路板,不愧是從事電路設計的一個良好的工具。 22 第五章 軟硬件調(diào)試 硬件調(diào)試部分 在設計開始的時候選擇單片機 P89C51,后來的實施的過程中最終選用了 AT89C51 的單片機。由于 51系列的單片機具有通用性好,兼容性強的 特點,這里的替換并沒有給設計帶來太多的不便,因此這樣的選擇是可行的。所以這里不再對 AT89C51 作詳細的介紹了。 電路通電前的檢查 (1) 首 先是焊接的順序問題。當初板子做好以后,我一口氣就把所有的元件焊上去了,這樣對于沒有調(diào)試過的板子,就很難找到 錯誤的 原因。所以焊接的順序很重要,應該是按功能劃分的器件進行焊接,順序是功能部件的焊接 調(diào)試 (OK)另一功能部件的焊接,這樣容易找到問題的所在。 其次要注意的就是板子的整體 布線,我在整個設計的過程中,由于沒有經(jīng)驗,加上以前也從來沒有接觸過直接焊板子 ,所以沒有太多的考慮到布線的問題,從而導致布線很亂,沒有太多的規(guī)律,這樣極其容易造成短路。后來在老師的指導下,明白了布線的小技巧:盡量走直線,能橫著走的就不要選擇斜著走,這樣在調(diào)試的時候就很容易找到錯誤,而且不容易短路。 (2) 如果在調(diào)試 過程中 按功能劃分的器件上出現(xiàn)問題,可以按以下步驟進行: (a)檢查原理圖連接是否正確 (b)檢查原理圖與 實際連接的圖 是否一致 (c)檢查原理圖與器件 上 的各個 引腳是否一致 (d)用萬用表檢查是否有虛焊,引腳短路現(xiàn)象 (e)查詢器件的 DATASHEET,分析一下時序是否一致, 同 時分析一下命令字是否正確 (f)有條件的可以用示波器。 (3) 多觀察,多思考。 在扳子焊接完成的時候先不要急著進入調(diào)試的步驟,先對板子進行全面的檢查,檢查有沒有短路的線,有的話及時的改正過來,否則到了調(diào)試的時候才發(fā)現(xiàn)的話會很麻煩的。 (4) 有可能的情況下,最好焊兩塊板子以上,這樣才好有個比較,硬件上很小的問題有很多時候是很難發(fā)現(xiàn)的。 但是我的設計由于時間有限就沒有進行這一步。 (5) 軟件的調(diào)試要和硬件配合進行,往往問題可能不是硬件上的。 電路通電觀察 在電路連接正確的情況下接通電源。注意 ,在接通電源后不要急于測量,首先要觀察整個電路有無異?,F(xiàn)象發(fā)生(包括有無冒煙,是否有異常氣味,是否有異聲,芯片是否發(fā)燙,電源是否有短路或開路等現(xiàn)象)。如果出現(xiàn)異常,應該立即關(guān)掉電源,待故障排除后方可重新通電。 功能模塊調(diào)試 23 根據(jù)各個模塊的功能,對其進行調(diào)試。這樣可以把前面調(diào)試好的單元電路的輸出信號作為下一級的輸入信號。如應該先調(diào)試單片機的最小系統(tǒng)。然后再調(diào)試按鍵模塊和顯示模塊。 軟件調(diào)試部分 在整個的調(diào)試過程中,軟件的調(diào)試要和硬件配合進行,當出現(xiàn)問題的時候,不一定是硬件上的,往往是程序出 現(xiàn)了問題。 整個的軟硬件的實現(xiàn)過程是這樣的:首先要產(chǎn)生 HEX文件,然后用編程器將生成好的 HEX 文件燒到單片機的 ROM 里 ,最后就可以根據(jù)你要實現(xiàn)的具體功能進行相應的調(diào)試。 在該設計中,軟件部分的主要工作就是通過中斷實現(xiàn)鍵盤數(shù)據(jù)的讀取、通過延時子程序?qū)崿F(xiàn)定時和計次功能。 通過中斷實現(xiàn)鍵盤數(shù)據(jù)的讀?。? void HD_Key_ISR() interrupt 0 //外部中斷 0 函數(shù) (按鍵中斷 ) {EA=0。//開中斷 send_byte(0x15)。 //讀鍵盤 KeyValue=receive_byte()。 //取得鍵值 while(!key)。 //等待按鍵結(jié)束 Int_Flag=1。 EA=1。 //關(guān)中斷 } 延時子程序: void delay1ms() { TMOD=0x01。// 設置定時器 0的 工作方式 為 0 TH0=0xdb。//給計數(shù)器設定所需的初值 TL0=0xff。 TR0=1。//定時器 0 的運行控制器,置 1 為啟動計數(shù),置 0 為停止計數(shù) } 下面就可以通過 void delay1ms()實現(xiàn)具體的時間的延時: 延時十分鐘的子程序: void delay_10min() { int i,j。 for(j=10。j0。j) for(i=60000。i0。i) { delay1ms()。 24 } } 在整個的程序設計過程中起到重要的作用的是 HD7279A,它的很多指令都可以直接拿過來用,而不需要作太多的改動,很方便。 25 結(jié) 論 由于 51 系列的單片機具有通用性好,兼容性強等特點,本應用中所用的芯片還可以用同類的其它芯片代替,這樣使得密碼鎖的設計更加靈活。且單片機的指令簡單易學,因此開發(fā)周期可以很短。 電子密碼鎖作為一種新型的鎖具 ,越來越受到人們的青睞。本文所實現(xiàn)的這種密碼鎖 ,安全可靠 ,絕對無誤開鎖的 可能 ,且整個系統(tǒng)成本低廉 ,性能穩(wěn)定 ,具有一定的發(fā)展前景。 該系統(tǒng)具有軟硬件設計簡單 , 易于開發(fā) , 成本較低 , 安全可靠 , 操作方便等特點 , 可應用于住宅、辦公室的保險箱及檔案柜等需要防盜的場所 , 有一定的實用性。 實際證明:本控制方案硬件簡單,工作可靠,具有很好的推廣價值。 26 參考文獻 [1] 董繼成 .一種新型安全的單片機密碼鎖 [J].電子技術(shù) ,2020,5860. [2] 包健 , 嚴平 .智能鍵盤和 LED驅(qū)動接口芯片的設計 [J].微計算機信息 ,1999,7677