高手们!帮帮忙看看我的单片机跑马灯程序哪出问题了!!!!

2025-02-26 07:10:56
推荐回答(2个)
回答1:

我们要用到2X5的独立键盘控制的,可是我是新手不懂 能给我一个程序不??
呵呵,下面就是程序,你试试看就知道了。
;--------------------------

你的程序,有三种流水灯的模式,就是按键功能,检测不出来。
电路图,不清楚,看个大概。
现在是:K1、K2分别按下,各显示一种模式,
两个键盘都不按,显示第三种模式。
你原来只是在起动的时候,按键才管用,要想更换模式,必须重新起动。
现在增加了三行:“LJMP START ;本行可删除”,就可以在运行期间,更换模式。.

ORG 0000H
START:
MOV P1, #255
CLR P1.6

MOV P2, #0
SETB P2.1
SETB P2.3

JNB P1.0, LOOPB
JNB P1.1, LOOPC

MOV A,#01H
LOOPA:MOV R0,#7
LOOPAL:
MOV P0, A
RL A
LCALL DELAY
DJNZ R0, LOOPAL

MOV R0,#7
LOOPAR:
MOV P0, A
RR A
LCALL DELAY
DJNZ R0, LOOPAR

LJMP START ;本行可删除.

LJMP LOOPA

LOOPB:MOV A,#03H
LOOPBL:
MOV P0,A
RL A
LCALL DELAY
JNB ACC.7, LOOPBL
LOOPBR:
MOV P0, A
RR A
LCALL DELAY
JNB ACC.0,LOOPBR

LJMP START ;本行可删除.

LJMP LOOPB

LOOPC:MOV R0,#3
MOV A,#01H
LOOPCL:
MOV P0, A
RL A
RL A
LCALL DELAY
DJNZ R0,LOOPCL

MOV R0, #3
RL A
LOOPCR:
MOV P0, A
RR A
RR A
LCALL DELAY
DJNZ R0, LOOPCR

LJMP START ;本行可删除.

LJMP LOOPC

DELAY:MOV R4,#2
L3:MOV R2,#250
L1:MOV R3,#250
L2:DJNZ R3,L2
DJNZ R2,L1
DJNZ R4,L3
RET

END
本程序在PROTEUS中仿真调试通过。

回答2:

三个效果,需要2个开关,共00,01,10,11四个状态中的3个状态。。。

这个很好编阿。。。就是一个判断,加分支