




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-. z 南 京 工 程 學 院畢業(yè)設計說明書(論文)作 者:毛仲義 學 號: 202120621 院 系:計算機工程學院 專 業(yè):電子信息科學與技術 題 目:基于單片機的指紋密碼鎖設計 指導者:勤講師 評閱者:田麗鴻 副教授 2021年5 月 南 京-. z畢業(yè)設計說明書論文中文摘要指紋密碼鎖是基于單片機開發(fā)的一個利用指紋識別技術完成解鎖功能的智能系統(tǒng)。本課題的主要任務是研究指紋錄入、特征信息提取、生成模板并存儲的原理,同時指紋傳感器將實時采集到的信息和單片機進展交換。單片機在邏輯上控制指紋相關操作的全過程。本系統(tǒng)在Keil4環(huán)境下利用51 C成功編寫了一個支持指紋和鍵盤解鎖的軟件系統(tǒng)。該系
2、統(tǒng)中包括了指紋檢測、指紋采集,模板匹配、鍵盤掃描、密碼輸入以及液晶顯示等功能。當指紋模板匹配成功或密碼輸入正確則啟動開鎖電路,反之,密碼輸入錯誤超過3次則開啟報警電路。完整模擬了現(xiàn)實開鎖的真實過程。關鍵詞 指紋鎖鍵盤掃描液晶顯示報警電路-. z畢業(yè)設計說明書論文外文摘要Title Fingerprint Lock Based on MicrocontronllersAbstractFingerprint Lock is an intelligent system developed basing on microcontroller which uses fingerprint identif
3、ication technology to plete the unlock function. The main task of the project is to study the fingerprint input, feature information e*traction, principle of template generation and storage. Meanwhile, the fingerprint sensor change the real-time collection of information with microcontrollers. MCU c
4、ontrols the whole process of fingerprint related operations in logic.The system in Keil 4 environment uses 51C successfully written fingerprint and unlocked the keyboard supporting software system. The system has lots of functions including fingerprint detection, fingerprint acquisition, template ma
5、tching, keyboard scan, password entering and liquid crystal display. When the fingerprint template matching is successful or the password is entered correctly, the lock circuit starts. On the contrary, entering the wrong password more than three times will open the alarm circuit, which simulates the
6、 real reality unlocking process pletelyKeywordsFingerprint Lock, Keyboard Scan, Liquid Crystal Display, Alarm Circuit-. z目錄TOC o 1-2 h u HYPERLINK l _Toc2420 目錄2 HYPERLINK l _Toc12273 第一章 概述 PAGEREF _Toc12273 1 HYPERLINK l _Toc9006 1.1 系統(tǒng)設計目的及意義 PAGEREF _Toc9006 1 HYPERLINK l _Toc7185 1.2 指紋識別原理及其前景
7、 PAGEREF _Toc7185 1 HYPERLINK l _Toc25993 1.3 系統(tǒng)設計流程 PAGEREF _Toc25993 2 HYPERLINK l _Toc10477 第二章 硬件系統(tǒng)設計 PAGEREF _Toc10477 4 HYPERLINK l _Toc2764 2.1 硬件系統(tǒng)整體設計 PAGEREF _Toc2764 4 HYPERLINK l _Toc32445 2.2 單片機最小系統(tǒng)設計 PAGEREF _Toc32445 7 HYPERLINK l _Toc15667 2.3 液晶顯示模塊-FYD12864-0402B PAGEREF _Toc15667
8、 11 HYPERLINK l _Toc15910 2.4 按鍵控制局部電路 PAGEREF _Toc15910 15 HYPERLINK l _Toc9406 2.5 指紋模塊 PAGEREF _Toc9406 19 HYPERLINK l _Toc6480 2.6 存儲芯片AT24C02 PAGEREF _Toc6480 23 HYPERLINK l _Toc21623 2.7 繼電器模塊 PAGEREF _Toc21623 27 HYPERLINK l _Toc25245 2.8 報警電路 PAGEREF _Toc25245 28 HYPERLINK l _Toc6862 第三章 系統(tǒng)軟
9、件的設計 PAGEREF _Toc6862 30 HYPERLINK l _Toc9729 3.1 主程序流程圖 PAGEREF _Toc9729 30 HYPERLINK l _Toc5635 3.2鍵盤檢測掃描程序 PAGEREF _Toc5635 31 HYPERLINK l _Toc19033 3.3 LCD12864顯示流程圖 PAGEREF _Toc19033 32 HYPERLINK l _Toc13494 3.4指紋模塊通信流程圖 PAGEREF _Toc13494 33 HYPERLINK l _Toc25133 3.5 定時器的設置 PAGEREF _Toc25133 33
10、 HYPERLINK l _Toc19474 3.6 串口初始化 PAGEREF _Toc19474 35 HYPERLINK l _Toc20410 3.7 按鍵掃描程序 PAGEREF _Toc20410 37 HYPERLINK l _Toc30763 3.8 主程序 PAGEREF _Toc30763 38 HYPERLINK l _Toc15945 第四章 系統(tǒng)調試 PAGEREF _Toc15945 40 HYPERLINK l _Toc24720 4.1 功能模塊的測試 PAGEREF _Toc24720 40 HYPERLINK l _Toc17163 4.2 程序的燒寫 PA
11、GEREF _Toc17163 43 HYPERLINK l _Toc2586 4.3 蜂鳴器、繼電器調試 PAGEREF _Toc2586 44 HYPERLINK l _Toc18970 4.4 液晶的調試 PAGEREF _Toc18970 44-. z HYPERLINK l _Toc26750 4.5 按鍵的調試 PAGEREF _Toc26750 46 HYPERLINK l _Toc22614 第五章 總結與展望 PAGEREF _Toc22614 47 HYPERLINK l _Toc13618 參考文獻 PAGEREF _Toc13618 48 HYPERLINK l _To
12、c12584 致 PAGEREF _Toc12584 49-. z第一章 概述1.1 系統(tǒng)設計目的及意義在日常的生活和工作中,住宅、物業(yè)、單位、銀行的財產以及一些重要的資料的平安都會選擇用加鎖的方法來保證其平安。但使用傳統(tǒng)的機械鎖,需要攜帶多把鑰匙,而且一旦喪失、被盜或遺忘,不僅配置相當麻煩,而且可能被他人復制冒用,造成極大的平安隱患,甚至財產損失?,F(xiàn)代社會對平安的認證方式標準是簡單、快捷和高效。而生物特征識別技術具有隨身攜帶、不易仿制等優(yōu)點比之傳統(tǒng)的方法更平安、方便和,恰好滿足人們對防偽精度高,快捷高效的需求。目前生物特征有手形、手指靜脈、指紋、臉形、視網膜、虹膜、語音等,根據這些特征,分別
13、研究出相應的識別技術,如手形識別、指紋識別、面部識別、虹膜識別等等。但基于技術的理論和實際生產之間的差距,以及不同行業(yè)不同人群對于平安級別和使用場合的要求不同。注定有些技術不能在大圍普及使用,例如虹膜,雖然其平安系數最高,但本錢也非常高,而且識別過程復雜,所以用在政府、軍事及金融等高領域。距離全民化還有很漫長的路要走。雖然我國在手指靜脈、虹膜、視網膜等生物特征識別領域要比國外的晚一點,但指紋識別技術卻差不多和國外是同一時期開場的,所以無論在技術研究還是在市場上相關產品的普及都絲毫不比國外差。指紋識別雖然成熟,但是并沒有真正實現(xiàn)飛入尋常百姓家,為日常生活提供效勞。而指紋技術因其自身具有的優(yōu)越特點
14、注定會受到越來越多的關注,并最終實現(xiàn)全民化。因此指紋識別作為一門高新且具有開展前景的熱門技術,值得好好研究一下,所以本次畢業(yè)設計便選用指紋識別技術相關的課題。除此之外,此次畢業(yè)設計需要熟練掌握單片機硬件設計方面的技術和軟件編程的知識,之前學習的知識都是碎片化的,沒有作為一個系統(tǒng)來考慮系統(tǒng)中各個模塊如何部署,如何分工協(xié)作,所以畢業(yè)設計過程也是一個知識融合、系統(tǒng)化、精細化的過程,對于完善知識體系和理解實際開發(fā)流程有很大幫助。1.2 指紋識別原理及其前景本次設計中比擬重要的模塊便是指紋傳感器了,指紋識別技術的概念已經比擬普遍,簡單來說,是通過比擬指紋上不同的細節(jié)特征點來區(qū)別不同的身份。這些細節(jié)特征點
15、是通過對指紋圖像進展算法處理后得到的,表達在手指上則是凹凸不平的紋路的起點、終點、結合點和分叉點等可視化的信息。每個人手指上的指紋就一個獨一無二的迷宮,而每個迷宮的起點、終點、拐點都不同,正是由于這些不同的特征點成為區(qū)分每個人身份的重要標識。當前,主要有兩種采集指紋圖像數據的方式:光學識別、半導體識別。光學識別是通過光學發(fā)射器發(fā)射的光線射在手指上后再反射回機器來獲取指紋圖像數據,并與之前采集好存儲在模板庫的指紋信息自動比照看是否一致,光學識別準確度受到手指是否干凈、受傷、蛻皮的影響。但是隨著不斷的優(yōu)化,光學指紋傳感器的精度已經很高,而且識別精度可以根據需求動態(tài)設定,同時價格也相對較低一點,因此
16、本設計采用光學指紋傳感器來完成。指紋傳感器采集好圖像之后,使用指紋算法來實現(xiàn)指紋特征的提取、匹配、計算之后的特征點就是指紋模板庫,每次都會自動把兩個指紋的模板進展比照,計算其相似度來確定是是否為同一個指紋。在應用方面,比擬前沿的像華為的Mate、榮耀系列、三星、小米5、vivo、樂視、酷派等手機都有通過識別指紋來解鎖的功能。國外的近日有蘋果公司的Apple Pay,在2月18日正式進入中國后,和國不少銀行合作用于在線支付,掀起了一股指紋支付的熱潮。由于其快捷方便而且平安系數高的特點迅速在全球蔓延開來受到年輕人的追捧。但在技術方面歸根結底還是通過手機上的指紋傳感器采集用戶數據準確匹配后來完成支付
17、功能的。在2021年智能手機領域指紋解鎖和指紋支付將是中高端手機的標配。未來隨著指紋技術的逐漸成熟,生產本錢的降低,將會在智能手機領域更加普及,甚至會廣泛應用于我們日常生活的方方面面,為高品質的生活提供便利效勞。1.3 系統(tǒng)設計流程系統(tǒng)會在Altium Designer9開發(fā)平臺上設計原理圖,繪制PCB并制成單片機開發(fā)板,然后根據原理圖將相關元器件焊接到開發(fā)板上。軟件局部在Keil uVision4開發(fā)平臺上進展相關代碼的編寫和調試。然后利用串口助手工具將代碼下載到開發(fā)板進展運行,觀察硬件各模塊是否可以正常運行,以及測試結果是否能夠滿足需求,便于及時調整程序。課題的主要任務是設計出一個可以錄入
18、指紋,并對錄入指紋提取特征信息然后與指紋模板庫進展匹配最終到達開鎖功能的一個系統(tǒng)。指紋模板庫的建立需要首先采集指紋進展圖像算法處理,提取特征點做成特征文件并進一步合成特征文件存儲在Flash,每次開鎖都會采集指紋并和存儲的模板進展比對判斷是否為同一個指紋以確定是否授權翻開鎖。同時系統(tǒng)也支持指紋未錄入時在鍵盤手動輸入管理員密碼進展解鎖的功能。本論文由五局部局部組成,其中第一局部為概述,第二三局部分別為系統(tǒng)硬件和軟件設計過程,第四局部為系統(tǒng)調試測試過程,最后一局部為總結與展望。第二章 硬件系統(tǒng)設計2.1 硬件系統(tǒng)整體設計本次設計是一個單片機相關的課題,主要設計硬件局部和軟件局部,而所有工作開展都必
19、須從設計原理圖開場,只有設計出正確的原理圖才能保證完成一個可以正常運行的硬件設備,軟件可以不斷調試,但硬件一經設計制作成品便不能再改變,所以硬件設計的每一個細節(jié)都要仔細推敲,反復驗證,多仔細都不為過,尤其是沒有單片機設計經歷的話更應該注意。而硬件設計的第一步便從新建一個工程開場,新建工程的過程比擬繁復這里不做詳述。2.1.1 系統(tǒng)框圖設計根據系統(tǒng)需要實現(xiàn)的功能進展需求分析,將功能模塊化成一個個單元電路,每個單元獨立設計、調試,留出與其他模塊接口,最后在邏輯上進展嵌套調用實現(xiàn)整體設計,具體的硬件系統(tǒng)設計框圖如圖2-1所示。圖2-1 硬件系統(tǒng)設計框圖2.1.2 系統(tǒng)原理圖設計由于本次是模塊化的設計
20、,每個模塊的電路分開設計,引腳之間的連接使用Place Net Label連接,即電氣連接。雖然引腳沒有連接在一起,但一樣的Net Label則表示兩個硬件是物理連接的,這樣防止了大量復雜的布線導致引腳之間的對應觀察起來容易混淆的問題,因此使得本次的設計看起來邏輯上更加清晰明了,出了問題排查起來也更加容易。硬件原理圖的系統(tǒng)設計如圖2-1所示。圖2-2 硬件設計系統(tǒng)圖每個模塊之間使用線框分割開來,但是這個線并不是連接元器件的線Place Wire,這個線是有電氣信號的不能使用,點擊Utility Tools選擇Place Lain,還可以設置線的顏色,寬度等等,每個模塊的功能有文字旁注,使得不懂
21、原理圖的人翻開之后也知道每局部是實現(xiàn)什么功能的,點擊Utility Tools,選擇Place Test String,再點擊table鍵輸入需要的容即可,而且可以根據需要設置字體大小顏色等。2.1.3 系統(tǒng)PCB圖設計原理圖設計完成后需要編譯,查看有沒有輸出錯誤信息則將原理圖更新到PCB文件開場布線,PCB布線首先影響的是板子的外形是否美觀,當然最重要的還是板子能夠穩(wěn)定高效的運行。而布線過程中需要進展相關的設置并遵守一定的規(guī)則才能到達這樣的效果。本次設計主要遵循了幾個最重要的規(guī)則,由于單片機的晶振頻率比擬慢屬于低速板,電氣信號之間的干擾影響比擬小,所以只要不犯明顯的錯誤畫出一個性能穩(wěn)定且美觀
22、的板子還是很容易的。首先走線要最短,保證走線最短就要將同一模塊的元器件盡量靠近,尤其要將晶振電路靠近單片機芯片的引腳,否則板子是不能正常工作的。這是最簡單也是最重要的原則,決定了系統(tǒng)性能的穩(wěn)定;其次電源和接地信號線要粗一些,本次設計使用30mil,而且布線過程中盡量防止90度走線,應使用45度拐角;最后板子要發(fā)到加工廠進展加工,出于對本錢的考慮,板子面積控制在10*10cm。本次設計的PCB是兩層板,分為Top Layer層和Bottom Layer層,設計完成后布線效果如圖2-3和圖2-4所示。圖2-3 PCB的top 層設計圖圖2-4 PCB的Bottom層設計圖2.2 單片機最小系統(tǒng)設計
23、將CPU芯片、存儲器芯片、I/O接口芯片和簡單的I/O設備小鍵盤、LED顯示器等裝配在一塊印刷電路板上,然后將應用程序下載進單片機,便構成一臺簡單的單片微型計算機,簡稱單片機。最小系統(tǒng)即整個系統(tǒng)能夠啟動并進展工作的最小單元,缺一不可。單片機也有自己的最小系統(tǒng),分別是負責整個系統(tǒng)的運算和控制的單片機、為整個系統(tǒng)提供動力的電源電路、為整個系統(tǒng)提供時序節(jié)拍的晶振電路、可以使得系統(tǒng)隨時從一個正常的初始狀態(tài)開場執(zhí)行的復位電路。下邊開場詳細介紹單片機的最小系統(tǒng)以及相關的外圍電路工作原理及設計實現(xiàn)。2.2.1 STC89C52單片機STC89系列芯片是國公司宏晶科技研發(fā)生產的一款性能比擬高的8位微控制器,且
24、功耗更低。由于STC89C52RC使用的是經典MCS-8051的核,所以指令代碼完全兼容傳統(tǒng)51單片機,這一點可以從使用keil4軟件新建工程選擇STC89C52RC芯片時的輸出信息8051-based microcontroller with 6T(6-clock) High-Speed Core中得到很好的證明。STC89C52RC的主要特性如下:工作電壓:3.8V-2.0V3V或5.5V-3.3V5V8K字節(jié)FLASH8K bytes flash ROM512字節(jié)RAM512 bytes data RAM32個I/O口32-36 I/O Lines晶振頻率圍:0到40MHz之間均可,本次
25、設計采用11.0592M可通過USB轉串口工具連接單片機的R*D/P3.0,T*D/P3.1,VCC/20腳,GND/40腳,4個引腳即可完成用戶程序的直接下載,但必須同時配合stc-isp-15*-v6.57下載工具來實現(xiàn)本次設計便是采用這種方法。下載時間長短由程序編譯后的實際大小決定。集成E2PROM存儲功能On-chip E2PROM增加看門狗功能WDT:即Watchdog Timer3個16位定時器/計數器T0、T1、T23 Timers/Counters4個外部中斷以及串口功能UARTSTC89C52RC的引腳如圖2-5所示。圖2-5 STC89C52RC芯片引腳及擴展插針圖各引腳功
26、能表達如下:VCC:單片機的第40腳,電源輸入端口GND:單片機的第20引腳,芯片的接地端口P0口:每一個引腳都可以作為輸入輸出使用。P0口在當輸入輸出使用時由于是開漏的必須要加一個上拉電阻,本次設計使用一個10K的排阻。P1口:每一個引腳都可以作為輸入輸出使用。P2口:可直接作為輸入輸出口使用;尋址時可作為地址總線的高8位使用。P3口:每一個引腳都可以作為輸入輸出使用,除此之外,還定義了復用功能。復用功能的定義如表2-1所示。表2-1 STC89C52 P3口的第二功能*TAL1:接外部晶振的一端,輸入端*TAL2:接外部晶振的另一端,輸出端2.2.2 外部晶振電路晶振即晶體振蕩器的簡稱。單
27、片機執(zhí)行匯編指令時,每條指令必須在固定的機器周期完成操作。晶振的作用就是產生時鐘周期,每12個時鐘周期為一個機器周期。一個完整的系統(tǒng)可能有成千上萬條指令,所有的指令都必須按照一個時間刻度或者節(jié)拍有條不紊的執(zhí)行,這個節(jié)拍就由晶振來提供。單片機通過外接晶振,即外部提供時鐘源,它結合單片機部電路產生單片機所需的時鐘頻率,其中晶振頻率越高,單片機運算速度越快。但一般單片機的速度都比擬慢,所以外部時鐘源進入單片機時部電路會進展12分頻。系統(tǒng)的時鐘源使用11.0592M的晶振來提供,外部晶振電路設計采用晶振*TAL和電容C1、C2來構成,兩個電容的一端接晶振,一端接地。C1、C2和晶振構成并聯(lián)諧振電路,最
28、后通過*TAL1,*TAL2腳與單片機相連接,即可為單片機的所有指令的執(zhí)行提供一個統(tǒng)一的時序。本系統(tǒng)中C1和C2選擇22PF,起微調的作用同時使時鐘更加穩(wěn)定。晶振電路具體的接法如圖2-6所示。圖2-6 晶振電路原理圖本次設計的晶振為11.0592M,之所以選擇11.0592M是因為單片機和指紋模塊通信時波特率要求必須是9600bps,同時要在存放器設置串口控制相關位裝載TH和TL的值,只有在使用11.0592M的晶振時算出來的TH和TL是整數,而當使用12M晶振則裝載進定時器的值是小數,這樣取整后裝載會有誤差率。所以為了滿足本系統(tǒng)的要求選用11.0592M的晶振。2.2.3 復位電路的設計復位
29、電路的根本功能是:單片機在上電啟動時都需要進展復位,對CPU和各個模塊的硬件進展初始化,并對一些存放器以及存儲設備裝入廠商預設的值使其從初始狀態(tài)進展運行。如果在程序運行過程中出現(xiàn)錯誤或者其他硬件設備的異常導致需要引導單片機從重新開場運行時可以使用復位的方式來到達。常用的復位方式有高電平復位和低電平復位,在本次設計中使用的STC8952RC芯片為高電平復位方式,即正常工作時復位引腳為低電平,按下復位按鍵時,復位引腳持續(xù)兩個機器周期以上有效時間的高電平即可完成復位操作。本次設計采用的復位電路為:在單片機的復位引腳RESET上外接電阻R1和電容C3,以及一個獨立的按鍵Sal來完成設計,連接方便,本錢
30、低廉,具體實現(xiàn)如圖2-7所示。圖2-7 復位模塊原理圖本復位電路可實現(xiàn)上電復位和按鍵復位兩種復位。上電復位:STC89系列單片機是通過高電平完成復位。在VCC和GND之間串聯(lián)一個電容和電阻,然后將復位引腳RSTET連接到電容和電阻之間,上電瞬間電容還未充電兩端電壓為0,相當于短路,RESET直接與VCC相連,復位操作只需要持續(xù)高電平兩個機器周期的的有效時間就能完成復位,機器周期T=12/11.0592M單位:s,小數點后保存三位為0.001s。兩個機器周期約為0.002s,而電容充電需要t=R1*C3=0.1s,遠遠大于復位時間,即在電容充電未完成之前復位已經完成。按鍵復位:按鍵復位就是當復位
31、開關被按下時,按鍵將與之并聯(lián)的電容短路,直接將RESET與VCC接通,因此RESET被拉為高電平,同時電容C3沿回路放電,松開按鈕開關,電容充電,延時后RESET為低電平,從而完成復位操作。在本系統(tǒng)的復位電路中電容選10uF、電阻選10K。2.3 液晶顯示模塊-FYD12864-0402B液晶就是液晶顯示器的簡稱。液晶顯示器的原理主要是通過電流控制液晶分子按照一定的規(guī)則排列,同時配合背光來新實現(xiàn)我們需要顯示的容及畫面。液晶的一大優(yōu)點就是顯示效果好,而且功耗低,使用起來簡單又方便所以成為電子設計人員顯示功能的首選。本次設計采用FYD12864-0402B型號的液晶,這款液晶的顯示方案同類型的點陣
32、液晶屏相比,接口程序編寫起來簡單方便,價格也比擬廉價。FYD12864-0402B有串行和并行4位8位等多種通訊方式供使用者按照需求靈活選擇,部自帶中文字庫和簡單的圖形字符可以讓我們的顯示容更加的豐富,設計出更加友好的人機交互體驗。每行最多可以顯示8個漢字,4行共32個漢字,通過簡單的電路設計和接口進展編程即可實現(xiàn)圖形顯示界面。2.3.1 12864系列液晶的引腳功能本次設計使用的顯示器件為LCD12864,之所以選擇除了它可以顯示漢字之外,最重要的是它可以顯示的容更多,這也是本次設計沒有選擇使用更加方便、接口更加簡單的LCD1602的原因。LCD12864共有20個引腳,各引腳說明如表2-2
33、所示。表2-2 接口信號說明本次設計中單片機和LCD之間數據的交換使用的是串口方式,所以D0D7的引腳是懸空的,復位采用高電平,所以17腳也是懸空的,去除本身未定義的兩個空腳16和18,剩下的本次設計都會用到。2.3.2 控制器接口說明RS/RW的四種工作模式如表2-3。表2-3 RS/RW的四種工作模式2.3.3 指令說明當單片機向模塊發(fā)送指令前,必須先檢測模塊此時是否正在執(zhí)行其他命令,即確認模塊當前處于空閑狀態(tài)。通過讀取BF標志位來判斷,當BF=0,說明模塊處于非忙碌狀態(tài)可以承受指令,當BF=1,說明模塊處于忙碌狀態(tài),需要延時等待。由于實際中液晶的反響要比單片機的快,可以不用延時,不過為了
34、可靠期間,還是規(guī)操作,即檢測是否出于忙碌狀態(tài)或者進展延時。通過設置RE可以選擇到底使用根本指令集還是擴大指令集,設置好RE的狀態(tài)后,如果之后使用同一種指令集時,就不用再去修改RE的值了。具體指令介紹如表2-4所示。表2-4 LCD常用指令介紹2.3.4 12864與單片機連接圖12864與單片機的連接比擬簡單,其中引腳3和引腳19之間的電位器用來調節(jié)LCD12864的背光亮度,RS、RW、EN用來和單片機進展通訊時選擇通訊方式并行還是串行,本次設計使用串行通訊以及讀寫命令和數據操作,集體設計圖如圖2-8所示。圖2-8 LCD12864電路原理圖2.4 按鍵控制局部電路按鍵處于閉合還是斷開狀態(tài)可
35、以通過檢測電平來判斷,具體上下電平到底對應哪種開關狀態(tài)完全可以自行定義,本次設計中使用0表示閉合即按鍵被按下,1表示斷開狀態(tài)。微動開關實物圖如圖2-9所示。圖2-9 微動開關實物圖微動開關封裝尺寸及其引腳之間的關系如圖2-10所示。圖2-10 引腳封裝尺寸圖 但是由于矩陣鍵盤的設計采用的是微動開關,按鍵按下之后并不會鎖死。所以微小的振動則可能使按鍵的開關在極短時間閉合而造成干擾,微動開關的部構造如圖2-11所示。圖 2-11 按鍵與觸點示意圖為了排除單片機每次檢測到反響按鍵閉合狀態(tài)的電平都實實在在有被按下的,即有效電平,而不會是其他的抖動或者干擾造成的,需要對檢測到的按鍵狀態(tài)進展延時處理,即第
36、一次檢測到按鍵按下時,延時等待一段時間再次進展檢測,如果按鍵狀態(tài)依然是閉合,則說明按鍵確實是被按下,是有效的。這種方法叫延時去抖,本次設計次用軟件延時去抖來排除干擾因素。按鍵按下時電平的抖動狀態(tài)如圖2-12所示。 圖2-12 按鍵閉合及斷開前后的電壓按鍵設計應用場合不同分為兩種,分別是獨立式按鍵和矩陣式按鍵。本次設計兩種都有使用到,獨立式用在手動復位電路,而矩陣式用在用戶輸入密碼上。2.4.1 獨立按鍵獨立式按鍵每個鍵各占用一個引腳,只要檢測該引腳的電平就可以判斷按鍵的狀態(tài)。這種設計方法每個按鍵需占用單片機的一個引腳,本次復位電路中用到的正是這種設計方法。需要說明的是盡管微動開關有四個引腳,但
37、是在實際原理圖設計過程中只要連接其中上下任何一個即可使得開關正常工作。因此原理圖庫中開關的原理圖只有兩個引腳,這一點可以從矩陣鍵盤電路中看到。2.4.2 矩陣按鍵本次設計的數字及字母按鍵數量較多,至少需要13個,也就是說如果采用獨立按鍵的方式需要占用單片機13個引腳,浪費大量I/O資源,而其他的模塊也需要適應I/O,這樣會導致I/O不夠用的情況,因此采用了4*4的矩陣式鍵盤設計方法來解決這個問題。矩陣式鍵盤的每個按鍵都有兩個腳,一個腳接行線,另一個腳接列線,同一行的腳連在一個行線上,同一列的腳連在一個列線上,4*4的鍵盤則需要8根線,即占用單片機的8個引腳。行線和列線相交處就是按鍵的位置。當鍵
38、被按下時,相交的行線和列線上的電平發(fā)生線與關系,線與其實就是相交的行線和列線上的電平進展邏輯與操作。單片機通過檢測行或列線上的電平變化可以確定哪個按鍵被按下。線與的規(guī)則如下,其中1表示高電平,0表示低電平。00=0; 01=0;10=0; 11=1矩陣鍵盤的檢測方法有行列掃描、反轉掃描、中斷掃描等多種方式。本次設計中采用第一種方式實現(xiàn)按鍵檢測,其中行線P1.0-P1.3,列線P1.4-P1.7。完整步驟如下:檢測是否有按鍵按下。讓鍵盤的所有行線為輸出線,即信號從單片機輸出且全部設置為0;然后讓4條列線為輸入線,將列線上的電平信號輸入到單片機,只要單片機檢測到列線上有0電平,則說明有鍵按下,而且
39、肯定是該列線上4個按鍵的其中一個。判斷被按下按鍵所在的具體位置。因為在1步驟中已經知道按鍵在哪一列,終究是該列的哪一行按鍵被按下,具體方法是依次將每根行線設置為輸出線,并設置為0,剩余的行線都設置為1,然后將4根列線也置1,不斷檢測列線如果有0出現(xiàn),則住說明被按下的按鍵的位置就在該列線與設置為0的行線相交的地方。確認按鍵具體位置后,就需要給按下的鍵進展編碼,即每一個鍵被按下都有一個確定的值與這個件唯一對應,然后再將這個編碼值轉換為我們自己定義的鍵值,如1、2、3、a、b、c等。矩陣按鍵的與單片機的連接方式如圖2-13所示。圖2-13 矩陣式鍵盤電路圖2.5 指紋模塊2.5.1 指紋模塊簡介指紋
40、模塊里面主要是以高性能高速DSP處理器為核心,結合光學指紋傳感器,上電之后自動與單片機建立連接,指紋模塊會自動檢測是否有手指放在光學采集窗口,當采集到有手指存在時自動采集指紋圖像,對圖像進展算法處理,提取特征信息做成特征文件,合成模板并存儲至指紋庫,每次采集指紋后會自動在模板庫中搜索并比對特征信息。指紋模塊具體的工作過程為:指紋采集:通過光學組件可以清晰獲得手指的指紋圖像,像照相機給手指指紋拍照一樣。如圖2-14所示:圖2-14 指紋圖特征生成:根據指紋的生物特征紋路、斷點、穿插的不同,通過指紋算法進展模糊處理提取這種特征,轉換為0和1序列,做成特征文件。FM-70的每個特征文件大小是256
41、Bytes,模板存儲:兩個特征文件會合成一個指紋模板,大小為512 Bytes。然后將模板存儲到指紋模塊的Flash中作為模板庫使用。后續(xù)的指紋比照和指紋搜索都是基于存儲在flash中的指紋模板進展的。比方指紋識別的過程:先采集一次指紋,提取特征文件后會和指紋模板進展匹配,成功則會返回該指紋模板對應的編號,單片機以此來判斷指紋是否為授權的指紋,進而決定是否翻開密碼鎖。本次設計指紋模塊型號是FM-70,其主要技術指標為。2.5.2 指紋模塊引腳接法指紋模塊和處理器的通訊采用串口完成。接口引腳功能如表2-5所示。表2-5指紋模塊引腳定義注:in:表示輸入到模塊, out:表示從模塊輸出。指紋模塊的
42、硬件接口電路如圖2-15所示。圖2-15 指紋模塊接口圖2.5.3 指紋模塊命令指紋模塊和單片機的通訊過程通過串口R*D和T*D引腳進展,單片機和指紋模塊建立正確的連接后通過T*D引腳發(fā)送命令給指紋模塊的R*D引腳,指紋模塊將命令執(zhí)行后的返回碼通過T*D引腳回傳給單片機的R*D進展判斷。上電時自動與指紋模塊建立連接,確??梢哉Mㄓ?。命令如下。驗證口令和應答包的格式如表2-6和2-7所示。表2-6 驗證指令包格式表2-7應答包格式指紋生成要經歷四個步驟:指紋采集、特征生成、模板合成、模板存儲。指紋圖像采集指令和應答的包格式如表2-8和2-9所示。表2-8 指令包格式表2-9 應答包格式特征生成
43、指令Img2Tz和應答的包格式如表2-10和2-11所示。表2-10 指令包格式表2-11 應答包格式模板合成指令RegMode1和應答的包格式如表2-12和2-13所示: 功能說明:將兩個緩沖區(qū)CharBuffer1與CharBuffer2中的特征文件合成一 個模板文件。表2-12 指令包格式表2-13 應答包格式存儲模板指令Store和應答的包格式如表2-14和2-15所示。表2-14 指令包格式表2-15應答包格式通過上述的步驟可以完成一個指紋從采集、處理到存儲的整個流程,按照次步驟,依次錄入需要授權的指紋到指紋庫。指紋識別和采集不在一個模式下進展,所以進展識別時要切換到識別模式,該模式
44、下會自動檢測指紋采集窗口是否有手指存在,如果有則采集指紋并與模板庫里的指紋信息進展匹配,如果匹配上則返回該指紋對應的編號。指紋模塊會自動檢測是否有指紋存在,如果有則發(fā)送Search指令。搜索指紋指令Search和應答的包格式如表2-16和2-17所示。表2-16 指令包格式表2-17應答包格式2.6 存儲芯片AT24C02AT24C02是一個2K串行CMOS EEPROM,具有非易失性,即斷電不喪失。部含有256個8位字節(jié)。可以用來存儲一些需要長久保存的數據,本次設計用來保存管理員用戶進入后臺模式的密碼,在管理員每次輸入密碼時都會從AT24C02中讀取這個預設的初始密碼進展比照。2.6.1 A
45、T24C02工作原理24C02芯片的管腳配置如圖2-16所示。圖2-16 AT24C02管教配置圖其中:A0、A1、A2代表器件的選擇地址,比方一個IIC總線上掛載了多個24C02器件,單片機在讀取數據的時候就需要選擇終究從哪個24C02設備上去讀取,選擇的方是通過A0、A1、A2的值來判斷。每個引腳都有0和1兩種值,三個引腳組合就有8種可能,也就是說IIC總線上可以同時掛在8個24C02這樣的存儲設備,如下2-17所示。圖2-17 IIC掛載多個AT24C02器件圖當只有一個24C02器件被IIC總線尋址時,這三個地址輸入腳A0、A1、A2可以選擇懸空也可以全部接入到GND。本次設計中AT2
46、4C02硬件電路與單片機的具體的連接如下2-18所示:圖2-18 AT24C02電路圖2-17中各個引腳的功能為。GND:接地VCC:電源電壓WP:寫保護。WP=1:寫保護翻開,只讀;WP=0:寫保護關閉,可讀可寫。SCL:串行時鐘SDA:串行數據/地址2.6.2 AT24C02通信過程AT24C02通過IIC總線與單片機進展通信。但是單片機并沒有在硬件上實現(xiàn)IIC總線協(xié)議,所以是不支持IIC通信的。本次設計中使用I/O來模擬實現(xiàn)IIC功能。在單片機與AT24C02通訊的過程中首先單片機作為一個主設備會通過發(fā)送一個起始信號來啟動數據發(fā)送過程,然后發(fā)送從器件的地址,發(fā)送的地址格式是一個8位的數據
47、,如圖2-19所示。圖2-19 從器件的地址位圖其中高四位為生產廠商預設的固定值1010,接下來的三位A2、A1、A0為從器件的地址位,用來定義哪個器件以及從器件的哪個地址開場數據,從器件的第8位作為最低位,表示讀寫控制位,1表示進展讀操作,0表示進展寫操作。單片時機發(fā)送一個起始信號和地址到總線上,總線上的從器件會把單片機發(fā)送的地址和自己的地址想比擬,如果確認為同一地址則響應一個應答信號到總線上,與此同時判斷R/W位來進展相應的讀/寫操作。單片機和從器件進展通訊時需要發(fā)送起始信號,當然通訊完畢也需要終止信號,這兩種信號的時序如圖2-20所示。圖2-20 啟動信號和終止信號時序圖以上所有操作操作
48、只是為主從設備之間的通訊做準備工作,真正的通訊最終還是涉及到具體的讀寫操作,24C02設備的讀寫操作比擬靈活,有多種方式可以選擇,例如寫操作有字節(jié)寫和頁寫,讀操作有立即地址讀,選擇性讀和連續(xù)讀,本次設計的讀寫操作使用選擇性讀和字節(jié)寫。選擇性讀就是單片機可以對從器件的任意字節(jié)進展讀操作,單片時機發(fā)送一個起始信號、從器件地址及需要讀取的數據所在地址給從設備,在從設備應答之后重新發(fā)送起始信號和從器件地址,此時R/W位置為1,從設備應答會后輸出一個8位字節(jié)的數據,這樣主設備就從從設備中讀取到了數據。整個過程可以從圖2-21選擇性讀操作的時序中看出,編寫代碼時應該嚴格按照時序圖來規(guī)操作。圖2-21 選擇
49、性讀操作時序圖 在進展字節(jié)寫操作時,單片機發(fā)送起始命令和從器件地址信息給24C02,24C02給予應答后,單片機發(fā)送24C02的字節(jié)地址,從器件給予一個應答信號之后,單片機再發(fā)送數據發(fā)到剛剛的這個字節(jié)地址,從器件再次應答。這樣數據就會被寫入到24C02的指定地址中。完畢時單片機發(fā)送一個終止信號并不需要從器件進展應答即可主動終止本次寫入操作。具體的寫操作時序如圖2-22所示。圖2-22 字節(jié)寫操作時序圖2.7 繼電器模塊2.7.1 繼電器工作原理繼電器由一個線圈、動觸點。常開觸點、常閉觸點組成。部構造如圖2-23所示,具體工作過程為線圈通電時基于電磁感應定律會在線圈的一端產生磁場,在磁場的作用下
50、,銜鐵被吸合,此時常閉觸點斷開連接而常開觸點被接通;線圈斷電時銜鐵在處于拉伸狀態(tài)的彈簧的作用下被剝離線圈,此時常開觸點斷開連接,常閉觸點處于閉合狀態(tài)。圖2-23 繼電器部構造圖注:1、2是線圈;3是動觸點;4是常閉觸點;5是常開觸點2.7.2 繼電器與單片機的連接圖本次設計中使用繼電器的吸合來模擬電子鎖的開關效果,同時使用了集線端子作為外部擴展接口可以連接真實的電子鎖設備,使得設計效果更加逼真,但出于設計本錢的考慮,實際演示依然使用繼電器模擬。具體的硬件設計如圖2-24所示。圖2-24 繼電器模擬開關電路設計中的繼電器使用一個三極管Q2來驅動,三極管使用PNP型,型號9012。三極管在電路中的
51、作用有三個,分別是信號放大、電平轉換和開關作用,其號放大一般用在模擬電路中,電平轉換和開關作用在數字電路尤其是單片機電路中用的比擬頻繁,本次設計便是利用了三極管的開關作用,由于三極管是一個壓控流型的器件,所以基極通過一個電阻把電流轉換成電壓,當基極電壓低于集電極電壓時,三極管被導通。基極被接在單片機的P36引腳上,單片機通過發(fā)送一個上下電平即可控制三極管的截止與導通,進而控制了繼電器的斷開與吸合狀態(tài)。2.8 報警電路2.8.1 蜂鳴器的工作原理蜂鳴器是一個有源器件,這里的源不是指電源,而是指振蕩源。接通電源后,電流通過線圈后產生磁場,使得振動膜片有規(guī)律的振動從而發(fā)出聲音。2.8.2 報警電路的
52、設計與實現(xiàn)本次設計采用蜂蜜器作為報警電路,當用戶輸入密碼錯誤次數超過設定值時會啟動蜂蜜器進展報警。蜂鳴器依然采用PNP三極管來驅動,驅動的原理在繼電器電路中已經詳細介紹過,這里不再贅述。具體的硬件電路設計如圖2-25所示。圖2-25 報警電路圖第三章 系統(tǒng)軟件的設計在本次設計的電路板中,單片機是作為控制器,主要向LCD12864及指紋模塊發(fā)送命令和寫入數據,同時承受這兩個模塊返還的應答或采集的數據,因此軟件局部應用程序的設計主要針對LCD12864、按鍵程序進展開發(fā)。開發(fā)的方式為對硬件電路中設計到的每個模塊功能進展細化,抽象成程序化的邏輯封裝成一個個函數,然后通過函數之間的相互調用完成功能。由
53、于設計到的模塊較多,直接開場編程會導致無從下手,或者導致代碼邏輯不清晰的問題,因此本次設計會梳理整個程序的執(zhí)行流程和邏輯關系,通過流程圖來表達出來,然后根據流程圖開場逐步編寫,填充代碼框架。軟件開發(fā)環(huán)境為單片機軟件keil 4,編程語言選用標準C 51,本次設計功能模塊較多,使用一個源文件會給編程帶來困難,因此采用多文件方式開發(fā),即建立多個源文件和頭文件,添加到一個工程文件中,代碼編寫完畢后進展、編譯、生成后綴名為.he*的可執(zhí)行文件,下載到單片機開場執(zhí)行。3.1 主程序流程圖對系統(tǒng)功能分析后,制定如圖3-1的主程序流程圖。 圖3-1 主程序流程圖程序執(zhí)行的流程為:首先對各模塊硬件功能包括液晶
54、顯示、鍵盤掃描、指紋模塊通信、串口、定時器等進展初始化,然后檢測是否有手指按在指紋傳感器的采集窗口上,或者是否有按鍵被按下,使得程序在這里出現(xiàn)兩個分支。根據實際情況調用相應的功能函數。3.2鍵盤檢測掃描程序鍵盤模塊屬于外圍設備主要工作是與用戶進展交互操作,通過用戶的輸入來靈活控制程序的執(zhí)行流程。單片機的工作就是掃描是否有按鍵被按下,并判斷是哪個按鍵被按下進而定義每個按鍵的作用執(zhí)行相應的功能。按鍵檢測流程如圖3-2所示:圖3-2 鍵盤檢測流程圖3.3 LCD12864顯示流程圖顯示模塊主要是完成與用戶的實時交互操作。將每一步執(zhí)行的結果動態(tài)輸出在顯示屏,用戶根據顯示信息決定下一步的操作,顯示模塊流
55、程圖如圖3-3所示:圖3-3 顯示模塊流程圖3.4指紋模塊通信流程圖指紋模塊與單片機之間的通訊方式選擇的是串口方式,串口通訊過程中涉及到數據的發(fā)送和接收,具體流程見圖3-4:圖3-4 串口通信流程圖3.5 定時器的設置在本次設計中有報警電路,當用戶在輸入密碼錯誤次數累計超過三次時發(fā)出警車聲音,這個聲音的頻率是變化的,所以需要不斷累加頻率值,這個工作工作定時器來完成。定時器的使用又涉及到中斷系統(tǒng)。中斷是指CPU在處理事件A的時候,收到了事件B的請求中斷請求,CPU轉而去處理事件B,完成后返回中斷點繼續(xù)執(zhí)行事件A。定時器的工作過程如下:翻開總中斷,如表3-1所示。表3-1 IE中斷允許控制存放器
56、EA:中斷允許總開關,無論哪種類型的開關使用之前都必需翻開總中斷設置定時器工作方式,如表3-2所示。表3-2 TMOD存放器M1M0:工作方式設置位。定時計數器有四種工作方式如表3-3所示。表3-3 定時器工作方式 GATE=0:由TR0/TR1置位啟動定時器T0/T1.其中上下四位對應T1、T0 C/T:定時計數選擇位。C/T=0:定時器;C/T=1:計數器給定時器賦初值翻開定時器中斷,如表3-4所示。表3-4 TCON定時器控制位 TF1TF0定時器中斷 TR1TR0定時器開關翻開定時器編寫中斷效勞子程序中斷效勞函數沒有返回值也不用申明,更不用調用,而是由系統(tǒng)自動調用的,編寫時必須使用關鍵
57、字interrupt和中斷號,即中斷的入口地址。定時器實現(xiàn)定時的相關核心代碼如下。定時器初始化時沒有對TH0,TL0賦值,這個操作主要放在中斷效勞子程序中進展。3.6 串口初始化單片機在和模塊通信時使用串口方式,因此要提前設置好串口的波特率、數據包格式、工作方式、接收/發(fā)送控制以及狀態(tài)標志等。在51單片機中只要特殊功能存放器的地址能夠被8整除則可以直接對存放器的位進展操作,而在串口相關的設置中便可通過此種方式來完成。SCON地址位如表3-5所示。表3-5 SCON存放器地址位SM2=1:通過設置的RB8來決定是否激活RI,即當RB8=0時,不激活RI,承受到的數據丟棄: RB8=1時,承受到的
58、數據送到SBUF,并激活RISM2=0:忽略RB8的值RB8=1,有數據收到就送往SBUF,并激活RIREN=1:啟動串口;REN=0:制止串口TB8:方式1中不用,用在方式2/3TI/RI分別是發(fā)送/承受中斷標志位,當數據發(fā)送/承受完成時,會激活TI/RI位等于1,并向CPU發(fā)送中斷申請。硬件置1,軟件清0串口通訊的方式有四種,通過SM0、SM1設置,其中方式0和方式2的波特率是固定的,而方式1和方式3可以根據需要自行設置,本次設計選擇方式1,具體工作方式如表3-6所示。表3-6 串行口工作方式設置好串口的工作方式后還要設置通信的波特率,波特率的計算方法為:方式1的波特率 =2SMOD/32
59、T1溢出率T1 溢出率 = fosc /12256 TH1其中SMOD位在特殊功能存放器PCON中設置,PCON存放器如表3-7所示。表3-7 PCON存放器SMOD:波特率倍增位。串口在方式1/2/3時:假設SMOD=1,波特率翻倍)。指紋模塊和單片機進展數據交換時的波特率要求等于9600bps,所以需要對存放器的相關位進展設置使得波特率和指紋模塊波特率一樣才能正常通訊。具體的做法為:設置串口的工作方式和相關控制SCON選擇定時器并設置定時器工作方式計算定時器初值并載入TH、TL啟動定時器翻開總中斷下面是串口初始化程序。3.7 按鍵掃描程序行列掃描按鍵是否被按下,如果檢測有鍵按下則延時去抖重
60、新檢測后如果為有效按下,則對鍵值進展編碼,將編好的碼值作為返回值由后續(xù)函數做進一步處理,核心代碼語句做了相關注釋具體如下。編碼之后的值雖然相對每一個按鍵都是唯一的,即根據碼值可以唯一確定一個按鍵的位置,但是在實現(xiàn)稍微復雜一點的功能時如果每次使用到一個按鍵時都要返回查看碼值表來確定,這樣相當麻煩,而且代碼編寫好之后如果有BUG會給調試帶來很大的不便,即便沒有BUG出現(xiàn),過一段時間再回頭看源代碼,會非常吃力,嚴重降低了代碼的可讀性。因此本設計中會對編寫好的碼值重新定義以方便后續(xù)代碼的編寫和調用,具體的代碼如下。3.8 主程序主程序作為所有函數執(zhí)行的入口,里邊的程序不要寫得太長,需要實現(xiàn)的功能單獨封
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 屋地施工合同范本
- 科技助力下的電子商務物流變革
- 社區(qū)教育服務點-助力居民終身學習
- 電競文化下的心理健康教育與保障措施在酒店中實施
- 2025貴州黔南州荔波縣昌發(fā)水利投資有限責任公司招聘專業(yè)技術人員及擬人員筆試參考題庫附帶答案詳解
- 科技教育中的教師情感引導策略研究
- 科技創(chuàng)新在商業(yè)競爭中的優(yōu)勢體現(xiàn)
- 園區(qū)清掃合同范本
- 綜采工作面質量驗收員技能理論考試題庫150題(含答案)
- 煤礦監(jiān)測監(jiān)控主控值班員技能理論考試題庫150題(含答案)
- 高中主題班會 悟哪吒精神做英雄少年-下學期開學第一課主題班會課件-高中主題班會課件
- 2025電力物資檢儲配一體化建設技術導則
- 新學期 開學第一課 主題班會課件
- 民法典合同編講座
- 2024年青島港灣職業(yè)技術學院高職單招語文歷年參考題庫含答案解析
- 廣西壯族自治區(qū)公路發(fā)展中心2025年面向社會公開招聘657名工作人員高頻重點提升(共500題)附帶答案詳解
- 大學轉專業(yè)高等數學試卷
- DBJ51-T 198-2022 四川省既有民用建筑結構安全隱患排查技術標準
- 公司廠區(qū)保潔培訓
- 江蘇省招標中心有限公司招聘筆試沖刺題2025
- 2024年防盜門銷售合同范本
評論
0/150
提交評論