第一题:
设从左至右有八只发光二极管L1至L8,亮灯时间间隔为1s.
亮灯次序如下:
1:L1
2:L2
3:L3
4:L4
5:L5
6:L6
7:L7
8:L8
9:循环1-8
不知道看不看得懂.也就是从左至右的循环亮灯.指令在下面看看对不对.
loop:movc a, @A+DPTR
MOV P0, A
CALL OS1
INC A
DJNZ R7, LOOP
AJMP START
ORG 10000H
TABLE: DB 80H, 40H, 20H, 10H
08H, 04H, 02H, 01G
END
第二题:
亮灯时间间隔和上面一样是1s,也是8个发光二极管L1-L8
次序如下:
1:L8
2:L7,L8
3:L6,L7,L8
4:L5,L6,L7,L8
5:L4,L5,L6,L7,L8
6:L3,L4,L5,L6,L7,L8
7:L2,L3,L4,L5,L6,L7,L8
8:L1,L2,L3,L4,L5,L6,L7,L8
9:全部熄灭
10:循环1-9
指令如下:
ORG 0040H
MOV,DPTR,#TABLE
START:MOV A, #00H
MOV R7, #09H
LOOP:MOVC A@ A+DPTR
MOV P0 A
CALL DS1
INC A
DJNZ R7, LOOP
AJMP START
ORG 10000H
TABLE:DB 01H, 03H
07H, 0FH, 1FH
3FH, 7FH, FFH
END
第三题:
其他条件和上面的还是一样
次序如下:
1:L1,L8
2:L1,L2,L7,L8
3:L1,L2,L3,L6,L7,L8
4:L1,L2,L3,L4,L5,L6,L7,L8
5:L4,L5
6:L3,L4,L5,L6
7:L2,L3,L4,L5,L6,L7
8:L1,L2,L3,L4,L5,L6,L7,L8
9:全部熄灭
10:循环1-9
指令如下:
LOOP:MOVC A @A+DPTR
MOV P0 A
CALL DS1
INC A
DJNZ, R7, LOOP
AJMP START
ORG 10000G
TABLE: DB 81H C3H
E7H ,FFH
18H, 30H
7EH, FFH, 00H
END
请各位帮我看看有没有错,改一下,或者重新写一段指令也可以,谢谢了.
51单片机汇编语言的led亮灯编程题求解,必采纳?
LED1 BIT P3.7 ; 程序没有改动,为了配合仿真图只改了端口。KEY1 BIT P3.2 LJMP MAIN ORG 0030H MOV R1,#1 ; 亮灯个数 MAIN: MOV P1,#0FFH CHECK: JB KEY1,CHECK MOV P1,#11111111B MOV R2,#8 LOOP: INC R1 ; 每次亮灯个数r1+1 MOV A,P1 CLR C RRC A MOV P1,A ;...
单片机编程题
定时器在12MHz的时钟时,每个机器周期(1us)+1,工作模式1时(16位模式)最大计数值为65536,所以定时时间最大在65.536ms,达不到500ms的要求!你可以设置50ms定时中断一次,在中断程序中计数够10次,让灯循环一次即可。1、计算计数初值X:由于晶振为12 MHz,所以机器周期Tcy为50 ms。所以:X=6...
用中断方法来控制流水灯的,,,教教我 是8个LED低电平灯亮接P2口,开始...
3)开始时,显示第一种方式:向P2口写入a=01111111,延时0.5S,a 循环右移一位,再延时0.5S,如此反复。4)当收到XO按钮信号后,向P2口写入a=01111111,延时1.5S,a 循环右移二位,再延时1.5S,如此反复。5)当收到X1按钮信号后,向P2口写入a=10111111,延时1S,a 带进位右移二位,再延时1.5S,如此反复。当Cy=0时,...