标题:
请给看看这个LED逐个循环的取位问题
[打印本页]
作者:
zbwww
时间:
2017-5-24 15:22
标题:
请给看看这个LED逐个循环的取位问题
请教了,初学比着葫芦画瓢写了个6LED灯逐个循环的C程序,就是不能按6位输出循环,请给看看这个取位应该怎么写,或者用什么方法解决这个问题。谢谢了!
#include <at89x52.h>
#include <Intrins.h>
unsigned char code tab[6]={0x01,0x02,0x04,0x08,0x10,0x20,};
unsigned char con;
unsigned int conss;
void main()
{
while(1)
{
if(++conss>55500)
{
conss=0;
con++;
con&=0x07; //现在是p2口8位循环,这个位怎么取才能使低6位LED循环?
P2=tab[con];
}
}
}
作者:
yzwzfyz
时间:
2017-5-24 17:58
软件可以,硬件呢?
作者:
zbwww
时间:
2017-5-24 19:23
请给看看问题在哪
作者:
ahshmj
时间:
2017-5-24 20:35
将这里改一下即可:
//unsigned char code tab[6]={0x01,0x02,0x04,0x08,0x10,0x20,}; //原来的语句
unsigned char code tab[6]={0x80,0x40,0x20,0x10,0x08,0x04,}; //改后的语句
如果将数组的顺序倒过来,就会反向
作者:
ahshmj
时间:
2017-5-24 20:42
噢!忘了,你本来就是低6位循环,我给改的是变成高6位循环。8位循环更简单一些。
作者:
zbwww
时间:
2017-5-25 09:20
奋战一夜,终于完美解决。其实很简单,只是我不熟悉C,经高人指点,把取位&换成if,大功告成。谢谢大家的关注与帮助。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1