指紋密碼鎖設(shè)計論文_第1頁
指紋密碼鎖設(shè)計論文_第2頁
指紋密碼鎖設(shè)計論文_第3頁
指紋密碼鎖設(shè)計論文_第4頁
指紋密碼鎖設(shè)計論文_第5頁
已閱讀5頁,還剩53頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 南 京 工 程 學(xué) 院畢業(yè)設(shè)計說明書(論文)作 者: 毛仲義 學(xué) 號: 202120621 院 系: 計算機(jī)工程學(xué)院 專 業(yè): 電子信息科學(xué)與技術(shù) 題 目: 基于單片機(jī)的指紋密碼鎖設(shè)計 指導(dǎo)者: 劉勤 講師 評閱者: 田麗鴻 副教授 2016年5 月 南 京畢業(yè)設(shè)計說明書(論文)中文摘要指紋密碼鎖是基于單片機(jī)開發(fā)的一個利用指紋識別技術(shù)完成解鎖功能的智能系統(tǒng)。本課題的主要任務(wù)是研究指紋錄入、特征信息提取、生成模板并存儲的原理,同時指紋傳感器將實(shí)時采集到的信息和單片機(jī)進(jìn)行交換。單片機(jī)在邏輯上控制指紋相關(guān)操作的全過程。本系統(tǒng)在Keil4環(huán)境下利用51 C成功編寫了一個支持指紋和鍵盤解鎖的軟件系統(tǒng)。

2、該系統(tǒng)中包括了指紋檢測、指紋采集,模板匹配、鍵盤掃描、密碼輸入以及液晶顯示等功能。當(dāng)指紋模板匹配成功或密碼輸入正確則啟動開鎖電路,反之,密碼輸入錯誤超過3次則開啟報警電路。完整模擬了現(xiàn)實(shí)開鎖的真實(shí)過程。關(guān)鍵詞 指紋鎖鍵盤掃描液晶顯示報警電路畢業(yè)設(shè)計說明書(論文)外文摘要Title Fingerprint Lock Based on Microcontronllers AbstractFingerprint Lock is an intelligent system developed basing on microcontroller which uses fingerprint identi

3、fication technology to complete the unlock function. The main task of the project is to study the fingerprint input, feature information extraction, principle of template generation and storage. Meanwhile, the fingerprint sensor change the real-time collection of information with microcontrollers. M

4、CU controls 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, templat

5、e matching, 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

6、 the real reality unlocking process completelyKeywords Fingerprint Lock, Keyboard Scan, Liquid Crystal Display, Alarm Circuit-i-目錄目錄2第一章 概述11.1 系統(tǒng)設(shè)計目的及意義11.2 指紋識別原理及其前景11.3 系統(tǒng)設(shè)計流程2第二章 硬件系統(tǒng)設(shè)計42.1 硬件系統(tǒng)整體設(shè)計42.2 單片機(jī)最小系統(tǒng)設(shè)計72.3 液晶顯示模塊-FYD12864-0402B112.4 按鍵控制部分電路152.5 指紋模塊192.6 存儲芯片AT24C02232.7 繼電器模塊272.8

7、 報警電路28第三章 系統(tǒng)軟件的設(shè)計303.1 主程序流程圖303.2鍵盤檢測掃描程序313.3 LCD12864顯示流程圖323.4指紋模塊通信流程圖333.5 定時器的設(shè)置333.6 串口初始化353.7 按鍵掃描程序373.8 主程序38第四章 系統(tǒng)調(diào)試404.1 功能模塊的測試404.2 程序的燒寫434.3 蜂鳴器、繼電器調(diào)試444.4 液晶的調(diào)試44i4.5 按鍵的調(diào)試46第五章 總結(jié)與展望47參考文獻(xiàn)48致 謝49ii南京工程學(xué)院畢業(yè)設(shè)計說明書(論文)第一章 概述1.1 系統(tǒng)設(shè)計目的及意義在日常的生活和工作中,住宅、物業(yè)、單位、銀行的財產(chǎn)以及一些重要的資料的安全都會選擇用加鎖的辦

8、法來保證其安全。但使用傳統(tǒng)的機(jī)械鎖,需要攜帶多把鑰匙,而且一旦丟失、被盜或遺忘,不僅配置相當(dāng)麻煩,而且可能被他人復(fù)制冒用,造成極大的安全隱患,甚至財產(chǎn)損失。現(xiàn)代社會對安全的認(rèn)證方式標(biāo)準(zhǔn)是簡單、快捷和高效。而生物特征識別技術(shù)具有隨身攜帶、不易仿制等優(yōu)點(diǎn)比之傳統(tǒng)的方法更安全、方便和保密,恰好滿足人們對防偽精度高,快捷高效的需求。目前生物特征有手形、手指靜脈、指紋、臉形、視網(wǎng)膜、虹膜、語音等,根據(jù)這些特征,分別研究出相應(yīng)的識別技術(shù),如手形識別、指紋識別、面部識別、虹膜識別等等。但基于技術(shù)的理論和實(shí)際生產(chǎn)之間的差距,以及不同行業(yè)不同人群對于安全級別和使用場合的要求不同。注定有些技術(shù)不能在大范圍內(nèi)普及使

9、用,例如虹膜,雖然其安全系數(shù)最高,但成本也非常高,而且識別過程復(fù)雜,所以用在政府、軍事及金融等高機(jī)密領(lǐng)域。距離全民化還有很漫長的路要走。雖然我國在手指靜脈、虹膜、視網(wǎng)膜等生物特征識別領(lǐng)域要比國外的晚一點(diǎn),但指紋識別技術(shù)卻差不多和國外是同一時期開始的,所以無論在技術(shù)研究還是在市場上相關(guān)產(chǎn)品的普及都絲毫不比國外差。指紋識別雖然成熟,但是并沒有真正實(shí)現(xiàn)“飛入尋常百姓家”,為日常生活提供服務(wù)。而指紋技術(shù)因其自身具有的優(yōu)越特點(diǎn)注定會受到越來越多的關(guān)注,并最終實(shí)現(xiàn)全民化。因此指紋識別作為一門高新且具有發(fā)展前景的熱門技術(shù),值得好好研究一下,所以本次畢業(yè)設(shè)計便選用指紋識別技術(shù)相關(guān)的課題。除此之外,此次畢業(yè)設(shè)計

