- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实战训练提高篇-IR-RECEIVE
紅外綫接收程序
目標: 通過此範例的學習,要求學生掌握
了解紅外接收管之性能
HT6221電視搖控器的解碼方法
了解HT6221校驗之方法
一.範例講解
1. 程式設計說明.
1.1 紅外接收管之特性說明
在前一章節介紹過,紅外綫在發射時需進行38khz載波調制,但在接收時,紅外接收管可以將38khz載波信號解碼為一个高電平信號,所以我們在解碼時,不再需要理會38khz載波信號之問題。直接解出HT6221邏輯編碼即可。
解碼說明
第一步:
通常情況下,紅外接收口上拉在高電平,當接收到38KHZ信號時,則紅外接收管將38khz解為低電平,所以根据HT6221的發碼協議我們首先收到的是9ms的低電平信號,其實在此段我們只要解出4ms到8ms的一段低電平即可。
第二步:
當檢測到4ms到8ms的一段低電平后,則等待信號輸入口由低變高,在信號變高后,開始判斷高電平之寬度,若高電平寬度在3ms到4.5ms之間,則說明其后緊跟著的是地址和數据碼。若高電平寬度小于3ms,則說明其后緊跟著的是重復碼。
第三步:
若根据高電平寬度,判斷出接著來的是地址和數据碼,那麽現在來接收地址和數据碼,此處共32位,根据發碼中‘0’或‘1’的編碼協議,若高低電平寬度相同,則該位數据為‘0’,若解碼后的低電平寬度大于高電平寬度,則該位數据為‘1’。注意:接收到的第一个位是16位地址碼的低8位的BIT0,依次為BIT1直到BIT15,接收完地址碼以后,接著接收數据碼的BIT0,直到BIT7,數据碼接收完后,是數据碼的反碼,也是從BIT0到BIT7。
當32BIT數据接收完后,則可設置Rx_Ok_Fg標志,並保存接收到的地址碼到ADDR_BUFL, ADDR_BUFH,DATA_BUF,DATA_COMP_BUF中。
第四步:
第四步實際上是跟第三步並列的一步,若根据高電平寬度,判斷出接著來的是重復碼,若為重復碼,再檢測一个0.56ms的低電平,當檢測到該低電平后則說明接收到一个重復碼,設置Rx_RepeatOk_Fg標志。以后根据此標志來來完成不同功能。
特別說明:紅外信號在發射時經過三極管反相,因此接收到的波形和發射波形相反。
對比地址碼
接收到的地址碼與,與現在接收機的OPTION地址碼進行對比,若相同才進行后面的數据分析。
校對數据碼
將接收到的數据碼取反后與接收到的數据反碼相比較,若相同,才完成接收碼的鍵功能。否則按接收出錯對待。目前低8位地址碼為00H,高8位地址碼為0ffH。
1.5 如何処理重復碼
當接收到重復碼后,其數据還保留之前節收到的數据。繼續完成該數据的功能,例如連調頻道或連續加聲音等。
2. DEMO綫路圖
在綫路圖中,共有兩部分要自己動手連接,BUZZER部分,I.R.接收部分。在接收到一組碼后會發bb聲。
3 流程圖.
4 Configuration Options
SysVolt 5.0V
SysFreq 4000.000Khz
Product 28SKDIP-A
Wake-Up PA0-7 NO-Wake-Up
IputType PA CMOS
Pull-High PB Pull-High
Pull-High PC Pull-High
Pull-High PD Pull-High
Pull-High PG Pull-High
OSC Crystal
WDT Disable
CLRWDT One Clear Instruction
PB01/Buzzer PB0/1
LVR Disable
LVR Voltage 3.0V
BZ- Source Timer0
5 程式代碼及注釋.
參閲附錄
二.實戰練習指導
1.範例程式運行
据上面的綫路圖進行連綫,對應関習如下
PC.0連到J2的REC。
PC.4連到J2的BUZZ。
運行HT-IDE3000集成開發環境
在DEMO/testIRreceive路徑下建立一個項目文件,名稱可以是testIRreceive或其它名稱
追加源文件testIRreceive.asm到項目中
根据上面Configuration Options設定該項目的Configuration Options
Build 該項目
運行並覌看結果
在此範例程式中,每接收到一組紅外綫碼則發一聲bb聲。
2.練習
文档评论(0)