單片機流水燈程序如下:
(1)流水燈的匯編語言實現
ORG 0000H ;程序從(cong) 0地址開始
START: MOV A,#0FEH ; ACC賦值為(wei) 11111110
LOOP: MOV P1,A ;將累加器A的值賦值給P1
RR A ; ACC的內(nei) 容右移
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);
}
}