51單片機畢業(yè)設(shè)計基于單片機設(shè)計的紅外線遙控器_第1頁
51單片機畢業(yè)設(shè)計基于單片機設(shè)計的紅外線遙控器_第2頁
51單片機畢業(yè)設(shè)計基于單片機設(shè)計的紅外線遙控器_第3頁
51單片機畢業(yè)設(shè)計基于單片機設(shè)計的紅外線遙控器_第4頁
51單片機畢業(yè)設(shè)計基于單片機設(shè)計的紅外線遙控器_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于單片機的遙控器設(shè)計 姓名:王許朋 學(xué)號:1101050045 院系:工學(xué)院機械系 班級:2011級機電一班 日期:2014年11月8日摘 要本設(shè)計主要應(yīng)用了AT89C2051單片機作為核心,綜合應(yīng)用了單片機中斷系統(tǒng)、定時器、計數(shù)器等知識,應(yīng)用紅外光的優(yōu)點。文章首先介紹了紅外遙控的基本原理和應(yīng)用范圍,再對AT89C2051單片機的結(jié)構(gòu)和性能給出簡單的說明,接著給出了遙控器的編碼格式,及遙控發(fā)射器,遙控接受器的電路設(shè)計。對于遙控操作的不同,遙控發(fā)射器通過對紅外光發(fā)射頻率的控制來區(qū)別不同的操作;遙控接收器通過對紅外光接收頻率的識別,判斷出控制操作,來完成整個紅外遙控發(fā)射、接收過程。最后分別詳細(xì)介

2、紹遙控系統(tǒng)的發(fā)射部分和接收部分的電路原理圖和程序流程圖。關(guān)鍵詞:單片機;紅外線;發(fā)射;接受目錄緒論 1第1章 設(shè)計方案論述 31.1 設(shè)計目的與原理 31.2 單片機紅外遙控發(fā)射器設(shè)計原理 31.3 單片機紅外遙控接收器設(shè)計原理 4第2章 遙控器硬件電路設(shè)計 52.1 單片機AT89C2051介紹 5 2.1.1 簡介 5 2.1.2 引腳介紹 52.2 紅外線遙控電路設(shè)計 52.2.1 信號發(fā)射電路 62.2.2 信號接收電路 82.3 CPU時鐘電路 92.4 獨立式按鍵結(jié)構(gòu) 102.5 掉電保護(hù)與低功耗設(shè)計 10 2.5.1 低功耗的實現(xiàn)方法 10 2.5.2 掉電保護(hù)與低功耗設(shè)計 11

3、2.6 系統(tǒng)完整電路設(shè)計圖 13 2.6.1 紅外發(fā)射電路圖 13 2.6.2 紅外接收電路圖 14第3章 遙控器軟件設(shè)計 153.1 遙控發(fā)射器程序設(shè)計 153.2 遙控接收器程序設(shè)計 20結(jié) 束 語參考文獻(xiàn) 緒論紅外線遙控是目前使用最廣泛的一種通信和遙控手段。由于紅外線遙控裝置具有體積小、功耗低、功能強、成本低等特點,因而,繼彩電、錄像機之后,在錄音機、音響設(shè)備、空調(diào)機以及玩具等其它小型電器裝置上也紛紛采用紅外線遙控。工業(yè)設(shè)備中,在高壓、輻射、有毒氣體、粉塵等環(huán)境下,采用紅外線遙控不僅完全可靠而且能有效地隔離電氣干擾。從光學(xué)的角度而言,紅外光是頻率低于紅色光的不可見光,在無線光譜的整個頻率

4、中占有很小一個頻率段,波長為0.75100微秒之間,其中0.753微秒之間的紅外光稱為近紅外,330微秒之間的紅外光稱為中紅外,30100微秒之間的稱為遠(yuǎn)紅外。紅外光就其性質(zhì)而言很簡單,與普通光線的頻率特性沒有很大的區(qū)別,但是,由于任何有熱量的物體均有能量產(chǎn)生,所以紅外的利用非常廣泛,而且不可取代,能否檢測紅外、能測到多少紅外或者紅外檢測的技術(shù)是否可以應(yīng)用于任何自然的或想象的場合是紅外應(yīng)用技術(shù)的關(guān)鍵。 當(dāng)今紅外技術(shù)的一個重要分支是紅外通信技術(shù)的應(yīng)用,這個應(yīng)用的發(fā)展非常迅速,尤其是紅外通信應(yīng)用于計算機設(shè)備中,近幾年的發(fā)展已經(jīng)表現(xiàn)出其非常成熟的特性。第1章 設(shè)計方案論述1.1 設(shè)計目的與原理目前市

