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
#include
#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);
}
}