/* #include <reg52.h> #define uint unsigned int #define uchar unsigned char void delayn50ms(uint n) { uint i,j; for(i=0;i<n;i++) for(j=0;j<=10000;j++); } main() { uchar x,y; while(1) { x=0xfe; for(y=0;y<8;y++) { P2=x; x=x<<1|0x01; delayn50ms(5); } P2=0x00; } } */ //程序名:LLL22_4.C //程序功能:流水灯控制左移 右移 //============================================================== #include<reg51.h>//头文件 L_M(); //流水灯左移控制程序 R_M(); //流水灯右移控制程序 //=============================================================== main() //主函数 { while(1) //无限循环 { L_M(); //调用左移程序 R_M(); //调用右移程序 } } //========左移控制程序============================================== L_M() //左移主函数 { unsigned char i,temp,a,b; //声明无符号字符型变量A,TEMP I,B unsigned int s; //声明无符号整型变量S temp=0xfe; //左移初始值 P2=temp; //P1输出信号点亮发光管 for( s=0;s<30000;s++); //延时程序 for (i=1;i<8;i++) //发光管移动的位数 { a=temp<<i; //发光管左移I位 b=temp>>(8-i) ; //数据右移(8-I)位 P2=a|b ; //逻辑或运算,并输出到P1口 for(s=0;s<30000;s++); //延时程序 } } //================================================================ R_M() { unsigned char i,temp,a,b; //声明无符号字符型变量A,TEMP I,B unsigned int s; //声明无符号整型变量S temp=0x7f; //左移初始值 P2=temp; //P1输出信号点亮发光管 for(s=0;s<30000;s++); //延时程序 for(i=1;i<8;i++) //发光管移动的位数 { //发光管左移I位 a=temp>>i; b=temp<<(8-i); //数据右移(8-I)位 P2=a|b; //逻辑或运算,并输出到P1口 for(s=0;s<30000;s++); //延时程序 } }
归去来兮