c51循环移位的浅谈
时间:11-18
来源:互联网
点击:
如果学习单片机,最基本的考题就是流水灯了,呵呵,可是有时候一个很厉害的工程师,还真是不好弄出来,当然,我不是工程师,可是学习51单片机也有很长时间了,回想起当初学习51的时候,一直都是没有自己的核心的东西,今天就谈谈c51循环移位的见解
记得如果你打开intri
可是,如果你去面试的时候,这个时候,你难道还用它自带的循环函数么?当然不能了。真是的(有时候我们自己小组出的笔试题就是流水灯,可是我却紧锁眉头,感觉很是窝囊。咳,今天就把源程序写出来。)这时候就要用到你的c语言知识了,呵呵。
假如说是共阴极数码管的话:
程序可以这样(只写主要算法):
while(1)
{
temp=0x01;
P1=temp;
delay(100); //延时100ms
for(i=1;i<8;i++)
{
temp=temp<1;
P1=temp;
delay(100);
}
}
可是假如是共阳极流水灯的话,就得写成这样,更好些:
while(1)
{
temp=0xfe;
P1=temp;
delay(100);
for(i=1;i<8;i++)
{
P1=(temp>(8-i);
delay(100);
}
}
看到没有,其中核心的一条语句就是 temp=temp<1;P1=temp;和P1=(temp>(8-i);,其实第一个可以用第二个代替,不过对于共阴极的太过简单,直接写出来就行了,可是对于共阳极的话,就得思考思考了,先左移,然后和右移的数进行相或,这是相当经典的(8次)。呵呵,可能还有更经典的,以后有时间补充上,呵呵。
c51循环移 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)