10、需要熟練掌握單片機(jī)硬件設(shè)計方面的技術(shù)和軟件編程的知識,之前學(xué)習(xí)的知識都是碎片化的,沒有作為一個系統(tǒng)來考慮系統(tǒng)中各個模塊如何部署,如何分工協(xié)作,所以畢業(yè)設(shè)計過程也是一個知識融合、系統(tǒng)化、精細(xì)化的過程,對于完善知識體系和理解實(shí)際開發(fā)流程有很大幫助。1.2 指紋識別原理及其前景本次設(shè)計中比較重要的模塊便是指紋傳感器了,指紋識別技術(shù)的概念已經(jīng)比較普遍,簡單來說,是通過比較指紋上不同的細(xì)節(jié)特征點(diǎn)來區(qū)別不同的身份。這些細(xì)節(jié)特征點(diǎn)是通過對指紋圖像進(jìn)行算法處理后得到的,體現(xiàn)在手指上則是凹凸不平的紋路的起點(diǎn)、終點(diǎn)、結(jié)合點(diǎn)和分叉點(diǎn)等可視化的信息。每個人手指上的指紋就一個獨(dú)一無二的“迷宮”,而每個迷宮的起點(diǎn)、終點(diǎn)、

11、拐點(diǎn)都不同,正是由于這些不同的“特征點(diǎn)”成為區(qū)分每個人身份的重要標(biāo)識。當(dāng)前,主要有兩種采集指紋圖像數(shù)據(jù)的方式:光學(xué)識別、半導(dǎo)體識別。光學(xué)識別是通過光學(xué)發(fā)射器發(fā)射的光線射在手指上后再反射回機(jī)器來獲取指紋圖像數(shù)據(jù),并與之前采集好存儲在模板庫的指紋信息自動對比看是否一致,光學(xué)識別準(zhǔn)確度受到手指是否干凈、受傷、蛻皮的影響。但是隨著不斷的優(yōu)化,光學(xué)指紋傳感器的精度已經(jīng)很高,而且識別精度可以根據(jù)需求動態(tài)設(shè)定,同時價格也相對較低一點(diǎn),因此本設(shè)計采用光學(xué)指紋傳感器來完成。指紋傳感器采集好圖像之后,使用指紋算法來實(shí)現(xiàn)指紋特征的提取、匹配、計算之后的特征點(diǎn)就是指紋模板庫,每次都會自動把兩個指紋的模板進(jìn)行對比,計算

12、其相似度來確定是是否為同一個指紋。在應(yīng)用方面,比較前沿的像華為的Mate、榮耀系列、三星、小米5、vivo、樂視、酷派等手機(jī)都有通過識別指紋來解鎖的功能。國外的近日有蘋果公司的Apple Pay,在2月18日正式進(jìn)入中國后,和國內(nèi)不少銀行合作用于在線支付,掀起了一股指紋支付的熱潮。由于其快捷方便而且安全系數(shù)高的特點(diǎn)迅速在全球蔓延開來受到年輕人的追捧。但在技術(shù)方面歸根結(jié)底還是通過手機(jī)上的指紋傳感器采集用戶數(shù)據(jù)準(zhǔn)確匹配后來完成支付功能的。在2016年智能手機(jī)領(lǐng)域指紋解鎖和指紋支付將是中高端手機(jī)的標(biāo)配。未來隨著指紋技術(shù)的逐漸成熟,生產(chǎn)成本的降低,將會在智能手機(jī)領(lǐng)域更加普及,甚至?xí)V泛應(yīng)用于我們?nèi)粘I?/p>

13、活的方方面面,為高品質(zhì)的生活提供便利服務(wù)。1.3 系統(tǒng)設(shè)計流程系統(tǒng)會在Altium Designer9開發(fā)平臺上設(shè)計原理圖,繪制PCB并制成單片機(jī)開發(fā)板,然后根據(jù)原理圖將相關(guān)元器件焊接到開發(fā)板上。軟件部分在Keil uVision4開發(fā)平臺上進(jìn)行相關(guān)代碼的編寫和調(diào)試。然后利用串口助手工具將代碼下載到開發(fā)板進(jìn)行運(yùn)行,觀察硬件各模塊是否可以正常運(yùn)行,以及測試結(jié)果是否能夠滿足需求,便于及時調(diào)整程序。課題的主要任務(wù)是設(shè)計出一個可以錄入指紋,并對錄入指紋提取特征信息然后與指紋模板庫進(jìn)行匹配最終達(dá)到開鎖功能的一個系統(tǒng)。指紋模板庫的建立需要首先采集指紋進(jìn)行圖像算法處理,提取特征點(diǎn)做成特征文件并進(jìn)一步合成特征

14、文件存儲在Flash,每次開鎖都會采集指紋并和存儲的模板進(jìn)行比對判斷是否為同一個指紋以確定是否授權(quán)打開鎖。同時系統(tǒng)也支持指紋未錄入時在鍵盤手動輸入管理員密碼進(jìn)行解鎖的功能。本論文由五部分部分組成,其中第一部分為概述,第二三部分分別為系統(tǒng)硬件和軟件設(shè)計過程,第四部分為系統(tǒng)調(diào)試測試過程,最后一部分為總結(jié)與展望。第二章 硬件系統(tǒng)設(shè)計2.1 硬件系統(tǒng)整體設(shè)計本次設(shè)計是一個單片機(jī)相關(guān)的課題,主要設(shè)計硬件部分和軟件部分,而所有工作開展都必須從設(shè)計原理圖開始,只有設(shè)計出正確的原理圖才能保證完成一個可以正常運(yùn)行的硬件設(shè)備,軟件可以不斷調(diào)試,但硬件一經(jīng)設(shè)計制作成品便不能再改變,所以硬件設(shè)計的每一個細(xì)節(jié)都要仔細(xì)推

15、敲,反復(fù)驗(yàn)證,多仔細(xì)都不為過,尤其是沒有單片機(jī)設(shè)計經(jīng)驗(yàn)的話更應(yīng)該注意。而硬件設(shè)計的第一步便從新建一個工程開始,新建工程的過程比較繁復(fù)這里不做詳述。2.1.1 系統(tǒng)框圖設(shè)計根據(jù)系統(tǒng)需要實(shí)現(xiàn)的功能進(jìn)行需求分析,將功能模塊化成一個個單元電路,每個單元獨(dú)立設(shè)計、調(diào)試,留出與其他模塊接口,最后在邏輯上進(jìn)行嵌套調(diào)用實(shí)現(xiàn)整體設(shè)計,具體的硬件系統(tǒng)設(shè)計框圖如圖2-1所示。圖2-1 硬件系統(tǒng)設(shè)計框圖2.1.2 系統(tǒng)原理圖設(shè)計由于本次是模塊化的設(shè)計,每個模塊的電路分開設(shè)計,引腳之間的連接使用Place Net Label連接,即電氣連接。雖然引腳沒有連接在一起,但相同的Net Label則表示兩個硬件是物理連接的,

