版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
MB
隨著近年來我國科技的發(fā)展,家用電器在我國的發(fā)展極為迅猛,科技在為我
們帶來方便的同時也在改變我們的生活方式,傳統(tǒng)意義上的電器開關(guān)早已跟不上
了人們對智能化發(fā)展的向往與追求,跟不上市場對于智能化開關(guān)應(yīng)運而生?,F(xiàn)今
的家用電器普遍采用紅外遙控方式,這也為一個遙控器可以控制多個電器開關(guān)提
供了可能。而在工業(yè)環(huán)境中,紅外遙控不僅電路結(jié)構(gòu)簡單,還可以安全地對目標
進行遙控,從而避免在對人體有高度危害的有毒氣體等環(huán)境中進行作業(yè),減少工
作中的成本,降低職業(yè)病的產(chǎn)生概率。紅外線的編解碼電路十分簡單,完全可以
進行多路控制,而開關(guān)之間互不干擾,運用c語言進行單片機編程,編碼靈活,
硬件價格便宜,還可以多路遙控,這使得紅外線在室內(nèi)近距離遙控中成為能達到
同樣功能的傳輸方法中的佼佼者,在合適的環(huán)境中,更多的人會選擇紅外遙控。
紅外線遙控的發(fā)展十分迅速,人類應(yīng)用紅外線設(shè)備也已經(jīng)很久了,在如今的
電子科技高度發(fā)達的時代,紅外線不能像無線電遙控一樣具有強大的穿透特性,
也不能向過遠的地方傳輸,與同類的遙控產(chǎn)品相比可以說是非常劣質(zhì)了,但我們
為什么還要用紅外線遙控呢?紅外遙控又憑什么在如今的時代走進千家萬戶?
由于近紅外設(shè)備制作簡單,單片機操控非常靈活,造價也很便宜,最總要的是它
非常適用于在室內(nèi)進行短距離遙控,也不用向無線電遙控一樣,每套設(shè)備都有自
己固定的編碼用來互相識別,紅外線不能穿越障礙物,這意味著紅外遙控器不會
因為具有相同的頻率而穿墻遙控,所以對于室內(nèi)進行遙控設(shè)備是非常適合的。由
于紅外線在自然界極為普遍,所以我們也不用怕它會對人體的健康有所影響,不
可見光對周圍的空間也不會造成光污染。
1本設(shè)計方案思路
所謂智能紅外遙控開關(guān),就是由用戶任意指定一個家用電器的遙控器(例如
家里的電視遙控器)的按鍵作為智能紅外遙控開關(guān)的控制鍵。操作時,首先將電
源開關(guān)打開,第二步手動復(fù)位后就可以打開“取碼”按鍵了,同時激發(fā)遙控器的
控制鍵,此時,紅外遙控器向紅外遙控開關(guān)發(fā)送紅外編碼信號,家用紅外遙控器
發(fā)射的特定編碼信息經(jīng)過智能紅外遙控開關(guān)的紅外接收頭接收后,通過放大整形,
輸入到遙控開關(guān)的STCS9c51RC單片機芯片中,這個MCU通過內(nèi)置的EEPROM記
錄了遙控器發(fā)出的指定按鍵的信號編碼。接著,MCU芯片發(fā)出微電流指令,控制
智能燈外遙控開關(guān)中的繼電器模塊導(dǎo)通或斷開,從而達到控制輸出電壓的通斷.
控制電路通斷的目的。
2基本原理
紅外線為一種無線控制技術(shù),其不輕易損耗編碼信號,硬件價格低,具有
反碼保證信息不缺失,易實現(xiàn)這些卓越的優(yōu)點,紇外線的波譜范圍還要在紅光的
前面,為O.OlunTlOOOinn,而對于我們來說宇宙中的不可見光自然也包括了紅外
線。紅外光按波長一共分為三類,本設(shè)計需要研究的只是可在室內(nèi)傳輸?shù)慕v外,
而遠紅外在自然界中極為普遍,不管是太陽還是石頭都會釋放,而中紅外常用來
制作激光器等光電材料。本設(shè)計由于目的是遙控室內(nèi)家用電器的電源開關(guān),屬于
近紅外設(shè)備,波長為0.76明1.5M。,因為家用遙控器的紅外線發(fā)射器與智能
紅外遙控開關(guān)紅外一體化接收頭在近紅外光波長范圍內(nèi),二者的光譜正好相符,
兩者間匹配度高,所以使用近紅外作為編碼發(fā)射的光源,提高了信息的傳輸有效
性及可靠性。
2.1電路原理
現(xiàn)今的紅外遙控系統(tǒng)一般分為兩部分,第一部分是紅外發(fā)射電路,發(fā)射電路
是一個遙控器,他的內(nèi)部程序主要是一個單片機鍵盤矩陣,還有調(diào)制編碼的電路,
紅外發(fā)光二極管,鍵盤矩陣用來控制需要發(fā)射的紅外編碼,調(diào)制后的編碼遙控信
號才能用于傳輸信息。而第二部分紅外接收電路則是由紅外接收二極管,單片機
芯片,復(fù)位電路,晶振等組合成的,它們將紅外發(fā)光二極管發(fā)出的紅外編碼轉(zhuǎn)換
為對應(yīng)的高低電平信號,再通過后置放大器將電平信號放大。
發(fā)射電路一般由按鍵矩陣,編碼IC芯片、放大電路,紅外發(fā)光二極管等幾
部分組成。目前,人們使用的遙控器發(fā)送紅外遙控編碼時,就是把從零到九十個
數(shù)字的控制鍵所編寫的指令和由二進制編寫的32位用戶碼和鍵碼以及他們的反
碼序列,加載在32-56kHz頻率的載波上,三極管放大后遙控器通過紅外發(fā)射管
將由鍵盤矩陣選擇,編碼電路調(diào)制的數(shù)據(jù)發(fā)送出去,完成由電調(diào)制編碼向光信號
轉(zhuǎn)化的過程。
接收電路一般由光、電信號的轉(zhuǎn)換部分、放大電路、解調(diào)制電路、解碼電路、
等幾部分組成。光電轉(zhuǎn)換部分將遙控發(fā)射電路發(fā)出的經(jīng)過調(diào)制的原始信號恢復(fù)后,
再經(jīng)由二極管電路進行放大,發(fā)送到解碼電路,原始信號再經(jīng)過單片機芯片中的
程序最終將一段紅外信號解調(diào)成了一列二進制數(shù)據(jù)。單片機中的38譯碼器IC
又將二進制數(shù)據(jù)譯碼,將三位的二進制數(shù)最終變?yōu)榘宋?,最后由繼電器電路來執(zhí)
行遙控器所發(fā)送的各種命令控制。本設(shè)計為智能紅外遙控開關(guān)設(shè)計,所以主要是
針對紅外接收電路的研究。
系統(tǒng)框圖如圖2.1所示:
圖2T系統(tǒng)框架原理圖
Figure2-1Systemframeworkschematic
2.2紅外遙控編碼原理
目前處于市場應(yīng)用中的多種紅外遙控器的原理都大同小異,區(qū)別只是在于各
系統(tǒng)的信號編碼方式不同。而如今被人們青睞的兩種,其一是NECProtocol的
PWM(脈沖寬度調(diào)制)標準,一種是PhilipsRC-5Protocol的PPM(脈沖位置
調(diào)制)標準。
455KH%之379KHz?38KHz
(2-1)
由此,NEC脈沖寬度調(diào)制標準格式特征:紅外信號載波頻率為38kHz;
NEC協(xié)議編碼簡介:NEC協(xié)議格式總共包括六部分,第一部分為引導(dǎo)碼,組
成它的是一個高電平和一個低電平,當我們將遙控器上指定的控制鍵按下時,紅
外遙控器將會發(fā)送一個高低電平組成的全碼,這個就是引導(dǎo)碼了,之后紅外遙控
器會發(fā)送一個8位數(shù)據(jù)碼,這就是第二部分的用戶碼,接著又有8位數(shù)據(jù)碼,這
是第三部分的用戶碼或者用戶碼的反碼,主要由紅外遙控器的生產(chǎn)廠家決定。第
四部分為按鍵鍵碼,使用紅外遙控器控制智能紅外遙控開關(guān)時主要就看這一字節(jié),
這是作為同一個遙控器用不同按鍵控制不同的開關(guān)的關(guān)鍵所在。第五部分是按鍵
碼的反碼,這個可以用來對數(shù)據(jù)進行糾錯,第六部分是最后一位,它是一個停止
位,主要作用就是對碼的隔離。當松開遙控器的按鍵時,數(shù)據(jù)碼即停止發(fā)射。如
此六個部分加上后面的延時時間總共為108ms。而在按一次鍵的有限幾秒時間里,
會出現(xiàn)許多個由引導(dǎo)碼帶領(lǐng)的四個字節(jié)加上一段延時時間,這樣,兩個引導(dǎo)碼的
高電平上升沿中間的數(shù)據(jù)碼加延時都是108ms。如圖所示即為兩個完整的NEC編
碼。
圖2-3兩個完整的NEC編碼脈沖圖
Figure2-3TwocompleteNECcodedpulsediagrams
如圖所示,當正常發(fā)碼時,一次完整的紅外線發(fā)送紅外編碼的過程為:13.5ms
的引導(dǎo)碼+低八位的用戶編碼+高八位的用戶編碼或者它的反碼+八位的鍵數(shù)據(jù)碼
+八位的鍵數(shù)據(jù)反碼+一位的停止位隔離碼,最后再加上延時,其中,引導(dǎo)碼為
91ns+4.5ms,是一個具有完整周期的高低電平。如圖:
圖2-4單個NEC編碼脈沖圖
Figure2-4SingleNECcodedpifsediagram
NEC編碼格式中的引導(dǎo)碼是一個9ms的高電平載波加一個4.5ms的時間空閑
的組合,它標志著引導(dǎo)碼之后即為紅外編碼的遙控數(shù)據(jù),而我們不同的遙控器的
區(qū)別就顯現(xiàn)在這里,這樣當接收系統(tǒng)是由微處理器構(gòu)成的時候,能更有效的處理
碼的接受與檢測及其他各項控制之間的時序關(guān)系。
紅外編碼中關(guān)于“0”,“1”的表示方法如下圖2-5所示:
?
—陽陽皿I叫
91115
13.5ms
圖2-5單個NEC編碼脈沖中“0”,“1”表示圖
Figure2-5"0"and"1"inasingleNECcodedpulse
在紅外遙控器中,這些以脈沖寬度調(diào)制進行編碼的數(shù)據(jù)碼,二進制的數(shù)據(jù)“0”
在調(diào)制后表現(xiàn)為時間為0.565ms的高電平和延時時間為0.56ms的0電平時間空
閑,合在一起,就是一個完整的,周期為L125ms的高低電平,它代表的就是數(shù)
據(jù)“0”;二進制數(shù)據(jù)“1”與數(shù)據(jù)“0”略有不同,但就是這一點時間不一樣決定
了他到底是“0”還是“1",二進制數(shù)據(jù)“1”在原始信號與載波信號相互組合調(diào)
制后,表現(xiàn)為脈沖寬度為0.565ms的高電平,它的延時空閑時間較長,為1.685ms
表現(xiàn)為0電平,高低電平組合在一起為2.25ms,比數(shù)據(jù)“0”的時間長了不少,
這是紅外解碼時需要注意的事情。波形如圖2-6所示:
1
圖2-6遙控編碼的“0”和“1”
Figure2-6"0"and"1"ofremotecontrolcode
c——[二:mDec—
弓與瑪?shù)?位用戶編碼「高8位用戶編碼一r8位犍致柜碼殮愜數(shù)盛碼為
圖2-7遙控器發(fā)射的32位碼組圖
Figure2-732-bitcodegroupdiagramtransmittedby(heremotecontroller
原始信號一|||___
38K載波
調(diào)制后信號—!■■■■uni
圖2-8原始信號,載波與調(diào)制信號波形圖
Figure2-8Originalsignal,carrierandmodulationsignalwaveform
圖2-8中的原始信號就是我們要發(fā)送的編碼信號,原始信號和38KHz
的載波信號都是占平比為1/3的方波,以低電平來表示一個數(shù)據(jù)“0”位高電平
表示數(shù)據(jù)“1”位,如圖,38K載波相對于高低電平的時間長度來說要短得多,
這就是載波的高頻特性,將原始信號與載波信號進行混合調(diào)制后,我們就得到了
最終可以承載信息并被發(fā)射出去的已調(diào)信號了。原始信號就是加載了我們想要傳
達信息的信號編碼,當信號是數(shù)據(jù)“0”時,也就是原始信號中的低電平,我們
就在數(shù)據(jù)“0”在原始信號低電平的時間段里發(fā)射出38KHz的載波,而當原始信
號數(shù)據(jù)為“1”的時候,表現(xiàn)為高電平,紅外遙控器不發(fā)送任何信號,載波頻率
為0。這就是調(diào)制紅外線編碼信號的原理過程。
2.3紅外遙控解碼原理
本設(shè)計所選為紅外一體化接收頭,可以接收紅外信號,將其轉(zhuǎn)換為電信號,
并放大電信號,解調(diào)制后用TTL電平表示的高低電平由紅外一體化接收頭的脈沖
信號輸出引腳(OUT)輸出,OUT引腳與STC89c51單片機中的INTO引腳相連接,
單片機RC芯片通過紅外接收解碼程序?qū)⑵渥R別,并將編碼數(shù)據(jù)發(fā)送到主程序中
處理,或者存入FLISH程序存儲空間中,并執(zhí)行相關(guān)控制程序。紅外一體化接收
頭我們在焊接時可以發(fā)現(xiàn)其共有3個引腳:VCC接+5V電源的引腳1,接到公
共地的GND引腳2,還有1個OUT脈沖信號輸出引腳,紅外線編碼轉(zhuǎn)換成電信號
之后,就是從這個引腳向單片機發(fā)送NEC格式編碼的。紅外一體化接收頭硬件連
接非常簡單,轉(zhuǎn)換編照的質(zhì)量也很可靠,很少有錯誤。若紅外一體化接收頭發(fā)現(xiàn)
有38K的紅外編碼,就會在OUT這個脈沖信號輸出引腳輸出低電平,當沒有38K
的時候,意味著這是信號間的間隔,而OUT引腳就會輸出高電平。這樣一夾,
紅外信號編解碼時的電平就會發(fā)生變化,沒有信號變成了高電平,載波也正好反
了過來變成了低電平,但脈沖寬度還是不變的,引導(dǎo)碼也由9nls的載波+4.5ms
的空閑變成了9ms的低電平+4.5ms的高電平了。
將紅外遙控港上的控制按鍵點擊36ms后,遙控器中的晶振激活芯片,會向
紅外一體化接收頭發(fā)射一個同步脈沖信號,這就是NEC紅外傳輸協(xié)議中的引導(dǎo)碼,
引導(dǎo)碼之后即為總共四個字節(jié)36位的數(shù)據(jù)碼了。
bitH0
056ms056ms
1.125ms2.25ms
圖2-9遙控解碼時的“()”和“1”表示圖
Figure2-9"0"and"1"representationsduringremotecontroldecoding
用戶碼用戶碼反碼鍵碼鍵碼反碼
圖2-10遙控解碼時的NEC編碼序列圖
Figure2-10NECcodesequencediagramduringremotecontroldecoding
圖2T0為接收到的編碼,用邏輯分析儀顯示,智能紅外遙控開關(guān)接收到的
先是從0ms持續(xù)到9ms的低電平載波,從這里我們可以看出,這個低電平已經(jīng)
是處于引導(dǎo)碼的范圍了,而后面緊跟著又加上了4.5ms的高電平,而這一低一
高的兩個電平最終才組成了完整的引導(dǎo)碼,到了這里我們也已經(jīng)可以看出來了,
紅外遙控器發(fā)過來的引導(dǎo)碼竟然已經(jīng)將相位反轉(zhuǎn)了,這里就是紅外一體化接收頭
這個硬件的作用了,紅外光波經(jīng)過放大,檢波,限幅等操作,相位正好顛倒了。
引導(dǎo)碼的高電平變成了低電平,4.5ms的時間空閑變成了高電平。數(shù)據(jù)碼的一個
字節(jié)從左到右依次為D0到D7,其中,第一個字節(jié)是8位二進制表示的數(shù)據(jù),
560us的低電平加560us的高電平,根據(jù)圖2-9所示,0.56ms的低電平加0.56ms
的高電平組成了數(shù)據(jù)“0”也就0x00,第二個字節(jié)也是8位二進制數(shù)據(jù),它代表
著NEC紅外編碼格式中的用戶碼或它的反碼,主要由遙控器生產(chǎn)廠家決定,它的
構(gòu)成是560us的低電立載波加1.68ms的高電平空閑,而數(shù)據(jù)位“1”正是由
0.56ms的低電平加上1.68ms的高電平組成。所以第二個字節(jié)可以看出來是OxFF。
而位于引導(dǎo)碼之后按鍵鍵碼之前的這兩個字節(jié)就是用戶碼和用戶碼的反碼。從圖
中可以看到,作為第三個字節(jié)的按鍵的鍵碼翻譯成二進制數(shù)據(jù)則是0x0C,所以
它的反碼就是0xF3,按鍵反碼的作用是將傳輸后的錯誤鍵碼糾正過來,并作為
一個提醒。四個字節(jié)后面還有一個560ns載波停止位,這個停止位是為了隔離
兩端紅外光波編碼的,后面還有一點延時。在我們用遙控器進行遙控時,智能紅
外遙控開關(guān)會區(qū)分不同的按鍵,而在程序內(nèi)在的表現(xiàn)就是對鍵碼及其反碼的區(qū)分,
而他們的用戶碼是相同的,這個上文中也有解釋。這樣我就可以通過單片機狗程
序,把當前的按鍵的鍵碼給解出來。
紅外編碼信號經(jīng)過紅外遙控接收頭解調(diào)后,會從OUT引腳向單片機輸送二進
制碼的編碼,這些二進制編碼中的信息就是控制智能紅外遙控開關(guān)的編碼指令,
在其中包含著控制鍵的需要接收端來進行識別的編碼信息。但單片機芯片MCU
還不能將它識別,所以,在單片機的程序中還有一個解碼子程序,主要是通過對
數(shù)據(jù)”0和數(shù)據(jù)“1”的高電平持續(xù)時間來判斷的。
解碼最重要的就是如何將“0”和“1”識別出來。而在采用脈沖寬度調(diào)制的
串行碼中,“0”和“:”起始時的低電平脈沖寬度是相同的都是().56m*而不
同的則是“0”的高電平脈沖寬度為0.56ms而“1”的高電平脈沖寬度為1.68ms,
所以如果相同的低電平后面接的高電平脈寬為0.56ms,則這一位是“0”若后接
的高電平為1.68ms則這一位是“1”。而低電平不超過1.12ms則認為是“0”,
所以為了信息傳輸?shù)目煽啃院陀行裕?1.12ms+0.56ms)/2=0.84nls作為“0”
和“1”高電平的區(qū)分最好,脈寬低于0.84ms則為“0”高于0.84ms則為“1”。
所以“0”和“1”的區(qū)別就在于低電平之后的高電平持續(xù)的時間寬度區(qū)別。
3硬件設(shè)計
3.1硬件介紹
3.1.1元件清單
元器件個器件代號
數(shù)
發(fā)光二極管5個D1,D2,D3,D4,D5
紅外一體化接收頭1個IR1
5V電磁繼電器4個K1,K2,K3,K4
DC電源接口1個Pl
接線柱4個P2,P3,P4,P5
9012型三極管4個Q1Q2Q3Q4
10K電阻一個RI
2K電阻8個R2—RIO
輕觸按鍵1個SI
自鎖式電源開關(guān)1個S2
單片機芯片STC89C51RC1個UI
12M晶體振蕩器1個Y1
3.1.2STC89C51單片機的介紹
STC系列單片機是美國STC公司的單片機。片內(nèi)含有Flash程序存儲器、SRAM、
UART、SPI、A/D、PWM等模塊。單片機的型號各不相同,但基本的東西都是類
似的,使用keil軟件就可以,語言可以選用C語言或匯編語言,單片機的51
是一個統(tǒng)稱,是51內(nèi)核的意思,不是STC89c51中51的意思,而該器件的基本
功能與普通的51單片機完全兼容。
40
P1.0c393^cc
Pl.lc38=jPO.O(ADO)
Pl.2c37□PO.l(ADl)
PL3匚36□PO.2(AD2)
P1.4匚35□P0.3(AD3)
Pl.5c34=>P0.4(AD4)
P1.6匚33□P0.5(AD5)
P1.7匚32=3P0.6(AD6)
RSTc31口P0.7(AD7)
(RXD)P3.0匚30nEA/r^
(TXD)P3.1c293ALE/PROG
(INT0)P3.2匚28口PSEN
(iKTl)P3.3匚27nP2.7(A15)
(T0)P3.4c263P2.6(A14)
(T1)P3.5c253P2.5(A13)
(WR)P3.6匚243P2.4(A12)
(RD)P3.7匚23口P2.3(AI1)
XTAL2c22°P2.2(A1O)
XTAL1c213P2.1(A9)
GND匚3P2.O(A8)
圖3-1STC89C51單片機的引腳圖
Figure3-1PinDiagramofSTC89C51Microcontroller
3.1.3主要功能、性能參數(shù)
如圖3-1所示:
單片機引腳分為電源,時鐘,I/O口,控制引腳四種。
外形封裝:40腳PDIP
單片機配置51內(nèi)核
機器周期:為12時鐘;
.工作頻率在:0-40MHz,相當于普通8051的0-80MHZ;
3STC89C5xRC對應(yīng)Flash空間:4KB
內(nèi)部存儲器(RAM):512B:
定時器,計數(shù)器:3個16位:
6.通用異步通信口(UART)l個;
中斷源:8個:
有ISP(在系統(tǒng)可編程)1AP(在應(yīng)用可編程),無需專用編程器,仿真器
通用1\0口:32\36個
工作電壓:5.0V
3.1.4芯片引腳
電源:VCC接+5V電源。
GND接地。
時鐘:XTAL1,XTAL2分別為晶體振蕩器的反相輸入端和反向輸出端。
RST:復(fù)位端。位于STC89c51單片機的9端口,外接復(fù)位電路,在晶體振蕩器工
作的狀態(tài)下,可以支持上電復(fù)位和手動復(fù)位。
ALE(30腳):地址鎖存使能。這個引腳屬于控制信號引腳,對外部存儲器工作
時,輸出脈沖鎖存地址的低字節(jié),在正常情況下,ALE輸出信號恒定為1/6振
蕩頻率。并可用作外部時鐘或定時,注意每次訪問外部數(shù)據(jù)時,一個ALE脈沖將
被忽略。
PSEN(29腳):程序存儲使能。讀外部程序存儲。當從外部讀取程序時,PSEN
每個機器周期被激活兩次,是外ROM讀選通信號。
EA:內(nèi)外ROM選擇端,總中斷。
PO,P1,P,2P3:四個端口是STC89c51單片機中的四個I/O端口,P3端口除了作
為I/O端口外,每個引腳都有自己的第二功能。
IT0和IT1分別是外部中斷0和1的輸入口,本設(shè)計的紅外一體化接收頭就
是接在了外部中斷IT0也就是P3'2端口,而P3'3端口接入一個“學(xué)習”按鍵,
用來控制EEPROM。兩人端口功能基本相同,在寫單片機程序時,我們可以將外
部中斷IT0自行設(shè)定,達到我們的需求,設(shè)成“0”或“1”分別代表低電平觸發(fā)
和下降沿觸發(fā)這兩種不同的設(shè)定。當我們希望對IT。這個引腳進行設(shè)置時,要先
對單片機中的特殊寄存器sfr進行設(shè)置。程序中開始時要有EXO=1,打開這個
開關(guān),單片機才會對外部中斷進行設(shè)置,接下來要有EA=1,這個是在中斷使
能寄存器IE中的總開關(guān),打開它,中斷才可以發(fā)生,不管是EXO還是EA都是屬
于中斷使能寄存器的功能,由硬件控制,它們都是可以位尋址的,所以才能這么
寫。這樣ITO的外部中斷就可以配置了。中斷函數(shù)很好認,例如voidAB_T0()
interrupt0函數(shù),函數(shù)名后面有“interrupty”的就是了,而y是中斷函數(shù)
的中斷號,本論文在下面會有詳細的介紹。,需要注意的是,中斷函數(shù)在主程序
中并不需要特意聲明。在51單片機中,系統(tǒng)初始化運行時,寄存器的值全部都
是“0",T/0口的值全部都是“1”。
voidmain()
ITO=1;〃設(shè)置為下降沿觸
發(fā)
EXO=1;//外部中斷0中斷允
許位
EA=1;
while(l){}〃死循環(huán)等待中斷
}
3.1.5紅外接收頭
本設(shè)計選用的是VS1838B一體化紅外接收頭接收紅外遙控編碼信號,
VS1838B與其他類型的紅外接收頭類似,功能大致相同,可以實現(xiàn)對紅外信號的
接收、放大、整形。一般不需要任何外接元件就能完成從紅外接收到輸出TTL
電平兼容信號的所有工作。接收器對外只有3個引腳:電源Vcc,公共地GND和
1個脈沖信號輸出OUT。由圖可以看出,其與單片機接口非常方便,是紅外接收
電路的成品。剛買來的紅外一體化接收頭不一定是功能完好的,這就需要我們在
焊接時,可以用自己手頭的元件簡單地判斷檢查了,我們可以在紅外接收頭的
OUT輸出口與連接+5V電源的引腳這兩個金屬輸出端間,用焊錫簡單地焊接一個
二極管和一個功能完好的發(fā)光二極管以及正5V的VCC,若紅外接收頭完好,我
們向紅外接收頭發(fā)送特定的紅外編碼信號,發(fā)光二極管以及二極管都會正常工作,
這時我們會發(fā)現(xiàn)發(fā)光二極管處于發(fā)光且閃動的狀態(tài),反之,則證明紅外接收頭功
能不完備,可能是運輸時被毀壞,或者是出廠時就已損壞。
3.1.6自鎖開關(guān)
作為本設(shè)計中連接電源與電路的總開關(guān),自鎖開關(guān)都具有鎖定功能,如圖
3-2,當我們打開電源將自鎖開關(guān)連入遙控開關(guān)電路時,開關(guān)連接DC插座與單片
機電路,共有六個接線引腳,當我們按下自鎖開關(guān)時,開關(guān)不會彈起來,這時,
開關(guān)已經(jīng)將電源和電路連接起來了,電路導(dǎo)通,當我們再按一下時,開關(guān)就會彈
起,這時電路處于斷開狀態(tài)。自鎖開關(guān)能鎖定保持使電路導(dǎo)通或斷開的狀態(tài),現(xiàn)
如今我們使用的220V電源插座就是使用的這種機械開關(guān),只是型號可能略有不
同。
圖3-2自鎖開關(guān)電路圖
Figure3-2Self-lockingswitchcircuitdiagram
3.1.7DC電源插口
作為本設(shè)計電路的5v電源提供插座,接入+5V的直流電源。DC插座是由五
部分組成,應(yīng)用廣泛,圓形的插座空間沒有正反面,拔插方便,可以為多種設(shè)備
提供電源,入收音機,電腦顯示器等。
3.1.8小型電磁繼電器(5V)
本設(shè)計中,電路通過5V的VCC提供的電源行繼電器開關(guān)產(chǎn)生通斷控制,控
制大電流設(shè)備電路的通斷,增加安全性。4、5腳是繼電器線圈,沒有正負極
之分的,主要是為了通電后由電生磁,產(chǎn)生對1,2腳常閉開關(guān)的吸力,使1,3
引腳上的開關(guān)閉合,一個腳接三極管,為+5V的電磁繼電器提供單片機I/O口不
能提供的電流。
3.1.9發(fā)光二極管
作為電路中的指示燈,長腳接正極,短腳接負極。
3.1.109012型PNP三極管
本設(shè)計中的9012型PNP三極管作用是電流放大,控制能量的轉(zhuǎn)換。半導(dǎo)體
三極管由兩個PN結(jié)組成,分為PNP和NPN型晶體管,由于有帶有不同極性的兩
種載流子參與導(dǎo)電,又被稱作雙極型晶體管。本沒計使用的是9012型PNP晶體
管。我們從基極B和發(fā)射極E間提供5V的電源,此時,單片機I/O端口發(fā)出低
電平,存在了大于開啟電壓的壓降,這樣一來,PNP晶體管就會導(dǎo)通,連接晶體
管集電極C的繼電器就可以得到足夠的電壓和電流了。目前市面上的晶體三極管
大致分為三種外形,我們在智能紅外遙控開關(guān)中使用的是小功率管。在電路原理
圖中,三極管的符號一股都是特定的,而不管是NPN型三極管還是PNP型三極管,
都會發(fā)現(xiàn)里面有一個小箭頭,而兩種晶體管的區(qū)別僅僅在于方向不一樣,實際上,
這個箭頭的作用是用來指示電流方向的,區(qū)分三極管也主要就靠這個箭頭的方向。
本設(shè)計中的9012型三極管還具有開關(guān)作用,這就是我們需要關(guān)注的地方了,當
基極b的電流為+5V高電平時,VCC也為發(fā)射極提供了+5V的電源,由于三極管
兩極之中壓降為0,所以這個PNP三極管處于截止狀態(tài),集電極C自然也得不到
電流來驅(qū)動電磁繼電器,而當單片機芯片為基極B提供低電平的時候,發(fā)射極E
與基極B之間的電壓壓降達到了5V,壓降已經(jīng)大于了三極管的開啟電壓,集電
極與發(fā)射極之間就可以導(dǎo)通了,但由于基極與發(fā)射極之間的三極管可以承受的壓
降要小于5V,所以我們還要在STC89C51RC單片機芯片與三極管基極之間接入一
個限值為2K的分壓電阻,為三極管及單片機I/O口分擔超過的電壓。由此,我
們就可以通過對單片機I/O端口的輸出高低電平設(shè)置來進行控制電磁繼電器開
關(guān)的通斷了。
關(guān)于這里,我本人初次對單片機進行焊接時,有一個疑問,為什么不杷緋電
器直接接到單片機的I/O端口上呢?單片機輸出的高電平也是+5V啊,若要打開
繼電器,直接用程序設(shè)定一直輸出高電平就行了啊,其實這個問題是因為單片機
雖然輸出的也是5V的電壓,但,輸出的電流卻太小了,可能連一個LED小燈都
不能使其正常發(fā)光,更不足以將電磁繼電器驅(qū)動了,所以要加一個三極管來當作
開關(guān),并起放大電流的作用。在繼電器旁邊并聯(lián)一個電阻和一個發(fā)光二極管是為
了監(jiān)測當有電流時電磁繼電器會不會工作,電阻的作用也是為發(fā)光二極管分壓,
使二極管壓降與0.7V導(dǎo)通電壓相當。
3.2設(shè)計原理
3.2.1單片機簡介
本設(shè)計中原理圖采用altiumdesign2016版及進行原理圖設(shè)計,由于電摘的
原因,新版的軟件過于卡頓,所以使用老版軟件,芯片燒錄采用的是STC89c51
燒錄器,據(jù)說可以重復(fù)擦寫程序很多次。在單片機中的存在的內(nèi)部資源,我們一
般將其分為三大類,這時單片機被設(shè)計出來時就給我們準備的可以使用的內(nèi)容。
第一類是FLISH,這是單片機中的程序存儲區(qū),而在早期的單片機中,它被稱為
OTPROM,FLISH應(yīng)該算是它的升級版本,它可擦寫的特性使它成為單片機中應(yīng)用
最廣泛的程序存儲器,再加上他大容量,低成本的優(yōu)點,使FLISH程序存儲器非
常受歡迎。第二類資源是它的數(shù)據(jù)存儲區(qū),也就是RAM,他的作用是將程序運行
時產(chǎn)生的數(shù)據(jù)存儲起來,類似于電腦的內(nèi)存,其實最典型的比喻是我們的計算器,
我們用計算器計算個加減法,一些中間的數(shù)據(jù)都會保存在RAM里邊,關(guān)電后數(shù)
據(jù)丟失,所以我們每次打開計算器,都是從歸零開始計算。但是他的優(yōu)點第一是
讀寫速度非??欤诙抢碚撋鲜强蔁o限次寫入的,即壽命無限,不管程序怎么
運行怎么讀寫它都不會壞的。第三類資源就是特殊寄存器,它又被稱為SFR,
單片機的很多功能都是我們通過對SFR的讀寫來實現(xiàn)的。
(1)什么是單片機最小系統(tǒng)?單片機最小系統(tǒng)又被稱為單片機最小應(yīng)用系
統(tǒng),指的是單片機工作時用的是最簡單的元件相互配合的系統(tǒng)。
(2)三個必要條件是:
電源:本設(shè)計中的需要用來提供單片機STC89c51芯片及其他驅(qū)動運行的電
壓源,不同的芯片需要的電壓也不同。本設(shè)計中使用的是+5V電源。
晶體振蕩器:單片機的18腳和19腳是晶振的引腳,我們接了一個
11.0592M的晶振它每秒鐘震蕩11,059,200次,外加兩個20pF的電容,電容
的作用是幫助晶振起振,并維持震蕩信號的穩(wěn)定。
復(fù)位電路:接到了單片機的9腳RST(Reset)復(fù)位引腳上,單片機復(fù)位一般
是3種情況,上電復(fù)位、手動復(fù)位、程序自動復(fù)位。
我們假如我們的單片機程序有100行,當某一次運行到第50行的時候,
突然停電了,這個時候單片機內(nèi)部有的區(qū)域數(shù)據(jù)會丟失掉,有的區(qū)域數(shù)據(jù)沒丟失,
那么下次打開設(shè)備的時候,我們希望單片機能正常運行。所以上電后,單片機要
進行一個內(nèi)部的初始化過程,這個過程就可以理解為上電復(fù)位,上電復(fù)位保證單
片機每次都從一個固定的相同的狀態(tài)開始工作。這個過程跟我們打開電腦電源開
電腦的過程是一致的。
當我們的程序運行,遭受到意外干擾而導(dǎo)致程序死機,或者程序跑飛的時候,
我們就可以按下一個復(fù)位按鍵,讓程序重新初始化重新運行,這個過程就叫做手
動復(fù)位,最典型的就是我們電腦的重啟按鈕。
當我們的程序死機或者跑飛的時候,我們的單片機往往有一套自動復(fù)位機制,
比如看門狗,具體應(yīng)用以后再了解。在這種情況下,如果程序長時間失去響應(yīng),
單片機看門狗模塊會自動復(fù)位重啟單片一機。還有一些情況是我們程序故意重啟復(fù)
位單片機。
Figure3-3Resetbuttoncircuitschematic
(3)系統(tǒng)原理圖:原理圖中包括單片機微控制器模塊,紅外一體化接收頭,
USB供電模塊,復(fù)位模塊,以及電磁繼電器模塊。圖見附錄1。
3.2.2單片機控制系統(tǒng)電路
單片機接收紅外接收頭輸出的電平信號產(chǎn)生中斷,處理中斷服務(wù)程序即紅外
解碼程序并完成對繼電器的驅(qū)動控制,實現(xiàn)電源開關(guān)控制功能,如圖3-4:
VCC
c40
P1.0VCo
P1.1PO,1
PO敢.
P1.22
P1.33
P1.4PO,4
P1.5PO.
5
P1.6PO,6
P1.7PO,7
PO-.
RSTR
(RXD)P3.0A^V-
(TXD)P3.1ING
(DTfO)P3.2
P2,7
(Drfl)P3.3P2.6
(T0)P3.4P2.5
(T1)P3.5P2.4
P2,
(WR)P3.6P2,3
(RD)P3.7P2,2
XTAL2P2.1
XTAL10
GND
圖3-4單片機芯片控制電路圖
Figure3-4Microcontrollerchipcontrolcircuitdiagram
3.2.3紅外接收頭電路
遙控器發(fā)出的紅外遙控信號經(jīng)紅外接收頭接收處理后直接送給單片
機的中斷口INTO,如圖3-5所示。
IR1
o
dvv
三4a
限Qvcc
GND
紅%接收
圖3-5紅外一體化接收頭連接原理圖
Figure3-5Infraredintegratedreceiverconnectionschematic
3.2.4USB接口供電電路
在本設(shè)計中主要是對電腦和單片機燒錄器之間的接口連接。如圖3-6所示,
C16為470uF的去耦電容,它的作用有兩個,一個是緩沖作用,通電的瞬間,會
有一股不穩(wěn)定的電流從電源處出現(xiàn),進入紅外遙控電路,這會對電路中的電子元
器件進行沖擊,超過某個電子元器件的承受范圍,元器件就會燒壞,而加了這個
電容,就會對電流有一個緩沖的作用,可以保護電路,不受突然接入的大電流的
影響,不會減少電路元件的使用壽命。在本設(shè)計的焊接電路中,由于主要元器件
如芯片,二極管,三極管等后級的電子元器件的工作時功率及電流大小各不相同,
而有的時候還需要加一些分壓電阻和限流電阻等元件,所以第二個就是穩(wěn)定的作
用了,當我們再給單片機上電時器件工作的時候,可能一個三極管正好處在工作
狀態(tài),但電流大小不是一直持續(xù)不變的,若是后級有個IC芯片在之后突然開始
工作了,這時也許就會分去電路中的電壓,使電流突然變大,而如果沒有個容
納電流的電容,電路中的三極管就會在此時燒壞,電路中的電壓也會直接突然下
降,比如我們的5V電壓突然降低到3V了。而我們系統(tǒng)中有些電子元器件,
必須高于一定的電壓才能正常工作,電壓太低就直接不工作了,有了這個電容,
可以說我們的電壓和電流就會很穩(wěn)定了,不會產(chǎn)生大的波動。
USB接口電路
圖3-6USB接口電路焊接原理圖
Figure3-6USBinterfacecircuitweldingschematic
3.2.4電磁繼電器模塊電路
如圖3-7所示,電磁繼電器5腳接地,4腳接三極管,1腳2腳狀態(tài)常閉,1
腳3腳狀態(tài)常開。三極管的用法特點,關(guān)鍵點在于b極(基極)和e級(發(fā)射極)
之間的電壓情況,對于9012型PNP而言,e極電壓只要高于b級0.7V以上,
這個三極管e級和c級之間就可以順利導(dǎo)通。也就是說,控制端在b和日之
間,被控制端是e和c之間。同理,NPN型三極管的導(dǎo)通電壓是b極比e極
高0.7V,總之是箭頭的始端比末端高0.7V就可以導(dǎo)通三極管的e極和c極。
這就是關(guān)于“導(dǎo)通電壓順箭頭過,電壓導(dǎo)通”的解釋。
如果9012型三極管的基極b我們程序給一個高電平1,那么基極b和發(fā)
射極e都是+5V,也就是說由Vcc提供電源的發(fā)射極e到基極b不會產(chǎn)生一個
0.7V的壓降,這個時候,發(fā)射極和集電極也就不會導(dǎo)通,那么豎著看這個電路
在三極管處是斷開的,所以沒有電流通過,電磁繼電器也就不會處于工作狀態(tài)。
如果我們程序給三極管基極b的位置一個低電平0,而發(fā)射極。是個+5V,產(chǎn)生
壓差就會導(dǎo)通,PNP三極管e極和b極之間大概有0.7V的電壓,那還有
(5-0.7)V的電壓會在電阻R5±o這個時候,e和c之間也會導(dǎo)通了,那么電
磁繼電器本身有5V的壓降,三極管本身e和c之間大概有0.2V的壓降,我
們忽略不計。工作過程如下,當單片機1\0口為低電平時,PNP三極管導(dǎo)通,VCC
電源驅(qū)動電磁繼電器工作,LED小燈串聯(lián)D4電阻R9后與繼電器并聯(lián),用來檢測
繼電器的的電流通斷情況。當STC89c51單片機的1\0口發(fā)出0V的低電平時,9012
型PNP三極管導(dǎo)通,基極與發(fā)射極之間電壓為+5V,但這主要是讓三極管導(dǎo)通,
而真正讓電磁繼電器工作,提供電流的還是上方的直流電源Vcc與GND的電壓差。
繼電器
圖3-7電磁繼電器焊接原理圖
Figure3-7Electromagneticrelayweldingschematic
4軟件設(shè)計
4.1總體方案
本設(shè)計由單片機進行編解碼實現(xiàn)紅外遙控,可以說本設(shè)計的重點除了硬件電
路的設(shè)計外就在于軟件解碼。本章節(jié)將寫出解碼軟件的實現(xiàn)過程。
本設(shè)計在MCS-51單片機中使用C語言來編程。這時由于平時上課時老師更
提倡用C語言進行編程,而c語言又是平時使用較多的計算機語言,優(yōu)點也十分
明顯,具有代碼量小,運行速度快,功能強大的特點。編程軟件采用Keil軟件,
這個軟件是我們在進行單片機程序設(shè)計時使用最廣泛的應(yīng)用軟件了可以使用C
語言進行編譯與調(diào)試。
連接+5V電源,打開自鎖開關(guān),程序進入開始運行階段。當按下智能紅外遙
控開關(guān)“學(xué)習”按鍵時,這時己經(jīng)開始了初始化中斷,按下紅外遙控器的控制按
鍵后,STC89c51RC單片機就會開始存儲來自紅外遙控器發(fā)送過來的信息編碼,
流程說明:在遙控器按下按鍵的時候,遙控開關(guān)開始上電,并初始化,紅外
遙控編碼信號就通過了固定的信道被對面的紅外一體化接收頭接收到了,紅外接
收頭的OUT輸出引腳輸出一組TTL高低電平信號給單片機INTO口,單片機的外
部中斷開始,然后,單片機中的預(yù)先寫好的紅外解碼程序開始工作,引導(dǎo)碼標志
著接下來的是編碼數(shù)據(jù)了,經(jīng)過了用戶碼及其反碼,單片機才能對鍵碼進行判斷
數(shù)據(jù),并解碼,由解碼程序處理后,鍵碼的譯碼值會傳到EEPROM或者
再中斷后被執(zhí)行程序執(zhí)行控制繼電器,當沒有按鋌按下,程序返回到初始化之后,
再次對鍵碼鑒定。
存儲程序:初始化后,當按下“學(xué)習”按鍵時,單片機運行存儲紅外遙控編
碼的程序此時,由本設(shè)計紅外遙控開關(guān)接收后,會將其保存在EEPROM中,斷電
后,EEPROM中的紅外編碼信息也不會丟失,斷電后可以正常使用.
圖3-8智能紅外遙控開關(guān)程序流程圖
Figure3-8Intelligentinfraredremotecontrolswitchprogramflowchart
4.2外部中斷設(shè)置
voidinit_intO()//定義子程序
EXO=1;〃允許外部中斷0中斷
EA=1;〃開總中斷
ITO=1;//外部中斷0開啟
}
當我在做一件事A時,突然必須要去做另一件B更重要的事情,而要做這第
二件事B,就必須先放下第一件事A,這樣才能去做第二件事Bo這里面有一
個主體,就是我,有兩個客體,是事件A和B,他們是在同一時間的情況下進行
的,如果當我做事件B時,不需要了解事件B的過程,只需要得到一個結(jié)果就可
以,那么我們就可以事先給事件B訂上一個鬧鐘,當我們在做事件A時,事件B
也在同時發(fā)生,但由于我們不需要給予關(guān)注他的過程,就可以利用這個事件B
的運行時間,繼續(xù)做事件A,而一旦我們設(shè)定的同鐘響了,這說明我們的事件B
已經(jīng)結(jié)束了,我們就可以去將事件B的結(jié)果處理掉了。而在單片機中,單片機處
理程序也是類似的,當單片機在運行一個程序時,總有一個或幾個程序在同時運
行,而我們需要去做的就是去將事件B的結(jié)果處理掉,只有當事件B處理完后,
我們才能再去回頭處理事件A,如果用單片機中斷處理這件事,那么程序不僅
有了可以處理突發(fā)事件的能力,還可以在同一時間運行多個程序了。特別要注意
的是,單片機中斷是一種機制,它與定時器不同,在單片機中,定時器是一個存
在的模塊,與中斷不同。
在51單片機中,中斷相關(guān)的寄存器一共有茯個,一個是中斷使能寄存器IE
(地址是A8H),共有七位,分別為第七位:EA-總開關(guān),總中斷使能位,這就
相當于家里的總電閘開關(guān),當我們用到中斷時,總要在程序里寫上一句EA=1
這句話的意思是要打開總中斷開關(guān),這樣我們才能用接下來的第零位到第五位的
分中斷。第三位:ET1-定時器1溢出中斷使能,第二位:EX1-外部中斷1使能,
第一位:ETO-定時器0中斷使能,第零位:EXO-外部中斷0使能。第二個則是中
斷優(yōu)先級寄存器,可以位尋址和自己設(shè)置中斷優(yōu)先級。
在初始化程序中,函數(shù)前邊的void表示函數(shù)返回值為空,就是函數(shù)K返
回任何值,只能在主程序中運行,函數(shù)名字是in:t_intO,而程序中EXO=1;是允
許外部中斷使能EX0中斷,EA=1;是打開單片機總中斷,IT0=1;是外部中斷0
負跳變中斷,這個下降沿觸發(fā)是由高到低或由低到高這一瞬間觸發(fā)是微秒級的,
比ITO=1這種電平觸發(fā)要快的多。以上就是本設(shè)計程序中的外部中斷0初始化程
序。
4.3紅外解碼
4.3.1中斷服務(wù)程序
首先來了解程序的格式:
void函數(shù)名。inlerruplmFusingnl[}
關(guān)鍵字intebupt表示這是一個中斷函數(shù),而函數(shù)中的關(guān)鍵字后面還有
一個m,m后面還有一個[usingn],這里的m是作為中斷源的入口號,單片
機中有5個中斷源,有了這些數(shù)字,編譯時就可以找到中斷程序的地址了。執(zhí)行
該程序時,這個地址會傳個程序計數(shù)器PC,MCU就會從這里運行程序了。
這5個中斷源的中斷入口地址如表4-1所示:
中斷源地址中斷號
INTO0003H0
TOOOOBH1
INTI0013H2
Tl:OO1BH3
串口0023114
表4-1中斷號對照表
Table4-1Interruptnumbercomparisontable
若要計算的話,設(shè)中斷號為y,中斷入口地址:y*8+3,而在我們的STC89c51
單片機中,外部中斷INTO的地址為0003H,解出式子得y二部所以interrupt
后面為Oo
4.3.2中斷函數(shù)下的紅外解碼
voidintO0interrupt0
unsignedchari,j;
delay_100us(20);〃防止干擾
if(hw_P32=0)
(〃引導(dǎo)碼
while(hw_P32==0);〃等待低電平過完
delaylOOus(20);
if(hw_P32==1)〃引碼結(jié)束
(
delay_100us(20);//延時2ms
for(i=0;i<4;i++)
for(j=0;j<8;j++)
(
while(hw_P32==0);〃等待過完
delay_100us(5);
if(hw_P32==0)〃數(shù)據(jù)0的時間
〃數(shù)據(jù)1的時間
hwtable[i]?=1;〃低位在前
else
delay_100us(5);//高電平的時間過完
hw_table[i]?=1;〃低位在前
hw_table[i]|=0x80;〃數(shù)據(jù)值1
)
flagjieniaen=1;
}
}
中斷函數(shù)和其他函數(shù)不一樣之處在于中斷函數(shù)有自己的中斷入口,他不需要
像普通程序一樣,還要在程序之中重新調(diào)用,而是達到中斷程序后,會自動進入
執(zhí)行階段。
在上面的紅外線解碼程序中,voidint0()interrupt0表明,它也是一個
中斷函數(shù),因為中斷函數(shù)的格式是固定的,void表明函數(shù)返回值為空,intO為
函數(shù)名,這個是由編寫程序者自行設(shè)定的,而后面跟著的interrupt是中斷的
關(guān)鍵字,有了它就代表著中斷函數(shù)了,再后邊的數(shù)字0是中斷入口號。
delay」00us(20);是一個延時函數(shù),在解碼程序中作為一個子程序,延時
lOOus的函數(shù)當形式參數(shù)為20時,所輸出的結(jié)果是延時2ms,在這個解碼程序中
的作用是防止干擾。
所謂解碼就是判斷NEC標準中紅外編碼信號脈沖的寬度。在智能紅外遙控開
關(guān)中,接受到的編碼序列0和1是通過脈沖持續(xù)時間的長短來區(qū)分的,發(fā)送出來
的方波波形被接收的過程中,只要其接收到編碼信號,(雖然信號是一段一段的
發(fā)送,而信號之間還夾著空閑),此時,紅外接收頭尾端的輸出端口I/O就會輸
出低電平,當沒有編色信號輸入的時候,也就是收到空隙時,輸出引腳將輸出一
個高電平。那我們把輸出引腳接到單片機的INTO口上,就可以得到紅外遙控器
發(fā)送的編碼信息了。而發(fā)送過來的紅外編碼首先過來的就是引導(dǎo)碼,由前面的紅
外編碼原理可知,引導(dǎo)碼的第一個電平是低電平第二個是高電平,而if(hw_P32
=0)表示引導(dǎo)碼為低電平時的條件語句,當出現(xiàn)了引導(dǎo)碼的低電平時的程序。
引導(dǎo)碼為9+4.5=13.5ms,while(hw_P32==0);是一個在hw_P32==0條件下的
死循環(huán),作用是為了等待9nls低電平過完。delay_100us(27);為延時函數(shù),延
時2.7ms(此時已經(jīng)處于高電平)cif(hw_P32==1)是表示引碼處于4.5ms的高
電平過程中,而delay_100us(20);延時函數(shù)為延時2ms,但我們要知道,這個延
時2ms的函數(shù)是位于上面這個if語句中,也就是說在這個延時函數(shù)之后,紅外
編碼處于2.7ms+2.0ms=4.7ms而大于4.5ms的高電平結(jié)束狀態(tài)。接下來就是用戶
碼和用戶碼的反碼了,在這里,我們要知道,NEC標準下的紅外遙控編碼用戶碼
是用來區(qū)分不同的遙控設(shè)備的,在一個遙控器中,不同的按鍵的用戶碼都是完全
相同的。for(i=0;i<4;i++)for(j=0;j<8;j++),:}這兩個C語句中,第一個for
語句,意思是循環(huán)接收后面由用戶碼,用戶反碼,按鍵鍵碼,鍵碼反碼組成的4
個字節(jié),而第二個for語句的意思是循環(huán)接收并判定每個字節(jié)的8位,兩個嵌套
for語句將引導(dǎo)碼之后的4個字節(jié)32位逐位判定。while(hw_P32=0);在NEC
標準格式下,紅外解碼程序中,不管是“0”位還是“1”位,在一個周期內(nèi)的第
一個電平都是時間為。56ms的低電平,所以while(hw_P32==0);語句為等待
0.561.15的低電平結(jié)束,這樣,我們判斷數(shù)據(jù)是1還是0就只需要觀察高電三就
可以了。根據(jù)紅外解碼原理,數(shù)據(jù)0的時間=0.56ms的低電平+0.5
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 橋吊操作培訓(xùn)
- 超市員工培訓(xùn)及安全管理制度
- 瀏覽器知識培訓(xùn)
- 濟南消防入職培訓(xùn)
- 漿液循環(huán)泵檢修課件培訓(xùn)
- 流行詞與職場培訓(xùn)
- 宏觀經(jīng)濟深度報告:有形之手(1):財政ABC之“四本賬”-
- 10kv線路改造高處作業(yè)施工方案
- 活動接待禮儀培訓(xùn)
- 2024-2025學(xué)年廣東省佛山市高一下學(xué)期6月期末地理試題(解析版)
- 2025年國企中層競崗筆試題目(答案+解析)
- 廚師消防安全責任書
- 中醫(yī)診療技術(shù)操作指南
- 2026年口碑服務(wù)公司財務(wù)報表編制與報送管理制度
- 2025年度醫(yī)藥銷售工作總結(jié)與述職報告
- 安徽省合肥市包河區(qū)2023-2024學(xué)年七年級下學(xué)期期中數(shù)學(xué)試卷
- 人教版九年級英語上冊閱讀理解10篇(含答案)
- 醫(yī)療器械行業(yè)招商方案
- 醫(yī)院紀檢監(jiān)察室工作總結(jié)暨述職報告課件
- 軌道安裝檢查檢驗批施工質(zhì)量驗收表
- zxv10ms90v1.23會議業(yè)務(wù)管理系統(tǒng)設(shè)備操作指南
評論
0/150
提交評論