5、場上一般采用的遙控編碼及解碼集成電路。此方案具有制作簡單、容易等特點,但由于功能鍵數(shù)及功能受到特定的限制,只適合用某一專用電器產(chǎn)品的應(yīng)用,應(yīng)用范圍受到限制。而采用單片機進(jìn)行遙控系統(tǒng)的應(yīng)用設(shè)計,具有編程靈活多樣、操作碼個數(shù)可隨意設(shè)定等優(yōu)點。本單片機遙控應(yīng)用系統(tǒng)采用紅外線發(fā)射頻率的不同,來識別不同的遙控功能。當(dāng)我們按下某一個按鍵的時候,由單片機識別出該按鍵后,由CPU向接有紅外發(fā)射管的端口發(fā)射一定頻率的脈沖,該脈沖與38KHz左右的載波脈沖進(jìn)行調(diào)制,然后將已調(diào)制的脈沖進(jìn)行緩沖放大,激勵紅外發(fā)光二極管將電能轉(zhuǎn)化為光能,使得紅外發(fā)光二極管發(fā)射出一定頻率的紅外線,當(dāng)接收控制系統(tǒng)接收到該紅外光后,由單片機

6、內(nèi)定時/計數(shù)器得到該紅外光的頻率,然后將該頻率送往CPU,由CPU對該信號進(jìn)行反編碼,識別出控制信號,從而對控制電路實施控制功能,完成整個遙控功能。1.2 單片機紅外遙控發(fā)射器設(shè)計原理單片機紅外遙控發(fā)射器主要有單片機、行列式鍵盤、低功耗空閑方式控電路、紅外管發(fā)射電路以及單片機的一些電源、復(fù)位、震蕩子電路組成。單片機不工作時一直處于低功耗狀態(tài),采用了空閑節(jié)電工作方式。當(dāng)遙控器的某一按鍵被按下以后,外部中斷1產(chǎn)生中斷,喚醒單片機進(jìn)入工作狀態(tài),查詢鍵盤按下的是哪一個按鍵,當(dāng)確認(rèn)按鍵后,控制軟件啟動定時器T0、T1,T1作為發(fā)射時間控制器,T0作為紅外線發(fā)射頻率控制器,T0定時溢出時中斷程序使紅外管接

7、口電平反轉(zhuǎn)一次,寫入定時器的初值不同,在輸出端口就得到不同的發(fā)射頻率。T1定時溢出時中斷程序關(guān)閉T0定時器,停止紅外線發(fā)射。其設(shè)計原理框圖如圖2-1。AT89C2051單片機 +5V電源行列式鍵盤低功耗空閑方式 控制電路紅外管發(fā)射電路 圖1-1 單片機遙控發(fā)射器設(shè)計原理圖1.3 單片機紅外遙控接收器設(shè)計原理 單片機紅外遙控接收器主要有單片機、紅外遙控接收電路、狀態(tài)指示電路、控制電路以及單片機的一些外圍電路組成。利用單片機中的T0作為紅外脈沖計數(shù)器,T1作為計數(shù)時間控制器。當(dāng)電路中紅外接收管接收到第一個紅外脈沖時,外部中斷1被觸發(fā),啟動計數(shù)器T0和定時器T1。定時溢出,中斷程序關(guān)閉計數(shù)器T0,讀

8、入計數(shù)值并進(jìn)行判斷,確定操作對象(遙控按鍵)對其進(jìn)行反轉(zhuǎn)操作,控制電路對所控制的負(fù)載進(jìn)行開或關(guān)。還可對接收電路實行上鎖功能,對控制電路上鎖后,遙控器不能對控制電路實施遙控功能。其設(shè)計原理方框圖如圖2-2。AT89C2051單片機紅外接收電路狀態(tài)指示電路控制電路+5V電源 圖1-2 紅外接收遙控電路原理框圖第2章 硬件電路設(shè)計2.1 單片機AT89C2051介紹2.1.1 簡介AT89C2051是一個低電壓,高性能CMOS 8位單片機。片內(nèi)含有2KB可反復(fù)擦寫的只讀存儲器(EPROM)和128B的隨機存取存儲器(RAM),器件采用ATMEL的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令

9、系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲器,功能強大。AT89C2051只有20個雙向輸入/輸出(I/O)端口,其中P1是完整的8位雙向I/O口,兩個外中斷,2個16位可編程定時/計數(shù)器,兩個全雙向串行通信口,一個模擬比較放大器。此外,AT89C2051的時鐘頻率可為零,即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時/計數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入工作狀態(tài),省電模式中,片內(nèi)RAM將被凍結(jié),時鐘停止震蕩,所有功能停止工作,直至系統(tǒng)被硬件系統(tǒng)復(fù)位方可繼續(xù)工作。2.1.2 引腳介紹Vcc:接+5V電源正端GND:接+5V電源地端P1.0P1.7:完整的雙向串行通信接