16、這樣避免了大量復(fù)雜的布線導(dǎo)致引腳之間的對應(yīng)觀察起來容易混淆的問題,因此使得本次的設(shè)計看起來邏輯上更加清晰明了,出了問題排查起來也更加容易。硬件原理圖的系統(tǒng)設(shè)計如圖2-1所示。圖2-2 硬件設(shè)計系統(tǒng)圖每個模塊之間使用線框分割開來,但是這個線并不是連接元器件的線Place Wire,這個線是有電氣信號的不能使用,點(diǎn)擊Utility Tools選擇Place Lain,還可以設(shè)置線的顏色,寬度等等,每個模塊的功能有文字旁注,使得不懂原理圖的人打開之后也知道每部分是實(shí)現(xiàn)什么功能的,點(diǎn)擊Utility Tools,選擇Place Test String,再點(diǎn)擊table鍵輸入需要的內(nèi)容即可,而且可以根據(jù)

17、需要設(shè)置字體大小顏色等。2.1.3 系統(tǒng)PCB圖設(shè)計原理圖設(shè)計完成后需要編譯,查看有沒有輸出錯誤信息則將原理圖更新到PCB文件開始布線,PCB布線首先影響的是板子的外形是否美觀,當(dāng)然最重要的還是板子能夠穩(wěn)定高效的運(yùn)行。而布線過程中需要進(jìn)行相關(guān)的設(shè)置并遵守一定的規(guī)則才能達(dá)到這樣的效果。本次設(shè)計主要遵循了幾個最重要的規(guī)則,由于單片機(jī)的晶振頻率比較慢屬于低速板,電氣信號之間的干擾影響比較小,所以只要不犯明顯的錯誤畫出一個性能穩(wěn)定且美觀的板子還是很容易的。首先走線要最短,保證走線最短就要將同一模塊的元器件盡量靠近,尤其要將晶振電路靠近單片機(jī)芯片的引腳,否則板子是不能正常工作的。這是最簡單也是最重要的原

18、則,決定了系統(tǒng)性能的穩(wěn)定;其次電源和接地信號線要粗一些,本次設(shè)計使用30mil,而且布線過程中盡量避免90度走線,應(yīng)使用45度拐角;最后板子要發(fā)到加工廠進(jìn)行加工,出于對成本的考慮,板子面積控制在10*10cm。本次設(shè)計的PCB是兩層板,分為Top Layer層和Bottom Layer層,設(shè)計完成后布線效果如圖2-3和圖2-4所示。圖2-3 PCB的top 層設(shè)計圖圖2-4 PCB的Bottom層設(shè)計圖2.2 單片機(jī)最小系統(tǒng)設(shè)計將CPU芯片、存儲器芯片、I/O接口芯片和簡單的I/O設(shè)備(小鍵盤、LED顯示器)等裝配在一塊印刷電路板上,然后將應(yīng)用程序下載進(jìn)單片機(jī),便構(gòu)成一臺簡單的單片微型計算機(jī),

19、簡稱單片機(jī)。最小系統(tǒng)即整個系統(tǒng)能夠啟動并進(jìn)行工作的最小單元,缺一不可。單片機(jī)也有自己的最小系統(tǒng),分別是負(fù)責(zé)整個系統(tǒng)的運(yùn)算和控制的單片機(jī)、為整個系統(tǒng)提供動力的電源電路、為整個系統(tǒng)提供時序節(jié)拍的晶振電路、可以使得系統(tǒng)隨時從一個正常的初始狀態(tài)開始執(zhí)行的復(fù)位電路。下邊開始詳細(xì)介紹單片機(jī)的最小系統(tǒng)以及相關(guān)的外圍電路工作原理及設(shè)計實(shí)現(xiàn)。2.2.1 STC89C52單片機(jī)STC89系列芯片是國內(nèi)公司宏晶科技研發(fā)生產(chǎn)的一款性能比較高的8位微控制器,且功耗更低。由于STC89C52RC使用的是經(jīng)典MCS-8051的內(nèi)核,所以指令代碼完全兼容傳統(tǒng)51單片機(jī),這一點(diǎn)可以從使用keil4軟件新建工程選擇STC89C5

20、2RC芯片時的輸出信息“8051-based microcontroller with 6T(6-clock) High-Speed Core”中得到很好的證明。STC89C52RC的主要特性如下:工作電壓:3.8V-2.0V(3V)或5.5V-3.3V(5V)8K字節(jié)FLASH(8K bytes flash ROM)512字節(jié)RAM(512 bytes data RAM)32個I/O口(32-36 I/O Lines)晶振頻率范圍:0到40MHz之間均可,本次設(shè)計采用11.0592M可通過USB轉(zhuǎn)串口工具連接單片機(jī)的RXD/P3.0,TXD/P3.1,VCC/20腳,GND/40腳,4個引腳

21、即可完成用戶程序的直接下載,但必須同時配合stc-isp-15xx-v6.57下載工具來實(shí)現(xiàn)(本次設(shè)計便是采用這種方法)。下載時間長短由程序編譯后的實(shí)際大小決定。集成E2PROM存儲功能(On-chip E2PROM)增加看門狗功能(WDT:即Watchdog Timer)3個16位定時器/計數(shù)器T0、T1、T2(3 Timers/Counters)4個外部中斷以及串口功能(UART)STC89C52RC的引腳如圖2-5所示。圖2-5 STC89C52RC芯片引腳及擴(kuò)展插針圖各引腳功能敘述如下:VCC:單片機(jī)的第40腳,電源輸入端口GND:單片機(jī)的第20引腳,芯片的接地端口P0口:每一個引腳都

22、可以作為輸入輸出使用。P0口在當(dāng)輸入輸出使用時由于是開漏的必須要加一個上拉電阻,本次設(shè)計使用一個10K的排阻。P1口:每一個引腳都可以作為輸入輸出使用。P2口:可直接作為輸入輸出口使用;尋址時可作為地址總線的高8位使用。P3口:每一個引腳都可以作為輸入輸出使用,除此之外,還定義了復(fù)用功能。復(fù)用功能的定義如表2-1所示。表2-1 STC89C52 P3口的第二功能XTAL1:接外部晶振的一端,輸入端XTAL2:接外部晶振的另一端,輸出端2.2.2 外部晶振電路晶振即晶體振蕩器的簡稱。單片機(jī)執(zhí)行匯編指令時,每條指令必須在固定的機(jī)器周期內(nèi)完成操作。晶振的作用就是產(chǎn)生時鐘周期,每12個時鐘周期為一個機(jī)

