(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); } }