实战训练提高篇-IR-RECEIVE.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档