23、器周期。一個完整的系統(tǒng)可能有成千上萬條指令,所有的指令都必須按照一個時間刻度或者節(jié)拍有條不紊的執(zhí)行,這個節(jié)拍就由晶振來提供。單片機(jī)通過外接晶振,即外部提供時鐘源,它結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時鐘頻率,其中晶振頻率越高,單片機(jī)運(yùn)算速度越快。但一般單片機(jī)的速度都比較慢,所以外部時鐘源進(jìn)入單片機(jī)時內(nèi)部電路會進(jìn)行12分頻。系統(tǒng)的時鐘源使用11.0592M的晶振來提供,外部晶振電路設(shè)計采用晶振XTAL和電容C1、C2來構(gòu)成,兩個電容的一端接晶振,一端接地。C1、C2和晶振構(gòu)成并聯(lián)諧振電路,最后通過XTAL1,XTAL2腳與單片機(jī)相連接,即可為單片機(jī)的所有指令的執(zhí)行提供一個統(tǒng)一的時序。本系統(tǒng)中C1

24、和C2選擇22PF,起微調(diào)的作用同時使時鐘更加穩(wěn)定。晶振電路具體的接法如圖2-6所示。圖2-6 晶振電路原理圖本次設(shè)計的晶振為11.0592M,之所以選擇11.0592M是因?yàn)閱纹瑱C(jī)和指紋模塊通信時波特率要求必須是9600bps,同時要在寄存器設(shè)置串口控制相關(guān)位裝載TH和TL的值,只有在使用11.0592M的晶振時算出來的TH和TL是整數(shù),而當(dāng)使用12M晶振則裝載進(jìn)定時器的值是小數(shù),這樣取整后裝載會有誤差率。所以為了滿足本系統(tǒng)的要求選用11.0592M的晶振。2.2.3 復(fù)位電路的設(shè)計復(fù)位電路的基本功能是:單片機(jī)在上電啟動時都需要進(jìn)行復(fù)位,對CPU和各個模塊的硬件進(jìn)行初始化,并對一些寄存器以及

25、存儲設(shè)備裝入廠商預(yù)設(shè)的值使其從初始狀態(tài)進(jìn)行運(yùn)行。如果在程序運(yùn)行過程中出現(xiàn)錯誤或者其他硬件設(shè)備的異常導(dǎo)致需要引導(dǎo)單片機(jī)從重新開始運(yùn)行時可以使用復(fù)位的方式來達(dá)到。常用的復(fù)位方式有高電平復(fù)位和低電平復(fù)位,在本次設(shè)計中使用的STC8952RC芯片為高電平復(fù)位方式,即正常工作時復(fù)位引腳為低電平,按下復(fù)位按鍵時,復(fù)位引腳持續(xù)兩個機(jī)器周期以上有效時間的高電平即可完成復(fù)位操作。本次設(shè)計采用的復(fù)位電路為:在單片機(jī)的復(fù)位引腳RESET上外接電阻R1和電容C3,以及一個獨(dú)立的按鍵Sal來完成設(shè)計,連接方便,成本低廉,具體實(shí)現(xiàn)如圖2-7所示。圖2-7 復(fù)位模塊原理圖本復(fù)位電路可實(shí)現(xiàn)上電復(fù)位和按鍵復(fù)位兩種復(fù)位。1 上電

26、復(fù)位:STC89系列單片機(jī)是通過高電平完成復(fù)位。在VCC和GND之間串聯(lián)一個電容和電阻,然后將復(fù)位引腳RSTET連接到電容和電阻之間,上電瞬間電容還未充電兩端電壓為0,相當(dāng)于短路,RESET直接與VCC相連,復(fù)位操作只需要持續(xù)高電平兩個機(jī)器周期的的有效時間就能完成復(fù)位,機(jī)器周期T=12/11.0592M(單位:s),小數(shù)點(diǎn)后保留三位為0.001s。兩個機(jī)器周期約為0.002s,而電容充電需要t=R1*C3=0.1s,遠(yuǎn)遠(yuǎn)大于復(fù)位時間,即在電容充電未完成之前復(fù)位已經(jīng)完成。2 按鍵復(fù)位:按鍵復(fù)位就是當(dāng)復(fù)位開關(guān)被按下時,按鍵將與之并聯(lián)的電容短路,直接將RESET與VCC接通,因此RESET被拉為高電

27、平,同時電容C3沿回路放電,松開按鈕開關(guān),電容充電,延時后RESET為低電平,從而完成復(fù)位操作。在本系統(tǒng)的復(fù)位電路中電容選10uF、電阻選10K。2.3 液晶顯示模塊-FYD12864-0402B液晶就是液晶顯示器的簡稱。液晶顯示器的原理主要是通過電流控制液晶分子按照一定的規(guī)則排列,同時配合背光來新實(shí)現(xiàn)我們需要顯示的內(nèi)容及畫面。液晶的一大優(yōu)點(diǎn)就是顯示效果好,而且功耗低,使用起來簡單又方便所以成為電子設(shè)計人員顯示功能的首選。本次設(shè)計采用FYD12864-0402B型號的液晶,這款液晶的顯示方案同類型的點(diǎn)陣液晶屏相比,接口程序編寫起來簡單方便,價格也比較便宜。FYD12864-0402B有串行和并

28、行4位8位等多種通訊方式供使用者按照需求靈活選擇,內(nèi)部自帶中文字庫和簡單的圖形字符可以讓我們的顯示內(nèi)容更加的豐富,設(shè)計出更加友好的人機(jī)交互體驗(yàn)。每行最多可以顯示8個漢字,4行共32個漢字,通過簡單的電路設(shè)計和接口進(jìn)行編程即可實(shí)現(xiàn)圖形顯示界面。2.3.1 12864系列液晶的引腳功能本次設(shè)計使用的顯示器件為LCD12864,之所以選擇除了它可以顯示漢字之外,最重要的是它可以顯示的內(nèi)容更多,這也是本次設(shè)計沒有選擇使用更加方便、接口更加簡單的LCD1602的原因。LCD12864共有20個引腳,各引腳說明如表2-2所示。表2-2 接口信號說明本次設(shè)計中單片機(jī)和LCD之間數(shù)據(jù)的交換使用的是串口方式,所

29、以D0D7的引腳是懸空的,復(fù)位采用高電平,所以17腳也是懸空的,去除本身未定義的兩個空腳16和18,剩下的本次設(shè)計都會用到。2.3.2 控制器接口說明RS/RW的四種工作模式如表2-3。表2-3 RS/RW的四種工作模式2.3.3 指令說明當(dāng)單片機(jī)向模塊發(fā)送指令前,必須先檢測模塊此時是否正在執(zhí)行其他命令,即確認(rèn)模塊當(dāng)前處于空閑狀態(tài)。通過讀取BF標(biāo)志位來判斷,當(dāng)BF=0,說明模塊處于非忙碌狀態(tài)可以接受指令,當(dāng)BF=1,說明模塊處于忙碌狀態(tài),需要延時等待。由于實(shí)際中液晶的反應(yīng)要比單片機(jī)的快,可以不用延時,不過為了可靠期間,還是規(guī)范操作,即檢測是否出于忙碌狀態(tài)或者進(jìn)行延時。通過設(shè)置RE可以選擇到底使

