有八盞燈,全亮,每隔五秒滅一盞
希望有大俠幫忙解決一下
頂一下,希望版主能看到幫忙解決一下
ORG 0000H
CLR P1.4
START: MOV A,#0H ;全部點(diǎn)亮
MOV P0,A
LCALL DEL_5S
MOV A,#00000001B ;滅一盞燈
MOV P0,A
LCALL DEL_5S
MOV A,#00000011B ;滅兩盞燈
MOV P0,A
LCALL DEL_5S
MOV A,#00000111B ;滅三盞燈
MOV P0,A
LCALL DEL_5S
MOV A,#00001111B ;滅四盞燈
MOV P0,A
LCALL DEL_5S
MOV A,#00011111B ;滅五盞燈
MOV P0,A
LCALL DEL_5S
MOV A,#00111111B ;滅六盞燈
MOV P0,A
LCALL DEL_5S
MOV A,#01111111B ;滅七盞燈
MOV P0,A
LCALL DEL_5S
MOV A,#11111111B ;滅八盞燈
MOV P0,A
LCALL DEL_5S
SJMP START ;循環(huán)
;-----------------------------------------------------------------
ORG 1000H ;5秒延時(shí)程序
DEL_5S: MOV TMOD,#10H ;定時(shí)器1、方式1、定時(shí)狀態(tài)
MOV TL1,#0B0H
MOV TH1,#3CH ;送50ms定時(shí)初值
MOV R2,#0AH ;設(shè)置軟件計(jì)數(shù)器,使10*5ms=0.5s
MOV R3,#0AH ;設(shè)置軟件計(jì)數(shù)器,使10*0.5s=5s
SETB TR1 ;啟動(dòng)定時(shí)器1
LOOP: JNB TF1,$ ;判斷基時(shí)是否到
MOV TL1,#0B0H
MOV TH1,#3CH ;再賦初值
CLR TF1 ;清溢出標(biāo)志
DJNZ R2,LOOP ;判斷0.5s是否到
MOV R2,#0AH
DJNZ R3,LOOP ;判斷5s是否到
CLR TR1 ;關(guān)閉定時(shí)器1
RET ;定時(shí)結(jié)束
此程序根據(jù)51hei電路板線路編成,僅供參考
ORG 0000H
CLR P1.4
MOV R4,#00H
START: MOV A,#0H ;全部點(diǎn)亮
MOV P0,A
LCALL DEL_5S
MOV DPTR,#TAB
LOOP1: MOV A,R4
MOVC A,@A+DPTR
MOV P0,A
LCALL DEL_5S
INC R4 ;滅n盞
CJNE R4,#8H,LOOP1
MOV R4,#0H
SJMP START ;循環(huán)
;-----------------------------------------------------------------
ORG 1000H ;5秒延時(shí)程序
DEL_5S: MOV TMOD,#10H ;定時(shí)器1、方式1、定時(shí)狀態(tài)
MOV TL1,#0B0H
MOV TH1,#3CH ;送50ms定時(shí)初值
MOV R2,#0AH ;設(shè)置軟件計(jì)數(shù)器,使10*5ms=0.5s
MOV R3,#0AH ;設(shè)置軟件計(jì)數(shù)器,使10*0.5s=5s
SETB TR1 ;啟動(dòng)定時(shí)器1
LOOP: JNB TF1,$ ;判斷基時(shí)是否到
MOV TL1,#0B0H
MOV TH1,#3CH ;再賦初值
CLR TF1 ;清溢出標(biāo)志
DJNZ R2,LOOP ;判斷0.5s是否到
MOV R2,#0AH
DJNZ R3,LOOP ;判斷5s是否到
CLR TR1 ;關(guān)閉定時(shí)器1
RET ;定時(shí)結(jié)束
;---------------------------------------------------------------
TAB: DB 01H,03H,07H,0FH
DB 1FH,3FH,7FH,0FFH
這個(gè)看起簡(jiǎn)潔些
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |