標(biāo)題: 單片機(jī)紅外發(fā)射程序與原理詳解 [打印本頁]
作者: huoguo 時(shí)間: 2018-12-3 21:25
標(biāo)題: 單片機(jī)紅外發(fā)射程序與原理詳解
用AT89S51單片機(jī)制作紅外電視遙控器
制作的實(shí)物如下圖所示:
一般紅外電視遙控器的輸出都是用編碼后串行數(shù)據(jù)對(duì)38~40kHz的方波進(jìn)行脈沖幅度調(diào)制而產(chǎn)生的。
當(dāng)發(fā)射器按鍵按下后,即有遙控碼發(fā)出,所按的鍵不同遙控編碼也不同。這種遙控碼具有以下特征:
采用脈寬調(diào)制的串行碼,以脈寬為0.565ms、間隔0.56ms、周期為1.125ms的組合表示二進(jìn)制的“0”;以脈寬為0.565ms、間隔1.685ms、周期為2.25ms的組合表示二進(jìn)制的“1”。
上述“0”和“1”組成的32位二進(jìn)制碼經(jīng)38kHz的載頻進(jìn)行二次調(diào)制,然后再通過紅外發(fā)射二極管產(chǎn)生紅外線向空間發(fā)射。一般電視遙控器的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)別碼,能區(qū)別不同的紅外遙控設(shè)備,防止不同機(jī)種遙控碼互相干擾。后16位為8位的操作碼和8位的操作反碼,用于核對(duì)數(shù)據(jù)是否接收準(zhǔn)確。
根據(jù)紅外編碼的格式,發(fā)送數(shù)據(jù)前需要先發(fā)送9ms的起始碼和4.5ms的結(jié)果碼。
遙控串行數(shù)據(jù)編碼波形如下圖所示:
接收方一般使用TL0038一體化紅外線接收器進(jìn)行接收解碼,當(dāng)TL0038接收到38kHz紅外信號(hào)時(shí),輸出端輸出低電平,否則為高電平。所以紅外遙控器發(fā)送紅外信號(hào)時(shí),參考上面遙控串行數(shù)據(jù)編碼波形圖,在低電平處發(fā)送38kHz紅外信號(hào),高電平處則不發(fā)送紅外信號(hào)。
單片機(jī)紅外電視遙控器電路圖如下:
單片機(jī)程序源碼:
以上的Word格式文檔51黑下載地址:
單片機(jī)紅外發(fā)射(原理與設(shè)計(jì)程序).doc
(126.5 KB, 下載次數(shù): 200)
2018-12-3 21:23 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者: 1149719013 時(shí)間: 2019-12-26 15:33
有沒有用單片機(jī)發(fā)送矩陣開關(guān)紅外信號(hào)的程序
作者: shmilyr1213 時(shí)間: 2020-1-18 15:42
大神,請(qǐng)問為什么 endcount=223是9ms endcount=10時(shí)是0.56ms。定時(shí)器不是26us一次嗎?算迷糊了呀。自學(xué)的很多都不懂,務(wù)鄙視呀。
作者: cccc888 時(shí)間: 2020-1-18 20:35
邏輯分析儀1.PNG (18.78 KB, 下載次數(shù): 120)
下載附件
2020-1-18 20:34 上傳
實(shí)測(cè)接收頭處的波形,
作者: lyl44 時(shí)間: 2020-1-27 18:45
直接驅(qū)動(dòng)?沒用三極管
作者: tieq1952 時(shí)間: 2020-1-28 07:58
謝謝分享。!
作者: 1239225803 時(shí)間: 2020-5-14 09:18
你好 在keil上編譯出錯(cuò) 錯(cuò)誤信息
作者: 1239225803 時(shí)間: 2020-5-14 09:19
你好 在keil上編譯出錯(cuò) 錯(cuò)誤信息:Build target 'Target 1'
assembling STARTUP.A51...
compiling aag.c...
AAG.C(59): error C141: syntax error near 'flag'
Target not created
作者: 20563112 時(shí)間: 2021-5-11 22:03
你不會(huì)一點(diǎn)C的語法糾錯(cuò)都不會(huì)吧
作者: xxd0708 時(shí)間: 2021-5-12 12:55
cccc888 發(fā)表于 2020-1-18 20:35
實(shí)測(cè)接收頭處的波形,
這是用什么工具測(cè)試的啊
作者: 20563112 時(shí)間: 2021-5-14 17:03
我驗(yàn)證過了,這個(gè)代碼不行
作者: danq 時(shí)間: 2021-5-19 11:44
樓主用的是40us溢出,上面是223,117等等...都有重新核算一次,就可以正常運(yùn)行了
作者: 越南超級(jí)人類 時(shí)間: 2021-6-27 10:32
flag附近少了一個(gè)分號(hào)而已,自己好好看看,不動(dòng)點(diǎn)腦子不行的
作者: sadv 時(shí)間: 2021-6-29 18:48
紅外信號(hào)編碼的方式有很多種,樓主說明的只是其中最常見的一種,一般稱為NEC,還有其他很多種不同的編碼,編碼方式不同,解碼的方式自然也就不同,所以應(yīng)用的時(shí)候還是要看具體時(shí)哪一種編碼方式
作者: kavin21513 時(shí)間: 2021-8-2 16:07
實(shí)驗(yàn)發(fā)現(xiàn), 采用12M的晶振,中斷最少要20us,也就是周期最少要40us了,所以樓主的程序算法上是40us溢出.
如果采用24M晶振,就可以13us中斷,產(chǎn)生周期為26us的38K載波.
所以要采用24M晶振.不然速度不夠.
作者: 飛騰網(wǎng)絡(luò) 時(shí)間: 2022-2-22 22:03
大師為什么用的兩個(gè)晶振 那個(gè)左邊那個(gè)小IC是干啥的呢
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |