![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/ef758b1b-fb48-4c13-9a50-687bace5661c/ef758b1b-fb48-4c13-9a50-687bace5661cpic.jpg)
![遠(yuǎn)紅外遙控電子密碼鎖畢業(yè)論文_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/5/21/ef758b1b-fb48-4c13-9a50-687bace5661c/ef758b1b-fb48-4c13-9a50-687bace5661c1.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢 業(yè) 設(shè) 計(jì)</b></p><p> 題目 遠(yuǎn)紅外遙控電子密碼鎖 </p><p> ——發(fā)射模塊軟件設(shè)計(jì) </p><p> 學(xué) 院 信息工程學(xué)院 </p><p> 專 業(yè) 電
2、子信息工程 </p><p> 姓 名 xxxxxxx </p><p> 學(xué) 號 xxxxxxxxxx </p><p> 指導(dǎo)教師 xxxxxx </p><p> 完成時間 2012-05-15 </p>&l
3、t;p><b> 獨(dú)立完成與誠信聲明</b></p><p> 本人鄭重聲明:所提交的畢業(yè)設(shè)計(jì)(論文)是本人在指導(dǎo)教師的指導(dǎo)下,獨(dú)立工作所取得的成果并撰寫完成的,鄭重確認(rèn)沒有剽竊、抄襲等違反學(xué)術(shù)道德、學(xué)術(shù)規(guī)范的侵權(quán)行為。文中除已經(jīng)標(biāo)注引用的內(nèi)容外,不包含其他人或集體已經(jīng)發(fā)表或撰寫過的研究成果。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中作了明確的說明并表示了謝意。本人完全意識到
4、本聲明的法律后果由本人承擔(dān)。</p><p> 畢業(yè)設(shè)計(jì)(論文)作者簽名: 指導(dǎo)導(dǎo)師簽名: </p><p> 簽字日期: 簽字日期:</p><p><b> 目 錄</b></p><p><b> 摘 要III</
5、b></p><p> AbstractIV</p><p><b> 第一章 緒論1</b></p><p> 1.1 設(shè)計(jì)研究的背景及意義1</p><p> 1.2 密碼鎖的發(fā)展趨勢2</p><p> 1.3 設(shè)計(jì)的具體要求及任務(wù)3</p><
6、p> 1.3.1 設(shè)計(jì)任務(wù)3</p><p> 1.3.2 基本要求4</p><p> 1.3.3 需解決的問題4</p><p> 第2章 紅外遙控電子密碼鎖總體設(shè)計(jì)方案6</p><p> 2.1 任務(wù)分析與實(shí)現(xiàn)6</p><p> 2.2 紅外通信基本原理6</p>
7、<p> 2.2.1 紅外遙控鎖硬件方案設(shè)計(jì)8</p><p> 2.2.2 紅外遙感電子密碼鎖的總體框圖8</p><p> 2.2.3 電子密碼鎖的功能實(shí)現(xiàn)9</p><p> 2.2.4 紅外遙控鎖軟件方案設(shè)計(jì)9</p><p> 第3章 紅外遙控鎖硬件電路設(shè)計(jì)方法及原理12</p><
8、p> 3.1 紅外遙控系統(tǒng)12</p><p> 3.2 單片機(jī)的原理及應(yīng)用14</p><p> 3.3 發(fā)射模塊單片機(jī)端口資源分配15</p><p> 3.4 系統(tǒng)原理圖15</p><p> 第4章 軟件設(shè)計(jì)流程17</p><p> 4.1 發(fā)射模塊編碼17</p>
9、<p> 4.1.1 紅外遙控編碼思想17</p><p> 4.1.2 軟件程序資源分配19</p><p> 4.2 程序設(shè)計(jì)子模塊分析19</p><p> 4.2.1 鍵盤掃描模塊20</p><p> 4.2.2 紅外編碼模塊22</p><p> 4.2.3時間波形設(shè)計(jì)模塊
10、23</p><p> 4.2.4 串行口收發(fā)數(shù)據(jù)模塊24</p><p> 4.2.5 紅外發(fā)射模塊25</p><p> 4.4 Keil程序設(shè)計(jì)29</p><p> 4.4.1 概述29</p><p> 4.4.2 C源程序的特點(diǎn)結(jié)構(gòu)29</p><p> 4.
11、4.3 軟件的開發(fā)過程29</p><p> 4.4.4 軟件的開發(fā)環(huán)境30</p><p> 第5章 綜合仿真調(diào)試31</p><p><b> 總 結(jié)32</b></p><p><b> 參考文獻(xiàn)34</b></p><p><b> 致
12、 謝35</b></p><p> 附錄Ⅰ:外文文獻(xiàn)及翻譯36</p><p> 附錄II:畢業(yè)設(shè)計(jì)任務(wù)書41</p><p> 附錄III:畢業(yè)設(shè)計(jì)開題報(bào)告44</p><p> 附錄IV: 主程序51</p><p> 遠(yuǎn)紅外遙控電子密碼鎖</p><p>
13、<b> 摘 要</b></p><p> 本次設(shè)計(jì)的課題是基于單片機(jī)STC89C52和紅外接收管的電子密碼鎖。該設(shè)計(jì)包含紅外發(fā)射模塊、紅外接收模塊和單片機(jī)處理模塊。我主要負(fù)責(zé)紅外發(fā)射模塊的編程,因此該文詳細(xì)的闡述了該模塊的設(shè)計(jì)與編程。與此同時,也簡單介紹了硬件設(shè)計(jì)和接收模塊軟件的軟件。該電子密碼鎖能實(shí)現(xiàn)密碼輸入、密碼修改、上鎖、開鎖以及超次鎖定功能。為了防止遙控器失竊,非法人員多次試
14、探嘗試打開遙控鎖,該系統(tǒng)還增加了錯誤報(bào)警功能,按三次鍵輸入密碼錯誤后,蜂蜜器持續(xù)鳴叫進(jìn)行報(bào)警。軟件部分用C語言進(jìn)行編程,采用模塊化設(shè)計(jì)思想。發(fā)射模塊主要包括矩陣鍵盤、紅外編碼與調(diào)制部分。其中紅外發(fā)射使用紅外發(fā)光二極管,調(diào)制部分采用38KHZ的脈沖調(diào)制,矩陣鍵盤使用4×4矩陣。接收部分通過紅外接收頭來接收、放大和解調(diào)接收到的紅外波,該接收頭內(nèi)部電路包括紅外監(jiān)測二極管AT24C02,放大器,限副器,帶通濾波器,積分電路,比較器等。
15、然后通過內(nèi)含256×8位存儲空間的AT24C02進(jìn)行密碼存儲。</p><p> 該電子密碼鎖可用性強(qiáng),例如可以作為汽車車門鎖(較常規(guī)的遙控鎖更安全),也可以作為倉庫和家用門鎖等。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。所以紅外線遙控是目前使用最廣泛的一種通信和遙控手段。</p><p> 關(guān)鍵詞:單片機(jī) 紅外
16、 遙控 密碼鎖</p><p> Far infrared remote control electronic combination lock</p><p><b> Abstract</b></p><p> The subject of this design is electronic lock based on STC
17、89C52 and infrared receiver . The design includes an infrared transmitter module, infrared receiver module and micro-controller processing module. I am responsible for the programming of the infrared transmitter module,
18、so this paper owns a detailed description of the design and programming of the module. At the same time, there is a brief introduction to the hardware design and software of receiver module. The electronic owns varieties
19、 o</p><p> Key words: MCU Infrared Controller Combination-lock</p><p><b> 第一章 緒論</b></p><p> 本章主要介紹了該設(shè)計(jì)的背景、發(fā)展、意義以及該設(shè)計(jì)的具體要求和任務(wù),由此讓我們對該設(shè)計(jì)有一個更清晰的認(rèn)識。</p><
20、;p> 1.1 設(shè)計(jì)研究的背景及意義</p><p> 鎖是置于可啟閉的器物上,用以關(guān)住某個確定的空間范圍或某種器具的,必須以鑰匙或暗碼打開的扣件。鎖具發(fā)展到現(xiàn)在已有一百多年的歷史了,人們對它的結(jié)構(gòu)、機(jī)理也研究得很透徹,因此,不用鑰匙就能打開的方法和工具也層出不窮。那些毫無道德觀念的盜賊想方設(shè)法利用高科技手段撬門開鎖,使廣大居民防不勝防。</p><p> 為什么會出現(xiàn)這種情況
21、呢?因?yàn)閭鹘y(tǒng)鎖具都存在致命的弱點(diǎn): 第一、 鎖芯采用常見的銅、鋁、鋅等材料,抵抗不了強(qiáng)力破壞; 第二、 鎖具制作工藝,技術(shù)落后,無法阻止技術(shù)手段的開啟。</p><p> 智能密碼鎖是新型現(xiàn)代化安全管理系統(tǒng),它集微機(jī)自動識別技術(shù)和現(xiàn)代安全管理措施為一體,它涉及電子,機(jī)械,光學(xué),計(jì)算機(jī)技術(shù),通訊技術(shù),生物技術(shù)等諸多新技術(shù)。它是解決重要部門出入口實(shí)現(xiàn)安全防范管理的有效措施,適用各種場合,如銀行、賓館
22、、機(jī)房、軍械庫、機(jī)要室、辦公間、智能化小區(qū)、工廠、家庭等。 而紅外技術(shù)在遙控技術(shù)領(lǐng)域的應(yīng)用越來越廣泛,遙控技術(shù)的發(fā)展經(jīng)歷大致了從有線到無線的超聲波揚(yáng)聲器,從振動子到紅外線,再到使用總線接口的微機(jī)紅外線遙控這樣幾個發(fā)展階段。遙控電路通常由遙控發(fā)射、遙控接收、微處理器等幾塊集成電路及其外圍元件組成。所以把這兩種技術(shù)融合起來所得的密碼鎖的性能將會更好。</p><p> 在數(shù)字技術(shù)網(wǎng)絡(luò)技術(shù)飛速發(fā)展的今天,智能密碼鎖技
23、術(shù)得到了迅猛的發(fā)展。智能密碼鎖系統(tǒng)早已超越了單純的門道及鑰匙管理,它已經(jīng)逐漸發(fā)展成為一套完整的出入管理系統(tǒng)。它在工作環(huán)境安全、人事考勤管理等行政管理工作中發(fā)揮著巨大的作用。 </p><p> 在該系統(tǒng)的基礎(chǔ)上增加相應(yīng)的輔助設(shè)備可以進(jìn)行電梯控制、車輛進(jìn)出控制,物業(yè)消防監(jiān)控、保安巡檢管理、餐飲收費(fèi)管理等,真正實(shí)現(xiàn)區(qū)域內(nèi)一卡智能管理。</p><p> 智能密碼鎖是在傳統(tǒng)的門鎖基礎(chǔ)上發(fā)展而
24、來的。傳統(tǒng)的機(jī)械門鎖僅僅是單純的機(jī)械裝置,無論結(jié)構(gòu)設(shè)計(jì)多么合理,材料多么堅(jiān)固,人們總能用通過各種手段把它打開。在出入人很多的通道(像辦公室,酒店客房)鑰匙的管理很麻煩,鑰匙丟失或人員更換都要把鎖和鑰匙一起更換。為了解決這些問題,就出現(xiàn)了電子磁卡鎖,電子密碼鎖,這兩種鎖的出現(xiàn)從一定程度上提高了人們對出入口通道的管理程度,使通道管理進(jìn)入了電子時代,但隨著這兩種電子鎖的不斷應(yīng)用,它們本身的缺陷就逐漸暴露,磁卡鎖的問題是信息容易復(fù)制,卡片與讀卡
25、機(jī)具之間磨損大,故障率高,安全系數(shù)低。密碼鎖的問題是密碼容易泄露,又無從查起,安全系數(shù)很低。同時這個時期的產(chǎn)品由于大多采用讀卡部分(密碼輸入)與控制部分合在一起安裝在門外,很容易被人在室外打開鎖。這個時期的門禁系統(tǒng)還停留在早期不成熟階段,因此當(dāng)時的門禁系統(tǒng)通常被人稱為電子鎖,應(yīng)用也不廣泛。紅外遙控智能密碼鎖的出現(xiàn)克服了這幾個缺點(diǎn),因而得到了更加廣泛的應(yīng)用。 </p><p> 目前,市場上很多國內(nèi)外的鎖具,實(shí)
26、際上都不具備真正的防盜功能,一般鎖具技術(shù)原理太過簡單。所以,新時代提出了鎖具必須革命的迫切的要求。</p><p> 本設(shè)計(jì)就是其中的一種,紅外遙控電子密碼鎖。本設(shè)計(jì)是利用紅外傳輸為途徑,方便遠(yuǎn)距離開鎖,不用像傳統(tǒng)鎖那樣一定要將鑰匙插進(jìn)鎖里才能開啟;整個設(shè)計(jì)實(shí)現(xiàn)單片機(jī)控制紅外線控制開鎖,密碼修改,LCD液晶顯示,按鍵提示,輸入密碼錯誤三次報(bào)警,清屏等功能,可在密碼外泄的情況下及時修改密碼。該設(shè)計(jì)具有使用方便、操
27、作簡單、價(jià)格低廉等特點(diǎn)。</p><p> 由于紅外線遙控不具有像無線電遙控那樣穿過障礙物去控制被控對象的能力,所以,在設(shè)計(jì)家用電器的紅外線遙控器時,不必要像無線電遙控器那樣,每套(發(fā)射器和接器)要有不同的遙控頻率或編碼(否則,就會隔墻控制或干擾鄰居的家用電器),所以同類產(chǎn)品的紅外線遙控器,可以有相同的遙控頻率或編碼,而不會出現(xiàn)遙控信號“串門”的情況。這對于大批量生產(chǎn)以及在家用電器上普及紅外線遙控提供了極大的方
28、便。由于紅外線為不可見光,因此對環(huán)境影響很小,再由紅外光波動波長遠(yuǎn)小于無線電波的波長,所以紅外線遙控不會影響其他家用電器,也不會影響臨近的無線電設(shè)備。隨著科技的進(jìn)步,人們對物質(zhì)生活的水平的要求也越來越高,以指代步,是人們對科技的要求。紅外技術(shù)的發(fā)展和紅外線的諸多特性,決定了它在短距離遙控上的應(yīng)用。</p><p> 1.2 密碼鎖的發(fā)展趨勢</p><p> 密碼鎖的產(chǎn)生也是經(jīng)歷了一些
29、階段的,有傳統(tǒng)的機(jī)械密碼鎖,電子密碼鎖,數(shù)字密碼鎖以及紅外遙控電子密碼鎖、無線電子密碼鎖等。傳統(tǒng)的機(jī)械密碼鎖由于其操作復(fù)雜,還要隨身佩帶鑰匙才能開鎖,使用極其不便。隨著科技的發(fā)展,一些以芯片特別是單片機(jī)為處理核心的新型電子密碼鎖不斷出現(xiàn)。紅外遙感電子密碼鎖是一種通過紅外線通信來輸入密碼后者手動輸入密碼來控制電路或者芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖等任務(wù),紅外遙感電子密碼鎖相比于機(jī)械密碼鎖,可靠性高,易于智能控制,設(shè)計(jì)和實(shí)
30、現(xiàn)簡便,密碼設(shè)定靈活,保密性良好,制造成本低廉,但也有一定弊端。隨著電子元件的進(jìn)一步發(fā)展,電子密碼控制系統(tǒng)也出現(xiàn)了很多的種類,功能日益強(qiáng)大,使用更加方便,安全保密性更強(qiáng),由以前的僅僅主機(jī)輸入密碼到現(xiàn)在的紅外或無線遙控器均可輸入密碼,由以前的單密碼輸入發(fā)展到現(xiàn)在的密碼加感應(yīng)元件,實(shí)現(xiàn)了更為真正的電子加密,用戶只有密碼或者是電子鑰匙中的一樣,是打不開電子鎖的。目前,電子密碼鎖在國外已大量使用,技術(shù)已趨于成熟。</p><
31、p> 人的某些與生俱來的本性特性(如手、眼睛、聲音、面部、指紋等特性)要素均可成為電子輸入信息,組合使用這些信息能夠使電子防盜密碼控制系統(tǒng)獲得更高的保密性,例如銀行金融機(jī)構(gòu)的金庫,需要使用復(fù)合信息密碼的電子防盜密碼控制系統(tǒng)。組合使用這些信息也能夠使電子防盜密碼控制系統(tǒng)獲得無限擴(kuò)展的可能??梢钥闯鲭娮用艽a控制系統(tǒng)組合使用這些電子信息是今后發(fā)展的趨勢。</p><p> 1.3 設(shè)計(jì)的具體要求及任務(wù)<
32、/p><p> 本節(jié)主要介紹了設(shè)計(jì)的具體要求及任務(wù),分別從設(shè)計(jì)任務(wù)、基本要求和需要解決問題三個方面來介紹。</p><p> 1.3.1 設(shè)計(jì)任務(wù)</p><p> 利用單片機(jī)STC89C52、紅外發(fā)光二極管、4*4鍵盤矩陣、紅外接收頭、蜂鳴器等設(shè)計(jì)一個紅外遙控密碼鎖。該系統(tǒng)硬件部分由紅外發(fā)射電路、紅外接收電路、復(fù)位電路、晶振電路、液晶顯示電路、報(bào)警電路、開鎖指示
33、燈電路組成,系統(tǒng)能完成紅外遙控開鎖、修改用戶密碼、顯示密碼暗碼等基本的密碼鎖的功能。</p><p> 基本功能及主要實(shí)現(xiàn)有如下幾個部分:</p><p><b> ?。?)、顯示</b></p><p> 采用LCD1602顯示密碼暗碼、開鎖、修改密碼、退格以及清屏等。</p><p> ?。?)、設(shè)置n位密碼&l
34、t;/p><p> 密碼通過鍵盤輸入,若密碼正確,則將鎖打開,初始化密碼為(666666)。</p><p><b> ?。?)、密碼修改</b></p><p> 密碼可以由用戶自己修改設(shè)定(支持可變長度密碼),鎖打開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認(rèn),以防止誤操作。</p><p&
35、gt;<b> ?。?)、報(bào)警功能</b></p><p> 密碼輸入錯誤LCD1602顯示器會出現(xiàn)錯誤提示,若密碼輸入錯誤次數(shù)達(dá)到3次,蜂鳴器會長期報(bào)警。</p><p><b> ?。?)、特殊功能鍵</b></p><p> 特殊功能鍵有確認(rèn)鍵、退格鍵、清屏鍵以及修改密碼鍵。</p><p&g
36、t; 1.3.2 基本要求</p><p> 1.根據(jù)方案設(shè)計(jì)原理電路</p><p> 2.供電電壓5V穩(wěn)壓電源。</p><p> 3.利用proteus仿真軟件對設(shè)計(jì)電路進(jìn)行仿真</p><p> 4. 設(shè)置n位密碼,密碼通過鍵盤輸入</p><p> 5.密碼可以由用戶自己修改設(shè)定</p>
37、;<p> 6.報(bào)警、密碼輸入出錯三次能立即報(bào)警</p><p> 7.密碼輸入暗碼顯示</p><p><b> 8. 密碼清除功能</b></p><p> 1.3.3 需解決的問題</p><p> 待解決的問題是實(shí)現(xiàn)紅外遙控開鎖,盡管市面上已經(jīng)有AT203紅外發(fā)射管和AT138RV3紅外接
38、收管,但是本次設(shè)計(jì)要求有單獨(dú)制作的紅外遙控模塊。我們采用了NPN三級管、鍵盤矩陣和紅外發(fā)光二極管及單片機(jī)STC89C52共同制作了自己的紅外遙控器。最難得問題是NEC紅外遙控編碼協(xié)議中的調(diào)制波38KHZ不好產(chǎn)生。只能使用示波器進(jìn)行觀察、計(jì)數(shù)、調(diào)整,最終獲得所需頻率載波。普通的8051系列單片機(jī)都是12時鐘周期/機(jī)器周期,而我們使用的作為發(fā)射控制的單片機(jī)是6時鐘周期/機(jī)器周期,這樣產(chǎn)生13us的中斷延時即可。AT138RV3紅外接收管不好
39、購買。最重要的問題是PROTUS元器件庫里沒有此種器件,況且發(fā)射的紅外線是實(shí)質(zhì)性的光,只好用紅外發(fā)射接收一體化的裝置IRLINK來進(jìn)行模擬仿真。至于存儲密碼,我們沒有外加存儲芯片,而是使用單片機(jī)內(nèi)部EEPROM,以此節(jié)省不必要的花銷。在紅外遙感電路板進(jìn)行調(diào)試也遇到了挺多問題,最終通過組員的共同努力得以解決。</p><p> 第2章 紅外遙控電子密碼鎖總體設(shè)計(jì)方案</p><p>
40、遠(yuǎn)紅外遙控鎖電子密碼總體設(shè)計(jì)方案這章,主要介紹了該設(shè)計(jì)的任務(wù)分析與實(shí)現(xiàn)和紅外通信原理等內(nèi)容。</p><p> 2.1 任務(wù)分析與實(shí)現(xiàn)</p><p> 本設(shè)計(jì)的任務(wù)是:以STC89C52單片機(jī)為處理核心,用紅外接收管接收來自遙控器的紅外波形,經(jīng)過接收管解調(diào)后轉(zhuǎn)化成的脈沖送入單片機(jī)進(jìn)行處理。紅外波的解碼是通過STC89C52單片機(jī)對紅外接收頭產(chǎn)生的信號的脈沖位置進(jìn)行檢測,從而判斷接收到
41、多少個0和1,最后合成為4個字節(jié)的8位代碼。通過軟件編碼,給該遙控器編寫相應(yīng)的初始化密碼(啟動系統(tǒng)是可以修改成任意的四位密碼),然后通過解碼來識別密碼,以進(jìn)行進(jìn)一步的操作。</p><p> 本系統(tǒng)總體思路如下:根據(jù)遙控器的按鍵編碼值對遙控鎖進(jìn)行編程,從而設(shè)置開鎖的初始化密碼。當(dāng)系統(tǒng)啟動時,系統(tǒng)進(jìn)入設(shè)正常工作狀態(tài),此時,如果用戶更改了初始密碼,用戶輸入新的密碼。為了使用方便,專門設(shè)置了一個按鍵開鎖。采用初始密碼
42、的操作同上。如果連續(xù)3次輸入的密碼均為錯誤,蜂鳴器會長鳴7秒報(bào)警。</p><p> 2.2 紅外通信基本原理</p><p> 紅外遙控是單工的紅外通信方式,本設(shè)計(jì)的紅外遙控采用以通信方式為基礎(chǔ)的紅外遙控,而且本設(shè)計(jì)也使用了紅外通信技術(shù),故著重分析紅外通信的基本原理。 </p><p> 紅外通信是利用紅外技術(shù)實(shí)現(xiàn)兩點(diǎn)間的近距離保密通信和信息轉(zhuǎn)發(fā)。它一般由紅
43、外發(fā)射和接收系統(tǒng)兩部分組成。發(fā)射系統(tǒng)對一個紅外輻射源進(jìn)行調(diào)制后發(fā)射紅外信號,而接收系統(tǒng)用光學(xué)裝置和紅外探測器進(jìn)行接收,就構(gòu)成紅外通信系統(tǒng)。 </p><p> 紅外線是波長在750nm至1mm之間的電磁波,它的頻率高于微波而低于可見光,是一種人的眼睛看不到的光線。紅外通信一般采用紅外波段內(nèi)的近紅外線,波長在0.75um至25um之間。紅外數(shù)據(jù)協(xié)會(IrDA)成立后,為了保證不同廠商的紅外產(chǎn)品能夠獲得最佳的通信效
44、果,紅外通信協(xié)議將紅外數(shù)據(jù)通信所采用的光波波長的范圍限定在850至900nm之內(nèi)。 </p><p> 紅外通信的基本原理是發(fā)送端將基帶二進(jìn)制信號調(diào)制為一系列的脈沖串信號(載波信號),通過紅外發(fā)射管發(fā)射紅外信號。常用的有通過脈沖寬度來實(shí)現(xiàn)信號調(diào)制的脈寬調(diào)制(PWM)和通過脈沖串之間的時間間隔來實(shí)現(xiàn)信號調(diào)制的脈時調(diào)制(PPM)兩種方法。脈時調(diào)制(PPM)是紅外數(shù)據(jù)協(xié)會(IrDA)和國際電子電工委員會(IEEE)都
45、推薦的調(diào)制方式,本設(shè)計(jì)采用脈時調(diào)制方法,即用兩個脈沖串之間的時間間隔來表示二進(jìn)制信息,數(shù)據(jù)比特的傳送仿照不帶奇偶校驗(yàn)的RS232通信,首先產(chǎn)生一個同步頭,然后接著8位數(shù)據(jù)比特,如圖2-1所示。</p><p> 圖2-1 PPM調(diào)制波形圖</p><p> 載波信號的頻率 f=38KHz,載波周期T=26.32us,本設(shè)計(jì)使用單片機(jī)軟件產(chǎn)生載波,取T=26us,脈沖寬度t1=10T=2
46、60us,二進(jìn)制數(shù)0的脈沖串周期t2=500us,二進(jìn)制數(shù)1的脈沖串周期t3=1000us。 </p><p> 普通的紅外遙控采用面向指令的幀結(jié)構(gòu),數(shù)據(jù)幀由同步碼,地址碼和指令碼組成,指令碼長度多為8~16個比特,傳送多字節(jié)遙控協(xié)議時效率偏低,而增加指令碼的長度不利于接收器同步,為此本設(shè)計(jì)選用一種面向字節(jié)的幀結(jié)構(gòu),采用類似于異步串行通信的幀結(jié)構(gòu),每幀由一個起始位(二進(jìn)制數(shù)0)、8個數(shù)據(jù)位和2個停止位(二進(jìn)制數(shù)
47、1)構(gòu)成,如圖2-2所示。每幀傳送1個字節(jié)的數(shù)據(jù),幀與幀間隔大于2ms,幀結(jié)構(gòu)不含地址信息,尋址問題由高層協(xié)議解決。 </p><p> 圖2-2 數(shù)據(jù)幀結(jié)構(gòu)示意圖</p><p> 由于紅外光存在反射,在全雙工的方式下發(fā)送的信號也可能會被本身接收,因此,紅外通信應(yīng)采用異步半雙工方式,即通信的某一方發(fā)送和接收是交替進(jìn)行的。</p><p> 2.2.1 紅外遙
48、控鎖硬件方案設(shè)計(jì)</p><p> 硬件主要分發(fā)射模塊、單片機(jī)STC89C52處理模塊和接收模塊。其中發(fā)射模塊為4×4鍵盤矩陣、紅外線發(fā)射電路,接收模塊為紅外接收頭、蜂鳴器、LCD顯示等。</p><p> 本設(shè)計(jì)用到的紅外接收頭來接收、放大和解調(diào)接收到的紅外波,只要把該接收頭的輸出引腳連接單片機(jī)的外部中斷口,就可以搭建簡單的紅外接收電路。通過對紅外接收頭輸出的正負(fù)脈沖進(jìn)行計(jì)
49、時和計(jì)數(shù),通過計(jì)算就可以得到按鍵編碼對應(yīng)的二進(jìn)制數(shù)組。通過該數(shù)組獲得按鍵值。利用紅外接收頭來接收紅外編碼信號,電路簡單,很容易操作實(shí)現(xiàn),硬件開銷小。</p><p> 2.2.2 紅外遙感電子密碼鎖的總體框圖</p><p> 基于STC89C52單片機(jī)系統(tǒng)紅外遙感電子密碼鎖框圖如圖2-3所示:</p><p> 圖2-3 紅外遙感電子密碼鎖框圖</p&
50、gt;<p> 該系統(tǒng)硬件部分由紅外發(fā)射電路、紅外接收電路、鍵盤矩陣電路、復(fù)位電路、晶振電路、液晶顯示電路、報(bào)警電路、指示燈電路組成,系統(tǒng)能完成紅外遙控開鎖、修改用戶密碼基本的密碼鎖的功能。</p><p> 圖2-4 紅外遙控發(fā)射框圖</p><p> 根據(jù)其功能設(shè)計(jì),基于單片機(jī)紅外遙控電子密碼鎖控制系統(tǒng)硬件功能框圖如圖2-3所示,圖2-4為紅外發(fā)射電路框圖。紅外發(fā)射
51、部分與紅外接收部分電路基本相同 ,只是接收部分比發(fā)射部分報(bào)警電路與LCD顯示模塊。</p><p> 2.2.3 電子密碼鎖的功能實(shí)現(xiàn)</p><p> 本次設(shè)計(jì)是在熟練使用C52系列單片機(jī)的基礎(chǔ)上,設(shè)計(jì)出相關(guān)的外圍電路,并利用所選用的常用芯片設(shè)計(jì)出電子密碼鎖,基本功能設(shè)計(jì)如下:</p><p> 1) 原始密碼的設(shè)置:此密碼鎖在通電情況下修改密碼。</
52、p><p> 2) 密碼顯示與開鎖:先按下開鎖鍵,鍵入密碼時,有時并不能確認(rèn)某一個按鍵是否被按下,故我們在電路中設(shè)置了LCD顯示電路。在用戶輸入正確的密碼后,LCD給出正確的密碼提示,便可開鎖,否則給出相應(yīng)的提示。 </p><p> 3) 密碼的修改:當(dāng)設(shè)定的原始用戶密碼不小心外泄時,這時就要及時修改密碼,密碼可以由用戶自己修改設(shè)定,鎖打開后才能修改密碼,首先要正確輸入原始用戶密碼將鎖打
53、開,然后按“修改密碼”鍵,接下來輸入n位新密碼。</p><p> 4) 密碼錯誤報(bào)警:當(dāng)用戶鍵入錯誤密碼時,系統(tǒng)LCD顯示部分會給出密碼錯誤指示 ;當(dāng)連續(xù)三次出現(xiàn)密碼錯誤時報(bào)警。</p><p> 2.2.4 紅外遙控鎖軟件方案設(shè)計(jì)</p><p> 通過軟件控制單片機(jī)的功能是單片機(jī)的主要特點(diǎn)和優(yōu)點(diǎn),程序的設(shè)計(jì)要考慮合理性和可讀性,遵循模塊化設(shè)計(jì)的原則,采用
54、自頂向下的設(shè)計(jì)方法。模塊化設(shè)計(jì)使程序的可讀性好、修改及完善方便。</p><p> 軟件設(shè)計(jì)包括主程序、鍵盤掃描程序、紅外編碼程序、紅外解碼程序、紅外通信程序、LCD顯示程序等。</p><p> 在一定的范圍內(nèi),用戶可以用發(fā)射板遙控按鍵開鎖,十分便利??刂破鬈浖O(shè)計(jì)采用模塊化結(jié)構(gòu),包括主程序、鍵盤中斷子程序、LCD顯示子程序、紅外發(fā)射編碼、紅外接收解碼程序、功能鍵子程序。由鍵盤輸入信
55、息通過I/O口傳送到單片機(jī)系統(tǒng),單片機(jī)進(jìn)行處理,將其進(jìn)行紅外編碼,通過紅外發(fā)射出去。紅外接收模塊通過紅外接收頭AT138RV3接收到紅外數(shù)據(jù),進(jìn)行解碼后,將密碼與實(shí)際密碼相比較,然后根據(jù)比較結(jié)果控制相應(yīng)I/O口輸出信號,控制相應(yīng)的控制組件動作。</p><p> 系統(tǒng)啟動后,從液晶屏可以看到當(dāng)前鎖的狀態(tài),并通過紅外發(fā)射板鍵盤進(jìn)行遙控開鎖、確認(rèn)鍵、退格、清屏、密碼設(shè)置、密碼修改和三次密碼錯誤報(bào)警。</p&g
56、t;<p><b> 接收部分</b></p><p> 在無操作狀態(tài)下,液晶背光不亮,液晶顯示“Enter Password ”,當(dāng)按下開鎖快捷鍵后,即進(jìn)入密碼輸入界面,通過鍵盤輸入密碼即可開鎖。在開鎖狀態(tài)下,當(dāng)修改密碼按鍵按下便進(jìn)入修改密碼界面“Enter Password1”,輸入完成后,進(jìn)入另一確認(rèn)密碼界面“Enter Password2”,防止誤操作。若誤輸入,則
57、可按下退格鍵或者清屏鍵。當(dāng)開鎖時,若三次輸入錯誤密碼,則開始報(bào)警。</p><p><b> 發(fā)射部分</b></p><p> 發(fā)射部分與接收的軟件功能幾乎相同,不同之處就是一個發(fā)射一個是接收。發(fā)射部分的功能實(shí)際就是接收部分的無線鍵盤和紅外NEC編碼。紅外發(fā)射主程序流程圖如圖2-5所示:</p><p> 圖2-5 紅外遙控發(fā)射框圖&l
58、t;/p><p> 第3章 紅外遙控鎖硬件電路設(shè)計(jì)方法及原理</p><p> 本章重點(diǎn)介紹了紅外遙控系統(tǒng)的硬件電路設(shè)計(jì)及其方法原理,主要從紅外遙控系統(tǒng)設(shè)計(jì)、單片機(jī)原理及應(yīng)用、發(fā)射模塊單片機(jī)端口資源分配等幾個方面加以說明。</p><p> 3.1 紅外遙控系統(tǒng)</p><p> 紅外線的光譜位于紅色光之外, 波長是0.76~1.5μm,
59、比紅光的波長還長。紅外遙控是利用紅外線進(jìn)行傳遞信息的一種控制方式,紅外遙控具有抗干擾,電路簡單,容易編碼和解碼,功耗小,成本低的優(yōu)點(diǎn)。紅外遙控幾乎適用所有家電的控制。 </p><p> 紅外遙控系統(tǒng)的主要部分為調(diào)制、發(fā)射和接收,如圖3-1 所示: </p><p> 圖3-1 紅外遙控系統(tǒng)</p><p> 圖3-2為紅外遙控系統(tǒng)框圖,其中紅外發(fā)射使用紅外發(fā)
60、光二極管,調(diào)制部分采用38KHZ的脈沖調(diào)制,矩陣鍵盤使用4×4矩陣。接收部分通過紅外接收頭來接收、放大和解調(diào)接收到的紅外波,該接收頭內(nèi)部電路包括紅外監(jiān)測二極管AT24C02,放大器,限副器,帶通濾波器,積分電路,比較器等。然后通過內(nèi)含256×8位存儲空間的AT24C02進(jìn)行密碼存儲。</p><p> 圖3-2 紅外遙控系統(tǒng)框圖</p><p> 調(diào)制載波頻率一般在
61、30khz到60khz之間,大多數(shù)使用的是38kHz,占空比1/3的方波,如圖3-2所示,這是由發(fā)射端所使用的 455kHz晶振決定的。在發(fā)射端要對晶振進(jìn)行整數(shù)分頻,分頻系數(shù)一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。</p><p> 紅外線通過紅外發(fā)光二極管(LED)發(fā)射出去,紅外發(fā)光二極管(紅外發(fā)射管)內(nèi)部構(gòu)造與普通的發(fā)光二極管基本相同,材料和普通發(fā)光二極管不同,在紅外發(fā)射
62、管兩端施加一定電壓時,它發(fā)出的是紅外線而不是可見光。 </p><p> 圖3-3A 簡單驅(qū)動電路 圖3-3B 射擊輸出驅(qū)動電</p><p> 如圖3-3A和圖3-3B是LED的驅(qū)動電路,圖3-3A是最簡單電路, 選用元件時要注意三極管的開關(guān)速度要快,還要考慮到LED的正向電流和反向漏電流,一般流過LED的最大正向電流為100mA,電流越
63、大,其發(fā)射的波形強(qiáng)度越大。 圖3-3A電路有一點(diǎn)缺陷,當(dāng)電池電壓下降時,流過LED的電流會降低,發(fā)射波形強(qiáng)度降低,遙控距離就會變小。圖3-3B所示的射極輸出電路可以解決這個問題,兩個二極管把三級管基極電壓鉗位在1.2V左右,因此三級管發(fā)射極電壓固定在0.6V左右,發(fā)射極電流IE基本不變,根據(jù)IE≈IC,所以流過LED的電流也基本不變,這樣保證了當(dāng)電池電壓降低時還可以保證一定的遙控距離。</p><p>
64、 常用的紅外發(fā)光二極管(如SE303、PH303),其外形和發(fā)光二極管了LED相似,發(fā)出紅外光。管壓降約為1.4v,工作電流一般小于20mA。為了適應(yīng)不同的電壓,回路中常常串有限流電阻。</p><p> 發(fā)射紅外線去控制相應(yīng)的受控裝置時,其控制的距離與發(fā)射功率成正比。為了增加紅外線的控制距離,紅外發(fā)光二極管工作于脈沖狀態(tài),因?yàn)槊}動光(調(diào)制光)的有效傳送距離與脈沖的峰值電流成正比,只需盡量提高峰值Ip,就能增加
65、紅外光的發(fā)射距離。提高Ip的方法,是減小脈沖占空比,即壓縮脈沖的寬度T,一些彩電紅外遙控器,其紅外發(fā)光管的工作脈沖占空比約為1/3—1/4;一些電器產(chǎn)品紅外遙控器,占空比是1/10。減小脈沖占空比還可使小功率紅外發(fā)光二極管的發(fā)射距離大大增加。常見的紅外發(fā)光二極管,其功率分為小功率(1mW—10mW)、中功率(20mW—50mW)和大功率(50mW—100mW以上)三大類。要使紅外發(fā)光二極管產(chǎn)生調(diào)制光,只需在驅(qū)動管上加上一定功率的脈沖電壓
66、。</p><p> 用紅外發(fā)光二極管去控制受控裝置時,受控裝置中均有相應(yīng)的紅外光電轉(zhuǎn)換元件,如紅外接收二極管、光電三極管。使用中已有紅外發(fā)射和接收配對的發(fā)光二極管。</p><p> 紅外發(fā)射與接收的方式有兩種,其一是直射式,其二是反射式。直射式指發(fā)光管和接收管相對安放在發(fā)射與受控物的兩端,中間相距一定距離;反射式指發(fā)光管與接收管并列一起,平時接收管始終無光照,只在發(fā)光管發(fā)出的紅外線
67、遇到反射物時,接收管收到反射回來的紅外光線才工作。雙管紅外發(fā)射電路,可提高發(fā)射功率,增加紅外發(fā)射的作用距離。</p><p> 3.2 單片機(jī)的原理及應(yīng)用</p><p> 單片機(jī)是指集成在一個芯片上的微型計(jì)算機(jī),也就是把組成微型計(jì)算機(jī)的各種功能部件,包括CPU、隨機(jī)存儲器RAM、只讀存儲器ROM、基本輸入/輸出接口電路。定時器/計(jì)數(shù)器等部件都制作在一塊芯片上,構(gòu)成一個完整的微型計(jì)算機(jī)
68、從而實(shí)現(xiàn)微型計(jì)算機(jī)的基本功能。</p><p> STC89C52是一種低功耗,高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活,超有效地
69、解決方案。STC89C52是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器, STC89C52單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p>
70、 STC89C52提供以下標(biāo)準(zhǔn)功能:8K字節(jié)Flash閃速存儲器,256字節(jié)內(nèi)部RAM,32個I/O口線,3個16位定時/計(jì)數(shù)器,5個中斷源,一個全雙工串行通信口,片內(nèi)具有振蕩器及時鐘電路。單片機(jī)最小系統(tǒng)如圖3-4所示</p><p> 圖3-4 單片機(jī)最小系統(tǒng)</p><p> 3.3 發(fā)射模塊單片機(jī)端口資源分配</p><p> 表3-1 為發(fā)射模塊單片
71、機(jī)端口資源分配。</p><p> 在發(fā)射程序中如下定義端口</p><p> sbit led=P3^7;</p><p> sbit out=P3^6;</p><p> #define port P2</p><p> 單片機(jī)STC89C52未分配到的端口皆懸空。</p><p>
72、;<b> 3.4 系統(tǒng)原理圖</b></p><p> 本設(shè)計(jì)是基于STC89C52和AT138RV3的紅外遙控電子密碼鎖。由STC89C52單片機(jī)系統(tǒng)構(gòu)成,整個設(shè)計(jì)具有控制開鎖,密碼修改,密碼暗碼顯示,工作狀態(tài)顯示,按鍵提示,輸入密碼錯誤三次報(bào)警,可變長度密碼設(shè)定等功能,可在密碼外泄的情況下及時修改密碼,具有保密性好、安全可靠、成本低廉、使用方便,易學(xué)易用。</p>&
73、lt;p> 該系統(tǒng)硬件部分由紅外發(fā)射電路、紅外接收電路、復(fù)位電路、晶振電路、液晶顯示電路、報(bào)警電路、開鎖指示燈電路組成,系統(tǒng)能完成紅外遙控開鎖、修改用戶密碼、顯示密碼暗碼等基本的密碼鎖的功能。</p><p> 基本功能及主要實(shí)現(xiàn)有如下幾個部分:</p><p><b> (1)、顯示</b></p><p> 采用LCD1602
74、顯示密碼暗碼、開鎖、修改密碼、退格以及清屏等。</p><p> ?。?)、設(shè)置n位密碼</p><p> 密碼通過鍵盤輸入,若密碼正確,則將鎖打開,初始化密碼為(666666)。</p><p><b> ?。?)、密碼修改</b></p><p> 密碼可以由用戶自己修改設(shè)定(支持可變長度密碼),鎖打開后才能修改
75、密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時候需要二次確認(rèn),以防止誤操作。</p><p><b> ?。?)、報(bào)警功能</b></p><p> 密碼輸入錯誤LCD1602顯示器會出現(xiàn)錯誤提示,若密碼輸入錯誤次數(shù)達(dá)到3次,蜂鳴器會長期報(bào)警。</p><p><b> ?。?)、特殊功能鍵</b></p>
76、;<p> 特殊功能鍵有確認(rèn)鍵、退格鍵、清屏鍵以及修改密碼鍵。</p><p> 在總體設(shè)計(jì)圖繪制時,為了版圖的美觀,我們采取了只畫一幅晶振電路和復(fù)位電路。這樣的話,就必須分別定義發(fā)射和接收所用的單片機(jī)的頻率,發(fā)射調(diào)為22MHZ,接收為11.0592MHZ。普通的8051系列單片機(jī)都是12時鐘周期/機(jī)器周期,而本次設(shè)計(jì)使用的STC89C51單片機(jī)是6時鐘周期/機(jī)器周期,且其自帶存儲EEPROM用
77、來存儲設(shè)定的密碼。系統(tǒng)原理圖如圖3-5所示:</p><p> 圖3-5 系統(tǒng)原理圖</p><p> 第4章 軟件設(shè)計(jì)流程</p><p> 在軟件設(shè)計(jì)過程中,采用模塊化設(shè)計(jì)思想,利用“化整為零”、“化零為整”的方法,分別設(shè)計(jì)各個子模塊的流程圖,然后按照流程圖去編寫對應(yīng)程序,并在此過程中,分模塊進(jìn)行編譯與調(diào)試。</p><p> 4
78、.1 發(fā)射模塊編碼</p><p> 在發(fā)射模塊編碼過程中,一定要嚴(yán)格按照NEC協(xié)議的標(biāo)準(zhǔn)進(jìn)行設(shè)計(jì)。因此,在變嗎之前,必須理解并掌握NEC編解碼的定義。</p><p> 4.1.1 紅外遙控編碼思想</p><p> 遙控發(fā)射器專用芯片很多,根據(jù)編碼格式可以分成兩大類,這里我們以運(yùn)用比較廣泛,解碼比較容易的一類來加以說明,現(xiàn)以日本NEC的uPD6121G 組
79、成發(fā)射電路為例說明編碼原理, 我們使用的超薄型紅外線遙控器使用的就是6121 編碼。當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征: 采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms 的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms 的組合表示二進(jìn)制的“1”, 其波形如圖4-1 所示: </p><p&
80、gt; 圖4-1 數(shù)據(jù)波形編碼</p><p> 上述“0”和“1”組成的32 位二進(jìn)制碼經(jīng)38kHz 的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電源功耗的目的。然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。</p><p> UPD6121G 產(chǎn)生的遙控編碼是連續(xù)的32 位二進(jìn)制碼組,其中前16 位為用戶識別碼,能區(qū)別不同的電器設(shè)備,防止不同機(jī)種遙控碼互相干擾,如我們可以同時使用電
81、視機(jī)、機(jī)頂盒、功放等遙控器,但它們不會產(chǎn)生誤觸發(fā)。該芯片的用戶識別碼固定為十六進(jìn)制01H;后16位為8 位操作碼(功能碼)及其反碼。UPD6121G 最多額128 種不同組合的編碼。 </p><p> 遙控器在按鍵按下后,周期性地發(fā)出同一種32 位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時間隨它包含的二進(jìn)制“0”和“1”的個數(shù)不同而不同,大約在45~63ms 之間。如下圖4-2所示:</p>
82、;<p> 圖4-2 遙控編碼波形</p><p> 當(dāng)一個鍵按下超過36ms,振蕩器使芯片激活,將發(fā)射一組108ms編碼脈沖,這108ms發(fā)射代碼由一個起始碼(9ms),一個結(jié)果碼(4.5ms),低8 位地址碼(9ms~18ms),高8 位地址碼(9ms~18ms),8 位數(shù)據(jù)碼(9ms~18ms)和這8 位數(shù)據(jù)的反碼(9ms~18ms)組成。如果鍵按下超過108ms 仍未松開,接下來發(fā)射的
83、代碼(連發(fā)代碼)將僅由起始碼(9ms)和結(jié)束碼(2.5ms)組成。代碼格式(以接收代碼為準(zhǔn),接收代碼與發(fā)射代碼反向。</p><p> ?。保┪欢x 如圖4-3</p><p> 圖4-3 “0”碼編碼波形</p><p> ?。玻﹩伟l(fā)代碼格式 如圖4-4</p><p> 圖4-4 32位碼編碼波形</p><p&
84、gt; ?。常┻B發(fā)代碼格式 如圖4-5</p><p> 圖4-5 重復(fù)碼編碼波形</p><p> 由于本設(shè)計(jì)中,我們需要自己設(shè)計(jì)并制作紅外遙控系統(tǒng),并在編碼中使用NEC協(xié)議。</p><p> 4.1.2 軟件程序資源分配</p><p> 在程序開始以前,首先要根據(jù)電路及設(shè)計(jì)的需要進(jìn)行必要的位定義變量、無符號變量、符號變量以及
85、數(shù)據(jù)表格變量。</p><p><b> (1)位定義變量</b></p><p> 本設(shè)計(jì)中位定義變量共有多個,包括按鍵、紅外發(fā)射端口、紅外指示燈的位定義變量以及各種功能標(biāo)志位。</p><p> 特殊定義函數(shù),如鍵盤掃描函數(shù)uchar key(),紅外發(fā)射函數(shù)void send_hw(uchar c),發(fā)射引導(dǎo)碼函數(shù)void send
86、_star(),數(shù)據(jù)編碼函數(shù)void send_char(uchar c)等。</p><p> ?。?)無字符局部變量及全局變量</p><p> 根據(jù)在程序中設(shè)計(jì)到的全局變量,都會在.h頭文件里予以聲明,可以同時賦初值,若沒有賦初值則程序自動賦0。本程序中設(shè)計(jì)到的全局變量包括時間變量、按鍵標(biāo)志變量、地址變量、顯示標(biāo)志變量、紅外收發(fā)標(biāo)志變量等。</p><p>
87、 bit key_bit; //按鍵重復(fù)標(biāo)記</p><p> bit hw; //紅外發(fā)射標(biāo)志位</p><p> sbit led=P3^7; //這是紅外指示燈的位定義</p><p> sbit out=P3^6; ////這是紅外數(shù)據(jù)發(fā)射端口的位定義</p><p> #define port P2
88、 //這是鍵盤按鍵的接口定義</p><p> 4.2 程序設(shè)計(jì)子模塊分析</p><p> 在單片機(jī)系統(tǒng)中常用的鍵盤有兩種:機(jī)械式按鍵鍵盤和薄膜鍵盤。鍵盤實(shí)際上是一組按鍵開關(guān)的集合。在鍵的閉合和斷開過程中,會產(chǎn)生抖動,抖動時間長短和開關(guān)的機(jī)械特性有關(guān)。鍵的閉合與斷開,反映在行線輸出電壓上就是呈現(xiàn)高電平或低電平。為準(zhǔn)確判定按鍵的位置,我們必須消除抖動期的影響。</p>
89、<p> 常用軟件的方法來消除按鍵抖動。其基本思想就是:在第一次檢測到有鍵按下時,該鍵所對應(yīng)的行線為低電平,執(zhí)行一段1ms的延時子程序后,確認(rèn)該行線電平是否仍為低電平,如果仍為低電平,則確認(rèn)該行確實(shí)有按鍵按下。當(dāng)按鍵松開時,行線的低電平變?yōu)楦唠娖?,?zhí)行一段1ms的延時子程序,檢測該行線為高電平,說明按鍵確實(shí)已經(jīng)松開。采取以上方法,即可消除抖動的影響。延時消抖程序如下:</p><p> void
90、delay() //1ms 誤差 -0.651041666667us</p><p><b> {</b></p><p> unsigned char a,b;</p><p> for(b=102;b>0;b--)</p><p> for(a=3;a>0;a--);</p>&
91、lt;p><b> }</b></p><p> 4.2.1 鍵盤掃描模塊</p><p> 本設(shè)計(jì)中采用了4×4矩陣鍵盤。其工作原理為:按建設(shè)在行、列線交點(diǎn)上。行線經(jīng)過上拉電阻接到+5V上。無鍵按下時,行線處于高電平狀態(tài);當(dāng)有按鍵按下時,行線電平狀態(tài)將由與此行線相連的列線的電平?jīng)Q定。</p><p><b>
92、 按鍵的識別方法:</b></p><p><b> 掃描法</b></p><p> 第一步,首先要識別有無鍵按下。將所有的列線均置為0電平,然后檢查各行線電平是否都為高電平,如果不全為高電平,則有鍵按下,否則說明無鍵按下。此時也只能判定按鍵的所在行。</p><p> 第二步,識別出按鍵的具體位置用掃描法。在某一時刻,只讓
93、一條列線處于低電平,其余所有列線處于高電平。以此類推,若此過程中,有行線電平由高電平變成低電平,則該時刻的列線即為按鍵所在列。由此,可以判斷出按下的按鍵具體位置。</p><p><b> 線反轉(zhuǎn)法</b></p><p> 第一步,讓行線編程為輸入線,列線編程為輸出線,并使輸出線輸出電平全為低電平,則行線中電平由高變低的所在行為按鍵所在行。</p>
94、<p> 第二步,再把行線編程列為輸出線,列線編程為輸入線,并使輸出線輸出電平為全低電平,則列線中電平由高變低所在列為按鍵所在列。由此,便可識別出按鍵的具體位置。</p><p> 盡管在實(shí)際應(yīng)用中,兩種方法都可行,但是掃描法要逐列掃描查詢,當(dāng)被按下的鍵處于最后一列時,則要經(jīng)過多次掃描才能最后獲得此按鍵所處的行列值。而線反轉(zhuǎn)法很簡單,無論被按鍵是處于第一列還是最后一列,均只需經(jīng)過兩步便能獲得此按鍵
95、所在的行列值。故在本次設(shè)計(jì)中,我采用了線反轉(zhuǎn)法。</p><p> 鍵盤工作方式有三種,即編程掃描、定時掃描和中斷掃描。</p><p> 編程掃描方式:這種方式只有當(dāng)單片機(jī)空閑時,才調(diào)用鍵盤掃描子程序,反復(fù)掃描鍵盤,等待用戶從鍵盤上輸入命令或數(shù)據(jù),來響應(yīng)鍵盤的輸入請求。</p><p> 定時掃描方式:單片機(jī)對鍵盤的掃描也可以采用定時掃描方式,即每隔一定的時
96、間對鍵盤進(jìn)行掃描一次。在這種方式中,通常利用單片機(jī)內(nèi)的定時器產(chǎn)生10ms的定時中斷,單片機(jī)響應(yīng)定時器溢出中斷請求,對鍵盤進(jìn)行掃描。</p><p> 中斷掃描方式:為進(jìn)一步提高單片機(jī)掃描鍵盤的工作效率,可采用中斷掃描方式,即只有在鍵盤有鍵按下時,才執(zhí)行鍵盤掃描程序并執(zhí)行該按鍵功能程序。</p><p> 鍵盤掃描模塊程序流程圖如下圖4-6所示:</p><p>
97、 圖4-6 鍵盤掃描子程序</p><p> 由此流程圖可以對應(yīng)編程,采取反轉(zhuǎn)法進(jìn)行識別按鍵具體位置。此程序中先將鍵盤口賦值0f,或者f0。當(dāng)先令port=0x0f ,若有按鍵按下,則可得到此時變化后的port值,并賦值給a;再令port=0xf0,若有按鍵按下,得到此時變化后的port值。將此時的port值與a取或,即可得到該按鍵的鍵值。但此時得到的鍵值都很大,故將a取反使得鍵值更簡單。其鍵盤掃描子模塊編
98、程如下:</p><p> uchar key()</p><p><b> {</b></p><p><b> uchar a;</b></p><p><b> a=0;</b></p><p> port=0x0f;</p>
99、<p><b> a=port;</b></p><p> if(a==0x0f) </p><p><b> {</b></p><p> key_bit=1; </p><p><b> delay();</b></p><p&
100、gt;<b> return 0;</b></p><p><b> }</b></p><p> if(!key_bit) return 0;</p><p><b> delay();</b></p><p> if(port==a) </p>&
101、lt;p><b> {</b></p><p> port=0xf0;</p><p><b> a|=port;</b></p><p><b> a=~a;</b></p><p><b> }</b></p><
102、p> else return 0;</p><p><b> }</b></p><p> 4.2.2 紅外編碼模塊</p><p> 采用脈寬調(diào)制的串行碼,設(shè)計(jì)過程中,按照NEC協(xié)議嚴(yán)格進(jìn)行編碼。其流程圖如圖4-7所示:</p><p> 圖4-7 編碼流程圖</p><p>
103、 該編碼嚴(yán)格按照NEC協(xié)議中的規(guī)則,用0.56ms的低電平與0.56ms的高電平組合表示“0”,用0.56ms的低電平和1.68ms的高電平組合表示“1”。當(dāng)一個鍵按下超過36ms,振蕩器使芯片激活,將發(fā)射一組108ms編碼脈沖,這108ms發(fā)射代碼由一個起始碼(9ms),一個結(jié)果碼(4.5ms),低8 位地址碼(9ms~18ms),高8 位地址碼(9ms~18ms),8 位數(shù)據(jù)碼(9ms~18ms)和這8 位數(shù)據(jù)的反碼(9ms~18
104、ms)組成。如果鍵按下超過108ms 仍未松開,接下來發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9ms)和結(jié)束碼(2.5ms)組成。代碼格式(以接收代碼為準(zhǔn),接收代碼與發(fā)射代碼反向)。</p><p> 發(fā)射部分與接收的軟件功能幾乎相同,不同之處就是一個發(fā)射一個是接收。發(fā)射部分的功能實(shí)際就是接收部分的無線鍵盤。</p><p> 4.2.3時間波形設(shè)計(jì)模塊</p><p&
105、gt; 以下為一中斷延時程序,由time值的改變來控制不同長度波形的產(chǎn)生和調(diào)制。</p><p> void Timer0Interrupt(void) interrupt 1</p><p><b> {</b></p><p> if(time) time--,over=0;</p><p> else o
106、ver=1,hw=0;</p><p> if(hw) out=~out;</p><p> else out=1;</p><p><b> }</b></p><p> 通過time值的改變分別來發(fā)射9ms的38KHZ方波、4.5ms的高電平, 0.565ms的38KHZ方波與1.685ms的高電平或者0.5
107、65ms的高電平等。在紅外數(shù)據(jù)調(diào)制過程中,在相應(yīng)的高電平時間里發(fā)送38KHZ的方波,在低電平時間不發(fā)射調(diào)制波,只是延時對應(yīng)的低電平時間。這樣就達(dá)到了調(diào)制的目的。在接收解碼時,有脈沖為低電平,無脈沖為高電平,這樣就實(shí)現(xiàn)了碼形的恢復(fù)。然后根據(jù)波形長度的不同,來判斷它是引導(dǎo)碼,還是“0”碼或者“1”碼。</p><p> 4.2.4 串行口收發(fā)數(shù)據(jù)模塊</p><p> 先掃描鍵值,然后按照
108、NEC編碼獲得編碼后的數(shù)據(jù),再通過紅外發(fā)射電路發(fā)射。其流程圖如圖4-8所示:</p><p> 圖4-8 串行口收發(fā)數(shù)據(jù)流程圖</p><p> 在進(jìn)行串行口初始化時,我們采用其工作方式1,即8位異步收發(fā),波特率可變。開啟串行口接收數(shù)據(jù)功能,并利用發(fā)送中斷標(biāo)志位TI去判斷數(shù)據(jù)的發(fā)送情況,由接收中斷標(biāo)志位RI去判斷數(shù)據(jù)的接收情況。且不論發(fā)送還是接收,都由接收、發(fā)射緩沖器SBUF來動作。且
109、此過程中,必須注意,發(fā)送中斷標(biāo)志位TI和接收中斷標(biāo)志位RI都必須由軟件清零。其主要程序如下:</p><p> void InitUART(void)//4800</p><p><b> {</b></p><p> // TMOD = 0x20;</p><p> SCON = 0x50; &
110、lt;/p><p> TH1 = 0xF3;</p><p> TL1 = TH1;</p><p> PCON = 0x00;</p><p><b> ES = 1;</b></p><p><b> TR1 = 1;</b></p><p>
111、;<b> }</b></p><p> 由發(fā)送中斷標(biāo)志位TI去判斷數(shù)據(jù)的發(fā)送情況。當(dāng)TI=1時,表示一幀數(shù)據(jù)發(fā)送結(jié)束,可供軟件查詢,也可申請中斷。CPU響應(yīng)中斷后,在終端服務(wù)程序中向SBUF寫入要發(fā)送的下一幀數(shù)據(jù)。</p><p> 發(fā)送鍵值到串行口小程序</p><p> void send(uchar c)</p>
112、<p><b> {</b></p><p><b> SBUF = c;</b></p><p> while(!TI);//一直發(fā)送數(shù)據(jù),直至發(fā)送完畢</p><p><b> TI = 0;</b></p><p><b> }</b&
113、gt;</p><p> 這些都是為了進(jìn)行串口數(shù)據(jù)調(diào)試,以此來測試各個模塊。</p><p> 4.2.5 紅外發(fā)射模塊</p><p> 在該模塊中,由send_star()函數(shù)來發(fā)射引導(dǎo)碼,由send_char()函數(shù)來發(fā)射經(jīng)38KHZ載波調(diào)制的地址碼和數(shù)據(jù)碼即鍵值碼。send_star()函數(shù)中通過time值的設(shè)定,進(jìn)入中斷,執(zhí)行Timer0Inter
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機(jī)的紅外遙控密碼鎖設(shè)計(jì)-紅外遙控密碼鎖畢業(yè)論文
- 基于單片機(jī)紅外遙控電子密碼鎖畢業(yè)論文
- 紅外遙控智能電子密碼鎖(硬件)
- 紅外遙控密碼鎖畢業(yè)設(shè)計(jì)
- 電子密碼鎖畢業(yè)論文
- 畢業(yè)論文——電子密碼鎖
- 電子密碼鎖-畢業(yè)論文
- 紅外遙控智能密碼鎖
- 紅外線遙控電子密碼鎖設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文開題報(bào)告
- 紅外線遙控電子密碼鎖設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文開題報(bào)告
- 電子密碼鎖畢業(yè)論文
- 紅外遙控電子密碼鎖設(shè)計(jì)—硬件設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 電子密碼鎖設(shè)計(jì)畢業(yè)論文
- 紅外遙控電子密碼鎖設(shè)計(jì)—軟件設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 紅外遙控電子密碼鎖設(shè)計(jì)—硬件設(shè)計(jì)【開題報(bào)告】
- 電子密碼鎖的設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文范文——電子密碼鎖
- 密碼鎖畢業(yè)論文
- 紅外遙控電子密碼鎖設(shè)計(jì)—硬件設(shè)計(jì)【文獻(xiàn)綜述】
- 基于單片機(jī)的紅外遙控電子密碼鎖設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
評論
0/150
提交評論