30、用基本指令集還是擴(kuò)充指令集,設(shè)置好RE的狀態(tài)后,如果之后使用同一種指令集時,就不用再去修改RE的值了。具體指令介紹如表2-4所示。 表2-4 LCD常用指令介紹2.3.4 12864與單片機(jī)連接圖12864與單片機(jī)的連接比較簡單,其中引腳3和引腳19之間的電位器用來調(diào)節(jié)LCD12864的背光亮度,RS、RW、EN用來和單片機(jī)進(jìn)行通訊時選擇通訊方式(并行還是串行,本次設(shè)計使用串行通訊)以及讀寫命令和數(shù)據(jù)操作,集體設(shè)計圖如圖2-8所示。圖2-8 LCD12864電路原理圖2.4 按鍵控制部分電路按鍵處于閉合還是斷開狀態(tài)可以通過檢測電平來判斷,具體高低電平到底對應(yīng)哪種開關(guān)狀態(tài)完全可以自行定義,本次設(shè)

31、計中使用“0”表示閉合(即按鍵被按下),“1”表示斷開狀態(tài)。微動開關(guān)實(shí)物圖如圖2-9所示。圖2-9 微動開關(guān)實(shí)物圖微動開關(guān)封裝尺寸及其引腳之間的關(guān)系如圖2-10所示。圖2-10 引腳封裝尺寸圖 但是由于矩陣鍵盤的設(shè)計采用的是微動開關(guān),按鍵按下之后并不會鎖死。所以微小的振動則可能使按鍵的開關(guān)在極短時間內(nèi)閉合而造成干擾,微動開關(guān)的內(nèi)部構(gòu)造如圖2-11所示。圖 2-11 按鍵與觸點(diǎn)示意圖為了排除單片機(jī)每次檢測到反應(yīng)按鍵閉合狀態(tài)的電平都實(shí)實(shí)在在有被按下的,即有效電平,而不會是其他的抖動或者干擾造成的,需要對檢測到的按鍵狀態(tài)進(jìn)行延時處理,即第一次檢測到按鍵按下時,延時等待一段時間再次進(jìn)行檢測,如果按鍵狀

32、態(tài)依然是閉合,則說明按鍵的確是被按下,是有效的。這種方法叫延時去抖,本次設(shè)計次用軟件延時去抖來排除干擾因素。按鍵按下時電平的抖動狀態(tài)如圖2-12所示。 圖2-12 按鍵閉合及斷開前后的電壓按鍵設(shè)計應(yīng)用場合不同分為兩種,分別是獨(dú)立式按鍵和矩陣式按鍵。本次設(shè)計兩種都有使用到,獨(dú)立式用在手動復(fù)位電路,而矩陣式用在用戶輸入密碼上。2.4.1 獨(dú)立按鍵獨(dú)立式按鍵每個鍵各占用一個引腳,只要檢測該引腳的電平就可以判斷按鍵的狀態(tài)。這種設(shè)計方法每個按鍵需占用單片機(jī)的一個引腳,本次復(fù)位電路中用到的正是這種設(shè)計方法。需要說明的是盡管微動開關(guān)有四個引腳,但是在實(shí)際原理圖設(shè)計過程中只要連接其中上下任何一個即可使得開關(guān)正

33、常工作。因此原理圖庫中開關(guān)的原理圖只有兩個引腳,這一點(diǎn)可以從矩陣鍵盤電路中看到。2.4.2 矩陣按鍵本次設(shè)計的數(shù)字及字母按鍵數(shù)量較多,至少需要13個,也就是說如果采用獨(dú)立按鍵的方式需要占用單片機(jī)13個引腳,浪費(fèi)大量I/O資源,而其他的模塊也需要適應(yīng)I/O,這樣會導(dǎo)致I/O不夠用的情況,因此采用了4*4的矩陣式鍵盤設(shè)計方法來解決這個問題。矩陣式鍵盤的每個按鍵都有兩個腳,一個腳接行線,另一個腳接列線,同一行的腳連在一個行線上,同一列的腳連在一個列線上,4*4的鍵盤則需要8根線,即占用單片機(jī)的8個引腳。行線和列線相交處就是按鍵的位置。當(dāng)鍵被按下時,相交的行線和列線上的電平發(fā)生線與關(guān)系,線與其實(shí)就是相

34、交的行線和列線上的電平進(jìn)行邏輯與操作。單片機(jī)通過檢測行或列線上的電平變化可以確定哪個按鍵被按下。線與的規(guī)則如下,其中1表示高電平,0表示低電平。0·0=0; 0·1=0;1·0=0; 1·1=1矩陣鍵盤的檢測方法有行列掃描、反轉(zhuǎn)掃描、中斷掃描等多種方式。本次設(shè)計中采用第一種方式實(shí)現(xiàn)按鍵檢測,其中行線P1.0-P1.3,列線P1.4-P1.7。完整步驟如下:1 檢測是否有按鍵按下。讓鍵盤的所有行線為輸出線,即信號從單片機(jī)輸出且全部設(shè)置為0;然后讓4條列線為輸入線,將列線上的電平信號輸入到單片機(jī),只要單片機(jī)檢測到列線上有0電平,則說明有鍵按下,而且肯定是該列

35、線上4個按鍵的其中一個。2 判斷被按下按鍵所在的具體位置。因?yàn)樵?步驟中已經(jīng)知道按鍵在哪一列,究竟是該列的哪一行按鍵被按下,具體方法是依次將每根行線設(shè)置為輸出線,并設(shè)置為0,剩余的行線都設(shè)置為1,然后將4根列線也置1,不斷檢測列線如果有0出現(xiàn),則住說明被按下的按鍵的位置就在該列線與設(shè)置為0的行線相交的地方。3 確認(rèn)按鍵具體位置后,就需要給按下的鍵進(jìn)行編碼,即每一個鍵被按下都有一個確定的值與這個件唯一對應(yīng),然后再將這個編碼值轉(zhuǎn)換為我們自己定義的鍵值,如1、2、3、a、b、c等。矩陣按鍵的與單片機(jī)的連接方式如圖2-13所示。圖2-13 矩陣式鍵盤電路圖2.5 指紋模塊2.5.1 指紋模塊簡介指紋模

36、塊里面主要是以高性能高速DSP處理器為核心,結(jié)合光學(xué)指紋傳感器,上電之后自動與單片機(jī)建立連接,指紋模塊會自動檢測是否有手指放在光學(xué)采集窗口,當(dāng)采集到有手指存在時自動采集指紋圖像,對圖像進(jìn)行算法處理,提取特征信息做成特征文件,合成模板并存儲至指紋庫,每次采集指紋后會自動在模板庫中搜索并比對特征信息。指紋模塊具體的工作過程為:1 指紋采集:通過光學(xué)組件可以清晰獲得手指的指紋圖像,像照相機(jī)給手指指紋拍照一樣。如圖2-14所示:圖2-14 指紋圖2 特征生成:根據(jù)指紋的生物特征(紋路、斷點(diǎn)、交叉的不同),通過指紋算法進(jìn)行模糊處理提取這種特征,轉(zhuǎn)換為0和1序列,做成特征文件。FM-70的每個特征文件大小

