一键多控流水灯汇编语言怎么写,软件是keil
发布网友
发布时间:2022-06-08 15:47
我来回答
共3个回答
热心网友
时间:2024-11-20 11:37
一键多空流水灯汇编语言程序编写方法是:设置一个变量,来检测按键的次数,从而控制程序分支来达到控制不同流水灯的效果例如:
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV R6,#0FEH
MOV R7,#0
LOOP:
JB P1.0,LOOP1
JNB P1.0,$
INC R7
CJNE R7,#2,LOOP1
MOV R7,#0
LOOP1: ;奇数次按键左向流水灯
MOV A,R7
JNZ LOOP2
MOV A,R6
MOV P0,A
RL A
MOV R6,A
LCALL DELAY
SJMP LOOP
LOOP2: ;偶数次按键右向流水灯
MOV A,R6
MOV P0,A
RR A
MOV R6,A
LCALL DELAY
LJMP LOOP
DELAY:
MOV R2,#200
DL1:
MOV R3,#250
DJNZ R3,$
DJNZ R2,DL1
RET
END
热心网友
时间:2024-11-20 11:37
使用按键输入时,有一个重要的步骤就是消抖。
消抖,有硬件、软件两种方法。
看楼主的电路图,并没有硬件消抖电路。
所以,必须采用软件消抖。
正确程序如下:
ORG 0000H
MOV A, #7FH
LOOP:
MOV P2, A
JB P1.0, $
MOV R6, #20 ;延时消抖
DJNZ R7, $
DJNZ R6, $ - 2
JB P1.0, LOOP ;再次确认按键按下
JNB P1.0, $ ;等待按键释放
RR A
SJMP LOOP
END
热心网友
时间:2024-11-20 11:38
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV A,#0FEH
LOOP:
JB P1.0,$
JNB P1.0,$
MOV P2,A
RL A
SJMP LOOP
END