10、口,P1.0與P1.1還有第二種功能 P3.0P3.7:除P3.6外,雙向I/O口,除P3.7外,均有第二功能,第二功能與MCS-51系列單片機基本相同XTAL1:震蕩器反向放大器內(nèi)部工作時鐘輸入端XTAL2:震蕩器反向放大器的輸出端RST:復(fù)位引腳,震蕩器工作時,該引腳上兩個機器周期的高電平復(fù)位圖2.1 AT89C2051引腳圖主要功能特性兼容MCS51指令系統(tǒng)15個雙向I/O口兩個16位可編成定時/計數(shù)器時鐘頻率024MHz兩個外部中斷源可直接驅(qū)動LED低功耗睡眠功能可編程URRL通道2KB可反復(fù)擦寫Flash ROM6個中斷源2.76.0V寬工作電壓范圍128*8位內(nèi)部RAM兩個串行中斷

11、兩級加密位內(nèi)置一個模擬比較放大器軟件設(shè)置睡眠和喚醒功能2.2 紅外線遙控電路設(shè)計2.2.1 信號發(fā)射電路發(fā)射部分包括鍵盤矩陣、編碼調(diào)制、LED紅外發(fā)送器。發(fā)射采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”,其波形如圖2-2所示。圖2-2 遙控碼的“0”和“1”上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制以提高發(fā)射效率,達(dá)到降低電源功耗的目的。然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。編碼器產(chǎn)生的遙控編碼是連續(xù)的32位二

12、進(jìn)制碼組,其中前16位為用戶識別碼,能區(qū)別不同的電器設(shè)備,防止不同機種遙控碼互相干擾。芯片的用戶識別碼固定為十六進(jìn)制01H;后16位為8位操作碼(功能碼)及其反碼。遙控信號編碼波形圖如圖2-3所示。 圖2-3 遙控信號編碼波形圖 遙控器在按鍵按下后,周期性地發(fā)出同一種32位二進(jìn)制碼,周期約為108ms。一組碼本身的持續(xù)時間隨它包含的二進(jìn)制“0”和“1”的個數(shù)不同而不同,大約在4563ms之間,圖2-4為遙控信號的周期性波形圖。 圖2-4 遙控信號的周期性波形當(dāng)一個鍵按下超過36ms,振蕩器使芯片激活,將發(fā)射一組108ms的編碼脈沖,這108ms發(fā)射代碼由一個起始碼(9ms),一個結(jié)果碼(4.5

13、ms),低8位地址碼(9ms18ms),高8位地址碼(9ms18ms),8位數(shù)據(jù)碼(9ms18ms)和這8位數(shù)據(jù)的反碼(9ms18ms)組成。如果鍵按下超過108ms仍未松開,接下來發(fā)射的代碼(連發(fā)代碼)將僅由起始碼(9ms)和結(jié)束碼(2.5ms)組成。根據(jù)紅外發(fā)射管本身的物理特性,必須要有載波信號與即將發(fā)射的信號相“與”,然后將相“與”后的信號送發(fā)射管,才能進(jìn)行紅外信號的發(fā)射傳送,而在頻率為38KHz的載波信號下,發(fā)射管的性能最好,發(fā)射距離最遠(yuǎn),所以本設(shè)計采用38KHz的晶振產(chǎn)生載波信號,與發(fā)射信號進(jìn)行邏輯“與”運算后,通過三極管的功率驅(qū)動到紅外發(fā)光二極管上。 紅外發(fā)送電路由4001MOS或

14、非門38KHz振蕩器,單片機發(fā)送控制電路和紅外發(fā)送管驅(qū)動輸出電路組成,當(dāng)單片機P3.4口輸出為“0”時,發(fā)射管不發(fā)光,當(dāng)單片機P3.4口輸出為“1”時,紅外發(fā)送管發(fā)出38KHz調(diào)制紅外線。具體的發(fā)射波形如下圖所示。 圖2-6 調(diào)制過程中的波形紅外線通過紅外發(fā)光二極管發(fā)射出去,紅外發(fā)光二極管是特殊的發(fā)光二極管,其內(nèi)部材料和普通發(fā)光二極管不同,因而在其兩端施加一定電壓時,它發(fā)出的是紅外線而不是可見光。目前大量使用的紅外發(fā)光二極管發(fā)出的紅外線波長為940nm左右,外形與普通發(fā)光二極管相同。如圖2-7,為信號發(fā)射電路硬件連接圖。 圖2-7 信號發(fā)射電路硬件連接圖2.2.2 信號接收電路紅外遙控接收可采