37、是256 Bytes,3 模板存儲:兩個特征文件會合成一個指紋模板,大小為512 Bytes。然后將模板存儲到指紋模塊的Flash中作為模板庫使用。后續(xù)的指紋對比和指紋搜索都是基于存儲在flash中的指紋模板進(jìn)行的。比如指紋識別的過程:先采集一次指紋,提取特征文件后會和指紋模板進(jìn)行匹配,成功則會返回該指紋模板對應(yīng)的編號,單片機(jī)以此來判斷指紋是否為授權(quán)的指紋,進(jìn)而決定是否打開密碼鎖。本次設(shè)計指紋模塊型號是FM-70,其主要技術(shù)指標(biāo)為。 2.5.2 指紋模塊引腳接法指紋模塊和處理器的通訊采用串口完成。接口引腳功能如表2-5所示。表2-5指紋模塊引腳定義注:in:表示輸入到模塊, out:表示從模塊

38、輸出。指紋模塊的硬件接口電路如圖2-15所示。圖2-15 指紋模塊接口圖2.5.3 指紋模塊命令指紋模塊和單片機(jī)的通訊過程通過串口RXD和TXD引腳進(jìn)行,單片機(jī)和指紋模塊建立正確的連接后通過TXD引腳發(fā)送命令給指紋模塊的RXD引腳,指紋模塊將命令執(zhí)行后的返回碼通過TXD引腳回傳給單片機(jī)的RXD進(jìn)行判斷。上電時自動與指紋模塊建立連接,確??梢哉Mㄓ?。命令如下。驗(yàn)證口令和應(yīng)答包的格式如表2-6和2-7所示。表2-6 驗(yàn)證指令包格式表2-7應(yīng)答包格式1 指紋生成要經(jīng)歷四個步驟:指紋采集、特征生成、模板合成、模板存儲。指紋圖像采集指令和應(yīng)答的包格式如表2-8和2-9所示。表2-8 指令包格式表2-9

39、 應(yīng)答包格式2 特征生成指令I(lǐng)mg2Tz和應(yīng)答的包格式如表2-10和2-11所示。表2-10 指令包格式表2-11 應(yīng)答包格式3 模板合成指令RegMode1和應(yīng)答的包格式如表2-12和2-13所示: 功能說明:將兩個緩沖區(qū)CharBuffer1與CharBuffer2中的特征文件合成一 個模板文件。表2-12 指令包格式表2-13 應(yīng)答包格式4 存儲模板指令Store和應(yīng)答的包格式如表2-14和2-15所示。表2-14 指令包格式表2-15應(yīng)答包格式通過上述的步驟可以完成一個指紋從采集、處理到存儲的整個流程,按照次步驟,依次錄入需要授權(quán)的指紋到指紋庫。指紋識別和采集不在一個模式下進(jìn)行,所以進(jìn)

40、行識別時要切換到識別模式,該模式下會自動檢測指紋采集窗口是否有手指存在,如果有則采集指紋并與模板庫里的指紋信息進(jìn)行匹配,如果匹配上則返回該指紋對應(yīng)的編號。指紋模塊會自動檢測是否有指紋存在,如果有則發(fā)送Search指令。搜索指紋指令Search和應(yīng)答的包格式如表2-16和2-17所示。表2-16 指令包格式表2-17應(yīng)答包格式2.6 存儲芯片AT24C02 AT24C02是一個2K串行CMOS EEPROM,具有非易失性,即斷電不丟失。內(nèi)部含有256個8位字節(jié)??梢杂脕泶鎯σ恍┬枰L久保存的數(shù)據(jù),本次設(shè)計用來保存管理員用戶進(jìn)入后臺模式的密碼,在管理員每次輸入密碼時都會從AT24C02中讀取這個預(yù)

41、設(shè)的初始密碼進(jìn)行對比。2.6.1 AT24C02工作原理24C02芯片的管腳配置如圖2-16所示。圖2-16 AT24C02管教配置圖其中:A0、A1、A2代表器件的選擇地址,比如一個IIC總線上掛載了多個24C02器件,單片機(jī)在讀取數(shù)據(jù)的時候就需要選擇究竟從哪個24C02設(shè)備上去讀取,選擇的方法正是通過A0、A1、A2的值來判斷。每個引腳都有0和1兩種值,三個引腳組合就有8種可能,也就是說IIC總線上可以同時掛在8個24C02這樣的存儲設(shè)備,如下2-17所示。圖2-17 IIC掛載多個AT24C02器件圖當(dāng)只有一個24C02器件被IIC總線尋址時,這三個地址輸入腳A0、A1、A2可以選擇懸空

42、也可以全部接入到GND。本次設(shè)計中AT24C02硬件電路與單片機(jī)的具體的連接如下2-18所示:圖2-18 AT24C02電路圖2-17中各個引腳的功能為。GND:接地VCC:電源電壓WP:寫保護(hù)。WP=1:寫保護(hù)打開,只讀;WP=0:寫保護(hù)關(guān)閉,可讀可寫。SCL:串行時鐘SDA:串行數(shù)據(jù)/地址2.6.2 AT24C02通信過程AT24C02通過IIC總線與單片機(jī)進(jìn)行通信。但是單片機(jī)并沒有在硬件上實(shí)現(xiàn)IIC總線協(xié)議,所以是不支持IIC通信的。本次設(shè)計中使用I/O來模擬實(shí)現(xiàn)IIC功能。在單片機(jī)與AT24C02通訊的過程中首先單片機(jī)作為一個主設(shè)備會通過發(fā)送一個起始信號來啟動數(shù)據(jù)發(fā)送過程,然后發(fā)送從器

43、件的地址,發(fā)送的地址格式是一個8位的數(shù)據(jù),如圖2-19所示。 圖2-19 從器件的地址位圖其中高四位為生產(chǎn)廠商預(yù)設(shè)的固定值1010,接下來的三位(A2、A1、A0)為從器件的地址位,用來定義哪個器件以及從器件的哪個地址開始訪問數(shù)據(jù),從器件的第8位作為最低位,表示讀寫控制位,“1”表示進(jìn)行讀操作,“0”表示進(jìn)行寫操作。單片機(jī)會發(fā)送一個起始信號和地址到總線上,總線上的從器件會把單片機(jī)發(fā)送的地址和自己的地址想比較,如果確認(rèn)為同一地址則響應(yīng)一個應(yīng)答信號到總線上,與此同時判斷R/W位來進(jìn)行相應(yīng)的讀/寫操作。單片機(jī)和從器件進(jìn)行通訊時需要發(fā)送起始信號,當(dāng)然通訊結(jié)束也需要終止信號,這兩種信號的時序如圖2-20

