几道简单的单片机亮灯信号的编程题,谁来帮我看下我做得对不对

第一题:
设从左至右有八只发光二极管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

请各位帮我看看有没有错,改一下,或者重新写一段指令也可以,谢谢了.

1.假定L1是最高位
loop:
movc a, @A+DPTR
MOV P0, A
CALL OS1…………LCALL OS1
INC A
DJNZ R7, LOOP
AJMP START
ORG 10000H…………ORG 1000H
TABLE: DB 80H, 40H, 20H, 10H
08H, 04H, 02H, 01h
END

这样写也行
MOV A,#80H
LOOP:
MOV P0,A
LCALL OS1
RR A
DJNZ R7,LOOP
AJMP START
END

2.假定L1是最低位 ,细节修改后如下
ORG 0040H
MOV DPTR,#TABLE
START:
MOV A, #00H
MOV R7, #09H
LOOP:
MOVC A,@ A+DPTR
MOV P0 ,A
LCALL DS1
INC A
DJNZ R7, LOOP
AJMP START
ORG 1000H
TABLE:DB 01H, 03H ,07H,
0FH, 1FH ,3FH,
7FH, 0FFH ,00H
END

3.细节修改如下
LOOP:
MOVC A, @A+DPTR
MOV P0 ,A
LCALL DS1
INC A
DJNZ R7, LOOP
AJMP START
ORG 1000H
TABLE:
DB 81H ,0C3H
E7H ,0FFH
18H, 3CH
7EH, 0FFH, 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时,...

相似回答
大家正在搜