15、用較早的紅外接收二極管加專用的紅外處理電路的方法。如CXA20106,此種方法電路復(fù)雜,現(xiàn)在一般不采用。較好的接收方法是用一體化紅外接收頭,一體化紅外線接收頭是一種集紅外線接收和放大于一體,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,而體積和普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸。它將紅外接收二極管、放大、解調(diào)、整形等電路做在一起,只有三個引腳,分別是+5V電源、地、信號輸出。紅外接收頭的信號輸出接單片機的INTO或INTl腳。如圖3-8,紅外接收電路專門采用集成電路RPM6938,RPM6938有三個引腳,一個接電源一個接地,另外一

16、個接信號端,它集光電轉(zhuǎn)換,解調(diào)和放大于一體。當(dāng)收到38KHz調(diào)制紅外線時,RPM6938輸出為“0”,平時輸出為“1”。信號腳接到P3.3和P3.4腳上,當(dāng)RPM6938收到第一個紅外脈沖時,觸發(fā)INT1產(chǎn)生中斷,使單片機退出低功耗狀態(tài),進(jìn)入工作狀態(tài),同時使記數(shù)器0和定時器1開始工作。圖2-8 紅外接收電路遙控信號的解碼算法及程序編制:平時,遙控器無鍵按下,紅外發(fā)射二極管不發(fā)出信號,遙控接收頭輸出信號1。有鍵按下時,0和1編碼的高電平經(jīng)遙控頭倒相后會輸出信號0。由于與單片機的中斷腳相連,將會引起單片機中斷(單片機預(yù)先設(shè)定為下降沿產(chǎn)生中斷)。單片機在中斷時使用定時器0或定時器1開始計時到下一個脈

17、沖到來時,即再次產(chǎn)生中斷時,先將計時值取出。清零計時值后再開始計時,通過判斷每次中斷與上一次中斷之間的時間間隔。便可知接收到的是引導(dǎo)碼還是0和1。如果計時值為9ms,接收到的是引導(dǎo)碼,如果計時值等于1.12ms,接收到的是編碼0。如果計時值等于2.25ms接收到的是編碼1。在判斷時間時,應(yīng)考慮一定的誤差值。因為不同的遙控器由于晶振參數(shù)等原因,發(fā)射及接收到的時間也會有很小的誤差。 解碼方法如下:(1)設(shè)外部中斷0(或者1)為下降沿中斷,定時器0(或者1)為16位計時器。初始值均為O。(2)第一次進(jìn)入遙控中斷后,開始計時。(3)從第二次進(jìn)入遙控中斷起,先停止計時。并將計時值保存后,再重新計時。如果

18、計時值等于前導(dǎo)碼的時間,設(shè)立前導(dǎo)碼標(biāo)志。準(zhǔn)備接收下面的一幀遙控數(shù)據(jù),如果計時值不等于前導(dǎo)碼的時間,但前面已接收到前導(dǎo)碼,則判斷是遙控數(shù)據(jù)的0還是1。(4)繼續(xù)接收下面的地址碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。(5)當(dāng)接收到32位數(shù)據(jù)時,說明一幀數(shù)據(jù)接收完畢。此時可停止定時器的計時,并判斷本次接收是否有效。如果兩次地址碼相同且等于本系統(tǒng)的地址,數(shù)據(jù)碼與數(shù)據(jù)反碼之和等于0FFH,則接收的本幀數(shù)據(jù)碼有效。否則丟棄本次接收到的數(shù)據(jù)。 (6)接收完畢,初始化本次接收的數(shù)據(jù),準(zhǔn)備下一次遙控接收。2.3 CPU時鐘電路時鐘電路用于產(chǎn)生單片機工作所需要的時鐘信號。時鐘信號可以有兩種方式產(chǎn)生:內(nèi)部時鐘方式和外部時鐘方式。1、

19、內(nèi)部時鐘方式AT89C2051單片機有一個高增益反向放大器,用于構(gòu)成振蕩器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。在XTAL1和XTAL2兩端跨接晶體或陶瓷振蕩器,就構(gòu)成了穩(wěn)定的自激振蕩器,其發(fā)出的脈沖直接送入內(nèi)部時鐘發(fā)生器,見圖3-8,外接晶振時,C1、C2值通常選擇為30pF左右;外接陶瓷振蕩器時,C1、C2約為47pF。C1、C2對頻率有微調(diào)作用,震蕩頻率范圍是1.212MHz。為了減少寄生電容,更好的保證振蕩器穩(wěn)定可靠的工作,諧振器和電容應(yīng)盡可能安裝的與單片機芯片靠近。內(nèi)部時鐘發(fā)生器實質(zhì)上是一個二分頻的觸發(fā)器,其輸出信號是單片機工作所需的時鐘信號。2、外部時鐘方式

