1、D1~D8八个彩灯按规则次序顺次点亮(距离1秒),最终全亮;
2、按规则次序顺次平息(距离1秒),最终全灭;
3、八个灯一起点亮,坚持1秒;
4、八个灯一起平息,坚持0.5秒;
再将第3、4步重复4遍,最终整个程序再重复N遍。
5、让八个灯顺次显现为0100 1001
问题弥补:“规则次序”便是D1,D2,D3,D4…D8
=================================================================
最佳答案:
;假定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, LOOP3
;——————————-
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
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/259077.html