專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)的跑馬燈簡(jiǎn)單匯編程序

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2010年06月11日   【字體:

使用取反(CPL)實(shí)現(xiàn)跑馬燈的閃爍,隨后給P0口賦值實(shí)現(xiàn)移動(dòng)。

  注;使用的是12MHZ頻率,

 

    ORG 0000H 

    LJMP LOOP1 

    ORG 0030H 

    LOOP1: MOV A,#11111111B 
	 clr p1.4  ;打開(kāi)使能

    MOV R1,#5 ;閃爍5次 

    LOOP: CPL A ;取反 

    MOV P0 , A ;輸出 

    ACALL DEL 

    CPL A 

    MOV P0 , A 

    ACALL DEL 

    DJNZ R1 , LOOP ;減一非零判斷 

    MOV P0,#11100111B 

    ACALL DEL 

    MOV P0,#11011011B 

    ACALL DEL 

    MOV P0,#10111101B 

    ACALL DEL 

    MOV P0,#01111110B 

    ACALL DEL 

    LJMP LOOP1 

    LOOP3: ACALL DEL 

    SJMP LOOP1 

    DEL: MOV R5,#6H ;延時(shí)子程序部分 

    F3: MOV R6,#0FFH ;BCD碼為255 

    F2: MOV R7,#0FFH ;總延時(shí)為0.7803s 

    F1: DJNZ R7,F1 

    DJNZ R6,F2 

    DJNZ R5,F3 

    RET 

    END 

  帶C循環(huán)做移動(dòng),使用一條跳轉(zhuǎn)轉(zhuǎn)移指令就可實(shí)現(xiàn)一直循環(huán)下去,延時(shí)為1.3s!

 

    ORG 0000H 

    SJMP BEGAIN 

    ORG 0030H 

    BEGAIN: MOV P0, #0FFH ;初始狀態(tài) 
    
    clr  p1.4 ;打開(kāi)led使能
	 mov  P2,  #00110101B ; 鎖存2個(gè)74hc573,防止數(shù)碼管點(diǎn)陣干擾.

    MAIN : CLR A 

    MOV A ,#11111110B ; 0FEH 

    LOOP: RLC A 

    MOV P0 , A 

    ACALL DEL 

    LJMP LOOP 

    DEL: MOV R5,#10H 

    F3: MOV R6,#0FFH 

    F2: MOV R7,#0FFH 

    F1: DJNZ R7,F1 

    DJNZ R6,F2 

    DJNZ R5,F3 

    RET 

    END 


  ——2010-6-11

  ——夢(mèng)回清河

關(guān)閉窗口

相關(guān)文章