20、外部時鐘方式是采用外部振蕩器,外部振蕩信號由XTAL2端接入后直接送至內(nèi)部時鐘發(fā)生器。輸入端XTAL1應(yīng)接地,由于XTAL2端的邏輯電平不是TTL的,故建議外接一個上拉電阻。 一般情況下,單片機時鐘輸入均采用內(nèi)部時鐘方式,外接一個震蕩電路,本設(shè)計采用內(nèi)部時鐘方式,晶振采用12MHz,其電路如圖2-9。 圖2-9 AT89C2051時鐘電路2.4 獨立式按鍵結(jié)構(gòu)獨立式按鍵是指直接用I/O線構(gòu)成的單個按鍵電路,每個獨立式按鍵占有一根I/O口線,每根I/O口線上的按鍵的工作狀態(tài)不會影響其他I/O口線的工作狀態(tài),其結(jié)構(gòu)簡單,但I(xiàn)/O口線浪費較大。獨立式按鍵配置靈活,軟件結(jié)構(gòu)簡單,上拉電阻保證了按鍵斷開

21、時,I/O口線有確定的高電平,其電路原理圖如圖2-10。 圖2-10 獨立式按鍵電路2.5 掉電保護(hù)和低功耗的設(shè)計2.5.1 低功耗的實現(xiàn)方法AT89C2051單片機的CPU有兩種節(jié)電工作方式即空閑方式和掉電方式,遙控器采用了空閑節(jié)電方式。當(dāng)CPU執(zhí)行完IDL=1(PCON.0=1)指令后,系統(tǒng)進(jìn)入空閑工作方式,這時內(nèi)部時鐘不向CPU提供,而只供給中斷、串行口、定時器部分。遙控器退出低功耗空閑方式電路由與門來實現(xiàn)。當(dāng)有鍵按下時,由與門觸發(fā)外部中斷1發(fā)生中斷,單片機退出空閑工作方式,進(jìn)入鍵盤和紅外發(fā)射程序,結(jié)束后又進(jìn)入低功耗空閑方式待機。使用過程中單片機基本上都處于空閑工作方式,功耗相當(dāng)?shù)?,從?/p>

22、為使用電池電源提供保障。2.5.2 掉電保護(hù)和低功耗的設(shè)計1掉電保護(hù)在單片機工作時,供電電源如果發(fā)生停電或瞬間停電,將會使單片機停止工作。待電源恢復(fù)時,單片機重新進(jìn)入復(fù)位狀態(tài),停電前RAM中的數(shù)據(jù)全部丟失,這種現(xiàn)象對于一些重要的單片機應(yīng)用系統(tǒng)是不允許的。在這種情況下,需要進(jìn)行掉電保護(hù)處理。掉電保護(hù)具體操作過程如下:單片機應(yīng)用系統(tǒng)的電壓檢測電路檢測到電源電壓下降時,觸發(fā)外部中斷INT0或INT1,在中斷服務(wù)子程序中將外部RAM中的有用數(shù)據(jù)送入內(nèi)部RAM保存。因單片機電源入口的濾波電容的儲能作用,可以有足夠的時間來完成中斷操作。備用電源自切換電路屬于單片機內(nèi)部電路。它由兩個二極管組成,當(dāng)電源電壓高

23、于VPD引腳的備用電源電壓時,VD1導(dǎo)通,VD2截止,單片機由電源供電;當(dāng)電源電壓降到比備用電源電壓低時,二極管VD1截止,VD2導(dǎo)通,單片機由備用電源供電。備用電源只為單片機內(nèi)部RAM和專用寄存器提供維持電流,這時單片機外部的全部電路因停電而停止工作,時鐘電路也停止工作,CPU因無時鐘也不工作。當(dāng)電源恢復(fù)時,備用電源還會繼續(xù)供電一段時間,大約10ms,以確保外部電路達(dá)到穩(wěn)定狀態(tài)。在結(jié)束掉電保護(hù)狀態(tài)時,首要的工作是將被保護(hù)的數(shù)據(jù)從內(nèi)部RAM中恢復(fù)過來。當(dāng)用戶檢測到一個掉電保護(hù)電路時,立即通過外部中斷輸入線INT0來中斷單片機現(xiàn)行操作。外部中斷0服務(wù)程序?qū)⒂嘘P(guān)數(shù)據(jù)信息送入片內(nèi)RAM保存,然后向P

