找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1830|回復(fù): 1
收起左側(cè)

單片機(jī)+旋轉(zhuǎn)編碼器檢測(cè)匯編實(shí)例

[復(fù)制鏈接]
ID:149876 發(fā)表于 2020-11-12 15:50 | 顯示全部樓層 |閱讀模式
//變量定義
BMQ_VALUE         DS         1
BMQ_VALUE_PRE         DS         1               
BMQ_VALUE_BUF         DS         1
CW_DELAY         DS         1
CCW_DELAY         DS         1
BMQ_DELAY         DS         1
//引腳定義
P_BMQ1                EQU        P1.3
P_BMQ2                EQU        P1.2
;************************************************
;************************************************
;編碼器檢測(cè)子程序(每125us調(diào)用一次)
;************************************************
                B0BTS1        F_ONOFF
                JMP        INT_EXIT
SCAN_BMQ:
                CLR        BMQ_VALUE
                B0BTS0        P_BMQ1
                B0BSET        BMQ_VALUE.0
                B0BTS0        P_BMQ2
                B0BSET        BMQ_VALUE.1
BMQ_JUD:
                B0MOV        A,                BMQ_VALUE
                XOR        A,                BMQ_VALUE_PRE
                B0BTS0        FZ
                JMP        BMQ_JUD1               
                B0MOV        A,                BMQ_VALUE
                B0MOV        BMQ_VALUE_PRE,        A
                CLR        BMQ_DELAY
BMQ_JUD1:
                B0MOV        A,                BMQ_DELAY
                SUB        A,                #08
                B0BTS0        FC
                JMP        BMQ_JUD2
                INCMS        BMQ_DELAY
                NOP                       
                JMP        END_SCAN_BMQ
BMQ_JUD2:      
                B0MOV        A,                BMQ_VALUE
                XOR        A,                BMQ_VALUE_BUF
                B0BTS0        FZ
                JMP        END_SCAN_BMQ               
                B0MOV        A,                BMQ_VALUE
                XOR        A,                #00H
                B0BTS0        FZ
                JMP        BMQ_STEP0
                B0MOV        A,                BMQ_VALUE
                XOR        A,                #01H
                B0BTS0        FZ
                JMP        BMQ_STEP1
                B0MOV        A,                BMQ_VALUE
                XOR        A,                #02H
                B0BTS0        FZ
                JMP        BMQ_STEP2
                B0MOV        A,                BMQ_VALUE
                XOR        A,                #03H
                B0BTS0        FZ
                JMP        BMQ_STEP3
                JMP        END_SCAN_BMQ
BMQ_STEP0:
                B0MOV        A,                BMQ_VALUE_BUF
                XOR        A,                #01H
                B0BTS0        FZ
                JMP        BMQ_CCW
                B0MOV        A,                BMQ_VALUE_BUF
                XOR        A,                #02H
                B0BTS0        FZ
                JMP        BMQ_CW
                CLR         CW_DELAY
                CLR         CCW_DELAY
                JMP         END_BMQ_STEP
BMQ_STEP1:
                B0MOV        A,                BMQ_VALUE_BUF
                XOR        A,                #03H
                B0BTS0        FZ
                JMP        BMQ_CCW
                B0MOV        A,                BMQ_VALUE_BUF
                XOR        A,                #00H
                B0BTS0        FZ
                JMP        BMQ_CW
                CLR         CW_DELAY
                CLR         CCW_DELAY
                JMP         END_BMQ_STEP
BMQ_STEP2:
                B0MOV        A,                BMQ_VALUE_BUF
                XOR        A,                #00H
                B0BTS0        FZ
                JMP        BMQ_CCW
                B0MOV        A,                BMQ_VALUE_BUF
                XOR        A,                #03H
                B0BTS0        FZ
                JMP        BMQ_CW
                CLR         CW_DELAY
                CLR         CCW_DELAY
                JMP         END_BMQ_STEP
BMQ_STEP3:
                B0MOV        A,                BMQ_VALUE_BUF
                XOR        A,                #02H
                B0BTS0        FZ
                JMP        BMQ_CCW
                B0MOV        A,                BMQ_VALUE_BUF
                XOR        A,                #01H
                B0BTS0        FZ
                JMP        BMQ_CW
                CLR         CW_DELAY
                CLR         CCW_DELAY
                JMP         END_BMQ_STEP
BMQ_CW:
                CLR         CCW_DELAY
                INCMS         CW_DELAY
                NOP
                B0MOV        A,                CW_DELAY
                SUB        A,                #04H
                B0BTS1        FC
                JMP        END_BMQ_STEP
                CLR        CW_DELAY
                B0MOV        A,                SPEED_SETUP        ;加
                XOR        A,                #0H
                B0BTS0        FZ
                JMP        END_BMQ_STEP
                DECMS        SPEED_SETUP
                NOP      
                B0BCLR        F_OUTPUT
                CLR        T_OUTPUT
                JMP        END_BMQ_STEP
BMQ_CCW:
                CLR         CW_DELAY
                INCMS         CCW_DELAY
                NOP
                B0MOV        A,                CCW_DELAY
                SUB        A,                #04H
                B0BTS1        FC
                JMP        END_BMQ_STEP
                CLR        CCW_DELAY
                B0MOV        A,                SPEED_SETUP        ;減
                XOR        A,                #4H
                B0BTS0        FZ
                JMP        END_BMQ_STEP
                INCMS        SPEED_SETUP
                NOP
                B0BCLR        F_OUTPUT
                CLR        T_OUTPUT
END_BMQ_STEP:
                B0MOV        A,                BMQ_VALUE
                B0MOV        BMQ_VALUE_BUF,        A
END_SCAN_BMQ:
回復(fù)

使用道具 舉報(bào)

ID:328014 發(fā)表于 2020-11-12 16:05 | 顯示全部樓層
能介紹一下電路連接,或者上傳個(gè)電路圖嗎?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表