专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

单片机的跑马灯简单汇编程序

作者:佚名   来源:本站原创   点击数:  更新时间:2010年06月11日   【字体:

使用取反(CPL)实现跑马灯的闪烁,随后给P0口赋值实现移动。

  注;使用的是12MHZ频率,

 

    ORG 0000H 

    LJMP LOOP1 

    ORG 0030H 

    LOOP1: MOV A,#11111111B 
	 clr p1.4  ;打开使能

    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 ;延时子程序部分 

    F3: MOV R6,#0FFH ;BCD码为255 

    F2: MOV R7,#0FFH ;总延时为0.7803s 

    F1: DJNZ R7,F1 

    DJNZ R6,F2 

    DJNZ R5,F3 

    RET 

    END 

  带C循环做移动,使用一条跳转转移指令就可实现一直循环下去,延时为1.3s!

 

    ORG 0000H 

    SJMP BEGAIN 

    ORG 0030H 

    BEGAIN: MOV P0, #0FFH ;初始状态 
    
    clr  p1.4 ;打开led使能
	 mov  P2,  #00110101B ; 锁存2个74hc573,防止数码管点阵干扰.

    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

  ——梦回清河

关闭窗口

相关文章