单片机流水灯程序如下:
(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);
}
}