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