畢業(yè)論文-基于單片機(jī)的電子加密系統(tǒng)設(shè)計與實現(xiàn)_第1頁
畢業(yè)論文-基于單片機(jī)的電子加密系統(tǒng)設(shè)計與實現(xiàn)_第2頁
畢業(yè)論文-基于單片機(jī)的電子加密系統(tǒng)設(shè)計與實現(xiàn)_第3頁
畢業(yè)論文-基于單片機(jī)的電子加密系統(tǒng)設(shè)計與實現(xiàn)_第4頁
畢業(yè)論文-基于單片機(jī)的電子加密系統(tǒng)設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、大連東軟信息學(xué)院本科畢業(yè)設(shè)計(論文)論文題目論文題目:基于單片機(jī)的電子加密系統(tǒng)設(shè)計與實現(xiàn)系 所: 電子工程系 專 業(yè): 電子信息工程(嵌入式系統(tǒng)工程方向) 學(xué)生姓名: 學(xué)生學(xué)號: 指導(dǎo)教師: 導(dǎo)師職稱: 講師 完成日期: 2014年4月15日 大連東軟信息學(xué)院Dalian 大連東軟信息學(xué)院畢業(yè)設(shè)計(論文) 摘要 IV基于單片機(jī)的電子加密系統(tǒng)設(shè)計與實現(xiàn)摘 要近年來,隨著改革開放的深入發(fā)展,電子電器的飛速發(fā)展。人民的生活水平有了很大提高。各種高檔家電產(chǎn)品和貴重物品為許多家庭所擁有。然而不法分子也是越來越多,原因在于大部分人防盜意識還不夠強(qiáng),造成偷盜現(xiàn)象屢見不鮮。越來越多的居民家庭對財產(chǎn)安全問題十分

2、擔(dān)憂。因此,出于安全方便等方面的需求,電子密碼鎖相繼問世。本設(shè)計是以單片機(jī)AT89S51為主控芯片,并結(jié)合外圍液晶顯示LCD1602、存儲芯片AT24C02、紅外遙控HS0038,以及鍵盤輸入、復(fù)位、電源等電路組合而成。系統(tǒng)能夠完成開鎖、報警、修改密碼等基本功能,還能夠通過紅外來控制單片機(jī)的開鎖,以及掉電儲存密碼的功能。整個設(shè)計在Keil開發(fā)環(huán)境下,用C語言編寫主控芯片的控制程序來實現(xiàn)具有多功能的電子密碼鎖。關(guān)鍵詞:密碼鎖,AT89S51,儲存大連東軟信息學(xué)院畢業(yè)設(shè)計(論文) AbstractDesign and Implementation of Electronic Encryption

3、System Based on MCUAbstractIn recent years, with the deepening of reform and opening-up, with the rapid development of electronic appliances. The peoples living standard has been greatly improved. A variety of high-grade household electrical appliances and the valuables have for many families. Howev

4、er criminals are also more and more, because most people security awareness is not strong enough, causing steal phenomenon it is often seen. More and more households in property safety are concerned about. Therefore, for the safe and convenient and other aspects of the demand, electronic password lo

5、cks in succession.The design is based on SCM AT89S51 as main control chip, and the combination of peripheral LCD1602 liquid crystal display, memory chip AT24C02, infrared remote control HS0038, and keyboard input, reset, power circuit assembly. The system can complete the lock, alarm, modify passwor

6、ds and other functions, can also through infrared to control chip lock, and power-down save password function. The whole design in the KEIL development environment, using C language master control chip control procedures to achieve multifunctional electronic cipher lock.Key words: Password lock, AT8

7、9S51, Storage大連東軟信息學(xué)院畢業(yè)設(shè)計(論文) 目錄目 錄 TOC o 1-3 u 摘 要 PAGEREF _Toc387757531 h I第1章緒 論 PAGEREF _Toc387757532 h 11.1 課題研究背景與意義 PAGEREF _Toc387757533 h 11.2 課題研究內(nèi)容與方法 PAGEREF _Toc387757534 h 11.3 課題研究現(xiàn)狀 PAGEREF _Toc387757535 h 2第2章關(guān)鍵技術(shù)介紹 PAGEREF _Toc387757536 h 32.1 單片機(jī)介紹 PAGEREF _Toc387757537 h 32.2 LCD

8、液晶顯示 PAGEREF _Toc387757538 h 32.3 鍵盤接口技術(shù) PAGEREF _Toc387757539 h 3第3章系統(tǒng)需求分析 PAGEREF _Toc387757540 h 53.1 系統(tǒng)設(shè)計目標(biāo) PAGEREF _Toc387757541 h 53.2 模塊需求描述 PAGEREF _Toc387757542 h 53.2.1 單片機(jī)最小系統(tǒng)需求分析 PAGEREF _Toc387757543 h 53.2.2 電源模塊需求分析 PAGEREF _Toc387757544 h 53.2.3 按鍵模塊需求分析 PAGEREF _Toc387757545 h 53.2.

9、4 LCD顯示模塊需求分析 PAGEREF _Toc387757546 h 63.3 系統(tǒng)開發(fā)環(huán)境 PAGEREF _Toc387757547 h 63.4 系統(tǒng)任務(wù)的可行性分析 PAGEREF _Toc387757548 h 63.4.1 技術(shù)可行性 PAGEREF _Toc387757549 h 63.4.2 經(jīng)濟(jì)可行性 PAGEREF _Toc387757550 h 7第4章系統(tǒng)設(shè)計 PAGEREF _Toc387757551 h 84.1 系統(tǒng)設(shè)計指導(dǎo)原則 PAGEREF _Toc387757552 h 84.1.1 指導(dǎo)思想 PAGEREF _Toc387757553 h 84.1.

10、2 軟件設(shè)計原則 PAGEREF _Toc387757554 h 84.2 硬件設(shè)計 PAGEREF _Toc387757555 h 94.2.1 系統(tǒng)整體原理圖 PAGEREF _Toc387757556 h 94.2.2 單片機(jī)與外圍存儲器連接電路設(shè)計 PAGEREF _Toc387757557 h 94.2.3 存儲模塊AT24C02 PAGEREF _Toc387757558 h 124.2.4紅外模塊HS0038 PAGEREF _Toc387757559 h 124.2.5 顯示模塊LCD1602 PAGEREF _Toc387757560 h 134.2.6 鍵盤輸入模塊 PAG

