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

简单流水灯的实现

作者:佚名   来源:本站原创   点击数:  更新时间:2013年01月01日   【字体:
(1)流水灯的汇编语言实现

             ORG       0000H         ;程序从0地址开始

START:      MOV      A,#0FEH        ; ACC赋值为11111110

LOOP:       MOV      P1,A           ;将累加器A的值赋值给P1                                                                                                                                                                                                                                                                             

            RR          A           ; ACC的内容右移

            CALL     DELAY       ;调用延时子程序

            LJMP     LOOP          ;跳到LOOP处执行

;延时子程序(12MHz晶振)===================

DELAY:      MOV      R7,#255      ;R7寄存器加载200次数

D1:         MOV      R6,#250      ;R6寄存器加载250次数

lp:         DJNZ     R6,lp        ;本行执行R6次,也可以用

;DJNZ     R6,$ 代替

            DJNZ     R7,D1          ;D1循环执行R7次

            RET                            ;返回主程序

            END                           ;结束程序

(2)流水灯的C语言实现

#include<reg51.h>

#include <intrins.h>

#define uint unsigned int

#define uchar unsigned char

uchar a;

void delay(uint z)//最大值65535

{

while(z--);

}

void main()

{

a=0xfe;//11111110

P1=a;//P10亮

   while(1)

   {

    a=_crol_(a,1);//11111101

P1=a;

   delay(30000);

   }

}

 
关闭窗口

相关文章