新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > STC單片機(jī)學(xué)習(xí)型遙控器程序

        STC單片機(jī)學(xué)習(xí)型遙控器程序

        作者: 時(shí)間:2013-05-11 來源:網(wǎng)絡(luò) 收藏

        STC89C52遙控器,可存八個(gè)紅外遙控信息,只要再把按鍵用定時(shí)器中斷2完成就可以用于商業(yè)生產(chǎn).

        RXIN BIT P2.0
        TXZAI BIT P2.2
        TXOUT BIT P2.1
        KEY_SIGN BIT 20H ;為0按鍵錯(cuò)誤,為1按鍵正確
        RXTX_SIGN BIT 21H ;為0是為發(fā)射狀態(tài),為1是為接收狀態(tài)

        ISP_DATA DATA 0E2H ;ISP功能寄存器定義
        ISP_ADDRH DATA 0E3H
        ISP_ADDRL DATA 0E4H
        ISP_CMD DATA 0E5H
        ISP_TRIG DATA 0E6H
        ISP_CONTR DATA 0E7H

        ISP_CMD_NO EQU 0 ;操作數(shù)
        ISP_CMD_READ EQU 1
        ISP_CMD_PROGRAM EQU 2
        ISP_CMD_ERASE EQU 3

        WAIT_TIME EQU 1 ;等待時(shí)間

        ZHIL EQU 30H
        ZHIH EQU 31H
        GESHU EQU 32H
        JISHU EQU 33H
        KEY_WORD EQU 34H
        KEY_VALUE EQU 35H
        ADDRH EQU 36H
        ADDRL EQU 37H
        TX_GESHU EQU 38H


        ORG 0000H
        LJMP START
        ORG 000BH
        LJMP T0IN
        ORG 001BH
        LJMP T1IN

        ORG 0100H
        START: MOV SP,#10H
        CLR RXTX_SIGN
        LJMP KEY_MAIN


        KEY_MAIN:LCALL SCAN_KEY ;檢測有沒有單個(gè)按鍵按下
        MOV A,KEY_WORD
        CJNE A,#00H,NEXT1
        LJMP KEY_MAIN
        NEXT1: JNB KEY_SIGN,KEY_MAIN
        MOV KEY_VALUE,A

        LCALL RE_DELAY ;消抖時(shí)間20ms

        LCALL SCAN_KEY ;是否依然是按下的
        MOV A,KEY_WORD
        CJNE A,#00H,NEXT2
        LJMP KEY_MAIN
        NEXT2: JNB KEY_SIGN,KEY_MAIN
        CJNE A,KEY_VALUE,KEY_MAIN

        RELEASE: LCALL SCAN_KEY ;查看是否放開按鍵了
        MOV A,KEY_WORD
        CJNE A,#00H,RELEASE



        MOV DPTR,#TAB ;執(zhí)行相應(yīng)的程式
        CLR C
        MOV A,KEY_VALUE
        ADD A,KEY_VALUE
        JMP @A+DPTR

        TAB: AJMP KEY_0
        AJMP KEY_1
        AJMP KEY_2
        AJMP KEY_3
        AJMP KEY_4
        AJMP KEY_5
        AJMP KEY_6
        AJMP KEY_7
        AJMP KEY_8
        AJMP KEY_9
        AJMP KEY_10
        AJMP KEY_11
        AJMP KEY_12
        AJMP KEY_13
        AJMP KEY_14
        AJMP KEY_15
        AJMP KEY_16

        KEY_0: LJMP KEY_MAIN ;無效的按健值

        KEY_1: JNB RXTX_SIGN,T1RX ;接收發(fā)送鍵設(shè)定鍵,P1燈亮為接收存儲狀態(tài),燈滅是為發(fā)射狀態(tài)
        T1TX: CLR RXTX_SIGN
        MOV P1,#0FFH
        LJMP KEY_MAIN
        T1RX: SETB RXTX_SIGN
        MOV P1,#00H
        LJMP KEY_MAIN

        KEY_2: MOV ADDRH,#20H
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY2_RX
        KEY2_TX:LJMP TX_START
        KEY2_RX:LJMP RX_START


        KEY_3: MOV ADDRH,#22H
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY3_RX
        KEY3_TX:LJMP TX_START
        KEY3_RX:LJMP RX_START


        KEY_4: MOV ADDRH,#24H
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY4_RX
        KEY4_TX:LJMP TX_START
        KEY4_RX:LJMP RX_START


        KEY_5: MOV ADDRH,#26H
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY5_RX
        KEY5_TX:LJMP TX_START
        KEY5_RX:LJMP RX_START


        KEY_6: MOV ADDRH,#28H
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY6_RX
        KEY6_TX:LJMP TX_START
        KEY6_RX:LJMP RX_START


        KEY_7: MOV ADDRH,#2AH
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY7_RX
        KEY7_TX:LJMP TX_START
        KEY7_RX:LJMP RX_START


        KEY_8: MOV ADDRH,#2CH
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY8_RX
        KEY8_TX:LJMP TX_START
        KEY8_RX:LJMP RX_START


        KEY_9: MOV ADDRH,#2EH
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY9_RX
        KEY9_TX:LJMP TX_START
        KEY9_RX:LJMP RX_START

        KEY_10: MOV ADDRH,#2EH
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY10_RX
        KEY10_TX:LJMP TX_START
        KEY10_RX:LJMP RX_START


        KEY_11: MOV ADDRH,#2EH
        MOV ADDRL,#00H
        JB RXTX_SIGN,KEY11_RX
        KEY11_TX:LJMP TX_START
        KEY11_RX:LJMP RX_START

        紅外遙控器相關(guān)文章:紅外遙控器原理

        萬能遙控器相關(guān)文章:萬能遙控器代碼



        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 清河县| 霍城县| 正阳县| 阿拉善左旗| 额敏县| 苍南县| 正镶白旗| 福清市| 柳州市| 石阡县| 香港 | 马公市| 绿春县| 城固县| 平乐县| 玉山县| 华安县| 玛曲县| 宾阳县| 玛纳斯县| 曲水县| 军事| 南阳市| 马公市| 九江市| 子洲县| 肇州县| 鹤峰县| 通道| 呼伦贝尔市| 平昌县| 深州市| 扎赉特旗| 永春县| 丰县| 珲春市| 内乡县| 抚松县| 清水河县| 公主岭市| 常州市|