11、EREF _Toc387757561 h 144.2.7 報警電路 PAGEREF _Toc387757562 h 154.2.8 開鎖電路 PAGEREF _Toc387757563 h 154.3 軟件設(shè)計 PAGEREF _Toc387757564 h 164.3.1 控制流程設(shè)計 PAGEREF _Toc387757565 h 164.3.2 鍵值判斷設(shè)計 PAGEREF _Toc387757566 h 174.4開鎖設(shè)計 PAGEREF _Toc387757567 h 184.5 紅外遙控設(shè)計 PAGEREF _Toc387757568 h 20第5章系統(tǒng)實現(xiàn) PAGEREF _To

12、c387757569 h 215.1環(huán)境配置 PAGEREF _Toc387757570 h 215.2程序?qū)崿F(xiàn) PAGEREF _Toc387757571 h 225.3 系統(tǒng)集成與調(diào)試 PAGEREF _Toc387757572 h 25第6章系統(tǒng)測試 PAGEREF _Toc387757573 h 266.1 測試概述 PAGEREF _Toc387757574 h 266.2實物測試 PAGEREF _Toc387757575 h 266.3問題及解決辦法 PAGEREF _Toc387757576 h 28第7章結(jié)論 PAGEREF _Toc387757577 h 29參考文獻(xiàn) PA

13、GEREF _Toc387757578 h 30致 謝 PAGEREF _Toc387757579 h 31大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)- 第1章緒 論1.1 課題研究背景與意義隨著新技術(shù)的不斷開發(fā)與應(yīng)用,近年來單片機(jī)發(fā)展十分迅速,一個以微機(jī)應(yīng)用為主的新技術(shù)革命浪潮正在蓬勃興起,單片機(jī)的應(yīng)用已經(jīng)滲透到冶金、電力、建材、化工、機(jī)械、石油、食品等各個行業(yè)。單片機(jī)控制無疑是人們追求的目標(biāo)之一,它所給人們帶來的方便也是不可否認(rèn)的其中單片機(jī)控制就是一個典型的例子。MCS-51系列單片機(jī)應(yīng)用廣泛,是學(xué)習(xí)單片機(jī)技術(shù)較好的系統(tǒng)平臺,同時也是單片機(jī)微型計算機(jī)應(yīng)用系統(tǒng)開發(fā)的一個重要系列。目前,單片機(jī)原理與應(yīng)用

14、教材大都采用匯編語言講解和設(shè)計程序?qū)嵗珔R編語言學(xué)習(xí)困難。在實際應(yīng)用系統(tǒng)開發(fā)調(diào)試中,特別是開發(fā)比較復(fù)雜的應(yīng)用系統(tǒng)時,為了提高開發(fā)效率和使程序便于移植,現(xiàn)在多用C語言。在信息產(chǎn)業(yè)飛速發(fā)展的今天,我們生活中必不可需的設(shè)備都向著小型化、便攜化、智能化、自動化的方向發(fā)展。所以電子密碼鎖隨著快節(jié)奏的生活應(yīng)運而生。在我國六七十年代還是傳統(tǒng)的一把鑰匙配一把鎖,不管是單位還是個人每天都要認(rèn)真檢查是否鎖上了門,而且鑰匙還不能隨便亂放,一旦不小心忘記放在哪里很可能就打不開門了。傳統(tǒng)的鎖也相當(dāng)?shù)牟话踩?,會有一些不法分子想盡辦法打開你的房鎖去偷盜東西。電子密碼鎖的產(chǎn)生使得這些問題都不再是問題,我們只需簡單的記住六位

15、密碼即可。1.2 課題研究內(nèi)容與方法電子鎖可以在日常生活和現(xiàn)代辦公中,住宅與辦公室的安全防范、單位的文件檔案、財務(wù)報表以及一些個人資料的保存等多種場合使用。大大提高了主人物資的安全性,安全可以代替老式機(jī)械鎖?,F(xiàn)在的密碼鎖種類不同,樣式多變。本論文是以經(jīng)濟(jì)實用為前提,運用單片機(jī)AT89C2051,設(shè)計了一款電子密碼鎖,此款密碼鎖是具有自動報警功能的,具有合理的設(shè)計方法,簡單易行,成本低,符合社會所需的用鎖要求。(1)系統(tǒng)設(shè)置4位密碼,通過鍵盤輸入密碼,如果密碼輸入正確,則鎖將會打開。(2)用戶可以自己設(shè)置密碼,且在開鎖的狀態(tài)下,密碼是可以修改的。(3)擁有自動報警的功能。自動報警分遠(yuǎn)程報警和現(xiàn)場

16、報警兩種?,F(xiàn)場報警由揚(yáng)聲器發(fā)出報警聲。(4)兩種情況下可報警:一是密碼輸入錯誤3次,則報警;二是非正常開門,如破門而入的情況,可通過系統(tǒng)的紅外監(jiān)視裝置監(jiān)測,同時報警,保證了系統(tǒng)的安全性。系統(tǒng)在正常工作時,用戶輸入密碼4位,單片機(jī)進(jìn)行判斷密碼正確與否,如果密碼正確,則門將會打開,系統(tǒng)不會發(fā)出報警信號;如果密碼輸入不正確,則有指示燈進(jìn)行提示,要求重新輸入密碼,密碼輸入三次都不正確的話,則會發(fā)出報警信號。1.3 課題研究現(xiàn)狀20世紀(jì)80年代后,隨著電子鎖專用集成電路的出現(xiàn),電子鎖的體積縮小,同時可靠性提高,成本也相對提高,所以只適合使用在安全性要求較高的場合,且需要有電源提供能量,使用還局限在一定范

17、圍,難以普及,所以對密碼鎖的研究一直沒有明顯進(jìn)展。到了90年代,美國、意大利、德國、日本、加拿大、韓國以及我國的臺灣、香港等地的微電子技術(shù)的進(jìn)步和通信技術(shù)的發(fā)展為密碼鎖提供了技術(shù)上的支持,從而推動密碼鎖走向?qū)嶋H應(yīng)用的階段。目前,在西方國家,電子密碼鎖技術(shù)相對先進(jìn),種類齊全,電子密碼鎖已被廣泛應(yīng)用于智能門禁系統(tǒng)中,使之更加安全更加可靠實現(xiàn)大門的管理。我國于90年代初期開始對密碼鎖進(jìn)行初步的探索。到目前為止,隨著電子技術(shù)和信息技術(shù)的發(fā)展,電子密碼鎖的技術(shù)領(lǐng)域已發(fā)展的十分成熟。從目前的技術(shù)水平和市場認(rèn)可程度看,使用最為廣泛的是鍵盤式電子密碼鎖,該產(chǎn)品主要應(yīng)用于保險箱、保險柜和金庫,還有一部分應(yīng)用于保

