原理图:
单片机源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- unsignedchar temp; //定义字符变量temp,temp左移或右移并给连接LED的P1口赋值
- inta; //定义延迟函数delay()
- voiddelay(void);
- voidmain()
- {
- temp=0xfe; //给temp赋初值
- P1=temp; //temp赋值给P1口,第一个LED(红色)点亮
- while(1) //主程序,括号中的程序将一直循环
- {
- for(a=0;a<7;a++) //左移部分,LED从左到右依次点亮
- {
- temp=_crol_(temp,1); //_crol_语句控制变量temp左移
- delay(); //每个灯点亮之后延迟一会在点下一个灯
- P1=temp;
- }
- for(a=0;a<7;a++) //右移部分,LED从右到左依次点亮
- {
- temp=_cror_(temp,1); //第8个灯点亮后开始右移程序,LED从右向左点亮
- delay();
- P1=temp;
- }
- }
- }
- voiddelay() //延时子程序
- {
- int i,j; //定义局部变量i,j
- for(i=200;i>0;i--) //i,j不断计数占用CPU时间,达到延时目的
- for(j=1;j<150;j++);
- }
复制代码
|