24、1.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處于“餓電流”供電狀態(tài)保存信息,一直維持到VCC恢復(fù)為止。80C2051的掉電保護(hù)過程則不同。當(dāng)電壓檢測電路檢測到電源電壓降低時,也觸發(fā)外部中斷,在中斷服務(wù)子程序中,除了要將外部RAM中的有用數(shù)據(jù)保存以外,還要將特殊功能寄存器的有用內(nèi)容保護(hù)起來,然后對電源控制寄存器PCON進(jìn)行設(shè)置。PCON寄存器的各位定義如表2-1。表2

25、-1 PCON寄存器的各位定義D7 D6 D5 D4 D3 D2 D1 D0SMODGF1GF0PDIDL其中,SMOD是波特率倍增位,在串行通信中使用。GF1、GF0:通用標(biāo)志,由軟件置位、復(fù)位。PD:掉電方式控制位,PD=1,則進(jìn)入掉電方式。IDL:待機方式控制位,IDL=1,則進(jìn)入待機方式。由軟件將PD置1,就可以使單片機進(jìn)入掉電保護(hù)狀態(tài)。這時,單片機的一切工作都停止,只有內(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)

26、容恢復(fù)。如圖2-11,為掉電保護(hù)電路。圖2-11 掉電保護(hù)電路2. 低功耗設(shè)計在很多情況下,單片機要工作在供電困難的場合,如野外、井下和空中,對于便攜式儀器要求用電池供電,這時都希望單片機應(yīng)用系統(tǒng)能低供耗運行。以CMOS工藝制造的80C31/80C51/87C51型單片機提供了空閑工作方式。空閑工作方式(通常也指待機工作方式)是指CPU在不需要執(zhí)行程序時停止工作,以取代不停的執(zhí)行空操作或原地踏步等待操作,達(dá)到減小功耗的目的??臻e工作方式是通過設(shè)置電源控制寄存器PCON中的IDL位來實現(xiàn)的。用軟件將IDL位置1,系統(tǒng)進(jìn)入空閑工作方式。這時,送往CPU的時鐘被封鎖,CPU停止工作,但中斷控制電路、

27、定時/計數(shù)器和串行接口繼續(xù)工作,CPU內(nèi)部狀態(tài)如堆棧指針SP、程序計數(shù)器PC、程序狀態(tài)寄存器PSW、累加器ACC及其他寄存器的狀態(tài)被完全保留下來。在空閑工作方式下,80C51消耗的電流由正常的24mA將為3mA。單片機退出空閑狀態(tài)有如下兩種方法。第一種是中斷退出。由于空閑方式下,中斷系統(tǒng)還在工作,所以任何中斷的響應(yīng)都可以使IDL位由硬件清零,而退出空閑方式下,單片機就進(jìn)入中斷服務(wù)程序。第二種是硬件復(fù)位退出。復(fù)位時,各個專用寄存器都恢復(fù)默認(rèn)狀態(tài),電源控制寄存器PCON也不例外,復(fù)位使IDL清零,退出空閑工作方式。MCS51的掉電保護(hù)也是一種節(jié)電工作方式,它和空閑工作方式一起構(gòu)成了低功耗工作方式。

28、一旦用戶檢測到掉電發(fā)生,在VCC下降之前寫一個字節(jié)到PCON,使PD=1,單片機進(jìn)入掉電方式。在這種方式下,片內(nèi)震蕩器被封鎖,一切功能都停止,只有片內(nèi)RAM00H7FH單元的內(nèi)容被保留。在掉電方式下,VCC可降至2V,使片內(nèi)RAM處于50微安左右的“餓電流”供電狀態(tài),以最小的耗電保存信息,VCC恢復(fù)正常之前,不可進(jìn)行復(fù)位;當(dāng)VCC正常后,硬件復(fù)位10ms即能使單片機退出掉電方式。在本設(shè)計中,退出空閑工作方式采用中斷的方法。當(dāng)遙控鍵盤上的人任一個按鍵按下以后,與門輸出即為低電平,觸發(fā)INT1引腳,外部中斷1響應(yīng),使IDL位清零,退出空閑工作方式,恢復(fù)正常狀態(tài)。2.6 系統(tǒng)完整電路設(shè)計圖2.6.1

29、 紅外發(fā)射電路圖: 如圖2-13,為紅外發(fā)射電路圖: 圖2-13 紅外發(fā)射電路圖2.6.2 紅外接收電路圖: 如圖2-14,為紅外接收電路圖: 圖2-14 紅外接收電路圖第3章 系統(tǒng)軟件設(shè)計3.1 遙控發(fā)射器程序設(shè)計此設(shè)計是一個紅外遙控發(fā)射器,設(shè)計目的就是根據(jù)按鍵的不同,發(fā)射出不同的紅外信號。傳統(tǒng)的遙控器都是采用遙控發(fā)射專用集成芯片,由于這些芯片的功能鍵數(shù)及功能受到特定的限制,只適合于某一專用電器產(chǎn)品的應(yīng)用,應(yīng)用范圍受到限制。本設(shè)計采用單片機制作,采用編程的方法,由于編程具有靈活性,故應(yīng)用范圍較廣,操作碼可隨意設(shè)定。本設(shè)計采用的是按紅外發(fā)射頻率的不同,來識別不同的按鍵。操作鍵設(shè)定為8個,K0至

