新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STC單片機學習型遙控器程序

        STC單片機學習型遙控器程序

        作者: 時間:2013-05-11 來源:網絡 收藏

        MOV ISP_DATA,GESHU ;將個數輸入到ISP_EEPROM的第一位
        MOV ISP_ADDRH,ADDRH
        MOV ISP_ADDRL,ADDRL
        CLR EA
        MOV ISP_CONTR,#WAIT_TIME
        ORL ISP_CONTR,#10000000B
        MOV ISP_CMD,#ISP_CMD_PROGRAM
        MOV ISP_TRIG,#46H
        MOV ISP_TRIG,#0B9H
        NOP


        MOV R1,GESHU
        MOV R0,#00H
        LOOP_WRITE: LCALL BYTE_WRITE ;將擴展寄存器中的計時值依次放入ISP_EEPROM第二位開始的存儲器中
        INC R0
        LCALL BYTE_WRITE
        INC R0
        DJNZ R1,LOOP_WRITE

        MOV ISP_CMD,#00H ;ISP指令清零,防止誤觸發
        MOV ISP_TRIG,#00H
        MOV ISP_ADDRH,#00H
        MOV ISP_ADDRL,#00H
        mov p1,geshu

        LJMP KEY_MAIN

        BYTE_WRITE: MOVX A,@R0
        MOV ISP_DATA,A
        MOV ISP_ADDRH,ADDRH
        INC R0
        MOV ISP_ADDRL,R0
        DEC R0
        CLR EA
        MOV ISP_CONTR,#WAIT_TIME
        ORL ISP_CONTR,#10000000B
        MOV ISP_CMD,#ISP_CMD_PROGRAM
        MOV ISP_TRIG,#46H
        MOV ISP_TRIG,#0B9H
        NOP
        RET

        ISP_ERASE: MOV ISP_ADDRH,ADDRH
        MOV ISP_ADDRL,ADDRL
        CLR EA
        MOV ISP_CONTR,#WAIT_TIME
        ORL ISP_CONTR,#10000000B
        MOV ISP_CMD,#ISP_CMD_ERASE
        MOV ISP_TRIG,#46H
        MOV ISP_TRIG,#0B9H
        NOP
        RET


        TX_START: MOV ISP_ADDRH,ADDRH ;取出第一位的個數
        MOV ISP_ADDRL,ADDRL
        CLR EA
        MOV ISP_CONTR,#WAIT_TIME
        ORL ISP_CONTR,#10000000B
        MOV ISP_CMD,#ISP_CMD_READ
        MOV ISP_TRIG,#46H
        MOV ISP_TRIG,#0B9H
        NOP
        MOV ISP_CMD,#00H ;ISP指令清零,防止誤觸發
        MOV ISP_TRIG,#00H
        MOV ISP_ADDRH,#00H
        MOV ISP_ADDRL,#00H

        MOV A,ISP_DATA ;為0FF則是錯誤的,回去,不為0FF則繼續
        CJNE A,#0FFH,ISP_READ
        LJMP KEY_MAIN


        ISP_READ: MOV GESHU,ISP_DATA
        MOV R1,GESHU
        MOV R0,#00H
        LOOP_READ: LCALL BYTE_READ
        INC R0
        LCALL BYTE_READ
        INC R0
        DJNZ R1,LOOP_READ
        LJMP TX_EXROM


        BYTE_READ: INC R0
        MOV ISP_ADDRH,ADDRH
        MOV ISP_ADDRL,R0
        DEC R0
        CLR EA
        MOV ISP_CONTR,#WAIT_TIME
        ORL ISP_CONTR,#10000000B
        MOV ISP_CMD,#ISP_CMD_READ
        MOV ISP_TRIG,#46H
        MOV ISP_TRIG,#0B9H
        NOP
        MOV A,ISP_DATA
        MOVX @R0,A
        RET


        TX_EXROM: MOV TMOD,#00010010B
        MOV TH0,#0F4H
        MOV TL0,#0F4H
        MOV R1,GESHU
        MOV R0,#00H
        MOVX A,@R0
        MOV TL1,A
        INC R0
        MOVX A,@R0
        MOV TH1,A
        INC R0
        DEC R1
        MOVX A,@R0
        MOV ZHIL,A
        INC R0
        MOVX A,@R0
        MOV ZHIH,A
        INC R0
        DEC R1

        SETB ET1
        SETB ET0
        SETB EA
        SETB TR1
        SETB TR0
        CLR TXOUT

        MAIN2:CJNE R1,#00H,MAIN2
        CLR TXOUT
        mov p1,#55h
        LJMP KEY_MAIN


        T0IN:CPL TXZAI
        RETI

        T1IN: MOV TL1,ZHIL
        MOV TH1,ZHIH
        JB TR0,NEXTT1
        SETB TR0
        LJMP NEXTT
        NEXTT1:CLR TR0
        CLR TXZAI

        NEXTT:CPL TXOUT
        MOVX A,@R0
        MOV ZHIL,A
        INC R0
        MOVX A,@R0
        MOV ZHIH,A
        INC R0
        DJNZ R1,OUTTI
        CLR TR1
        CLR TR0
        CLR TXZAI
        CLR TXOUT
        OUTTI:RETI

        DELAYXMS:MOV R7,#255
        DEL1:MOV R6,#4
        DEL2:MOV R5,#5
        DJNZ R5,$
        DJNZ R6,DEL2
        DJNZ R7,DEL1
        RET

        DELAYX2MS:MOV R7,#255
        DEL12:MOV R6,#50
        DEL22:MOV R5,#50
        DJNZ R5,$
        DJNZ R6,DEL22
        DJNZ R7,DEL12
        RET


        END

        萬能遙控器相關文章:萬能遙控器代碼


        紅外遙控器相關文章:紅外遙控器原理

        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 枣庄市| 毕节市| 宝丰县| 赤水市| 商丘市| 平定县| 惠来县| 涞源县| 罗源县| 大田县| 曲阜市| 罗定市| 新化县| 丰城市| 武平县| 河东区| 阜康市| 丰顺县| 婺源县| 唐海县| 子洲县| 庆云县| 文水县| 碌曲县| 新昌县| 时尚| 丰都县| 衡水市| 喀喇| 新泰市| 永平县| 禄劝| 公安县| 韩城市| 广德县| 东山县| 岳阳县| 通江县| 万州区| 上思县| 虞城县|