久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1390|回復: 0
打印 上一主題 下一主題
收起左側

五功能碼接收器

[復制鏈接]
跳轉到指定樓層
樓主
ID:288962 發表于 2018-3-7 22:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
C_RX_PORT        EQU               
C_RX_PIN                EQU               
C_HEAD_NUM                EQU        4
C_DU_HEAD_CHECK        EQU        0001B
C_DU_LOW_LEVEL_FILTER        EQU        1000B
C_DU_CLEAR_LOW_LEVEL_FILTER        EQU        0111B
C_RX_HEAD1_HIGH_NUM        EQU        1
C_RX_HEAD_TIMER0        EQU        15      
C_RX_HEAD_TIMER1        EQU        15 ;ERROR>=31.35*15^2=8000US=8MS
C_RX_HEAD_TIMER2        EQU        0
C_RX_HEAD_TIMER3        EQU        2        ;2*500=1MS
C_RX_HEAD_TIMER4        EQU 0
C_RX_HEAD_TIMER5        EQU        4        ;4*500=2MS
C_RX_DATA_TIMER0                EQU        7
C_RX_DATA_TIMER1                EQU        0        ;ERROR<=7*31.25=220US
C_RX_DATA_TIMER2                EQU        0
C_RX_DATA_TIMER3                EQU        4        ;ERROR>=4*500=2MS
C_RX_DATA_TIMER4                EQU        0
C_RX_DATA_TIMER5                EQU        2        ;1_0 //1>=1000uS

MACRO_RECEIVER MACRO
RECEIVER:
        LDPCH        RECEIVER
       
        LDMAH        #0
        LD        A,(R_IR_TX_RX);//BIT3=1收到碼后,等待處理再收下一組碼
        AND        A,#1000B
        JNZ        EXIT_RECEIVER

        CLR C
        INC        (M0_RX_TIMER0);0~500US
        ADR (M0_RX_TIMER1);500US~8000US(8MS)
       
        LD        A,(M0_RX_INDEX)
        AND        A,#C_DU_LOW_LEVEL_FILTER
        JNZ        LOW_LEVEL_FILTER        ;1
       
        LD        A,(M0_RX_INDEX)
        AND        A,#C_DU_HEAD_CHECK       
        JNZ        CHECK_DATA                ;1
        JMP        CHECK_HEAD                ;0
       
        LOW_LEVEL_FILTER:
                LD        A,(C_RX_PORT)
                AND        A,#C_RX_PIN
                JZ        CLEAR_RECEIVER_TIMER_AND_EXIT
                LD        A,(M0_RX_INDEX)
                AND        A,#C_DU_CLEAR_LOW_LEVEL_FILTER
                LD        (M0_RX_INDEX),A
                JMP        CLEAR_RECEIVER_TIMER_AND_EXIT
               
        CHECK_HEAD:
                LD        A,(C_RX_PORT)
                AND        A,#C_RX_PIN
                JZ        RX_HEAD1_LEVEL_HOP ;JZ        EXIT:CHECK HIGH _ JNZ EXIT :CHECK LOW
               
                        CLR C
                        LD        A,(M0_RX_TIMER0)
                        SBC        A,#C_RX_HEAD_TIMER0 ;OVERFLOW CHECK
                        LD        A,(M0_RX_TIMER1)
                        SBC        A,#C_RX_HEAD_TIMER1
                        JNC        RECEIVER_IS_ERROR
                        JMP        RECEIVER_EXIT       
                       
                RX_HEAD1_LEVEL_HOP:       
                        CLR C
                        LD        A,(M0_RX_TIMER0)
                        SBC        A,#C_RX_HEAD_TIMER2               
                        LD        A,(M0_RX_TIMER1)
                        SBC        A,#C_RX_HEAD_TIMER3
                        JC        RECEIVER_IS_ERROR                ;<JUMP
                       
                                CLR C
                                LD        A,(M0_RX_TIMER0)
                                SBC        A,#C_RX_HEAD_TIMER4               
                                LD        A,(M0_RX_TIMER1)
                                SBC        A,#C_RX_HEAD_TIMER5
                                JNC        RECEIVER_IS_ERROR                ;>JUMP
                               
                                ;HEAD RIGHT
                                LD        A,(M0_RX_INDEX)
                                OR        A,#C_DU_LOW_LEVEL_FILTER        ;HEAD AVOID LOW LEVEL
                                LD        (M0_RX_INDEX),A
                                INC        (M2_HEAD_NUM_CNT)
                                LD        A,(M2_HEAD_NUM_CNT)
                                CMP        A,#C_HEAD_NUM               
                                JNZ        CLEAR_RECEIVER_TIMER_AND_EXIT
                                ;HEAD NUM RIGHT
                                LD        A,(M0_RX_INDEX)
                                OR        A,#C_DU_HEAD_CHECK       
                                LD        (M0_RX_INDEX),A
                                JMP        CLEAR_RECEIVER_TIMER_AND_EXIT
                       
        CHECK_DATA:
                LD        A,(C_RX_PORT)
                AND        A,#C_RX_PIN
                JZ        DATA_PROCESS       
                JMP        EXIT_RECEIVER       
                DATA_PROCESS:
                CLR C
                LD        A,(M0_RX_TIMER0)
                SBC        A,#C_RX_DATA_TIMER0               
                LD        A,(M0_RX_TIMER1)
                SBC        A,#C_RX_DATA_TIMER1
                JC        CHECK_DATA_ORDER                ;<JUMP
                        CLR C
                        LD        A,(M0_RX_TIMER0)
                        SBC        A,#C_RX_DATA_TIMER2               
                        LD        A,(M0_RX_TIMER1)
                        SBC        A,#C_RX_DATA_TIMER3
                        JNC        CHECK_DATA_ORDER                ;>JUMP
                                ;DATA IS RIGHT
                                CLR        C
                                INC        (5FUC_CNT_DATA0)
                                ADR        (5FUC_CNT_DATA1)
                                LD        A,(M0_RX_INDEX)
                                OR        A,#C_DU_LOW_LEVEL_FILTER        ;HEAD AVOID LOW LEVEL
                                LD        (M0_RX_INDEX),A
                                JMP        CLEAR_RECEIVER_TIMER_AND_EXIT