18、管箱和運鈔車。在其他技術(shù)領(lǐng)域還有遙控式電子密碼鎖以及卡片式密碼鎖等。大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)第2章關(guān)鍵技術(shù)介紹2.1 單片機(jī)介紹單片機(jī)最小系統(tǒng)即是單片機(jī)運行的最基本電路,最小系統(tǒng)中的組成缺一不可。最小系統(tǒng)主要是有有三部分組成,其中包括單片機(jī)、復(fù)位電路、時鐘電路等幾部分組成。這幾部分是單片機(jī)系統(tǒng)必不可少的,既然被稱為單片機(jī)最小系統(tǒng),他的每一部分都是單片機(jī)系統(tǒng)必不可少的部分,單片機(jī)是一切控制的核心,他負(fù)責(zé)單片機(jī)軟件的運行,協(xié)調(diào)各個硬件電路之間的協(xié)調(diào)運行。軟件代碼需要燒寫在單片機(jī)內(nèi),供電后,單片機(jī)運行程序集可開始運行,隨著事項相應(yīng)功能。單片機(jī)內(nèi)部集成了外圍電路、接口和存儲器的CPU芯片,單片

19、機(jī)已經(jīng)圖片了計算機(jī)結(jié)構(gòu),針對他的結(jié)構(gòu)特點,其還可以成為嵌入式微控制器。單片機(jī)采用哈佛體系結(jié)構(gòu),即是存儲空間與程序之間互相獨立的體系。單片機(jī)的最小系統(tǒng)就是讓單片機(jī)能正常工作并發(fā)揮其功能時所必須的組成部分也可理解為是用最少的元件組成的單片機(jī)可以工作的系統(tǒng)。2.2 LCD液晶顯示為了能方便直觀的了解到當(dāng)前地段的站名和信息,顯示的內(nèi)容主要為16字符x 2行,字符點陣為5 x 8點,采用的驅(qū)動方式為1/16D?;静僮鲿r序為讀狀態(tài):RSL,RWH,EH ;寫指令:RSL,RWL,D0D7=指令碼,E高脈沖;讀數(shù)據(jù):RSH,EH ;寫數(shù)據(jù):RSH,RWL,D0D7=數(shù)據(jù),E高脈沖 ,數(shù)碼管的4,5,6分別

20、與單片機(jī)的P2.0P2.2相連;714分別與P0.0P0.7相連,通過單片機(jī)的信息處理,從而在液晶顯示頻上顯示各段信息。2.3 鍵盤接口技術(shù)機(jī)械式按鍵被按下或者釋放的時候,由于受到機(jī)械性彈性作用的影響下,通常會伴隨著有一段時間的觸點機(jī)械性抖動,然后觸點才會慢慢的穩(wěn)定下來。抖動時間的長短和開關(guān)的機(jī)械性彈性有關(guān),一般為5-10 ms。在觸點出現(xiàn)抖動的時候,檢測按鍵的通和斷的情況,就可能會出現(xiàn)判斷錯誤。即按鍵的每一次釋放或按下都有被錯誤地認(rèn)定是很多次操控的可能性,這樣的情況在開發(fā)的過程中不應(yīng)該發(fā)生的。所以為了避免按鍵的觸點發(fā)生的機(jī)械性抖動帶來的的檢測性錯誤判斷,就必須用消除抖動的一些措施。這一點就可

21、從硬件上和軟件上兩方面來考慮了。這樣在鍵數(shù)比較少的時候,可以采取硬件消抖的方式,但當(dāng)鍵數(shù)較多的時候,就得要采用軟件消抖的方式。在硬件方面上可以運用在按鍵的輸出端加一個R-S觸發(fā)器(即為雙穩(wěn)態(tài)的觸發(fā)器)或者單穩(wěn)態(tài)的觸發(fā)器所構(gòu)成消除抖動的電路。用軟件使用的方法是:當(dāng)在測試下到有按鍵被按下的時候,會采用一個大約10 ms的延時程序(具體時間可以通過使用的按鍵來調(diào)節(jié))。再確認(rèn)這個按鍵的電平是否仍然持續(xù)著一個閉合的電平。若仍然持續(xù)著一個閉合的電平,則確認(rèn)此按鍵這會正處在一個閉合著的情況下。同理所示,當(dāng)按鍵被釋放以后,也要采用相同的措施來確認(rèn),這樣也可以去除抖動對開發(fā)的不利因素。大連東軟信息學(xué)院畢業(yè)設(shè)計(

22、論文)第3章系統(tǒng)需求分析3.1 系統(tǒng)設(shè)計目標(biāo)本設(shè)計由主控芯片51單片機(jī),單片機(jī)時鐘電路,鍵盤,和開鎖電路組成。單片負(fù)責(zé)控制整個系統(tǒng)的執(zhí)行過程。本系統(tǒng)采用以單片機(jī)為核心元件的控制方案。由于單片機(jī)種類繁多,各種型號都有其一定的應(yīng)用環(huán)境,因此在選用時要多加比較,合理選擇,以獲得最佳的性價比。一般來說在選取單片機(jī)時從下面幾個方面考慮:性能、存儲器、運行速度、I/O口、定時/計數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些方面外,還有一些最基本的條件,比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、有沒有低電壓檢測功能、單片機(jī)內(nèi)有無時鐘振蕩器、有無上電復(fù)位功能等。在開

23、發(fā)過程中還要考慮開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等因素?;谝陨弦蛩乇驹O(shè)計選用單片機(jī)AT89S51作為本設(shè)計的核心元件,利用單片機(jī)靈活的編程設(shè)計和豐富的I/O端口,及其控制的準(zhǔn)確性,實現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲,外接LCD1602顯示器用于顯示作用。其原理如下圖1所示。3.2 模塊需求描述3.2.1 單片機(jī)最小系統(tǒng)需求分析單片機(jī)最小系統(tǒng)的功能是核心控制系統(tǒng),單片機(jī)最小系統(tǒng)實現(xiàn)的主要功能是控制功能電路的正常運行,已達(dá)到實現(xiàn)功能的目的。單片機(jī)最小系統(tǒng)是功能實現(xiàn)的控制單元,此模塊還

24、必須包含時鐘電路和復(fù)位電路,由于運行環(huán)境和很多不確定的因素導(dǎo)致的系統(tǒng)不正常運行,外部復(fù)位電路是必不可少的,在系統(tǒng)運行不正常是,內(nèi)部復(fù)位電路已經(jīng)無法正常復(fù)位,所以外部復(fù)位電路必不可少。時鐘電路也是單片機(jī)系統(tǒng)運行的必須器件之一,本系統(tǒng)選用了11.0592M的晶振,主要是系統(tǒng)是通信系統(tǒng),故選用11.0592M的晶振,以方便通信。3.2.2 電源模塊需求分析電源對于任何一個現(xiàn)代化產(chǎn)品來說,一切的基礎(chǔ)。他是一切電子設(shè)備運行的能量來源。電源模塊的設(shè)計必須滿足電路內(nèi)部一切供電電壓電路的需求,對于不同的電壓需求必須有相應(yīng)點電路和電源模塊進(jìn)行實現(xiàn)。3.2.3 按鍵模塊需求分析鍵盤的一個完整的控制程序應(yīng)該所具備以

