新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR學(xué)習(xí)筆記--紅外遙控接收器使用

        AVR學(xué)習(xí)筆記--紅外遙控接收器使用

        作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
        目前大多使用的是一體化紅外接收頭,它將紅外接收二極管、放大、解調(diào)、整形等電路做在一起,只有三個(gè)引腳.分別是+5V電源、地、信號輸出。所以只需要關(guān)心接收頭的輸出編碼格式。

        [1]指令格式:前導(dǎo)碼 + 地址碼 + 地址碼反碼 + 數(shù)據(jù) + 數(shù)據(jù)碼反碼

        本文引用地址:http://www.104case.com/article/201611/320163.htm

        [2]指令編碼:脈寬調(diào)制編碼

        [3]識別算法:每兩次信號的下降沿表示1位數(shù)據(jù),根據(jù)兩次下降沿之間的間隔時(shí)間,就可以判斷出是前導(dǎo)碼,還是數(shù)據(jù)1或數(shù)據(jù)0。

        A、前導(dǎo)碼: 9ms

        B、數(shù)據(jù)“1”:2.25ms

        C、數(shù)據(jù)“0”:1.12ms


        注意:[1]雖然0和1的占用時(shí)間長度不同,但因?yàn)橥瑫r(shí)其反碼的存在,所以整條指令的總長度是固定的。

        [2]前導(dǎo)碼是固定格式,也是紅外指令的識別碼

        [4]硬件電路:


        [5]編程流程:

        • 一體化紅外接收頭的輸出腳接到外部硬件中斷I/O上,并設(shè)置成下降沿觸發(fā)。
        • CPU上電,初始化定時(shí)器,初值為0。
        • 每次觸發(fā)中斷,停止定時(shí)器,讀取定時(shí)器值,判斷定時(shí)器值,9ms表示前導(dǎo)碼,2.25ms表示1,1.12ms表示0。送入數(shù)據(jù)緩沖,并對數(shù)據(jù)隊(duì)列計(jì)數(shù),初始化定時(shí)器,重新計(jì)時(shí)。
        • 判斷數(shù)據(jù)隊(duì)列長度,除前導(dǎo)碼外,接收到32位數(shù)據(jù),表示指令接受完成。
        • 指令校驗(yàn),就是將數(shù)據(jù)和數(shù)據(jù)反碼,地址和地址反碼做加法處理,如果得到的結(jié)果是0xFF,表示校驗(yàn)通過,否則,校驗(yàn)失敗,丟棄數(shù)據(jù)。
        • 指令解讀,根據(jù)規(guī)則解讀。

        [6]實(shí)例代碼:

        等待補(bǔ)充



        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 江源县| 舒城县| 海晏县| 眉山市| 买车| 锡林郭勒盟| 静乐县| 英吉沙县| 芦山县| 敦化市| 巩义市| 内江市| 永修县| 沁阳市| 大港区| 敦化市| 卓资县| 通许县| 宁波市| 安图县| 吴忠市| 宣武区| 和硕县| 迁西县| 呼玛县| 布尔津县| 九寨沟县| 开原市| 商都县| 象州县| 万载县| 桓仁| 临武县| 赞皇县| 怀宁县| 中方县| 神木县| 阿拉尔市| 庆安县| 高唐县| 东安县|