流⽔灯花灯c语⾔程序,⽤汇编语⾔编⼋路彩灯控制系统(流⽔
灯)
1、D1~D8⼋个彩灯按规定顺序依次点亮(间隔1秒),最后全亮;
2、按规定顺序依次熄灭(间隔1秒),最后全灭;
3、⼋个灯同时点亮,保持1秒;
4、⼋个灯同时熄灭,保持0.5秒;
再将第3、4步重复4遍,最后整个程序再重复N遍。
5、让⼋个灯依次显⽰为0100 1001
问题补充:“规定顺序”就是D1,D2,D3,D4...D8
悬赏分:105 - 解决时间:2010-7-3 13:44
=================================================================
最佳答案:
;假设1:D1~D8⼋个彩灯接在P1⼝,输出低电平发光
;假设2:系统晶振为12MHz
;假设3:N = 5
;程序如下:
ORG 0000H
MOV R3, #5          ;N=5
LOOP0:
MOV A,  #0FFH
MOV P1, #0FFH        ;开始时全灭
;-------------------------------逐个点亮
MOV R2, #8
LOOP1: CLR C
RLC A
MOV P1, A
CALL DL500MS
DJNZ R2, LOOP1
;-------------------------------逐个熄灭
MOV R2, #8
LOOP2: SETB C
RLC A
MOV P1, A
CALL DL500MS
DJNZ R2, LOOP2
;-------------------------------全亮、全灭交替
MOV R2, #4
LOOP3: MOV P1, #0          ;全亮
CALL DL500MS
CALL DL500MS          ;共1s
MOV P1, #255        ;全灭
CALL DL500MS          ;0.5s
DJNZ R2, LOOP3c语言中文网汇编语言
;-------------------------------
DJNZ R3, LOOP0
MOV P1, #01001001B  ;5、显⽰为0100 1001
CALL DL500MS
CALL DL500MS          ;共1s
SJMP 0000H            ;重新开始N遍
;-------------------------------延时⼦程序
DL500MS:
MOV R5, #9      ;1T
DL1:  MOV R6, #128    ;1T
DL2:  MOV R7, #215    ;1T
NOP              ;1T
DL3:  DJNZ R7, DL3    ;2T  2 * 215 = 430 T
DJNZ R6, DL2    ;2T  [1+1+430+2] * 128 = 55552 T DJNZ R5, DL1    ;2T  [1+55552+2] * 9 = 499995 T RET              ;2T  1 + 499995 + 2 = 499998 T
;-------------------------------------
END
⽤PROTEUS仿真截图如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。