1、D1~D8八個(gè)彩燈按規(guī)定順序依次點(diǎn)亮(間隔1秒),最后全亮;2、按規(guī)定順序依次熄滅(間隔1秒),最后全滅;
3、八個(gè)燈同時(shí)點(diǎn)亮,保持1秒;
4、八個(gè)燈同時(shí)熄滅,保持0.5秒;
再將第3、4步重復(fù)4遍,最后整個(gè)程序再重復(fù)N遍。
5、讓八個(gè)燈依次顯示為0100 1001
本文引用地址:
http://butianyuan.cn/article/201611/321251.htm問題補(bǔ)充:“規(guī)定順序”就是D1,D2,D3,D4...D8
=================================================================
最佳答案:
;假設(shè)1:D1~D8八個(gè)彩燈接在P1口,輸出低電平發(fā)光
;假設(shè)2:系統(tǒng)晶振為12MHz
;假設(shè)3:N = 5
;程序如下:
ORG 0000H
MOV R3, #5 ;N=5
LOOP0:
MOV A, #0FFH
MOV P1, #0FFH ;開始時(shí)全滅
;-------------------------------逐個(gè)點(diǎn)亮
MOV R2, #8
LOOP1: CLR C
RLC A
MOV P1, A
CALL DL500MS
DJNZ R2, LOOP1
;-------------------------------逐個(gè)熄滅
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遍
;-------------------------------延時(shí)子程序
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
評論