流水灯程序 高额悬赏
- 提问者网友:最美的风景
- 2021-07-30 08:29
- 五星知识达人网友:长青诗
- 2021-07-30 09:17
- 1楼网友:罪歌
- 2021-07-30 10:02
哥们 我来回答吧 *******************************************************************/ #include<reg52.h> //52单片机头文件 #include <intrins.h> //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms. { //delay(500);大约延时500ms. uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void main() //主函数 { uchar a,i,j; while(1) //大循环 { for(j=0;j<1;j++) { a=0xfe; //赋初值 for(i=0;i<8;i++) //左移 { P1=a; //点亮小灯 delay(200); //延时200毫秒 a=_crol_(a,1); //将a变量循环左移一位 } a=0x7f; for(i=0;i<8;i++) //右移 { P1=a; //点亮小灯 delay(200); //延时200毫秒 a=_cror_(a,1); //将a变量循环右移一位 } } P1=0xff; //全部熄灭 for(j=0;j<6;j++) { delay(300); //延时 P1=~P1; //全部取反6次,既闪烁3次 } for(i=0;i<8;i++) //右移 {
delay(200); //延时200毫秒 P1=0xfe<<i; //点亮小灯 } for(j=0;j<3;j++) { delay(300); //延时 P1=~P1; //全部取反2次,既闪烁1次 }
delay(300); } }