立即注冊(cè) 登錄
返回首頁(yè)

uid:65574的個(gè)人空間

日志

流水燈左蹦右跳匯編語(yǔ)言程序

已有 715 次閱讀2014-8-30 20:10

;******************************************************************************
;*  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
 
 

路過(guò)

雞蛋

鮮花

握手

雷人

全部作者的其他最新日志

評(píng)論 (0 個(gè)評(píng)論)

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

返回頂部