您的位置 首页 设计

c51循环移位的浅谈

如果学习单片机,最基本的考题就是流水灯了,呵呵,可是有时候一个很厉害的工程师,还真是不好弄出来,当然,我不是工程师,可是学习…

假设学习单片机,最基本的考题便是流水灯了,呵呵,但是有时分一个很厉害的工程师,还真是欠好弄出来,当然,我不是工程师,但是学习51单片机也有很长时刻了,回想起最初学习51的时分,一向都是没有自己的中心的东西,今日就谈谈c51循环移位的见地

记住假设你翻开intrins.h(51自带的一个头文件),你会发现其间有关于界说_crol_()(字符循环左移函数)(一般咱们用的多的是这个,呵呵),还有一个是_cror_()(字符循环右移函数)

但是,假设你去面试的时分,这个时分,你莫非还用它自带的循环函数么?当然不能了。真是的(有时分咱们自己小组出的笔试题便是流水灯,但是我却紧闭眉头,感觉很是懦弱。咳,今日就把源程序写出来。)这时分就要用到你的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次)。呵呵,或许还有更经典的,今后有时刻弥补上,呵呵。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/266748.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部