30、K7,分別接至單片機的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重新工作定時值與前相同,時間到中斷程序使P3.4端口翻轉(zhuǎn)一次,如此往復(fù),紅外信號就按一定的時間間隔發(fā)射出去。通過設(shè)定T0的定時時間來控制紅外信號的發(fā)射頻率。平時遙控器工作在空閑

31、方式下,當(dāng)有鍵按下時,由外部中斷1產(chǎn)生中斷,使CPU回到工作狀態(tài),待執(zhí)行完操作后又回到低功耗才狀態(tài)。主程序主要由初始化程序、鍵盤掃描程序,定時器0中斷服務(wù)程序、定時器1中斷服務(wù)程序,外部中斷1中斷服務(wù)程序組成。 本電路采用的是軟件按鍵消抖的方法,就是調(diào)用一個延時子程序,延時時間設(shè)定為6ms。如圖3-1,為遙控發(fā)射器主程序流程圖,當(dāng)K2至K7鍵按下時,執(zhí)行的程序類似于按下K1鍵所執(zhí)行的程序。START調(diào)初始化程序進(jìn)入低功耗節(jié)電方式外部中斷1中斷CPU退出低功耗方式T0時間到P3.4翻轉(zhuǎn)一次T1時間到關(guān)T0、T1 P3.4置1調(diào)延時程序K1鍵是否按下K2鍵是否按下K1鍵是否松開啟動定時器T1定時5

32、0ms啟動定時器T0定時3.33msK3鍵是否按下調(diào)延時程序 N N N Y YY . N YN N Y Y圖3-1 遙控發(fā)射器主程序流程圖遙控發(fā)射器程序如下:K0 BIT P1.0 K1 BIT P1.1 K2 BIT P1.2 K3 BIT P1.3 K4 BIT P1.4 K5 BIT P1.5 K6 BIT P1.6 K7 BIT P1.7 BZ BIT 07H K0H EQU #0FEH K1H EQU #0F9H K1L EQU #7AH K2H EQU #0FBH K2L EQU #0AAH K3H EQU #0FCH K3L EQU #0BFH K4H EQU #0FDH K4

33、L EQU #65H K5H EQU #0FDH K5L EQU #0D4L K6H EQU #0FEH K6L EQU #24H K7H EQU #0FEH K7L EQU #5FH ORG 0000H AJMP START ORG 000BH AJMP INTT0 ORG 0013H AJMP INT1 ORG 001BH AJMP INTT1 ORG 0030H START:MOV P1,#0FFH MOV P3,#0FFH MOV TMOD,#11H SETB EX1 CLR IT1 SETB EA XH: ORL PCON,#01HJB K0,D01 ACALL DL1 JB K0,

34、D01 JNB K0,$ ACALL SETT1 MOV R1,K0H MOV R2,K0L ACALL SETT0 JNB BZ,$D01:JB K1,D02 ACALL DL1 JB K1,D02 JNB K1,$ ACALL SETT1 MOV R1,K1H MOV R2,K1L ACALL SETT0 JNB BZ,$D02:JB K2,D03 ACALL DL1 JB K2,D03 JNB K2,$ ACALL SETT1 MOV R1,K2H MOV R2,K2L ACALL SETT0 JNB BZ,$D03:JB K3,D04 ACALL DL1 JB K3,D04 JNB K

35、3,$ ACALL SETT1 MOV R1,K3H MOV R2,K3LACALL SETT0JNB BZ,$D04:JB K4,D05 ACALL DL1 JB K4,D05 JNB K4,$ ACALL SETT1 MOV R1,K4H MOV R2,K4L ACALL SETT0 JNB BZ,$D05:JB K5,D06 ACALL DL1 JB K5,D06 JNB K5,$ACALL SETT1MOV R1,K5HMOV R2,K5LACALL SETT0JNB BZ,$ D06:JB K6,D07 ACALL DL1 JB K6,D07 JNB K6,$ ACALL SETT1