44、所示。圖2-20 啟動信號和終止信號時序圖以上所有操作操作只是為主從設(shè)備之間的通訊做準(zhǔn)備工作,真正的通訊最終還是涉及到具體的讀寫操作,24C02設(shè)備的讀寫操作比較靈活,有多種方式可以選擇,例如寫操作有字節(jié)寫和頁寫,讀操作有立即地址讀,選擇性讀和連續(xù)讀,本次設(shè)計的讀寫操作使用選擇性讀和字節(jié)寫。選擇性讀就是單片機(jī)可以對從器件的任意字節(jié)進(jìn)行讀操作,單片機(jī)會發(fā)送一個起始信號、從器件地址及需要讀取的數(shù)據(jù)所在地址給從設(shè)備,在從設(shè)備應(yīng)答之后重新發(fā)送起始信號和從器件地址,此時R/W位置為1,從設(shè)備應(yīng)答會后輸出一個8位字節(jié)的數(shù)據(jù),這樣主設(shè)備就從從設(shè)備中讀取到了數(shù)據(jù)。整個過程可以從圖2-21選擇性讀操作的時序中看

45、出,編寫代碼時應(yīng)該嚴(yán)格按照時序圖來規(guī)范操作。圖2-21 選擇性讀操作時序圖 在進(jìn)行字節(jié)寫操作時,單片機(jī)發(fā)送起始命令和從器件地址信息給24C02,24C02給予應(yīng)答后,單片機(jī)發(fā)送24C02的字節(jié)地址,從器件給予一個應(yīng)答信號之后,單片機(jī)再發(fā)送數(shù)據(jù)發(fā)到剛才的這個字節(jié)地址,從器件再次應(yīng)答。這樣數(shù)據(jù)就會被寫入到24C02的指定地址中。結(jié)束時單片機(jī)發(fā)送一個終止信號并不需要從器件進(jìn)行應(yīng)答即可主動終止本次寫入操作。具體的寫操作時序如圖2-22所示。圖2-22 字節(jié)寫操作時序圖2.7 繼電器模塊2.7.1 繼電器工作原理繼電器由一個線圈、動觸點(diǎn)。常開觸點(diǎn)、常閉觸點(diǎn)組成。內(nèi)部構(gòu)造如圖2-23所示,具體工作過程為線

46、圈通電時基于電磁感應(yīng)定律會在線圈的一端產(chǎn)生磁場,在磁場的作用下,銜鐵被吸合,此時常閉觸點(diǎn)斷開連接而常開觸點(diǎn)被接通;線圈斷電時銜鐵在處于拉伸狀態(tài)的彈簧的作用下被剝離線圈,此時常開觸點(diǎn)斷開連接,常閉觸點(diǎn)處于閉合狀態(tài)。圖2-23 繼電器內(nèi)部構(gòu)造圖注:1、2是線圈;3是動觸點(diǎn);4是常閉觸點(diǎn);5是常開觸點(diǎn) 2.7.2 繼電器與單片機(jī)的連接圖本次設(shè)計中使用繼電器的吸合來模擬電子鎖的開關(guān)效果,同時使用了集線端子作為外部擴(kuò)展接口可以連接真實(shí)的電子鎖設(shè)備,使得設(shè)計效果更加逼真,但出于設(shè)計成本的考慮,實(shí)際演示依然使用繼電器模擬。具體的硬件設(shè)計如圖2-24所示。圖2-24 繼電器模擬開關(guān)電路設(shè)計中的繼電器使用一個三

47、極管Q2來驅(qū)動,三極管使用PNP型,型號9012。三極管在電路中的作用有三個,分別是信號放大、電平轉(zhuǎn)換和開關(guān)作用,其中信號放大一般用在模擬電路中,電平轉(zhuǎn)換和開關(guān)作用在數(shù)字電路尤其是單片機(jī)電路中用的比較頻繁,本次設(shè)計便是利用了三極管的開關(guān)作用,由于三極管是一個壓控流型的器件,所以基極通過一個電阻把電流轉(zhuǎn)換成電壓,當(dāng)基極電壓低于集電極電壓時,三極管被導(dǎo)通。基極被接在單片機(jī)的P36引腳上,單片機(jī)通過發(fā)送一個高低電平即可控制三極管的截止與導(dǎo)通,進(jìn)而控制了繼電器的斷開與吸合狀態(tài)。2.8 報警電路2.8.1 蜂鳴器的工作原理蜂鳴器是一個有源器件,這里的源不是指電源,而是指振蕩源。接通電源后,電流通過線圈后

48、產(chǎn)生磁場,使得振動膜片有規(guī)律的振動從而發(fā)出聲音。2.8.2 報警電路的設(shè)計與實(shí)現(xiàn)本次設(shè)計采用蜂蜜器作為報警電路,當(dāng)用戶輸入密碼錯誤次數(shù)超過設(shè)定值時會啟動蜂蜜器進(jìn)行報警。蜂鳴器依然采用PNP三極管來驅(qū)動,驅(qū)動的原理在繼電器電路中已經(jīng)詳細(xì)介紹過,這里不再贅述。具體的硬件電路設(shè)計如圖2-25所示。圖2-25 報警電路圖第三章 系統(tǒng)軟件的設(shè)計在本次設(shè)計的電路板中,單片機(jī)是作為控制器,主要向LCD12864及指紋模塊發(fā)送命令和寫入數(shù)據(jù),同時接受這兩個模塊返還的應(yīng)答或采集的數(shù)據(jù),因此軟件部分應(yīng)用程序的設(shè)計主要針對LCD12864、按鍵程序進(jìn)行開發(fā)。開發(fā)的方式為對硬件電路中設(shè)計到的每個模塊功能進(jìn)行細(xì)化,抽象

49、成程序化的邏輯封裝成一個個函數(shù),然后通過函數(shù)之間的相互調(diào)用完成功能。由于設(shè)計到的模塊較多,直接開始編程會導(dǎo)致無從下手,或者導(dǎo)致代碼邏輯不清晰的問題,因此本次設(shè)計會梳理整個程序的執(zhí)行流程和邏輯關(guān)系,通過流程圖來體現(xiàn)出來,然后根據(jù)流程圖開始逐步編寫,填充代碼框架。軟件開發(fā)環(huán)境為單片機(jī)軟件keil 4,編程語言選用標(biāo)準(zhǔn)C 51,本次設(shè)計功能模塊較多,使用一個源文件會給編程帶來困難,因此采用多文件方式開發(fā),即建立多個源文件和頭文件,添加到一個工程文件中,代碼編寫結(jié)束后進(jìn)行鏈接、編譯、生成后綴名為.hex的可執(zhí)行文件,下載到單片機(jī)開始執(zhí)行。3.1 主程序流程圖對系統(tǒng)功能分析后,制定如圖3-1的主程序流程

