;******************************************************************************
;* title: display
;* file: display.asm
;* date: 2014年8月30日
;* verison: 1.0
;* author: eking
;* email:
success20120116@sina.cn;******************************************************************************
;* 描述:
;* LIGHT
;******************************************************************************
ORG 0000H ;復(fù)位程序起始地址
LJMP START ;跳至START執(zhí)行
ORG 0030H ;程序開(kāi)始存放位置
START:
MOV R4, #3H ;設(shè)置大循環(huán)掃描3遍
STAR1:
MOV R3, #8H ;設(shè)置流水燈位數(shù)為8位
MOV P1, #11111110B ;從P1.0開(kāi)始掃描
LOOP:
LCALL D01S ;調(diào)用0.1s延時(shí)子程序
MOV A, P1 ;讀取P1當(dāng)前數(shù)據(jù)到ACC
RL A ;左移一位
MOV P1, A ;將左移的數(shù)據(jù)再送到P1
DJNZ R3, LOOP ;8位未掃描完,繼續(xù)
MOV P1, #0FFH ;8位都掃描完,熄滅所有燈
MOV R3, #08H ;設(shè)置流水燈位數(shù)為8位
MOV P1, #01111111B ;從P1.7開(kāi)始掃描
LOOP1:
ACALL D01S ;調(diào)用0.1s延時(shí)子程序
MOV A, P1 ;讀取P1當(dāng)前數(shù)據(jù)到ACC
RR A ;右移一位
MOV P1,A ;將右移的數(shù)據(jù)再送到P1
DJNZ R3,LOOP1 ;8位未掃描完,繼續(xù)
DJNZ R4,STAR1 ;3遍未到,繼續(xù)重新開(kāi)始亮燈左右掃描
MOV R3, #3 ;設(shè)置全亮全暗掃描模式次數(shù)為3次
QLQA:
MOV P1, #0FFH ;熄滅所有燈
LCALL D01S ;調(diào)用0.1s延時(shí)子程序
MOV P1, #00H ;點(diǎn)亮所有燈
LCALL D01S ;調(diào)用0.1s延時(shí)子程序
DJNZ R3,QLQA ;全亮全暗掃描3次未到,繼續(xù)
;3遍到,準(zhǔn)備改變?yōu)榘禑魭呙枘J?/div>
MOV R4, #3 ;設(shè)置暗燈掃描模式次數(shù)為3次
ADSM:
MOV R3, #8 ;設(shè)置流水燈位數(shù)為8位
MOV P1, #00000001B ;從P1.0開(kāi)始掃描
LOOP2:
LCALL D01S ;調(diào)用0.1s延時(shí)子程序
MOV A, P1 ;讀取P1當(dāng)前數(shù)據(jù)到ACC
RL A ;左移一位
MOV P1, A ;將左移的數(shù)據(jù)再送到P1
DJNZ R3, LOOP2 ;8位未掃描完,繼續(xù)
MOV P1, #00H ;8位都掃描完,點(diǎn)亮所有燈
;準(zhǔn)備右移
MOV R3, #08H ;設(shè)置流水位數(shù)為8位
MOV P1, #10000000B ;從P1.7開(kāi)始掃描
LOOP3:
ACALL D01S ;調(diào)用0.1s延時(shí)子程序
MOV A, P1 ;讀取P1當(dāng)前數(shù)據(jù)到ACC
RR A ;右移一位
MOV P1,A ;將右移的數(shù)據(jù)再送到P1
DJNZ R3,LOOP3 ;8位未掃描完,繼續(xù)
DJNZ R4,ADSM ;3遍未到,繼續(xù)重新開(kāi)始暗燈左右掃描
LJMP START ;重新開(kāi)始循環(huán)
D01S:
MOV R7,#50
DL1:
MOV R6,#20
DL2:
MOV R5,#248
DJNZ R5,$
DJNZ R6,DL2
DJNZ R7,DL1
RET
END