25、下的功能:(1) 檢測有沒有按鍵被按下,應(yīng)該采取軟件或是硬件消抖的方式來避免不利的影響。(2) 有著可靠的邏輯性處理,每次只是處理了一個按鍵,其間會對任何其它按鍵的使用對系統(tǒng)也不會發(fā)生影響,而且無論到底一次按鍵的時間到底有多久,系統(tǒng)也僅會執(zhí)行僅有一次的按鍵功能的程序。(3) 準(zhǔn)確的輸出按鍵值,以滿足跳轉(zhuǎn)指令要求。在單片機(jī)中如果只用為數(shù)不多的幾個按鍵,就可以采用獨立式的按鍵。獨立按鍵是一個直接連接I/O口組成為的單獨按鍵電路。其特點就是每一個按鍵會單獨占用了一根I/O口,每一個按鍵的按下并不會影響到別的I/O口的狀態(tài)。獨立式的按鍵所配置的電路十分靈活,軟件結(jié)構(gòu)也很簡單,但是每一個按鍵都必須占有一

26、根I/O口,因此,在按鍵如果較多的時候,I/O口就會浪費很大,所以不宜被采用。3.2.4 LCD顯示模塊需求分析顯示電路現(xiàn)在已經(jīng)成為了最小系統(tǒng)不可的一部分,雖然單片機(jī)最小系統(tǒng)并未包含顯示電路,可是現(xiàn)有的單片機(jī)電路沒有了顯示電路已經(jīng)不能稱為合格的單片機(jī)系統(tǒng)。具有顯示電路更是更加先進(jìn)和美觀的電路,LCD現(xiàn)實模塊主要負(fù)責(zé)在設(shè)置過程中數(shù)據(jù)的查看,保證再輸入是液晶顯示電路會有相應(yīng)的顯示,將輸入的內(nèi)容顯示在液晶顯示屏上。液晶顯示電路在設(shè)置完成后,需要實時顯示單片機(jī)的運行狀態(tài)和時間。保證了系統(tǒng)的人性化和科學(xué)化。使其更加美觀更加人性化。3.3 系統(tǒng)開發(fā)環(huán)境 硬件環(huán)境:硬盤40G內(nèi)存1024MB軟件環(huán)境:win

27、dows xp/73.4 系統(tǒng)任務(wù)的可行性分析3.4.1 技術(shù)可行性 本系統(tǒng)采用雙控制模塊化結(jié)構(gòu),分兩部分進(jìn)行控制。兩部分又各自的單片機(jī)進(jìn)行控制各自獨立運行,互不影響。這樣對于系統(tǒng)的安全更加有保障。在某個模塊的出現(xiàn)問題的時候不會影響到整個系統(tǒng)的正常運行。本系統(tǒng)選用的單片機(jī)AT89S52是一種高性能、低功耗CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT

28、89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個中斷或硬件復(fù)位為止。AT89S52采用40引腳的雙列直插封裝(DIP方式)。AT89S52具有豐富的資源,而且性價比很高,對于一個有市場意義的項目來說成本的控制是非常重要的。

29、3.4.2 經(jīng)濟(jì)可行性系統(tǒng)在成本控制方面做了大量的工作,首先在選用控制芯片的方面就選用了性價比非常高的AT89S52單片機(jī)。此單片機(jī)自投入市場以來,深受開發(fā)者喜歡。其資源豐富,完全能夠滿足系統(tǒng)使用的需求,而且在價錢方面也有著足夠的優(yōu)勢。系統(tǒng)沒有設(shè)計多余點了和器件,保證了系統(tǒng)的簡潔性。系統(tǒng)中根據(jù)系統(tǒng)的需求選用了能夠滿足卻不多余的器件,保證系統(tǒng)在能夠?qū)崿F(xiàn)功能的基礎(chǔ)上,可以是本產(chǎn)品市場化。第4章系統(tǒng)設(shè)計4.1 系統(tǒng)設(shè)計指導(dǎo)原則4.1.1 指導(dǎo)思想對系統(tǒng)需求進(jìn)行分析整理,將系統(tǒng)進(jìn)行模塊化進(jìn)行開發(fā)、運行,以便提高維護(hù)效率。以實現(xiàn)預(yù)期的功能為目標(biāo),以降低成本為理念,以最簡潔的電路實現(xiàn)為根本。設(shè)計短跑計時器

30、,將硬件和軟件都進(jìn)行模塊化的設(shè)計。通過模塊化的設(shè)計將系統(tǒng)分解,先實現(xiàn)各個模塊功能后,再集成為系統(tǒng)來實現(xiàn)系統(tǒng)的功能。4.1.2 軟件設(shè)計原則(1)可靠性軟件程序的越來越復(fù)雜,規(guī)模也越來越大,軟件的可靠性成為技術(shù)性難題。對于系統(tǒng)本身系統(tǒng)運行的穩(wěn)定性可靠性越來越高,軟件系統(tǒng)的可靠性是保證設(shè)計聲譽(yù)和生存發(fā)展競爭能力的重要保證之一。軟件可靠性其含義就是軟件在測試運行過程中錯誤發(fā)生幾率。其錯誤發(fā)生率越低,其穩(wěn)定性就越高。當(dāng)軟件一旦發(fā)生故障,其本身具有排除故障和解脫死鎖的能力。軟件和硬件可靠性有著性本質(zhì)上的區(qū)別,主要變現(xiàn)在:硬件的可靠性是物理機(jī)理導(dǎo)致的衰變和老化,而軟件是由于設(shè)計和實現(xiàn)的過程中的錯誤所致。所

31、以軟件的可靠性必須在設(shè)計階段得以保證,在生產(chǎn)和測試階段無法檢測。(2) 可修改性要求以科學(xué)的方法設(shè)計 HYPERLINK /view/37.htm t _blank 軟件,使之有良好的結(jié)構(gòu)和完備的文檔,系統(tǒng)性能易于調(diào)整。(3) 健壯性健壯性是指軟件的接口接受到了軟件規(guī)范以外的符號,是否能夠判斷出這個輸入不符合規(guī)范要求,并且有相應(yīng)的對策來處理這樣的突發(fā)情況。 HYPERLINK /view/37.htm t _blank 軟件 HYPERLINK /view/963152.htm t _blank 健壯性這個概念非常模糊無法進(jìn)行明確的定義,但是卻是衡量軟件外部量度標(biāo)準(zhǔn)。 HYPERLINK /v

32、iew/37.htm t _blank 軟件設(shè)計的健壯直接反應(yīng)了設(shè)計和編碼人員的水平。反映了其對問題的分析能力和解決問題的能力。(4)可擴(kuò)展性 HYPERLINK /view/37.htm t _blank 軟件設(shè)計并非是以有效,而是要盡量留有后續(xù)升級的升級接口和升級的空間。一個完美的系統(tǒng)并不是設(shè)計出了非常強(qiáng)大的功能,而是代碼盡可能少的情況下實現(xiàn)了功能,而且在后續(xù)的升級的過程中有充分的接口和資源使系統(tǒng)在原有的基礎(chǔ)上即可升級或增加功能。4.2 硬件設(shè)計4.2.1 系統(tǒng)整體原理圖智能電子密碼鎖的基本原理是:從矩陣鍵盤輸入一組密碼,單片機(jī)把該密碼和設(shè)置密碼進(jìn)行比較,若輸入的密碼正確,則控制電磁鎖動作

33、,將電磁鎖抽回,從而將鎖打開;若輸入的密碼不正確,則要求從新輸入,并記錄錯誤次數(shù),如果2次錯誤,則被強(qiáng)制鎖定并報警。如下圖5.1所示:圖4.1 系統(tǒng)整體原理圖4.2.2 單片機(jī)與外圍存儲器連接電路設(shè)計在本設(shè)計中選用 ATMEL 公司的 AT89S51單片機(jī)作為主控芯片。它是一款低功耗,AT89S51就是一款廣泛應(yīng)用的,高性能CMOS 8位單片機(jī),由于系統(tǒng)控制方案簡單,數(shù)據(jù)量也不大,考慮到電路的簡單和成本等因素,因此在本設(shè)計中選用 ATMEL 公司的 AT89S51單片機(jī)作為主控芯片。主控模塊采用單片機(jī)最小系統(tǒng)是由于 AT89S51芯片內(nèi)含有8 B的 E2PROM ,無需外擴(kuò)存儲器,電路簡單可靠

34、,其時鐘頻率為 024 MHz,并且價格低廉,批量價在 10元以內(nèi)。AT89S51是一款功能強(qiáng)大的微型計算機(jī),它可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比。單片機(jī)的最小系統(tǒng)是由復(fù)位電路、時鐘電路和電源組成。復(fù)位操作有上電自動復(fù)位、按鍵復(fù)位和外部脈沖復(fù)位3種方法。本文采用的是上電復(fù)位它是通過系統(tǒng)外部的復(fù)位電路來實現(xiàn)的。根據(jù)電路原理可知電容兩極板間的電壓不能突變當(dāng)單片機(jī)電源接通電源的瞬間單片機(jī)的9管腳會產(chǎn)生一個階躍信號,所以RTS端維持高電平由于這個充電時間遠(yuǎn)遠(yuǎn)大于1ms,一般就可以實現(xiàn)對單片機(jī)的上電自動復(fù)位,即接通電源就完成了系統(tǒng)的初始化。初始化是為了讓單片機(jī)從地址0000H開始執(zhí)行, 除此之外單片

35、機(jī)要想正常工作還必須有時鐘電路,時鐘電路是產(chǎn)生時序的基礎(chǔ),單片機(jī)每執(zhí)行一條指令都是建立在時序電路上的,為了能保證單片機(jī)執(zhí)行指令的同步,電路就要在唯一的時鐘信號控制下按時序的先后進(jìn)行工作。它分為內(nèi)部時鐘電路和外部時鐘電路。本文采用的是內(nèi)部時鐘電路,在MCS51單片機(jī)的內(nèi)部有一個高增益的反向放大器,其輸入端為引腳XTAL1,輸出端為XTAL2,只要在外部接上兩個電容和一個晶振,就能夠成一個穩(wěn)定的自激振蕩器。這里主要看一下電容和晶振的選擇,晶振的大小與單片機(jī)的振蕩頻率有關(guān),電容的大小影響著振蕩器振蕩的穩(wěn)定性和起振的快速性,通常選擇1030pF的瓷片電容。本系統(tǒng)電容選擇為33pF,晶振為12MHz之所

36、以選擇這一頻率的晶振是為了在進(jìn)行單片機(jī)與電腦進(jìn)行串口通信時容易產(chǎn)生和電腦時鐘同步的波特率,另外在設(shè)計電路時,晶振和電容應(yīng)盡可能的靠近芯片,這樣可以提高系統(tǒng)的抗干擾能力,電源部分,電源與地之間可以接一個0.1uF的電容,它用來濾除電源的紋波,使單片機(jī)穩(wěn)定工作,單片機(jī)最小系統(tǒng)如圖4.2所示。 圖4.2 單片機(jī)最小系統(tǒng)單片機(jī)引腳說明:VCC:電源電壓輸入端。 GND:電源地。 P0口:P0口是一個8位漏極開路雙向I/O端口,每個引腳可以吸收8TTL門電流。P0口當(dāng)作數(shù)據(jù)輸出時需要加上拉電阻,當(dāng)P0口的I/O口被寫“1”后,被定義為高阻抗輸入狀態(tài)。P0可以用于外部程序數(shù)據(jù)存儲器,P0口可以是地址的低八

37、位以及數(shù)據(jù)輸出口。 P1口:P1口是一個8位雙向的I/O端口單片機(jī)內(nèi)部加上了上拉電阻的端口,P1口緩沖器可接收的4TTL柵極電流輸出。P1口的I/O口被寫 “1”后,內(nèi)部上拉的是高的,可以作為輸入,P1口外部下拉低時輸出電流,這是因為有內(nèi)部上拉的緣故。P2口:P2口是一個8位雙向的I/O端口單片機(jī)內(nèi)部加上了上拉電阻的端口,P2口緩沖器可接收的4TTL柵極電流輸出。當(dāng)P2口的I/O口被寫“1”后,內(nèi)部上拉的是高的,可以作為輸入,P2口外部下拉低時輸出電流,這是因為有內(nèi)部上拉的緣故。當(dāng)P2口用于外部程序存儲器或外部數(shù)據(jù)存儲器時P2口是地址高八位輸出。P3口:P3口是一個8位雙向的I/O端口單片機(jī)內(nèi)

