51单片机如何用C程序中的_crol_和_cror_实现流水灯来回显示?

51单片机如何用C程序中的_crol_和_cror_实现流水灯来回显示?,第1张

for(i=0i<8i++)

{

P2=(1<<i)

delay()

}

for(i=0i<8i++)

{

P2=(1<<(7-i))

delay()

}

用个移位处理就行了 set(void) { 流水灯.c * 描述 : 该程序实现LED的流水灯显示。 该程序用于学习 LED流水本例中是调用的 intrins.h 中

程序利用循环移位函数_crol_和_cror 形成来回滚动的效果 #include #include #define ... R17 220R //名称:花样流水灯 //说明:16 只LED 分两段组按预设的多种花样变换显示

这么说吧,举个例子,假如原来 b = 0xBA即二进制的(10111010),

p1=_crol_(b,1)其执行过程是这样的,

1,首先把b循环左移,结果是 01110101,即b=0x75

2,把循环后的结果送给P1口,所以,P1口的值是0x75

汇编忘记了

c的话 dat<<1

不是每秒循环左移,1代表左移1位,超出部分忽略

--------------

常用的场合:

u8 a

for( u8 i=0,j=0x01i<8i++,j<<=1 )

{

if( a&j )

{

//a的第i位为1

}

}

-----------------

运算的时候也常用到 左移一位 只要不超出范围 相当于×2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/8461248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存