CHECK_DATA_ORDER:       
        LD        A,(5FUC_CNT_DATA1)
        JZ        FORWARD
        CMP        A,#0001B
        JZ        CHECK_F_LEFT_AND_MORPH
        CMP        A,#0010B
        JZ        CHECK_BACK_FRIGHT_BRIGHT
        CMP        A,#0011B
        JZ        CHECK_LEFT_BLEFT
        CMP        A,#1000B
        JZ        RIGHT
        JMP        RECEIVER_IS_ERROR
       
        CHECK_F_LEFT_AND_MORPH:
                LD        A,(5FUC_CNT_DATA0)
                CMP        A,#0110B
                JZ        MORPH
                CMP        A,#1100B
                JZ        FORWAR_LEFT
                JMP        RECEIVER_IS_ERROR
               
        CHECK_BACK_FRIGHT_BRIGHT:
                LD        A,(5FUC_CNT_DATA0)
                CMP        A,#0010B
                JZ        FORWAR_RIGHT
                CMP        A,#1000B
                JZ        BACK
                CMP        A,#1110B
                JZ        BACK_RIGHT
                JMP        RECEIVER_IS_ERROR
               
        CHECK_LEFT_BLEFT:
                LD        A,(5FUC_CNT_DATA0)
                CMP        A,#0100B
                JZ        BACK_LEFT
                CMP        A,#1010B
                JZ        LEFT
                JMP        RECEIVER_IS_ERROR
        FORWARD:
                LD        A,#0010B
                JMP        GET_A_DIRECTION_ORDER
        BACK:
                LD        A,#0001B
                JMP        GET_A_DIRECTION_ORDER
        LEFT:
                LD        A,#0100B
                JMP        GET_A_DIRECTION_ORDER
        RIGHT:
                LD        A,#1000B
                JMP        GET_A_DIRECTION_ORDER
        FORWAR_LEFT:
                LD        A,#0110B
                JMP        GET_A_DIRECTION_ORDER
        FORWAR_RIGHT:
                LD        A,#1010B
                JMP        GET_A_DIRECTION_ORDER
        BACK_LEFT:
                LD        A,#0101B
                JMP        GET_A_DIRECTION_ORDER
        BACK_RIGHT:
                LD        A,#1001B
                JMP        GET_A_DIRECTION_ORDER
        MORPH:
                ;LDMAH #0
                LD        A,#0010B                        ;變形
                LD        (R_RX_DATA0),A
                LD        A,#0
                LD        (R_RX_DATA1),A
                JMP        RECEIVED_SUCCESSFUL
               
GET_A_DIRECTION_ORDER:
        ;LDMAH #0
        LD        (R_RX_DATA1),A
        LD        A,#0
        LD        (R_RX_DATA0),A
RECEIVED_SUCCESSFUL:
        LD        A,(R_IR_TX_RX)               
        OR        A,#1000B                        ;SUCCESSFUL
        LD        A,#0
        LD        (M0_RX_INDEX),A
        LD        (DU_CNT_DATA0),A
        LD        (DU_CNT_DATA1),A
        LD        (M0_HEAD_NUM_CNT),A
        JMP        CLEAR_RECEIVER_TIMER_AND_EXIT
RECEIVER_IS_ERROR:
        LD        A,#0
        LD        (M0_HEAD_NUM_CNT),A
        LD        (M0_RX_INDEX),A
        LD        (R_IR_TX_RX),A
        LD        (DU_CNT_DATA0),A
        LD        (DU_CNT_DATA1),A
        LD        (R_RX_DATA0),A
        LD        (R_RX_DATA1),A
CLEAR_RECEIVER_TIMER_AND_EXIT:
        LD        A,#0
        LD        (M0_RX_TIMER0),A
        LD        (M0_RX_TIMER1),A
EXIT_RECEIVER:
ENDM





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日摸日日碰夜夜爽2015电影 | 欧美午夜精品理论片a级按摩 | 精品一级电影 | 亚洲视频二区 | 国产一区二区精品在线 | 免费黄色网址视频 | 中文字幕av在线播放 | 欧美日韩成人一区二区 | 日本一二区视频 | 国产精品精品视频一区二区三区 | 久久不卡视频 | 不卡一区二区在线观看 | 欧美1—12sexvideos | 国产成人jvid在线播放 | 免费一区二区在线观看 | 不卡一区二区三区四区 | 麻豆一区一区三区四区 | 日韩精品一二三 | 国产精品日韩欧美一区二区 | 91精品www| 国产精品久久a | 中文字幕在线免费视频 | 亚洲第一色站 | 三区在线观看 | 午夜电影网 | 亚洲成色777777在线观看影院 | 欧美一级淫片免费视频黄 | 国产97人人超碰caoprom | 欧美视频偷拍 | 亚洲福利在线观看 | 久久av在线播放 | 国产成人精品午夜视频免费 | 国产一区二区三区在线视频 | 午夜免费在线观看 | 在线亚洲欧美 | 欧美一区在线视频 | 日本免费小视频 | 国产乱码精品一区二区三区忘忧草 | 在线播放一区 | 中文字幕av亚洲精品一部二部 | 国产99久久精品一区二区永久免费 |