38、部加上了上拉電阻的端口,P3口緩沖器可接收的4TTL柵極電流輸出。P3口的I/O口被寫“1”后,內(nèi)部上拉的是高的,可以作為輸入,P3口外部下拉低時輸出電流,這是因為有內(nèi)部上拉的緣故。P3口除了普通I/O口功能,還有其第二功能P3.0 RXD(輸入口) P3.1 TXD(輸出口) P3.2 /INT0(外部中斷0) P3.3 /INT1(外部中斷1) P3.4 T0(T0定時器的外部計數(shù)輸入) P3.5 T1(T1定時器的外部計數(shù)輸入) P3.6 /WR(存儲外部數(shù)據(jù)的寫選通) P3.7 /RD(存儲外部數(shù)據(jù)的讀選通) RST:復(fù)位引腳高電平時MCU復(fù)位,復(fù)位信號的輸入端口,當(dāng)MCU要復(fù)位時,給

39、與此引腳高電平,高電平持續(xù)時間是不少于兩個機(jī)器周期的時間。ALE/PROG:地址鎖存使能以及編程脈沖信號端口。當(dāng)單片機(jī)訪問外部的存儲器時,地址鎖存使能鎖存地址低八位。通常情況下,ALE引腳輸出單片機(jī)外部振蕩器的頻率的1/6的頻率輸出。應(yīng)該注意到的是:當(dāng)用于單片機(jī)擴(kuò)展外部的數(shù)據(jù)存儲器時,它會少一個ALE脈沖。如果你想禁止ALE輸出可以設(shè)置為0在SFR8EH地址。此時,ALE只有在執(zhí)行MOVX,MOVC指令時ALE才起作用。此外,ALE引腳稍微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE的禁令,設(shè)置無效。PSEN:程序存儲器允許輸出控制端,在讀外部程序存儲器時PSEN低電平有效,以實現(xiàn)外部程序存儲器單元

40、的讀操作。EA/VPP:外部程序存儲器訪問允許。當(dāng)/EA接高電平時,單片機(jī)讀取內(nèi)部程序存儲器,當(dāng)擴(kuò)展有外部ROM時,當(dāng)讀完內(nèi)部ROM后自動讀取外部ROM,當(dāng)/EA接低電平時,單片機(jī)直接讀取外部程序存儲器。XTAL1:片內(nèi)振蕩器反相放大器和時鐘發(fā)生器的輸入端。 XTAL2:片內(nèi)振蕩器反相放大器的輸出端。4.2.3 存儲模塊AT24C02存儲模塊的設(shè)計是把WP引腳接到GND上因為要讓器件進(jìn)行正常的讀/寫操作,把SDA串行數(shù)據(jù)/地址與單片機(jī)的P3.7引腳使AT24C02與單片機(jī)進(jìn)行所有數(shù)據(jù)的發(fā)送或接收,把SCK串行時鐘引腳與單片機(jī)的P3.6引腳相連接,讓單片機(jī)產(chǎn)生一個AT24C02工作的時鐘,使其正

41、常的工作。AT24C02的特點:數(shù)據(jù)線看門狗定時器;可編程復(fù)位門級;高數(shù)據(jù)傳輸速率400kHz速率和I2C總線;2.7V至7V電壓;低功耗CMOS工藝兼容;16寫緩沖區(qū);反撇寫保護(hù)芯片;高低電平復(fù)位信號輸出;100萬擦除周期;保存長達(dá)100年。存儲模塊電路如圖4.3所示。圖4.3 存儲模塊 AT24C02硬件結(jié)構(gòu)4.2.4紅外模塊HS0038紅外數(shù)據(jù)傳輸?shù)奶攸c:成本廉價、建設(shè)工程期短、適應(yīng)性好、擴(kuò)展性好、設(shè)備維護(hù)上更容易實現(xiàn)。使用紅外模塊進(jìn)行傳輸,豐富了系統(tǒng)的功能,提高了系統(tǒng)的可操作性,因而達(dá)到了交互式與智能化。紅外數(shù)據(jù)傳輸廣泛地運用在紅外遙控系統(tǒng)和車輛的監(jiān)控、門禁系統(tǒng)、小區(qū)的安全防火系統(tǒng)和傳

42、呼系統(tǒng)、身份的識別、非接觸RF的智能卡等。工業(yè)設(shè)備中,在高壓,輻射、有毒氣體、粉塵等環(huán)境下,采用紅外遙控不僅完全可靠而且能有效地隔離電氣干擾。一體化紅外線接收頭三個管腳分別是地、+5 V電源、解調(diào)信號輸出端接在單片機(jī)P3.3引腳上。利用外部中斷進(jìn)行數(shù)據(jù)的接收。紅外線接收器大都將信號的接受、放大、檢波等集于一身,而且可以經(jīng)過編碼解碼時單片機(jī)收到可識別的信號源。這樣一來便會減少硬件設(shè)計過程中的麻煩,使電路簡單化,且應(yīng)用起來比較方便。下圖4.4為紅外模塊硬件結(jié)構(gòu)。圖4.4 紅外模塊硬件結(jié)構(gòu)4.2.5 顯示模塊LCD1602如果想要了解系統(tǒng)的運行與工作狀態(tài)顯示器是不可缺少的,顯示器是一個典型的輸出設(shè)備

43、并且它的實際應(yīng)用也是極為廣泛的,幾乎所有的電子產(chǎn)品都會使用到顯示器其差別僅在于顯示器的結(jié)構(gòu)類型不同而已。最簡單的顯示器可以是LED發(fā)光二極管或者數(shù)碼管,它可以給出一個簡單的開關(guān)信息或者數(shù)字顯示,而需要顯示復(fù)雜的完整的信息上述的器件就不能勝任,而液晶的出現(xiàn)就很好的解決了這一問題,它不僅顯示內(nèi)容豐富而且好節(jié)約了單片機(jī)的管腳資源。本設(shè)計采用的是液晶顯示LCD1602。LCD1602內(nèi)部的字符已經(jīng)儲存了不同的字符形式,每一個字符都有一個固定的代碼,其代碼與標(biāo)準(zhǔn)的ASCII字符代碼一致。因此只要寫入顯示字符的ASCII碼即可,這種標(biāo)準(zhǔn)化的設(shè)計給使用帶來很大的方便。比如英文字母“C”的ASCII代碼是01