50、圖。 圖3-1 主程序流程圖程序執(zhí)行的流程為:首先對各模塊硬件功能包括液晶顯示、鍵盤掃描、指紋模塊通信、串口、定時器等進(jìn)行初始化,然后檢測是否有手指按在指紋傳感器的采集窗口上,或者是否有按鍵被按下,使得程序在這里出現(xiàn)兩個分支。根據(jù)實(shí)際情況調(diào)用相應(yīng)的功能函數(shù)。3.2鍵盤檢測掃描程序鍵盤模塊屬于外圍設(shè)備主要工作是與用戶進(jìn)行交互操作,通過用戶的輸入來靈活控制程序的執(zhí)行流程。單片機(jī)的工作就是掃描是否有按鍵被按下,并判斷是哪個按鍵被按下進(jìn)而定義每個按鍵的作用執(zhí)行相應(yīng)的功能。按鍵檢測流程如圖3-2所示:圖3-2 鍵盤檢測流程圖3.3 LCD12864顯示流程圖顯示模塊主要是完成與用戶的實(shí)時交互操作。將每一

51、步執(zhí)行的結(jié)果動態(tài)輸出在顯示屏,用戶根據(jù)顯示信息決定下一步的操作,顯示模塊流程圖如圖3-3所示:圖3-3 顯示模塊流程圖3.4指紋模塊通信流程圖指紋模塊與單片機(jī)之間的通訊方式選擇的是串口方式,串口通訊過程中涉及到數(shù)據(jù)的發(fā)送和接收,具體流程見圖3-4:圖3-4 串口通信流程圖3.5 定時器的設(shè)置在本次設(shè)計中有報警電路,當(dāng)用戶在輸入密碼錯誤次數(shù)累計超過三次時發(fā)出警車聲音,這個聲音的頻率是變化的,所以需要不斷累加頻率值,這個工作工作定時器來完成。定時器的使用又涉及到中斷系統(tǒng)。中斷是指CPU在處理事件A的時候,收到了事件B的請求(中斷請求),CPU轉(zhuǎn)而去處理事件B,完成后返回中斷點(diǎn)繼續(xù)執(zhí)行事件A。定時器

52、的工作過程如下:1 打開總中斷,如表3-1所示。表3-1 IE中斷允許控制寄存器 EA:中斷允許總開關(guān),無論哪種類型的開關(guān)使用之前都必需打開總中斷2 設(shè)置定時器工作方式,如表3-2所示。表3-2 TMOD寄存器 M1M0:工作方式設(shè)置位。定時計數(shù)器有四種工作方式如表3-3所示。表3-3 定時器工作方式 GATE=0:由TR0/TR1置位啟動定時器T0/T1.其中高低四位對應(yīng)T1、T0 C/T:定時計數(shù)選擇位。C/T=0:定時器;C/T=1:計數(shù)器3 給定時器賦初值4 打開定時器中斷,如表3-4所示。表3-4 TCON定時器控制位 TF1(TF0)定時器中斷 TR1(TR0)定時器開關(guān)5 打開定

53、時器6 編寫中斷服務(wù)子程序中斷服務(wù)函數(shù)沒有返回值也不用申明,更不用調(diào)用,而是由系統(tǒng)自動調(diào)用的,編寫時必須使用關(guān)鍵字interrupt和中斷號,即中斷的入口地址。定時器實(shí)現(xiàn)定時的相關(guān)核心代碼如下。定時器初始化時沒有對TH0,TL0賦值,這個操作主要放在中斷服務(wù)子程序中進(jìn)行。3.6 串口初始化單片機(jī)在和模塊通信時使用串口方式,因此要提前設(shè)置好串口的波特率、數(shù)據(jù)包格式、工作方式、接收/發(fā)送控制以及狀態(tài)標(biāo)志等。在51單片機(jī)中只要特殊功能寄存器的地址能夠被8整除則可以直接對寄存器的位進(jìn)行操作,而在串口相關(guān)的設(shè)置中便可通過此種方式來完成。SCON地址位如表3-5所示。表3-5 SCON寄存器地址位 SM2

54、=1:通過設(shè)置的RB8來決定是否激活RI,即當(dāng)RB8=0時,不激活RI,接受到的數(shù)據(jù)丟棄: RB8=1時,接受到的數(shù)據(jù)送到SBUF,并激活RISM2=0:忽略RB8的值(RB8=1),有數(shù)據(jù)收到就送往SBUF,并激活RIREN=1:啟動串口;REN=0:禁止串口TB8:方式1中不用,用在方式2/3TI/RI分別是發(fā)送/接受中斷標(biāo)志位,當(dāng)數(shù)據(jù)發(fā)送/接受完成時,會激活TI/RI位等于1,并向CPU發(fā)送中斷申請。(硬件置1,軟件清0)串口通訊的方式有四種,通過SM0、SM1設(shè)置,其中方式0和方式2的波特率是固定的,而方式1和方式3可以根據(jù)需要自行設(shè)置,本次設(shè)計選擇方式1,具體工作方式如表3-6所示。

55、表3-6 串行口工作方式 設(shè)置好串口的工作方式后還要設(shè)置通信的波特率,波特率的計算方法為:方式1的波特率 =(2SMOD/32)·(T1溢出率)T1 溢出率 = fosc /12×256 (TH1)其中SMOD位在特殊功能寄存器PCON中設(shè)置,PCON寄存器如表3-7所示。表3-7 PCON寄存器SMOD:波特率倍增位。串口在方式1/2/3時:若SMOD=1,波特率翻倍)。指紋模塊和單片機(jī)進(jìn)行數(shù)據(jù)交換時的波特率要求等于9600bps,所以需要對寄存器的相關(guān)位進(jìn)行設(shè)置使得波特率和指紋模塊波特率一樣才能正常通訊。具體的做法為:1 設(shè)置串口的工作方式和相關(guān)控制(SCON)2 選擇定時器并設(shè)置定時器工作方式3 計算定時器初值并載入TH、TL4 啟動定時器5 打開總中斷下面是串口初始化程序。3.7 按鍵掃描程序行列掃描按鍵是否被按下,如果檢測有鍵按下則延時去抖重新檢測后如果為有效按下,則對鍵值進(jìn)行編碼,將編好的碼值作為返回值由后續(xù)函數(shù)做進(jìn)一步處理,核心代碼語句做了相關(guān)注釋具體如下。編碼之后的值雖然相對每一個按

溫馨提示

  • 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

提交評論