51单片机C程序实验LED灯:[3]来回点亮
1、画proteus电路图,给出元件清单:
51单片机
电容
瓷片电容(也可用普通电容)
晶振
红色二极管
电阻
![51单片机C程序实验LED灯:[3]来回点亮](https://exp-picture.cdn.bcebos.com/7c84d1672b5fd546f601c5a77fd0b503c9d2242f.jpg)
2、如图所示为仿真电路图(与上节相同)
![51单片机C程序实验LED灯:[3]来回点亮](https://exp-picture.cdn.bcebos.com/b57fb6db574afa329004514454b2dc19cf2c142f.jpg)
1、说明:本例类似于上例,只不过做了一个变换循环,所以依旧有两种写法。在下面步骤分别给出。
第一种是入门级别比较基础的写法
利用“>>”循环
第二种是稍微高级一些的写法,调用了其他头文件
利用了一个intrins.h文件下的右循环语句”P0=_cror_(P0,1); “另也有左循环_crol_(),括号里面是要循环移位的值。
2、【第一种】
#include<reg51.h>
void delay()
{
int i;
for(i=0;i<=30000;i++);
}
void main()
{
while(1)
{
int m,i;
m=0x80;
for(i=0;i<=6;i++)
{
P0=~m;
m=m>>1;
delay();
}
for(i=0;i<=6;i++)
{
P0=~m;
m=m<<1;
delay();
}
}
}
![51单片机C程序实验LED灯:[3]来回点亮](https://exp-picture.cdn.bcebos.com/a1780d1fceecd3d966ed8f77679959430501082f.jpg)
3、【第二种】
#include<reg51.h>
#include<intrins.h>
void delay()
{
int i;
for(i=0;i<=30000;i++);
}
void main()
{
char i;
P0=0xfe;
for(i=0;i<=6;i++)
{
P0=_crol_(P0,1); //P2 的值向左循环移动
delay();
}
for(i=0;i<=6;i++)
{
P0=_cror_(P0,1);
delay();
}
}
![51单片机C程序实验LED灯:[3]来回点亮](https://exp-picture.cdn.bcebos.com/059057299a883913f37d915d26bcbe2f46707c2f.jpg)
1、图片为静止,所以看看相似度
![51单片机C程序实验LED灯:[3]来回点亮](https://exp-picture.cdn.bcebos.com/bf6e59704618dfdac6a3463589214f579256772f.jpg)
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:97
阅读量:150
阅读量:127
阅读量:124
阅读量:155