导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→按键连发怎么搞?下面的程序是按键轮流亮灯,按一下亮一个灯,长

* 101196: 按键连发怎么搞?下面的程序是按键轮流亮灯,按一下亮一个灯,长按一秒以上连续轮流亮怎么做?

   zhaobao51 
zhaobao51发表的帖子 

 按键连发怎么搞?下面的程序是按键轮流亮灯,按一下亮一个灯,长按一秒以上连续轮流亮怎么做?
ID      EQU 30H
K1      BIT P3.3
K2      BIT P3.4
L1      BIT P2.0
L2      BIT P2.1
L3      BIT P2.2
L4      BIT P2.3
L5      BIT P2.4
L6      BIT P2.5
L7      BIT P2.6

        ORG 00H
    
START:  MOV     ID,#00H    
KK1:    JB      K1,KK2
        LCALL   DELAY20MS       ;10MS:可靠性低
        JB      K1,KK2
        INC     ID
        MOV     A,ID
        CJNE    A,#07,REL
        MOV     ID,#-1H
KK2:    JB      K2,REL
        LCALL   DELAY20MS       ;10MS:可靠性低
        JB      K2,REL
        DEC     ID
        MOV     A,ID
        CJNE    A,#-1,REL
        MOV     ID,#06H         ;07H:ERR
                                ;RET:err
REL:    JNB     K1,$
        JNB     K2,$
        LCALL   DELAY20MS       ;***
        ;JB     K1,ZJ          ;***
        ;JB     K2,REL          ;***
        
        MOV     A,ID
        CJNE    A,#00H,IS0
        ORL     P2,#01111111B   ;***
        CLR     L1              ;***
        LJMP    KK1             ;START:ERR
IS0:    CJNE    A,#01H,IS1
        ORL     P2,#01111111B   ;***
        CLR     L2              ;***
        LJMP    KK1             ;START:ERR
IS1:    CJNE    A,#02H,IS2
        ORL     P2,#01111111B   ;***
        CLR     L3              ;***
        LJMP    KK1             ;START:ERR
IS2:    CJNE    A,#03H,IS3
        ORL     P2,#01111111B   ;***
        CLR     L4              ;***
        LJMP    KK1             ;START:ERR
IS3:    CJNE    A,#04H,IS4
        ORL     P2,#01111111B   ;***
        CLR     L5              ;***
        LJMP    KK1             ;START:ERR
IS4:    CJNE    A,#05H,IS5
        ORL     P2,#01111111B   ;***
        CLR     L6              ;***
        LJMP    KK1             ;START:ERR
IS5:    CJNE    A,#06H,IS6
        ORL     P2,#01111111B   ;***
        CLR     L7              ;***
        LJMP    KK1             ;START:ERR
IS6:    LJMP    START
                  
;DELAY10MS:      MOV     R6,#20
DELAY20MS:      MOV     R6,#40
LOOP1:          MOV     R7,#248
                DJNZ    R7,$
                DJNZ    R6,LOOP1
                RET
                
;DELAY:          MOV     R5,#20
;LOOP2:          LCALL   DELAY10MS
;                DJNZ    R5,LOOP2
;                RET
                
END

   
 
 


发表时间:2006年12月29日20:51:51

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:89c5289c52
[下一篇帖子]:dsp板子调试dsp 板子调试时,每次设置断点之后,进行单步运行直接进入汇编模式,而不是在