36、 MOV R1,K6H MOV R2,K6L ACALL SETT0 JNB BZ,$ D07:JB K7,D08 ACALL DL1 JB K7,D08 JNB K7,$ ACALL SETT1 MOV R1,K7H MOV R2,K7L ACALL SETT0 JNB BZ,$ D08:AJMP XH DL1:MOV R4,#0CH DL2:MOV R5,#0FFH DL3:DJNZ R5,DL3 DJNZ R4,DL2 RET INTT0:CPL P3.4 MOV A,R1 MOV TH0,A MOV A,R2 MOV TL0,A RETI INTT1:CLR TR0 CLR ET0 C

37、LR TR0 CLR TR1 CLR ET1 SETB BZ SETB P3.4 RETI SETT1:MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 SETB ET1 CLR BZ RET SETT0:MOV A,R1MOV TH0,A MOV A,R2 MOV TL0,A SETB TR0 SETB ET0 RET END3.2 遙控接收器程序設(shè)計遙控接收器是根據(jù)接收到的不同頻率的紅外光信號,由CPU轉(zhuǎn)化為對應(yīng)的控制功能對控制電路實施控制。當(dāng)接收電路接收到第一個紅外線脈沖時,中斷INT1被觸發(fā),啟動定時器1和計數(shù)器0。定時器1作為計數(shù)時間控制器,計數(shù)器0作為在規(guī)定記

38、數(shù)時間內(nèi)所記得的紅外脈沖數(shù)。接收信號端接至P3.3和P3.4口,該兩引腳為復(fù)用引腳,P3.3引腳復(fù)用為外部中斷1請求輸入端;P3.4引腳復(fù)用為定時器/計數(shù)器0計數(shù)脈沖輸入端。當(dāng)收到第一個紅外脈沖時,INT1被觸發(fā),T0和T1開始工作,每收到一個紅外脈沖,計數(shù)器0記數(shù)值加一,當(dāng)定時器定時時間到,產(chǎn)生中斷,保存計數(shù)器0的計數(shù)值。由于定時時間為50ms,故各種不同狀態(tài)對應(yīng)的紅外脈沖數(shù)大約為15、30、45、60、75、90、105、120個,然后將記數(shù)值與上述各值比較。由于存在誤差,計數(shù)器0的記數(shù)值不可能嚴(yán)格和上述值相等,只要近似相等就行,限制的誤差范圍為5,即將記數(shù)值加減5得到兩個數(shù)值,再判斷哪一

39、個值在這一范圍之內(nèi),即可斷定遙控發(fā)射器發(fā)射出的紅外信號的發(fā)射頻率即為該值,從而可斷定出遙控操作,然后由接收遙控器CPU將其轉(zhuǎn)化為控制操作,對外電路實施控制功能。P3.2口與地之間的開關(guān)SW為控制方式選擇開關(guān),當(dāng)開關(guān)閉合,即P3.2=0,單片機輸出為上鎖控制方式,此狀態(tài)下遙控器不能對控制電路實施控制功能;當(dāng)開關(guān)斷開,即P3.2=1,為單路控制方式,此狀態(tài)下遙控器能對外電路實施控制功能。當(dāng)外部中斷1響應(yīng),自動檢測該位的電平,若為0自動跳出,重新等待紅外脈沖,在檢測該位電平,如此循環(huán),不對外電路發(fā)控制命令。如圖4-2,為遙控接收器主程序流程圖調(diào)初始化過程接收到第一個紅外脈沖,INT1 被觸發(fā)啟動計數(shù)

40、器T0和定時器T1定時器T1定時時間到開始定時器T1中斷,計數(shù)器T0停止計數(shù)查詢各預(yù)定記數(shù)值是否在T0記數(shù)值加減5的范圍內(nèi)查到該值將對應(yīng)P1口位的電平翻轉(zhuǎn)返回SW=1 YNY 圖3-2 遙控接收器主程序流程圖遙控接收程序如下: X0 EQU #15D X1 EQU #30D X2 EQU #45D X3 EQU #60D X4 EQU #75D X5 EQU #90D X6 EQU #105D X7 EQU #120D FZ EQU #5D SW BIT P3.2 BZ BIT 07H ORG 0000H AJMP START ORG 0013H AJMP INT1 ORG 001BH AJM

41、P INTT1 ORG 0030H START:MOV P1,#0FFH MOV P3,#0FFH MOV SP,#60H CLR IT1 SETB EX1 MOV TMOD,#15H SETB EA XH: NOP AJMP XH INT1:CLR EX1MOV TH1,#3CHMOV TL1,#0B0HSETB TR1SETB ET1MOV TH0,#0HMOV TL0,#0HSETB TR0RETI INTT1:CLR TR0MOV A,TL0MOV B,X0JNB SW,D09ACALL JSPDJB BZ,D01CPL P1.0 D01:MOV B,X1ACALL JSPDJB BZ,D02CPL P1.1 D02:MOV B,X2 ACALL JS

溫馨提示

  • 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

提交評論