版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、紅外通信原理紅外遙控有發(fā)送與接收兩個組成局部。發(fā)送端采用單片機(jī) 將待發(fā)送的二進(jìn)制信號編碼調(diào)制為一系列的脈沖串信號,通過紅外發(fā)射管發(fā)射紅外信號。紅外接收完成對紅外信號的接收、放大、檢波、整形,并解調(diào)出遙控編碼脈沖。為了減少干擾,采用的就是價格廉價性能可靠的 一體化紅外接收頭HS0038,它接收紅外信號頻率為38kHz周期約26 卩s接收紅外信號,它同時對信號進(jìn)行放大、檢波、整形得到TTL電平的編碼信號,再送給單片機(jī),經(jīng)單片機(jī)解碼并執(zhí)行去控制相關(guān)對 象。具體實現(xiàn)過程如下:在這里特別強調(diào):編碼與解碼就是一對逆過程,不僅在原理上就是一 對逆過程,在碼的發(fā)收過程也就是互反的,即以前發(fā)射端原始信號就是高電
2、平,那接收頭輸出的就就是低電平,反之亦然。因此為了保證解碼過程簡單方便,在編碼時應(yīng)該直接換算成其反碼。電-冷低平化頭的帖52ttl.l曬0哥116 565ins蕈電1.855共2.25ms1、紅外發(fā)射局部:TK0.5S5IE下列圖為紅外發(fā)射局部的電路擬圖圖2紅外發(fā)射電路編碼過程:(1) 二進(jìn)制信號的調(diào)制二進(jìn)制信號的調(diào)制由單片機(jī)來完成,它把編碼后的二進(jìn)制信號調(diào)制成頻率為38kHz的間斷脈沖串(用定時器來完成),相當(dāng)于用二進(jìn)制信號的 編碼乘以頻率為38kHz的脈沖信號得到的間斷脈沖串,即就是調(diào)制后 用于紅外發(fā)射二極管發(fā)送的信號。(2) PPM編碼這種遙控編碼具有以下特征:遙控編碼脈沖由前導(dǎo)碼、16
3、位地址碼8位地址碼、8位地址碼的 反碼與16位操作碼8位操作碼、8位操作碼的反碼組成。前導(dǎo)碼: 就是一個遙控碼的起始局部,由一個9ms的高電平起始碼與一 個4、5ms的低電平結(jié)果碼組成,作為接受數(shù)據(jù)的準(zhǔn)備脈沖。16位地址碼:能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互相干 擾。16位操作碼:用來執(zhí)行不同的操作。采用脈寬調(diào)制的串行碼,以脈寬為0、56ms、間隔0、56ms、周期為1、12ms的組合表示二進(jìn)制的“0以脈寬為1、68ms、間隔0、56ms、 周期為2、24ms的組合表示二進(jìn)制的“ 1。rL圖7二進(jìn)制碼T圖8二進(jìn)制碼O地址度碼操作碼圖號發(fā)送一組完整的編碼脈沖3發(fā)送程序#inelude
4、 static bit OP; static un sig ned int static un sig ned intstatic un sig ned char/紅外發(fā)射管的亮滅控制位count;/延時計數(shù)器endcount; /終止延時計數(shù)flag;/紅外發(fā)送標(biāo)志sbit P3_4=P3A4;char iraddrl;/十六位地址的第一個字節(jié)char iraddr2;/十六位地址的第二個字節(jié)void SendlRdata(char p_irdata); / 發(fā)送子函數(shù)void delay();void main( void )count = 0;flag = 0;/無載波OP = 0;/
5、不亮P3_4 = 0;/在后面會發(fā)現(xiàn)用OP賦值的EA = 1;/ 允許 CPU中斷TMOD = 0x11; /設(shè)定時器0與1為16位模式1ET0 = 1;/定時器0中斷允許TH0 = OxFF;TL0 = 0xE6;/設(shè)定時值0為38K也就就是每隔26us中斷一次TR0 = 1 ;/開始計數(shù)iraddr1=3; /自定義的一個地址iraddr2=252; / 地址反碼dodelay();Sen dIRdata(12); while (1);/定時器0中斷處理void timeint( void ) interrupt 1TH0=0xFF;TL0=0xE6; /設(shè)定時值為38K也就就是每隔26u
6、s中斷一次 coun t+;if (flag=1)OP=OP; /如果就是待發(fā)送的有效數(shù)據(jù)flag=1,就在此產(chǎn)生載波elseOP = 0; P3_4 = OP;void SendlRdata( char p_irdata)/ 發(fā)送數(shù)據(jù)子函數(shù)int i;char irdata=p_irdata;/*/發(fā)送9ms的起始碼,并就是載波模式有效en dcou nt=223;flag=1;coun t=0;while (countendcount); /等待中斷,控制亮滅交變的總時間為 9ms/發(fā)送4、5ms的結(jié)果碼,并就是載波模式無效endcoun t=117flag=0;coun t=0;do w
7、hile (countendcount);*/發(fā)送十六位地址的前八位irdata=iraddr1;for (i=0;i8;i+) / 一個周期里規(guī)定先以高電平開始,在以低電平結(jié)束。先發(fā)送0、56ms的38KHZ“ 1的紅外波(即編碼中0、56ms的高電平)en dco un t=10;flag=1;coun t=0;do while (countendcount);/停止發(fā)送紅外信號(即編碼中的低電平)/判斷二進(jìn)制數(shù)個位為1還就是0/1 為寬的高電平1、68msif (irdata-(irdata/2)*2)en dco un t=41; else/0為窄的高電平0、56msflag=O;co
8、un t=0;while (count1; / 依次取位/發(fā)送十六位地址的后八位irdata=iraddr2;/此處已經(jīng)就是地址的反碼for (i=0;i8;i+)en dco un t=10;flag=1;coun t=0;while (countendcount);if (irdata-(irdata/2)*2)en dco un t=41;elseen dco un t=15;flag=0;coun t=0;do while (count1;*/發(fā)送八位數(shù)據(jù)irdata=p_irdata;for( i=0;i8;i+)en dco un t=10;flag=1;coun t=0;whil
9、e (countendcount);if( irdata-(irdata/2)*2) en dco un t=41; elseen dco un t=15; flag=O;coun t=0;do while (count1;/發(fā)送八位數(shù)據(jù)的反碼irdata=p_irdata;/要將數(shù)據(jù)位取反for (i=0;i8;i+)en dco un t=10;flag=1;coun t=0;while (countendcount);if (irdata-(irdata/2)*2)en dco un t=41; elseen dco un t=15; flag=0;coun t=0;while (cou
10、nt1;en dco un t=10;flag=1;coun t=0;do while (countendcount);flag=0;void delay()int i,j;for (i=0;i400;i+)for (j=O;j0;a-) for(b=40;b0;b-); void rem()interrupt 0/ 中斷函數(shù)uint i=0; / 此處變量用來在下面配合連續(xù)監(jiān)測 9MS 內(nèi)就 是否有高電平prem=1;for(i=0;i1100;i+) /以下FOR語句執(zhí)行時間為8MS左右if(prem) /進(jìn)入遙控接收程序首先進(jìn)入引導(dǎo)碼的前半部判斷 , 即:就是否有9MS左右的低電平ret
11、urn;/ 引導(dǎo)碼錯誤那么退出 ,注意與 break 語句的區(qū)別while(prem!=1); /等待引導(dǎo)碼的后半部 4、5 MS 高電平開始的 到來。delaytime(50); / 延時大于 4、5MS 時間 ,跨過引導(dǎo)碼的后半局部 , 來到真正遙控數(shù)據(jù) 32 位中/第一位數(shù)據(jù)的0、56MS開始脈沖for(ramc=0;ramc4;ramc+)循環(huán) 4 次接收 4 個字節(jié) for(count=0;count8;count+) / 循環(huán) 8次接收 8位(一個字節(jié) ) while(prem!=1); /開始判斷現(xiàn)在接收到的數(shù)據(jù)就是 0 或者 1 ,首先 在這行本句話時 ,/保已經(jīng)進(jìn)入數(shù)據(jù)的 0
12、、 56MS 低電平階段/等待本次接受數(shù)據(jù)的高電平的到來。delaytime(9);/ 高電平到來后 ,數(shù)據(jù) 0 高電平最多延續(xù)0、56MS而數(shù)據(jù)1高電平可延續(xù)1、66MS大于0、8MS后我們可以再判 斷遙控接收腳的電平。if(prem) / 如果這時高電平仍然在繼續(xù)那么接收到的數(shù)據(jù) 就是 1 的編碼ramramc=(ramramc1)+1;將目前接收到的數(shù)據(jù)位 1放到對應(yīng)的字節(jié)中delaytime(11); /如果本次接受到的數(shù)據(jù)就是 1,那么要繼續(xù)延遲 1MS,這樣才能跨/下個位編碼的低電平中(即就是開始的0、56MS中)else/否那么目前接收到的就是數(shù)據(jù) 0的編碼ramramc=ram
13、ramc1; / 將目前接收到的數(shù)據(jù)位 0 放 到對應(yīng)的字節(jié)中 / 本次接收結(jié)束 ,進(jìn)行下次位接收 ,此接收動作進(jìn)行 32 次,正好完 成 4 個字節(jié)的接收if(ram2!=(ram3&0x7f)/本次接收碼的判斷 for(i=0;i4;i+)/ 沒有此對應(yīng)關(guān)系那么說明接收失敗 ,去除接受到的數(shù)據(jù)rami=0;returned;main()IT0=1;/設(shè)定INTO為邊沿觸發(fā)EX0=1;/翻開外部中斷 0EA=1;/全局中斷開關(guān)翻開while(1)switch(dis_num)case Ox81: num=O; break;case Oxcf: num=1; break;case Ox92: num=2; break;case Ox86: num=3; break;case Oxcc: num=4; break;case Oxa4: num=5; break;case OxaO: num=6; break;case Ox8f: num=7; break;case Ox8O: num
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 危險品倉儲危險廢物處置與管理考核試卷
- 助動車離合器拉線維護(hù)考核試卷
- 化學(xué)品生產(chǎn)過程中的成本控制與優(yōu)化考核試卷
- 塑料鞋生產(chǎn)成本分析與削減策略考核試卷
- 2025-2030全球防水屏障行業(yè)調(diào)研及趨勢分析報告
- 過河課程設(shè)計北師大版
- 2025年全球及中國自主接待機(jī)器人行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球廢舊三元催化器貴金屬回收行業(yè)調(diào)研及趨勢分析報告
- 讀寫障礙課程設(shè)計
- 高樓供水的課程設(shè)計
- DB22T 5005-2018 注塑夾芯復(fù)合保溫砌塊自保溫墻體工程技術(shù)標(biāo)準(zhǔn)
- 醫(yī)院手術(shù)室醫(yī)院感染管理質(zhì)量督查評分表
- 心內(nèi)電生理導(dǎo)管及器械
- 稱量與天平培訓(xùn)試題及答案
- 超全的超濾與納濾概述、基本理論和應(yīng)用
- 2020年醫(yī)師定期考核試題與答案(公衛(wèi)專業(yè))
- 2022年中國育齡女性生殖健康研究報告
- 各種靜脈置管固定方法
- 消防報審驗收程序及表格
- 教育金規(guī)劃ppt課件
- 呼吸機(jī)波形分析及臨床應(yīng)用
評論
0/150
提交評論