版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 單片機(jī)紅外控制發(fā)射器設(shè)計</p><p><b> 摘 要</b></p><p> 隨著社會的發(fā)展、科技的進(jìn)步以及人們生活水平的逐步提高,各種方便于生活的遙控系統(tǒng)開始進(jìn)入了人們的生活。傳統(tǒng)的遙控器采用專用的遙控編碼及解碼集成電路,這種方法雖然制作簡單、容易,但由于功能鍵數(shù)及功能受到特定的限制,只實(shí)用于某一專用電器產(chǎn)品的應(yīng)用,應(yīng)用范圍受到
2、限制。而采用單片機(jī)進(jìn)行遙控系統(tǒng)的應(yīng)用設(shè)計,具有編程靈活多樣、操作碼個數(shù)可隨便設(shè)定等優(yōu)點(diǎn)。</p><p> 本設(shè)計主要應(yīng)用了AT89C2051單片機(jī)作為核心,綜合應(yīng)用了單片機(jī)中斷系統(tǒng)、定時器、計數(shù)器等知識,應(yīng)用紅外光的優(yōu)點(diǎn)。遙控操作的不同,遙控發(fā)射器通過對紅外光發(fā)射頻率的控制來區(qū)別不同的操作。遙控接收器通過對紅外光接收頻率的識別,判斷出控制操作,來完成整個紅外遙控發(fā)射、接收過程。</p><
3、p> 其優(yōu)點(diǎn)硬件電路簡單,軟件功能完善,性價比較高等特點(diǎn),具有一定的使用和參考價值。</p><p> 關(guān)鍵詞:單片機(jī),紅外遙控,中斷,定時,計數(shù),頻率</p><p><b> Abstract</b></p><p> With the development of our society and the gradual im
4、provement of science and technology, various kinds of help remote control systems have began to enter people’s life. The traditional remote controllers adopt special remote control code and decode integrated circuits, th
5、ough this kind of method is simply and easily, it is only the practical application of some certain special electric equipments because of the counted functional keys is counted and the restricted function, so the range
6、of app</p><p> The design has used AT89C2051 microprocessor as core, integratively apply the interruptive system, timer , counter ,etc. mainly to design originally and also take the advantage of the infrar
7、ed light. The remote control launcher distinguishes different operation through the control on frequency of infrared emission of light. The remote control receiver judges control operation by adopting the discerned frequ
8、ency of the received infrared light to finish the whole launching and receiving course.</p><p> Its advantage is that the hardware circuit is simple, the software is with perfect function, have certain use
9、and reference value</p><p> Keywords: Microprocessor, Infrared remote control,Interrupt,Timing,Counting, Frequency</p><p><b> 目 錄</b></p><p><b> 摘 要I
10、</b></p><p> AbstractII</p><p><b> 1 緒 論1</b></p><p> 1.1 單片機(jī)的產(chǎn)生與發(fā)展1</p><p> 1.2紅外通信技術(shù)概述3</p><p> 1.2.1紅外概述3</p><p&
11、gt; 1.2.2 選擇紅外遙控的原因3</p><p> 1.2.3紅外的簡單發(fā)射接收原理3</p><p> 2.1 設(shè)計目的與原理4</p><p> 2.2單片機(jī)紅外遙控發(fā)射器設(shè)計原理4</p><p> 2.3 單片機(jī)紅外遙控接收器設(shè)計原理5</p><p> 3系統(tǒng)硬件電路設(shè)計6&l
12、t;/p><p> 3.1有關(guān)AT89C2051單片機(jī)的介紹6</p><p><b> 3.1.1簡介6</b></p><p> 3.1.2引腳介紹6</p><p> 3.1.3 AT89C2051單片機(jī)的主要組成部分8</p><p> 3.2定時器/計數(shù)器9</p&
13、gt;<p> 3.2.1主要特性9</p><p> 3.2.2定時/計數(shù)器0和1的控制和狀態(tài)寄存器9</p><p> 3.2.3 T0和T1的4種工作方式11</p><p> 3.3獨(dú)立式按鍵結(jié)構(gòu)12</p><p> 3.4低功耗控制電路12</p><p> 3.4.1低
14、功耗的實(shí)現(xiàn)方法12</p><p> 3.4.2 掉電保護(hù)和低功耗的設(shè)計13</p><p> 3.5 CPU時鐘電路15</p><p> 3.6 復(fù)位電路16</p><p> 3.6.1復(fù)位狀態(tài)16</p><p> 3.6.2 復(fù)位電路17</p><p> 3
15、.7 紅外發(fā)射電路的設(shè)計17</p><p> 3.8 紅外接收電路的設(shè)計19</p><p> 3.9 完整的系統(tǒng)電路設(shè)計圖19</p><p> 4 系統(tǒng)軟件設(shè)計20</p><p> 4.1遙控發(fā)射器程序設(shè)計20</p><p> 4.1.1程序總體結(jié)構(gòu)20</p><p
16、> 4.1.2 偽指令和初始化程序22</p><p> 4.1.3鍵盤掃描程序24</p><p> 4.1.4 中斷服務(wù)程序24</p><p> 4.2 遙控接收器程序設(shè)計26</p><p> 4.2.1 程序總體結(jié)構(gòu)26</p><p> 4.2.2 初始化程序29</p&
17、gt;<p> 4.2.3 計數(shù)值比較程序29</p><p> 4.2.4 定時器1中斷服務(wù)程序29</p><p> 5 總結(jié)與展望31</p><p> 致 謝32</p><p><b> 參考文獻(xiàn)33</b></p><p><b>
18、 附錄135</b></p><p><b> 附錄236</b></p><p><b> 1 緒 論</b></p><p> 1.1 單片機(jī)的產(chǎn)生與發(fā)展</p><p> 為適應(yīng)社會發(fā)展的需要,微型計算機(jī)不斷的更新?lián)Q代,新產(chǎn)品層出不窮。在微型計算機(jī)的大家族中,幾年來單
19、片微型計算機(jī)異軍突起,發(fā)展極為迅速。</p><p> 單片微型計算機(jī)(Sing-Chip Microcomputer)簡稱單片機(jī)。它是在一塊芯片上集成中央微處理器(Central Processing Unit, CPU)、隨機(jī)存取存儲器(Random Access Memory, RAM)、只讀存儲器(Read Only Memory, ROM)、定時/計數(shù)器及I/O(Input/Output)接口電路等部
20、件,構(gòu)成一個完整的微型計算機(jī)。它的特點(diǎn)是:高性能,高速度,體積小,價格低廉,穩(wěn)定可靠,應(yīng)用廣泛。</p><p> 單片機(jī)的發(fā)展史并不長,它的產(chǎn)生和發(fā)展與計算機(jī)的產(chǎn)生與發(fā)展大體同步,也經(jīng)歷了四個階段。</p><p> 第一階段(1970年——1974年):為4位單片機(jī)階段。這種單片機(jī)的特點(diǎn)是:價格便宜控制功能強(qiáng),片內(nèi)含有多種I/O接口,有的根據(jù)不同用途還配有許多專用接口,有些甚至還包
21、括A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換、聲音合成等電路。豐富的I/O功能大大增強(qiáng)了四位單片機(jī)應(yīng)用與錄音機(jī)、攝像機(jī)、電視機(jī)、電冰箱、洗衣機(jī)、錄像機(jī)和電子玩具等產(chǎn)品。</p><p> 第二階段(1974年——1978年):為低中檔8位單片機(jī)階段。它是8位單片機(jī)的早期產(chǎn)品,以Inter公司的MCS-48系列單片機(jī)為代表,這個系列的單片機(jī)在片內(nèi)集成8位CPU、并行I/O口、8位定時/計數(shù)器、RAM和ROM等,中斷處理較簡單,片內(nèi)
22、RAM和ROM容量較小,且尋址范圍不大于4KB。</p><p> 第三階段(1978年——1983年):為高檔8位單片機(jī)階段。這類單片機(jī)在低、中檔基礎(chǔ)上發(fā)展起來的,其性能有明顯提高。以Inter公司的MCS-48系列單片機(jī)為代表,在片內(nèi)增加了串行接口,有多級中斷處理系統(tǒng),有16位定時/計數(shù)器,片內(nèi)RAM、ROM容量增大,信紙范圍可達(dá)64KB,有的片內(nèi)帶有A/D轉(zhuǎn)換接口。這類單片機(jī)功能強(qiáng),應(yīng)用領(lǐng)域廣,是目前各類
23、單片機(jī)中應(yīng)用最多的一種。</p><p> 第四階段(1983年—現(xiàn)在):為8位單片機(jī)鞏固發(fā)展階段及16位單片機(jī)、32位單片機(jī)推出階段。此階段主要特點(diǎn)是:一方面不斷發(fā)展16位單片機(jī)、32位單片機(jī)及專用單片機(jī)。16位單片機(jī)除CPU為16位外,片內(nèi)RAM為232B,ROM位8KB,片內(nèi)帶有高速輸入輸出部件,多通道10位A/D轉(zhuǎn)換部件,中斷處理為8級,其實(shí)時處理能力強(qiáng)。今年來,各個計算機(jī)廠家已進(jìn)入高性能的32位單片機(jī)
24、研制、生產(chǎn)階段,32位單片機(jī)除了具有更高的集成度外,主振頻率已達(dá)20MHz,這使32位單片機(jī)的數(shù)據(jù)處理速度比16位單片機(jī)快的多,性能比8位、16位單片機(jī)更加優(yōu)越。</p><p> 需要提到的是,單片機(jī)的發(fā)展雖然經(jīng)歷了4位、8位、16位各階段,但4位、8位、16位單片機(jī)仍各有其應(yīng)用領(lǐng)域,如4位單片機(jī)在一些簡單家用電器、高檔玩具中仍有應(yīng)用,8位單片機(jī)在中、小規(guī)模應(yīng)用場合仍占主流地位,16位單片機(jī)在比較復(fù)雜的控制系
25、統(tǒng)中才有應(yīng)用,32位單片機(jī)因控制領(lǐng)域?qū)λ男枨蟛⒉皇制惹校?2位單片機(jī)在我過的應(yīng)用并不多。</p><p> 正是由于單片機(jī)具有上述顯著的特點(diǎn),使單片機(jī)的應(yīng)用范圍日益擴(kuò)大。單片機(jī)的應(yīng)用打破了人們傳統(tǒng)設(shè)計思想,原來很多用模擬電路、脈沖數(shù)字電路和邏輯部件來實(shí)現(xiàn)的功能,現(xiàn)在均可以使用單片機(jī),使用軟件來實(shí)現(xiàn)。使用單片機(jī)具有體積小、可靠性高、性能價格比高和容易產(chǎn)品化的優(yōu)點(diǎn)。</p><p>
26、 單片機(jī)應(yīng)用的主要領(lǐng)域有以下幾點(diǎn)。</p><p> 智能化儀器儀表。用單片機(jī)改造原有的測量、控制儀表,使儀器儀表數(shù)字化、智能化、多功能化和微型化,并使長期以來測量儀表中的誤差修正和線性化處理等難題迎刃而解。有單片機(jī)構(gòu)成的智能儀表,集測量、處理控制功能于一身,從而賦予測量儀表以嶄新的面貌,是儀器儀表更新?lián)Q代的標(biāo)志。</p><p> 機(jī)電一體化產(chǎn)品。機(jī)電一體化是機(jī)械工業(yè)發(fā)展的方向,機(jī)
27、電一體化是指集機(jī)械技術(shù)、微電子技術(shù)和計算機(jī)技術(shù)于一體,具有智能化特征的機(jī)電產(chǎn)品。單片機(jī)的出現(xiàn)促進(jìn)了機(jī)電一體化的發(fā)展,它作為機(jī)電產(chǎn)品中的控制器,使傳統(tǒng)的機(jī)械產(chǎn)品結(jié)構(gòu)簡單化、控制智能化,構(gòu)成了新一代機(jī)電一體化產(chǎn)品。例如,在電傳打字機(jī)中,由于采用了單片機(jī)而取代了近千個機(jī)械部件。</p><p> 測控系統(tǒng)。用單片機(jī)可以構(gòu)成各種工業(yè)控制系統(tǒng)、自適應(yīng)控制系統(tǒng)和數(shù)據(jù)采集系統(tǒng)。例如,溫度、濕度的自動控制、鍋爐燃燒的自動控制、
28、電鍍生產(chǎn)線的自動控制和包裝生產(chǎn)線的自動控制等。</p><p> 計算機(jī)網(wǎng)絡(luò)及通信技術(shù)。高檔單片機(jī)集成有通信接口,位單片機(jī)在計算機(jī)網(wǎng)絡(luò)與通信設(shè)備中的應(yīng)用提供了良好的條件。例如,用MCS-51系列單片機(jī)控制的串行自動呼叫應(yīng)答系統(tǒng)、列車無線通信系統(tǒng)、和無線遙控系統(tǒng)等</p><p> 家用電器。由于單片機(jī)的價格低廉、體積小、邏輯判斷的控制功能強(qiáng),且內(nèi)部具有定時/計數(shù)器,所以廣泛應(yīng)用于家用設(shè)
29、備??傊?,單片機(jī)將使人類的生活更加方便舒適、豐富多彩。[1]</p><p> 1.2紅外通信技術(shù)概述</p><p><b> 1.2.1紅外概述</b></p><p> 從光學(xué)的角度而言,紅外是頻率低于紅色光的不可見光,的無線光譜的整個頻率中占有很小一個頻率段,波長為0.75—100微秒之間,其中0.75—3微秒之間的紅外光稱為近紅
30、外,3—30微秒之間的紅外光稱為中紅外,30—100微秒之間的稱為遠(yuǎn)紅外。紅外光就其性質(zhì)而言很簡單,與普通光線的頻率特性沒有很大的區(qū)別,但是,由于任何有熱量的物體均有能量產(chǎn)生,所以紅外的利用非常廣泛,而且不可取代,能否檢測紅外、能測到多少紅外或者紅外檢測的技術(shù)是否可以應(yīng)用于任何自然的或想象的場合是紅外應(yīng)用技術(shù)的關(guān)鍵。[2]</p><p> 當(dāng)今紅外技術(shù)的一個重要分支是紅外通信技術(shù)的應(yīng)用,這個應(yīng)用的發(fā)展非常迅速
31、,尤其是紅外通信應(yīng)用于計算機(jī)設(shè)備中,近幾年的發(fā)展已經(jīng)表現(xiàn)出其非常成熟的特性[3]。</p><p> 1.2.2 選擇紅外遙控的原因</p><p> 無線遙控方式可分為無線電波式、聲控式、超聲波式和紅外線式。由于無線電式容易對其它電視機(jī)和無線電通訊設(shè)備造成干擾,而且,系統(tǒng)本身的抗干擾性能也很差,誤動作多,所以未能大量使用。超聲波式頻帶較窄,易受噪聲干擾,系統(tǒng)抗干擾能力差以及聲控式識別
32、正確率低,難度大而未能大量采用。紅外遙控方式是以紅外線作為載體來傳送控制信息的,同時隨著電子技術(shù)的發(fā)展,單片機(jī)的出現(xiàn),催生了數(shù)字編碼方式的紅外遙控系統(tǒng)的快速發(fā)展。另外,紅外遙控具有很多的優(yōu)點(diǎn),例如紅外線發(fā)射裝置采用紅外發(fā)光二極管,遙控發(fā)射器易于小型化且價格低廉;采用數(shù)字信號編碼和二次調(diào)制方式,不僅可以實(shí)現(xiàn)多路信息的控制,增加遙控功能,提高信號傳輸?shù)目垢蓴_性,減少誤動作,而且功率消耗低;紅外線不會向室外泄露,不會產(chǎn)生信號串?dāng)_;反應(yīng)速度快、
33、傳輸效率高、工作穩(wěn)定可靠等。所以現(xiàn)在很多無線遙控方式都采用紅外遙控方式。[4]</p><p> 1.2.3紅外的簡單發(fā)射接收原理</p><p> 在發(fā)射端,輸入信號經(jīng)放大后送入紅外發(fā)射管發(fā)射,在接收端,接收管收到紅外信號后,由放大器放大處理后還原成信號,這就是紅外的簡單發(fā)射接收原理。[5]</p><p> 2 系統(tǒng)設(shè)計方案論證</p>&l
34、t;p> 2.1 設(shè)計目的與原理</p><p> 目前市場上一般采用的遙控編碼及解碼集成電路。此方案具有制作簡單、容易等特點(diǎn),但由于功能鍵數(shù)及功能受到特定的限制,只適合用某一專用電器產(chǎn)品的應(yīng)用,應(yīng)用范圍受到限制。而采用單片機(jī)進(jìn)行遙控系統(tǒng)的應(yīng)用設(shè)計,具有編程靈活多樣、操作碼個數(shù)可隨意設(shè)定等優(yōu)點(diǎn)[6]。本單片機(jī)遙控應(yīng)用系統(tǒng)采用紅外線發(fā)射頻率的不同,來識別不同的遙控功能。當(dāng)我們按下某一個按鍵的時候,由單片機(jī)
35、識別出該按鍵后,由CPU向接有紅外發(fā)射管的端口發(fā)射一定頻率的脈沖,該脈沖與38KHz左右的載波脈沖進(jìn)行調(diào)制,然后將已調(diào)制的脈沖進(jìn)行緩沖放大,激勵紅外發(fā)光二極管將電能轉(zhuǎn)化為光能,使得紅外發(fā)光二極管發(fā)射出一定頻率的紅外線[7],當(dāng)接收控制系統(tǒng)接收到該紅外光后,由單片機(jī)內(nèi)定時/計數(shù)器得到該紅外光的頻率,然后將該頻率送往CPU,由CPU對該信號進(jìn)行反編碼,識別出控制信號,從而對控制電路實(shí)施控制功能。完成整個遙控功能[8]</p>
36、<p> 2.2單片機(jī)紅外遙控發(fā)射器設(shè)計原理</p><p> 單片機(jī)紅外遙控發(fā)射器主要有單片機(jī)、行列式鍵盤、低功耗空閑方式控制電路、紅外管發(fā)射電路以及單片機(jī)的一些電源、復(fù)位、震蕩子電路組成[9]。</p><p> 單片機(jī)不工作時一直處于低功耗狀態(tài),采用了空閑節(jié)電工作方式。當(dāng)遙控器的某一按鍵被按下以后,外部中斷1產(chǎn)生中斷,喚醒單片機(jī)進(jìn)入工作狀態(tài),查詢鍵盤按下的是哪一個按鍵
37、,當(dāng)確認(rèn)按鍵后,控制軟件啟動定時器T0、T1,T1作為發(fā)射時間控制器,T0作為紅外線發(fā)射頻率控制器,T0定時溢出時中斷程序使紅外管接口電平反轉(zhuǎn)一次,寫入定時器的初值不同,在輸出端口就得到不同的發(fā)射頻率。T1定時溢出時中斷程序關(guān)閉關(guān)閉T0定時器,停止紅外線發(fā)射[10]。其設(shè)計原理框圖如下。</p><p> 圖2.1 單片機(jī)遙控發(fā)射器設(shè)計原理圖</p><p> 2.3 單片機(jī)紅外遙控
38、接收器設(shè)計原理</p><p> 單片機(jī)紅外遙控接收器主要有單片機(jī)、紅外遙控接收電路、狀態(tài)指示電路、控制電路以及單片機(jī)的一些外圍電路組成。</p><p> 利用單片機(jī)中的T0作為紅外脈沖計數(shù)器,T1作為計數(shù)時間控制器。當(dāng)電路中紅外接收管接收到第一個紅外脈沖時,外部中斷1被觸發(fā),啟動計數(shù)器T0和定時器T1。定時溢出,中斷程序關(guān)閉計數(shù)器T0,讀入計數(shù)值并進(jìn)行判斷,確定操作對象(遙控按鍵)
39、對其進(jìn)行反轉(zhuǎn)操作,控制電路對所控制的負(fù)載進(jìn)行開或關(guān)[11]。還可對接收電路實(shí)行上鎖功能,對控制電路上鎖后,遙控器不能對控制電路實(shí)施遙控功能[8]。其設(shè)計原理方框圖如下:</p><p> 圖2.2 紅外接收遙控電路原理框圖</p><p><b> 3系統(tǒng)硬件電路設(shè)計</b></p><p> 3.1有關(guān)AT89C2051單片機(jī)的介紹&l
40、t;/p><p><b> 3.1.1簡介</b></p><p> AT89C2051是一個低電壓,高性能CMOS 8位單片機(jī)。片內(nèi)含有2KB可反復(fù)擦寫的只讀存儲器(EPROM)和128B的隨機(jī)存取存儲器(RAM),器件采用ATMEL的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲器,功能強(qiáng)大。</p>
41、;<p> AT89C2051只有20個雙向輸入/輸出(I/O)端口,其中P1是完整的8位雙向I/O口,兩個外中斷,2個16位可編程定時/計數(shù)器,兩個全雙向串行通信口,一個模擬比較放大器</p><p> 此外,AT89C2051的時鐘頻率可為零,即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時/計數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入工作狀態(tài),省電模式中,片內(nèi)RAM將被凍結(jié),時
42、鐘停止震蕩,所有功能停止工作,直至系統(tǒng)被硬件系統(tǒng)復(fù)位方可繼續(xù)工作 [12] 。</p><p><b> 3.1.2引腳介紹</b></p><p> Vcc:接+5V電源正端</p><p> GND:接+5V電源地端</p><p> P1.0—P1.7:完整的雙向串行通信接口,P1.0與P1.1還有第二種功
43、能 </p><p> P3.0—P3.7:除P3.6外,雙向I/O口,除P3.7外,均有第二功能,第二功能與MCS-51系列單片機(jī)基本相同</p><p> XTAL1:震蕩器反向放大器內(nèi)部工作時鐘輸入端</p><p> XTAL2:震蕩器反向放大器的輸出端</p><p> RST:復(fù)位引腳,震蕩器工作時,該引腳上兩個機(jī)器周期的
44、高電平復(fù)位[10]</p><p> 圖3.1 AT89C2051引腳圖</p><p><b> 主要功能特性</b></p><p> ●兼容MCS51指令系統(tǒng)</p><p> ●15個雙向I/O口</p><p> ●兩個16位可編成定時/計數(shù)器</p><
45、p> ●時鐘頻率0—24MHz</p><p><b> ●兩個外部中斷源</b></p><p><b> ●可直接驅(qū)動LED</b></p><p><b> ●低功耗睡眠功能</b></p><p> ●可編程URRL通道</p><p
46、> ●2KB可反復(fù)擦寫Flash ROM</p><p><b> ●6個中斷源</b></p><p> ●2.7—6.0V寬工作電壓范圍</p><p> ●128*8位內(nèi)部RAM</p><p><b> ●兩個串行中斷</b></p><p><
47、b> ●兩級加密位</b></p><p> ●內(nèi)置一個模擬比較放大器</p><p> ●軟件設(shè)置睡眠和喚醒功能</p><p> 3.1.3 AT89C2051單片機(jī)的主要組成部分</p><p><b> 1.CPU</b></p><p> CPU是單片機(jī)的核
48、心部分,他的作用是讀入和分析每條指令,根據(jù)每條指令的功能要求,控制各個部件執(zhí)行相應(yīng)的操作。AT89C2051單片機(jī)內(nèi)部有一個8位的CPU,它是由運(yùn)算器和控制器組成[13]。</p><p><b> A.運(yùn)算器</b></p><p> 運(yùn)算器主要包括算術(shù)、邏輯運(yùn)算部件ALU、累加器ACC、寄存器B、暫存器YMP1、YMP2、程序狀態(tài)寄存器PSW、布爾處理器及十進(jìn)
49、制調(diào)整電路等。</p><p> 運(yùn)算器主要用來實(shí)現(xiàn)數(shù)據(jù)的傳送、數(shù)據(jù)的算術(shù)運(yùn)算、邏輯運(yùn)算和位變量處理等。</p><p><b> B.控制器</b></p><p> 控制器包括時鐘發(fā)生器、定時控制邏輯、指令寄存器指令譯碼器、程序計數(shù)器PC、程序地址寄存器、數(shù)據(jù)指針寄存器DPTR和堆棧指針SP等。</p><p>
50、; 控制器是用來統(tǒng)一指揮和控制計算機(jī)進(jìn)行工作的部件。它的功能是從程序存儲器中提取指令,送到指令寄存器,再進(jìn)入指令譯碼器進(jìn)行譯碼,并通過定時和控制電路,在規(guī)定的時刻發(fā)出各種操作所需要的全部內(nèi)部控制信息及CPU外部所需要的控制信號,如ALE、PSEN、RD、WR等,使各部分協(xié)調(diào)工作,完成指令所規(guī)定的各種操作。</p><p><b> 2.存儲器</b></p><p&g
51、t;<b> A.程序存儲器</b></p><p> 程序存儲器用于存放編好的程序、表格和常數(shù)。CPU的控制器專門提供一個控制信號EA來區(qū)分內(nèi)部ROM和外部ROM的公用地址區(qū):當(dāng)EA為無效電平時,單片機(jī)從片內(nèi)ROM的2KB存儲器取指令,而當(dāng)指令超過07FFH后,就自動轉(zhuǎn)向片外ROM取指令;當(dāng)EA為有效電平時,CPU只從片外ROM取指令。</p><p> 在程
52、序存儲器中,有6個單元具有特殊存儲功能。</p><p> 0000H—0002H:是所有執(zhí)行程序的入口地址,2051單片機(jī)復(fù)位后,CPU總是從0000H單元開始執(zhí)行程序。</p><p> 0003H:外部中斷0入口。</p><p> 000BH:定時/計數(shù)器0溢出中斷入口。</p><p> 0013H:外部中斷1入口。<
53、/p><p> 001BH:定時/計數(shù)器1溢出中斷入口。</p><p> 0023H:串行口中斷入口。</p><p> 使用時,通常在這些入口地址處存放一條絕對跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到用戶安排的中斷程序起始地址,或者從0000H起始地址跳轉(zhuǎn)到用戶設(shè)計的初始程序上。</p><p><b> B.?dāng)?shù)據(jù)存儲器</b>&
54、lt;/p><p> 片內(nèi)數(shù)據(jù)存儲器的8位地址共可尋址256B單元,2051單片機(jī)將其分為兩個區(qū):00H—FFH的128B單元為片內(nèi)RAM區(qū),可以讀、寫任何數(shù)據(jù);80H—FFH的高128B單元為專用寄存器區(qū)。在低128B的內(nèi)部RAM中,前32個單元(地址為00H—1FH)為通用工作寄存器區(qū),共分為四組(寄存器0組、1組、2組、3組),每組8個工作寄存器由R0—R7組成,共占32個 單元。選用哪一組由程序狀態(tài)字PSW
55、中的RS1、RS0這兩位的設(shè)置決定,若程序并不需要四個4組工作寄存器,那么剩下的工作寄存器可作一般的存儲器來使用。CPU在復(fù)位時自動選中0組20H—2FH的16個單元為位尋址區(qū),每個單元8位,共128位。其位尋址范圍為00H—7FH。位尋址區(qū)的每一位都可當(dāng)作軟件觸發(fā)器,由程序直接進(jìn)行處理。程序中通常把各種程序狀態(tài)標(biāo)志、位控變量設(shè)在位尋址區(qū)。同樣,位尋址區(qū)的RAM單元也可作為一般的數(shù)據(jù)存儲器按字節(jié)單元使用。</p><
56、;p><b> 3.特殊功能寄存器</b></p><p><b> A.累加器A</b></p><p> 累加器A是一個最常用的8位特殊功能寄存器,它既可用于存放操作數(shù),</p><p> 也可用于存放運(yùn)算的中間結(jié)果。大部分單操作數(shù)指令的操作數(shù)就取自累加器。用ACC表示A的符號地址。</p>
57、<p><b> B.寄存器B</b></p><p> 寄存器B是一個8位寄存器,主要用于乘法和除法的運(yùn)算。乘法運(yùn)算時,B</p><p> 中存放乘法,乘法操作后,乘積的高8位又存于B中;除法運(yùn)算時,B中存放除數(shù),出發(fā)操作后,B中又存放余數(shù)。在其他指令中,寄存器B可作為一般的寄存器使用,用于暫存數(shù)據(jù)[14]。</p><p&g
58、t; 3.2定時器/計數(shù)器</p><p><b> 3.2.1主要特性</b></p><p> AT89C2051單片機(jī)有兩個可編程的定時器/計數(shù)器——定時器/計數(shù)器0與定時器/計數(shù)器1,可有程序選擇作為定時器用或作為計數(shù)器用,定時時間或記數(shù)值也可由程序設(shè)定。</p><p> 每一個定時器/計數(shù)器具有4種工作方式,可用程序選擇。&
59、lt;/p><p> 任一定時器/計數(shù)器在定時時間到或記數(shù)值到時,可有程序安排產(chǎn)生中斷請求信號或不產(chǎn)生中斷請求信號[15]。</p><p> 3.2.2定時/計數(shù)器0和1的控制和狀態(tài)寄存器</p><p> 特殊功能寄存器TMOD和TCON分別是定時/計數(shù)器0和1的控制和狀態(tài)寄存器,用于控制和確定各定時/計數(shù)器的功能和工作模式。</p><p
60、> 1.模式控制寄存器TMOD</p><p> TMOD用于控制T0和T1的工作方式和4種工作模式。其中低4位用于控制T0,高4位用于控制T1。其格式如下:</p><p> GATE位:門控位。</p><p> 當(dāng)GATE=1時,只有INTO非或INT1非引腳為高電平且TR0或TR1置1時,相應(yīng)的定時/計數(shù)器才被選通工作;當(dāng)GATE=0,則只要T
61、R0和TR1置1,定時/計數(shù)器就被選通,而不管INT0非或INT1非的電平是高還是低</p><p> C/T非位:計數(shù)/定時功能選擇位。</p><p> C/T非=0,設(shè)置為定時器方式,計數(shù)器的輸入是內(nèi)部時鐘脈沖,其周期等于機(jī)器周期。</p><p> C/T非=1,設(shè)置為計數(shù)器方式,計數(shù)器的輸入來自T0(P3.4)或T1(P3.5)端的外部脈沖。<
62、/p><p> M1、M0位:工作模式選擇位。2位可形成4中編碼,對應(yīng)4種工作模式,見下表:</p><p> 2. 控制寄存器TCON</p><p> TCON用來控制T0和T1的啟、停,并給出相應(yīng)的控制狀態(tài),高4位用于控制定時器0、1的運(yùn)行;低4位用于控制外部中斷。格式如下:</p><p> TF1:定時器1溢出標(biāo)志。</p
63、><p> 當(dāng)定時器1溢出時,由硬件置1。使用查詢方式時,此位做狀態(tài)位供查詢,查詢有效后需由軟件清零;使用中斷方式時,此位做中斷申請標(biāo)志,進(jìn)入中斷服務(wù)后被硬件自動清零。</p><p> TR1位:定時器1運(yùn)行控制位。</p><p> 該位靠軟件置位或清零,置位時,定時/計數(shù)器接通工作,清零時,停止工作。</p><p> TF0位:定
64、時器溢出標(biāo)志位,其功能和操作情況類同于TF1。</p><p> TR0位:定時器0運(yùn)行控制位,其功能和操作類同于TR1。</p><p> IE位:外部中斷請求標(biāo)志位。</p><p> 當(dāng)CPU采樣到INT0非(或INT1非)端出現(xiàn)有效中斷請求時,IE0(或IE1)由硬件置1,中斷響應(yīng)完成后轉(zhuǎn)向中斷服務(wù)時,再由硬件自動清零。</p><
65、p> IT位:外部中斷請求出發(fā)方式位。</p><p> IT0(IT1)=1為脈沖觸發(fā)方式,后負(fù)跳有效。</p><p> IT0(IT1)=0為電平觸發(fā)方式,低電平有效。</p><p> 3.定時/計數(shù)器的初始化</p><p> AT89C2051單片機(jī)的定時/計數(shù)器是可編程的,因此,在進(jìn)行定時或計數(shù)之前也要用程序進(jìn)行
66、初始化。初始化一般應(yīng)包括以下幾個步驟:</p><p> 對TMOD寄存器賦值,以確定定時器的工作模式;</p><p> 置定時/計數(shù)器初值,直接將初值寫入寄存器的TH0,TL0或TH1,TL1;</p><p> 根據(jù)需要,對寄存器IE置初值,開放定時器中斷;</p><p> 對TCON寄存器中的TR0或TR1置位,啟動定時/計
67、數(shù)器,置位以后,計數(shù)器即按規(guī)定的工作模式和初值進(jìn)行計數(shù)或開始定時。</p><p> 在初始化過程中,要置入定時/計數(shù)器的初值,這時要做一些計算。由于計數(shù)器是加法計數(shù),并在溢出時申請中斷,因此不能直接輸入所需的計數(shù)值,而是要從計數(shù)最大值倒退回去一個計數(shù)值才是應(yīng)置入的初值。設(shè)計數(shù)器的最大值為M(在不同的工作模式中,M可以為8192,65536,256),則置入的初值可以這樣來計算。</p><
68、p><b> 計數(shù)方式時</b></p><p><b> X=M—記數(shù)值</b></p><p><b> 定時方式時</b></p><p> ?。∕—X)T=定時值</p><p><b> 所以</b></p><
69、p><b> X=M—定時值/T</b></p><p> 式中,T為計數(shù)周期,是單片機(jī)的機(jī)器周期[13]。</p><p> 3.2.3 T0和T1的4種工作方式</p><p> 方式0:13位定時/計數(shù)器,TL1(或TL0)的低5位和TH1(或TH0)的8位構(gòu)成,TL中的高3位棄之未用。當(dāng)TL的低5位記數(shù)溢出時,向TH進(jìn)位,
70、而全部13位計數(shù)器溢出時使計數(shù)器回零,并使溢出標(biāo)志TF置1,向CPU發(fā)出中斷請求。</p><p> 方式1:16位定時/計數(shù)器,其邏輯電路和工作情況與方式0幾乎完全相同,唯一的差別就是方式1中TL的高3位也參與了計數(shù)。</p><p> 方式2:把TL配置成一個可以自動重裝載的8位定時/計數(shù)器</p><p> 方式3:僅對T0有意義,將16位定時/計數(shù)器分
71、成兩個互相獨(dú)立的8位定時/計數(shù)器TL和TH,</p><p> 3.3獨(dú)立式按鍵結(jié)構(gòu)</p><p> 獨(dú)立式按鍵是指直接用I/O線構(gòu)成的單個按鍵電路,每個獨(dú)立式按鍵占有一根I/O口線,每根I/O口線上的按鍵的工作狀態(tài)不會影響其他I/O口線的工作狀態(tài),其結(jié)構(gòu)簡單,但I(xiàn)/O口線浪費(fèi)較大[16]。</p><p> 獨(dú)立式按鍵配置靈活,軟件結(jié)構(gòu)簡單,上拉電阻保證了
72、按鍵斷開時,I/O口線有確定的高電平,其電路原理圖如下</p><p> 圖3.2 獨(dú)立式按鍵電路</p><p> 3.4低功耗控制電路</p><p> 3.4.1低功耗的實(shí)現(xiàn)方法</p><p> AT89C2051單片機(jī)的CPU有兩種節(jié)電工作方式即空閑方式和掉電方式,遙控器采用了空閑節(jié)電方式。當(dāng)CPU執(zhí)行完IDL=1(PCO
73、N.0=1)指令后,系統(tǒng)進(jìn)入空閑工作方式 ,這時內(nèi)部時鐘不向CPU提供,而只供給中斷、串行口、定時器部分。遙控器退出低功耗空閑方式電路由與門來實(shí)現(xiàn)。當(dāng)有鍵按下時,由與門觸發(fā)外部中斷1發(fā)生中斷,單片機(jī)退出空閑工作方式,進(jìn)入鍵盤和紅外發(fā)射程序,結(jié)束后又進(jìn)入低功耗空閑方式待機(jī)。使用過程中單片機(jī)基本上都處于空閑工作方式,功耗相當(dāng)?shù)?,從而為使用電池電源提供保障?lt;/p><p> 3.4.2 掉電保護(hù)和低功耗的設(shè)計<
74、;/p><p><b> 1.掉電保護(hù)</b></p><p> 在單片機(jī)工作時,供電電源如果發(fā)生停電或瞬間停電,將會使單片機(jī)停止工作。待電源恢復(fù)時,單片機(jī)重新進(jìn)入復(fù)位狀態(tài),停電前RAM中的數(shù)據(jù)全部丟失,這種現(xiàn)象對于一些重要的單片機(jī)應(yīng)用系統(tǒng)是不允許的。在這種情況下,需要進(jìn)行掉電保護(hù)處理。掉電保護(hù)具體操作過程如下。</p><p> 單片機(jī)應(yīng)用
75、系統(tǒng)的電壓檢測電路檢測到電源電壓下降時,觸發(fā)外部中斷(INT0或INT1),在中斷服務(wù)子程序中將外部RAM中的有用數(shù)據(jù)送入內(nèi)部RAM保存。因單片機(jī)電源入口的濾波電容的儲能作用,可以有足夠的時間來完成中斷操作。備用電源自切換電路屬于單片機(jī)內(nèi)部電路。它由兩個二極管組成,當(dāng)電源電壓高于VPD引腳的備用電源電壓時,VD1導(dǎo)通,VD2截止,單片機(jī)由電源供電;當(dāng)電源電壓降到比備用電源電壓低時,二極管VD1截止,VD2導(dǎo)通,單片機(jī)由備用電源供電[15
76、]。</p><p> 備用電源只為單片機(jī)內(nèi)部RAM和專用寄存器提供維持電流,這時單片機(jī)外部的全部電路因停電而停止工作,時鐘電路也停止工作,CPU因無時鐘也不工作。</p><p> 當(dāng)電源恢復(fù)時,備用電源還會繼續(xù)供電一段時間,大約10ms,以確保外部電路達(dá)到穩(wěn)定狀態(tài)。在結(jié)束掉電保護(hù)狀態(tài)時,首要的工作是將被保護(hù)的數(shù)據(jù)從內(nèi)部RAM中恢復(fù)過來。</p><p>
77、當(dāng)用戶檢測到一個掉電保護(hù)電路時,立即通過外部中斷輸入線INT0來中斷單片機(jī)現(xiàn)行操作。外部中斷0服務(wù)程序?qū)⒂嘘P(guān)數(shù)據(jù)信息送入片內(nèi)RAM保存,然后向P1.0寫入0,P1.0輸出的這個低電平觸發(fā)單穩(wěn)態(tài)電路MC755。它輸出的脈寬取決于R、C的數(shù)值及VCC是否以掉電。如果當(dāng)單穩(wěn)態(tài)定時輸出后,若VCC仍然存在,這是一個假掉電報警,并從復(fù)位開始重新操作;若VCC已掉電,則斷電期間由單穩(wěn)態(tài)電路給RESET/VPD供電,維持片內(nèi)RAM處于“餓電流”供電狀
78、態(tài)保存信息,一直維持到VCC恢復(fù)為止。</p><p> 80C51的掉電保護(hù)過程則不同。當(dāng)電壓檢測電路檢測到電源電壓降低時,也觸發(fā)外部中斷,在中斷服務(wù)子程序中,除了要將外部RAM中的有用數(shù)據(jù)保存以外,還要將特殊功能寄存器的有用內(nèi)容保護(hù)起來,然后對電源控制寄存器PCON進(jìn)行設(shè)置。PCON寄存器的各位定義如下。</p><p> D7 D6 D5 D4
79、 D3 D2 D1 D0</p><p> 其中,SMOD是波特率倍增位,在串行通信中使用。</p><p> GF1、GF0:通用標(biāo)志,由軟件置位、復(fù)位。</p><p> PD:掉電方式控制位,PD=1,則進(jìn)入掉電方式。</p><p> IDL:待機(jī)方式控制位,IDL=1,則進(jìn)入待機(jī)方式。
80、</p><p> 由軟件將PD置1,就可以使單片機(jī)進(jìn)入掉電保護(hù)狀態(tài)。這時,單片機(jī)的一切工作都停止,只有內(nèi)部RAM和專用寄存器的內(nèi)容被保存。掉電保護(hù)時的備用電源是通過VCC引腳接入的。當(dāng)電源恢復(fù)正常后,系統(tǒng)要維持10ms的恢復(fù)時間后才能退出掉電保護(hù)狀態(tài),復(fù)位操作將重新定義專用寄存器,但內(nèi)部RAM的內(nèi)容不變,可將被保護(hù)的內(nèi)容恢復(fù)</p><p> 圖3.3 掉電保護(hù)電路</p&g
81、t;<p><b> 2. 低功耗設(shè)計</b></p><p> 在很多情況下,單片機(jī)要工作在供電困難的場合,如野外、井下和空中,對于便攜式儀器要求用電池供電,這時都希望單片機(jī)應(yīng)用系統(tǒng)能低供耗運(yùn)行。以CMOS工藝制造的80C31/80C51/87C51型單片機(jī)提供了空閑工作方式。</p><p> 空閑工作方式(通常也指待機(jī)工作方式)是指CPU在不
82、需要執(zhí)行程序時停止工作,以取代不停的執(zhí)行空操作或原地踏步等待操作,達(dá)到減小功耗的目的。</p><p> 空閑工作方式是通過設(shè)置電源控制寄存器PCON中的IDL位來實(shí)現(xiàn)的。</p><p> 用軟件將IDL位置1,系統(tǒng)進(jìn)入空閑工作方式。這時,送往CPU的時鐘被封鎖,CPU停止工作,但中斷控制電路、定時/計數(shù)器和串行接口繼續(xù)工作,CPU內(nèi)部狀態(tài)如堆棧指針SP、程序計數(shù)器PC、程序狀態(tài)寄存
83、器PSW、累加器ACC及其他寄存器的狀態(tài)被完全保留下來。</p><p> 在空閑工作方式下,80C51消耗的電流由正常的24mA將為3mA。</p><p> 單片機(jī)退出空閑狀態(tài)有如下兩種方法。</p><p> 第一種是中斷退出。由于空閑方式下,中斷系統(tǒng)還在工作,所以任何中斷的響應(yīng)都可以使IDL位由硬件清零,而退出空閑方式下,單片機(jī)就進(jìn)入中斷服務(wù)程序。&l
84、t;/p><p> 第二種是硬件復(fù)位退出。復(fù)位時,各個專用寄存器都恢復(fù)默認(rèn)狀態(tài),電源控制寄存器PCON也不例外,復(fù)位使IDL清零,退出空閑工作方式。</p><p> MCS—51的掉電保護(hù)也是一種節(jié)電工作方式,它和空閑工作方式一起構(gòu)成了低功耗工作方式。一旦用戶檢測到掉電發(fā)生,在VCC下降之前寫一個字節(jié)到PCON,使PD=1,單片機(jī)進(jìn)入掉電方式。在這種方式下,片內(nèi)震蕩器被封鎖,一切功能都
85、停止,只有片內(nèi)RAM00H—7FH單元的內(nèi)容被保留。</p><p> 在掉電方式下,Vcc可降至2V,使片內(nèi)RAM處于50微安左右的“餓電流”供電狀態(tài),以最小的耗電保存信息,Vcc恢復(fù)正常之前,不可進(jìn)行復(fù)位;當(dāng)Vcc正常后,硬件復(fù)位10ms即能使單片機(jī)退出掉電方式[17]。</p><p> 在該電路中,退出空閑工作方式采用中斷的方法。當(dāng)遙控鍵盤上的人任一個按鍵按下以后,與門輸出即為
86、低電平,觸發(fā)INT1引腳,外部中斷1響應(yīng),使IDL位清零,退出空閑工作方式,恢復(fù)正常狀態(tài)。其硬件電路如下。</p><p> 圖3.4 低功耗控制電路</p><p> 3.5 CPU時鐘電路</p><p> 時鐘電路用于產(chǎn)生單片機(jī)工作所需要的時鐘信號。時鐘信號可以有兩種方式產(chǎn)生:內(nèi)部時鐘方式和外部時鐘方式。</p><p><
87、;b> 內(nèi)部時鐘方式</b></p><p> 2051單片機(jī)有一個高增益反向放大器,用于構(gòu)成振蕩器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。在XTAL1和XTAL2兩端跨接晶體或陶瓷振蕩器,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘發(fā)生器,見下圖,外接晶振時,C1、C2值通常選擇為30pF左右;外接陶瓷振蕩器時,C1、C2約為47pF。C1、C2對頻率有微調(diào)作
88、用,震蕩頻率范圍是1.2—12MHz。為了減少寄生電容,更好的保證振蕩器穩(wěn)定可靠的工作,諧振器和電容應(yīng)盡可能安裝的與單片機(jī)芯片靠近。</p><p> 內(nèi)部時鐘發(fā)生器實(shí)質(zhì)上是一個二分頻的觸發(fā)器,其輸出信號是單片機(jī)工作所需的時鐘信號。</p><p><b> 外部時鐘方式</b></p><p> 外部時鐘方式是采用外部振蕩器,外部振蕩信
89、號由XTAL2端接入后直接送至內(nèi)部時鐘發(fā)生器。輸入端XTAL1應(yīng)接地,由于XTAL2端的邏輯電平不是TTL的,故建議外接一個上拉電阻。</p><p> 一般情況下,單片機(jī)時鐘輸入均采用內(nèi)部時鐘方式,外接一個震蕩電路,本系統(tǒng)采用內(nèi)部時鐘方式,晶振采用12MHz,其電路如下。</p><p> 圖3.5 AT89C2051時鐘電路</p><p><b&g
90、t; 3.6 復(fù)位電路</b></p><p><b> 3.6.1復(fù)位狀態(tài)</b></p><p> 計算機(jī)在啟動時,系統(tǒng)進(jìn)入復(fù)位狀態(tài)。在復(fù)位狀態(tài),CPU和系統(tǒng)都處于一個確定的初始狀態(tài)或成為原始狀態(tài),在這種狀態(tài)下,所有的專用寄存器都賦予默認(rèn)值。其復(fù)位狀態(tài)見下表。</p><p> 表3.1 復(fù)位狀態(tài)各寄存器初值</
91、p><p> 3.6.2 復(fù)位電路</p><p> 單片機(jī)復(fù)位電路包括片內(nèi)、片外兩部分,片外復(fù)位電路通過引腳加到內(nèi)部復(fù)位電路上,內(nèi)部復(fù)位電路在每個機(jī)器周期S5P2對片外信號采樣一次,當(dāng)RST引腳上出現(xiàn)連續(xù)兩個機(jī)器周期的高電平時,單片機(jī)就完成一次復(fù)位。外部復(fù)位電路就是為內(nèi)部復(fù)位電路提供兩個機(jī)器周期以上的高電平而設(shè)計的,AT89C2051通常采用上電自動復(fù)位和按鍵手動復(fù)位兩種方式。</
92、p><p> 上電復(fù)位電路在通電瞬間,在RC電路充電過程中,RST端出現(xiàn)正脈沖,從而使單片機(jī)復(fù)位。</p><p> 按鍵手動復(fù)位又分為按鍵電平復(fù)位和按鍵脈沖復(fù)位,按鍵電平復(fù)位是將復(fù)位端通過電阻與Vcc相連,按鍵脈沖復(fù)位是利用RC微分電路產(chǎn)生正脈沖來達(dá)到復(fù)位的目的。</p><p> 本系統(tǒng)設(shè)計時采用的是上電復(fù)位方式,其電路原理圖如下。</p>&l
93、t;p><b> 3</b></p><p><b> 圖3.6 復(fù)位電路</b></p><p> 3.7 紅外發(fā)射電路的設(shè)計</p><p> 根據(jù)紅外發(fā)射管本身的物理特性,必須要有載波信號與即將發(fā)射的信號相“與”,然后將相“與”后的信號送發(fā)射管,才能進(jìn)行紅外信號的發(fā)射傳送,而在頻率為38KHz的載波信號
94、下,發(fā)射管的性能最好,發(fā)射距離最遠(yuǎn),所以在硬件設(shè)計上,本設(shè)計采用38KHz的晶振產(chǎn)生載波信號,與發(fā)射信號進(jìn)行邏輯“與”運(yùn)算后,通過三極管的功率驅(qū)動到紅外發(fā)光二極管上[18]。</p><p> 紅外發(fā)送電路由4001MOS或非門38KHz振蕩器,單片機(jī)發(fā)送控制電路和紅外發(fā)送管驅(qū)動輸出電路組成,當(dāng)單片機(jī)P3.4口輸出為“0”時,發(fā)射管不發(fā)光,當(dāng)單片機(jī)P3.4口輸出為“1”時,紅外發(fā)送管發(fā)出38KHz調(diào)制紅外線[1
95、9]。</p><p> 具體的發(fā)射波形與電路如下</p><p> 圖3.7 調(diào)制過程中的波形</p><p> 圖3.8 紅外發(fā)射電路</p><p> 3.8 紅外接收電路的設(shè)計</p><p> 紅外接收電路專門采用集成電路RPM6938,RPM6938有三個引腳,一個接電源一個接地,另外一個接信號
96、端,它集光電轉(zhuǎn)換,解調(diào)和放大于一體[20]。當(dāng)收到38KHz調(diào)制紅外線時,RPM6938輸出為“0”,平時輸出為“1”。信號腳接到P3.3和P3.4腳上,當(dāng)RPM6938收到第一個紅外脈沖時,觸發(fā)INT1產(chǎn)生中斷,使單片機(jī)退出低功耗狀態(tài),進(jìn)入工作狀態(tài),同時使記數(shù)器0和定時器1開始工作 [21]</p><p> 圖3.9 紅外接收電路</p><p> 3.9 完整的系統(tǒng)電路設(shè)計圖
97、</p><p> 完整的電路圖見附錄1</p><p><b> 4 系統(tǒng)軟件設(shè)計</b></p><p> 4.1遙控發(fā)射器程序設(shè)計</p><p> 4.1.1程序總體結(jié)構(gòu)</p><p> 此系統(tǒng)是一個紅外遙控發(fā)射器,設(shè)計目的就是根據(jù)按鍵的不同,發(fā)射出不同的紅外信號。傳統(tǒng)的遙控器
98、都是采用遙控發(fā)射專用集成芯片,例如飛利浦公司生產(chǎn)專用芯片SAA3010,三菱公司生產(chǎn)的M50462P專用發(fā)射芯片。由于這些芯片的功能鍵數(shù)及功能受到特定的限制,只適合于某一專用電器產(chǎn)品的應(yīng)用,應(yīng)用范圍受到限制。本系統(tǒng)采用單片機(jī)制作,采用編程的方法,由于編程具有靈活性,故應(yīng)用范圍較廣,操作碼可隨意設(shè)定[22]。</p><p> 本系統(tǒng)采用的是按紅外發(fā)射頻率的不同,來識別不同的按鍵。操作鍵設(shè)定為8個,K0至K7,分
99、別接至單片機(jī)的P1.0至P1.7口。對應(yīng)的紅外發(fā)射頻率分別為300Hz、600 Hz、900 Hz、1200 Hz、1500 Hz、1800 Hz、2100 Hz、2400 Hz。發(fā)射時間確定為一個定值,由定時器1來定時,時間為100ms,當(dāng)100ms時間到定時器1發(fā)生中斷,停止計時,紅外光也停止發(fā)射。由定時/計數(shù)器0來控制發(fā)射頻率,T0作為定時器,當(dāng)T0定時時間到,中斷程序使P3.4斷口的電平反轉(zhuǎn)一次,然后T0重新工作定時值與前相同,
100、時間到中斷程序使P3.4端口翻轉(zhuǎn)一次,如此往復(fù),紅外信號就按一定的時間間隔發(fā)射出去。通過設(shè)定T0的定時時間來控制紅外信號的發(fā)射頻率[23]。平時遙控器工作在空閑方式下,當(dāng)有鍵按下時,由外部中斷1產(chǎn)生中斷,使CPU回到工作狀態(tài),待執(zhí)行完操作后又回到低功耗才狀態(tài)。主程序主要由初始化程序、鍵盤掃描程序,定時器0中斷服務(wù)程序、定時器1中斷服務(wù)程序,外部中斷1中斷服務(wù)程序組成。主程序流程圖如下:</p><p> NN
101、N …</p><p><b> YY</b></p><p><b> Y</b></p><p><b> .……</b></p><p> … N</p><
102、p><b> Y</b></p><p><b> N</b></p><p> Y N</p><p><b> Y</b></p><p> 圖4.1 遙控發(fā)射主程序流程圖</p><p>
103、 當(dāng)K2至K7鍵按下時,執(zhí)行的程序類似于按下K1鍵所執(zhí)行的程序。</p><p> 4.1.2 偽指令和初始化程序</p><p> 在初始化程序前,需要定義一些相關(guān)的偽指令,偽指令不能命令CPU執(zhí)行某中操作,也沒有對應(yīng)的機(jī)器代碼,它的作用僅用來給匯編程序提供某中信息。偽指令是匯編程序能夠識別的匯編命令??刂菩盘柕妮斎肟赑1.0—P1.7分別用按鍵開關(guān)鍵號K0—K7來定義;各頻率紅外
104、信號對應(yīng)的定時器T0的初值分別用K0H、K0L——K7H、K7L來定義,這樣做不影響整個程序的執(zhí)行,但便于閱讀和理解程序。定義格式如下:</p><p> K0 BIT P1.0 … K7 BIT P1.7</p><p> 由于P1.0至P1.7對應(yīng)的紅外發(fā)射頻率分別為300Hz、600 Hz、900 Hz、1200 Hz、1500 Hz、1800 Hz、2100 H
105、z、2400 Hz,而T1的定時時間是50ms故在這七種狀態(tài)下面,P3.4端口狀態(tài)分別反轉(zhuǎn)15次、30次、45次、60次、75次、90次、105次、120次。故定時器T0對應(yīng)的定時時間分別為50ms/15、50ms/30、50ms/45、50ms/60、50ms/75、50ms/90、50ms/105、50ms/120,即分別為:3.33ms、1.67ms、1.11ms、0.833ms、0.667ms、0.556ms、0.476ms、0
106、.417ms。由前述定時器初值計算方法可算出各狀態(tài)定時器的初值。</p><p> 定時器T1的定時初值計算如下:</p><p> 由于工作在方式一,時鐘頻率為12MHz,故定時最大值M為65536</p><p> 初值 X=M—定時值/T</p><p> X=65536—50000/1=15536</p>&
107、lt;p> 即T1的初值為15536,轉(zhuǎn)化為十六進(jìn)制為3CB0H</p><p> 各情況下,定時T0的定時初值計算如下:</p><p> 當(dāng)按下K0鍵時,定時時間為3.33ms,此時定時器初值為</p><p> X0= 65536—3330/1=62206</p><p> 轉(zhuǎn)化為十六進(jìn)制為0F2FEH</p>
108、;<p> 當(dāng)按下K1鍵時,定時時間為1.67ms,此時定時器初值為</p><p> X1=65536—1670/1=63866</p><p> 轉(zhuǎn)化為十六進(jìn)制為0F97AH</p><p> 當(dāng)按下K2鍵時,定時時間為1.11ms,此時定時器初值為</p><p> X2=65536-1110/1=64426&l
109、t;/p><p> 轉(zhuǎn)化為十六進(jìn)制為0FBAAH</p><p> 當(dāng)按下鍵K3時,定時時間為0.833ms,此時定時器初值為</p><p> X3=65536-833/1=64703</p><p> 轉(zhuǎn)化為十六進(jìn)制為0FCBFH</p><p> 當(dāng)按下鍵K4時,定時時間為0.667ms,此時定時器初值為&
110、lt;/p><p> X4=65536-667/1=64869</p><p> 轉(zhuǎn)化為十六進(jìn)制為0FD65H</p><p> 當(dāng)按下鍵K5時,定時時間為0.556ms,此時定時器初值為</p><p> X5=65536-556/1=64980</p><p> 轉(zhuǎn)化為十六進(jìn)制為0FDD4H</p>
111、;<p> 當(dāng)按下鍵K6時,定時時間為0.476ms,此時定時器初值為</p><p> X6=65536-476/1=65060</p><p> 轉(zhuǎn)化為十六進(jìn)制數(shù)為0FE24H</p><p> 當(dāng)按下鍵K7時,定時時間為0.417ms,此時定時器初值為</p><p> X7=65536-417/1=65119&
112、lt;/p><p> 轉(zhuǎn)化為十六進(jìn)制數(shù)為0FE5FH </p><p> 為了便于理解源程序,各種情況下定時器的初值采用K0H—K7H和K0L—K7L來表示,分別存入定時器的高8位和低8位。采用賦值偽指令EQU,格式如下:</p><p> K0H EQU #0F2H</p><p> K0L EQU #0FEH<
113、/p><p> 通常,在一個匯編語言源程序的開始,響應(yīng)中斷前,都要設(shè)置一條ORG偽指令來指定該程序在存儲器中存放的起始位置。若省略O(shè)RG指令,則該程序從0000H單元開始存放。在一個源程序中,可以多次使用ORG偽指令,以規(guī)定不同程序段或數(shù)據(jù)段存放的起始地址,但要求16位地址由小到大順序排列,不允許空間重疊。匯編語言結(jié)束應(yīng)加一個END指令,表示匯編程序已經(jīng)結(jié)束,處于END之后的程序,匯編程序不予處理。</p&g
溫馨提示
- 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ī)控制的紅外遙控器-畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計----51單片機(jī)紅外收發(fā)器設(shè)計
- 數(shù)字控制調(diào)頻發(fā)射器畢業(yè)設(shè)計
- 單片機(jī)紅外遙控系統(tǒng)設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---數(shù)控調(diào)頻發(fā)射器設(shè)計
- 單片機(jī)紅外遙控系統(tǒng)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計-----單片機(jī)串行通信發(fā)射機(jī)
- 單片機(jī)串行通信發(fā)射機(jī)畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---基于51單片機(jī)的紅外遙控器設(shè)計
- 畢業(yè)設(shè)計---基于單片機(jī)的紅外自動淋浴器設(shè)計
- 畢業(yè)設(shè)計----單片機(jī)紅外遙控電路設(shè)計
- 畢業(yè)設(shè)計--數(shù)字調(diào)頻發(fā)射器
- 基于單片機(jī)的紅外計數(shù)器畢業(yè)設(shè)計論文
- 基于單片機(jī)的紅外計數(shù)器畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計論文--基于單片機(jī)的紅外計時器
- 單片機(jī)畢業(yè)設(shè)計---基于單片機(jī)的恒溫控制器的設(shè)計
- 單片機(jī)控制水位畢業(yè)設(shè)計
- 單片機(jī)洗衣控制畢業(yè)設(shè)計
- 單片機(jī)畢業(yè)設(shè)計--汽車轉(zhuǎn)彎燈單片機(jī)控制
- 單片機(jī)紅外發(fā)射(原理與設(shè)計程序)
評論
0/150
提交評論