標(biāo)題: 單片機(jī)初學(xué)匯編按鍵檢測(cè),按一下亮再按滅,如此循環(huán),不是很完美,希望拋磚引玉 [打印本頁(yè)]

作者: 偉哥C51    時(shí)間: 2024-3-9 19:41
標(biāo)題: 單片機(jī)初學(xué)匯編按鍵檢測(cè),按一下亮再按滅,如此循環(huán),不是很完美,希望拋磚引玉
        ORG  000H
               
KS:        JB        P3.5,$; 測(cè)按鍵
        ACALL        DELAY;  按鍵延時(shí)去抖動(dòng)
        JB        P3.5,KS;再次測(cè)按鍵
        JNB        P3.5,$; 按鍵松開(kāi)否
   ACALL        DELAY;
        MOV   A,P1;     讀取P口值
        ANL        A,#001H;取P1.0位
        JNZ        MD;     測(cè)試P1.0口非0否,非零跳至MD點(diǎn)燈
        SETB        P1.0;   是0關(guān)燈
        ACALL        DELAY2; 延時(shí)200毫秒再測(cè)按鍵
        SJMP        KS
MD:        CLR        P1.0
        ACALL        DELAY2; 延時(shí)200毫秒再測(cè)按鍵
                        
DELAY:        MOV        R1,#2
LOOP:        MOV        R2,#255
        DJNZ        R2,$
        DJNZ        R1,LOOP
        RET
DELAY2:        MOV        R3,#2
LOOP3:        MOV        R4,#36
LOOP2:        MOV        R5,#255
        DJNZ        R5,$
        DJNZ        R4,LOOP2
        DJNZ        R3,LOOP3
        RET
        END


作者: 21cnsound    時(shí)間: 2024-3-10 17:40

MD:        CLR        P1.0
        ACALL        DELAY2; 延時(shí)200毫秒再測(cè)按鍵
這里少了一句        SJMP        KS
作者: 偉哥C51    時(shí)間: 2024-3-24 14:39
21cnsound 發(fā)表于 2024-3-10 17:40
MD:        CLR        P1.0
        ACALL        DELAY2; 延時(shí)200毫秒再測(cè)按鍵
這里少了一句         ...

少這句是不是程序不能跳回KS重新開(kāi)始檢測(cè),但是在實(shí)驗(yàn)板子上沒(méi)區(qū)別
這條子程序返回語(yǔ)句 ACALL        DELAY2; 延時(shí)200毫秒再測(cè)按鍵,執(zhí)行完主程序下面沒(méi)有語(yǔ)句了,程序怎么走,單片機(jī)是不能停下,就像CRT顯像管電子束從上往下,一行一行的往下掃描




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1