44、000011(43H),顯示時單片機(jī)往液晶模塊寫入顯示指令,模塊就會把地址為43H中的點陣字符圖形識別出,并會在液晶屏相應(yīng)位置上看到字母“C”。LCD1602液晶顯示與單片機(jī)的連接可以分為兩種方式:總線方式和模擬口線方式。在實驗中,我們常采用模擬口線連接方式。如圖4.5所示。圖4.5 顯示模塊硬件結(jié)構(gòu)目前市場字符液晶絕大多數(shù)是基于液晶芯片HD44780的,其控制原理是完全相同的,因此基于液晶芯片HD44780的寫控制程序是可以很容易地應(yīng)用到市場上大部分的字符液晶。LCD1602液晶的幾個特性:電壓為+5V、具有可調(diào)的對比度、內(nèi)部具有復(fù)位電路;還可以提供不同的控制命令,如:字符閃爍、清屏、顯示移

45、位、光標(biāo)閃爍等多種功能;顯示數(shù)據(jù)的存儲器DDRAM具有80字節(jié);內(nèi)建有160個5X7點陣的字型的字符發(fā)生器CGROM;可由用戶自定義的8個5X7的字符發(fā)生器CGRAM。LCD1602采用標(biāo)準(zhǔn)的16腳接口,其中VSS為地電源,VDD接5V正電源,VEE為液晶顯示器。RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。RW為讀寫信號線,高電平1時進(jìn)行讀操作,低電平0時進(jìn)行寫操作。E端為使能端。D0D7為8位雙向數(shù)據(jù)線。4.2.6 鍵盤輸入模塊鍵盤是單片機(jī)十分重要的輸入設(shè)備,是實現(xiàn)人機(jī)對話的紐帶。鍵盤是由一組規(guī)則排列的按鍵組成,一個按鍵實際上就是一個開關(guān)元件,即鍵盤是一組規(guī)則排列的開關(guān)

46、。根據(jù)按鍵與單片機(jī)的連接方式不同,按鍵主要分為矩陣式按鍵以及獨立式按鍵 ,有了這些按鍵,對單片機(jī)的控制就方便多了。本設(shè)計按鍵數(shù)量較多,所以采用矩陣式按鍵以節(jié)省I/O口線。將16個按鍵分為4排4列排列好,如圖3-9矩陣鍵盤硬件結(jié)構(gòu)。當(dāng)有一個鍵按下時,通過某一邊引腳賦低電平,掃描全部引腳看是否與最初的賦值一樣,不一樣則根據(jù)相應(yīng)的算法(通過改變后的值與初始值相或,根據(jù)結(jié)果賦值)確定是哪個鍵按下。圖4.6 鍵盤模塊硬件結(jié)構(gòu)鍵盤為44形式,按鍵包括阿拉伯?dāng)?shù)字09,以及鎖定、更改和改密三個應(yīng)用按鍵。當(dāng)用戶需要輸入密碼或修改密碼時,按下相應(yīng)按鍵即會與單片機(jī)產(chǎn)生信號,并會執(zhí)行相應(yīng)的程序。4.2.7 報警電路當(dāng)

47、密碼輸入兩次的數(shù)值與所設(shè)定的參數(shù)值不同時,單片機(jī)AT89C51便通過P2.7口控制三極管來驅(qū)動揚(yáng)聲器報警,當(dāng)輸出低電平時三極管截止,當(dāng)輸出高電平時三極管導(dǎo)通揚(yáng)聲器報警。如圖4.7所示。圖4.7 報警電路硬件結(jié)構(gòu)4.2.8 開鎖電路開鎖電路的功能是當(dāng)輸入正確的密碼后密碼鎖將被鎖定,既開鎖。當(dāng)單片機(jī)P2.6引腳發(fā)出信號經(jīng)三極管放大后,觸動電磁閥即會把鎖打開。一旦輸入密碼,單片機(jī)便會與初始密碼進(jìn)行比對,如果密碼輸入兩次都與原始密碼不相符即會報警。其原理圖如圖4.8所示。圖4.8 開鎖電路硬件結(jié)構(gòu)4.3 軟件設(shè)計軟件設(shè)計主要包括了主程序設(shè)計、鍵盤掃描設(shè)計、密碼修改設(shè)計、開鎖程序設(shè)計以及紅外遙控設(shè)計五個

48、方面。本設(shè)計采用Keil編譯器來進(jìn)行軟件的編程。4.3.1 控制流程設(shè)計主程序主要完成了系統(tǒng)的初始化、按鍵掃描、按鍵功能、以及調(diào)用顯示等功能。圖4.9 主程序流程圖設(shè)計4.3.2 鍵值判斷設(shè)計鍵盤掃描和鍵值讀取程序主要判斷矩陣按鍵是否按下,按下的是哪一個鍵,并求出按鍵的鍵值。矩陣鍵盤的識別方法有多種。相對來說,矩陣式鍵盤的軟件設(shè)計最終實現(xiàn)以下功能:是否有按鍵被按下;消除抖動;確定哪個鍵被按下,若按鍵閉合了一次,操作也只能是一次。圖4.10 鍵盤流程圖設(shè)計鍵盤程序如下:if(0keydata)|(4keydata)|(8keydata)|keydata=14)/在0-9之間的數(shù)字通過passwo

49、rdi=keydata;/鍵盤值進(jìn)行保存keydata=0;/把鍵盤值置其它值,不被其它利用,以一樣i+;4.4開鎖設(shè)計當(dāng)輸入密碼正確時,單片機(jī)輸出低電平,控制繼電器工作,模擬開鎖動作,同時,當(dāng)輸入密碼或開鎖成功時,蜂鳴器發(fā)出相應(yīng)的提示音。輸入密碼前,要先將正確的密碼從存儲器24C02中讀出,并存放在單片機(jī)RAM從40H開始的6個單元中。6位密碼鎖由矩陣按鍵輸入,輸入的密碼存儲在單片機(jī)RAM從30H開始的6個單元中,每輸入一位密碼,都要和正確的密碼進(jìn)行比較;若全部6位密碼均輸入正確,顯示密碼正確信息;若輸入的密碼不完全正確,則進(jìn)行第二位輸入,若輸入3次仍不正確,則報錯。輸入密碼時,還要打開定時

50、器T0,使定時器T0工作,當(dāng)計時到30s時,若輸入的密碼不正確或未輸入密碼,則顯示出錯信息。密碼修改程序用來設(shè)置新密碼,當(dāng)輸入的開鎖密碼正確后,可重新設(shè)置新密碼,輸入的新密碼暫存在單片機(jī)RAM從40H開始的單元中,然后,調(diào)用存儲器子程序,將40H開始的6位密碼存儲在24C02中。圖4.11 開鎖流程圖設(shè)計開鎖程序設(shè)計如下:while(1)if(keydata=4)/鎖定功能P3_6=0;EX1=1;goto start;4.5 紅外遙控設(shè)計HS008并反相后輸入到單片機(jī)的P3.2引腳,接收的信號由單片機(jī)進(jìn)行高電平與低電平寬度的測量,并進(jìn)行解碼處理。解碼編程時,既可以使用中斷方式,也可以使用查詢

51、方式。圖4.12 紅外遙控流程圖設(shè)計大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)第5章系統(tǒng)實現(xiàn)5.1環(huán)境配置單片機(jī)的開發(fā)離不開必要的硬件,同樣也離不開軟件,編寫的匯編語言源程序要變?yōu)镃PU可以執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,另一種是機(jī)器匯編。隨著單片機(jī)開發(fā)技術(shù)的不斷發(fā)展,單片機(jī)的開發(fā)軟件也在不斷的發(fā)展,Keil軟件是目前最流行開發(fā)51單片機(jī)的軟件。在硬件電路設(shè)計好的同時,也需要軟件的開發(fā)及使用。目前單片機(jī)類的課程設(shè)計大多采用Keil軟件來進(jìn)行程序的編寫。Keil不僅支持C語言還支持匯編語言。支持不同型號的MCS系類的51單片機(jī)的型號。Keil軟件已從早期的第一代發(fā)展到第四代了,有了更強(qiáng)大的功能。這

52、款軟件的操作方法也很簡單,甚至有些必須采用很復(fù)雜的硬件電路才能完成的工作,用軟件編程有時會變得很簡單,這樣可以把復(fù)雜電路的輸入信號直接用信號發(fā)生器給定,或是用電源來給定通過對電壓電流的調(diào)節(jié)來實現(xiàn)。Keil 工程的建立打開已安裝好的開發(fā)環(huán)境,進(jìn)入界面后選擇project然后在其下拉菜單中選擇new project選項如圖4-6所示。這樣就能新建一個工程 ,在選定的路徑下建立一個名字叫做abc的文件夾如圖4-7所示,在abc文件夾中建立了一個xyz.c文件之后點擊保存按鈕就會出現(xiàn)如圖5.1所示的畫面在此對話框中選擇Atmel之后會彈出一系列的單片機(jī)在本次設(shè)計中選用的是51單片機(jī),完成后在選Targ

53、et 1下的Source Group 1選擇Add把xyz.c文件加載到里面在xyz.c下添加所編好的C語言程序或是匯編語言程序,如果程序是分開寫得就可以添加多個子程序還有主程序,每個程序中必須有頭文件否則編譯不會通過 ,會顯示有錯誤。等編譯.hex文件時就要在此文件夾下找到。5.2程序?qū)崿F(xiàn)函數(shù)中主要包含了主函數(shù)、報警函數(shù)、存儲函數(shù)和顯示函數(shù)等。/ 普通AT89C ,AT89S ,STC89C等系列單片機(jī)頭文件#include / STC增強(qiáng)型51單片機(jī)頭文件/ #include STC12C5A.h #include #include #include KeyBoard.h#include

54、LCD1602.h#include delay.h#include 24c02.h/ 蜂鳴器引腳配置sbit BUZZ_CTRL = P37;/ LED引腳配置sbit LED = P27; / Orignal password,可自行修改const unsigned char Orig_Password = 1234560;/ 暫存當(dāng)前鍵碼和上次按鍵號,范圍0 - 15,16表示未按下unsigned char Pre_KeyNo = 16, KeyNo = 16;/ 顯示緩沖區(qū)unsigned char Dis_Buffer10 = 0;/ 輸入緩沖區(qū)unsigned char Input

55、_Buffer10 = 0;/ 蜂鳴器鳴響子程序void Beep() unsigned char i; for(i = 0; i 100; i +) delayms(1); BUZZ_CTRL = BUZZ_CTRL; / 清除密碼void Clear_Password() Dis_Buffer0 = 0; Input_Buffer0 = 0;void main() unsigned char i = 0 ; unsigned char Is_Vaild_Usr = 0; /合法用戶該值為1 unsigned char IIC_Password10 = 0; IIC_Password6 =

56、0; LCD1602_Init(); LCD1602_Clear();LCD1602_ShowStr(0,1,Your Password.);/ 注意:下面一行程序非常重要,在第一次燒程序時必要,這樣把初始密碼寫入到了EEPROM中/ 但是,在燒完第一次程序?qū)懭氤跏济艽a后,要再次燒寫程序,這樣驗證密碼時就是和外部EEPROM中的密碼對比/ 以下面一行程序中前加上“/”是為注釋掉WrToROM(123456,10,6);/ 寫入初始密碼(第一次寫入密碼時需要)RdFromROM(IIC_Password,10,6);/ 預(yù)先讀入上次保存在EEPROM中的密碼 LED = 1; while(1)

57、P1 = 0XF0; if(P1 != 0XF0) KeyNo = Key_Scan(); /掃描得到按鍵值 /if(KeyNo != Pre_KeyNo) / switch(KeyNo) /數(shù)字鍵 case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: if(i 6) /密碼限定在6位(可以改) if(i = 0) LCD1602_ShowStr(0,2, ); Input_Bufferi = KeyNo + 0; Input_Bufferi+1 = 0; Dis_Bufferi = *;

58、 Dis_Bufferi+1 = 0; LCD1602_ShowStr(0,2,Dis_Buffer); i +; break; case 10: /開鎖鍵 if( 0 = strcmp(Input_Buffer,IIC_Password) LED = 0; /開鎖成功 Clear_Password(); LCD1602_ShowStr(0,2,Unlock OK ! ); Is_Vaild_Usr = 1; /合法用戶 else /開鎖失敗 LED = 1; Clear_Password(); LCD1602_ShowStr(0,2,ERROR ! ); Is_Vaild_Usr = 0;

59、/非法用戶 i = 0; break; case 11: /上鎖鍵 LED = 1; Clear_Password(); LCD1602_ShowStr(0,1,Your Password.); LCD1602_ShowStr(0,2, ); i = 0; Is_Vaild_Usr = 0; break; case 12: / 更改密碼鍵 if(!Is_Vaild_Usr) / 非法用戶 LCD1602_ShowStr(0,2,No Right !); else /合法用戶則可以更改密碼 Clear_Password(); i = 0; LCD1602_ShowStr(0,1,New Pass

60、word.); LCD1602_ShowStr(0,2, ); break; case 13: / 保存新密碼 if(!Is_Vaild_Usr) LCD1602_ShowStr(0,2,No Right !); else WrToROM(Input_Buffer,0,6); RdFromROM(IIC_Password,0,6); IIC_Password6 = 0; i = 0; LCD1602_ShowStr(0,1,Your Password.); LCD1602_ShowStr(0,2,Password Saved!); break; case 14: / 重新輸入 i = 0; C

溫馨提示

  • 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

提交評論