标题:
新人请教一个51单片机动态闪烁问题
[打印本页]
作者:
东窗西望两茫然
时间:
2017-10-25 12:57
标题:
新人请教一个51单片机动态闪烁问题
学习版上用的是锁存器,主函数如下
第一个数码管闪烁很厉害,我把按键延迟调低很好些,但是这样按键一按就是好几个数,按键延时调高,按键上是好了很多但是第一个数码管可以非常慢的速度闪烁。感觉就是从上到下的执行时间太长了。。。。。主程序里我还加了储存,无视好了
void main()
{
while(1)
{
unsigned char buf[2];
E2Read(buf, 0x80, 2);
ge = buf[0];
shi = buf[1];
if ( ge>9 )
{ ge=0; }
if ( shi>9 )
{ shi=0; }
wei=1;
P0=0xfe;
wei=0;
duan=1;
P0=LedChar[shi];
Delay(10);
duan=0;
wei=1;
P0=0xfd;
wei=0;
duan=1;
P0=LedChar[ge];
Delay(10);
duan=0;
if(k1==1)
{
Delay(15);
if(k1==1)
{
ge++;
if(ge>9)
{
ge=0;
shi++;
if(shi>9)
{
shi=0;
}
}
}
buf[0] = ge;
buf[1] = shi;
E2Write(buf, 0x80, 2);
}
if(k2==1)
{
Delay(15);
if(k2==1)
{
ge--;
if(ge<0)
{
ge=9;
shi--;
if(shi<0)
{
shi=9;
}
}
}
buf[0] = ge;
buf[1] = shi;
E2Write(buf, 0x80, 2);
}
}
}
作者:
jden
时间:
2017-10-25 13:54
通过位选信号控制8段数码管,用switch函数实现。
作者:
jden
时间:
2017-10-25 13:57
通过位选信号信号控制8段数码管显示,使用switch函数实现,另外,各种参数取名太草率了吧!!!
作者:
东窗西望两茫然
时间:
2017-10-25 17:25
jden 发表于 2017-10-25 13:57
通过位选信号信号控制8段数码管显示,使用switch函数实现,另外,各种参数取名太草率了吧!!!
改成这个样子,原来一个 闪,现在两个闪,很有规律的一亮一灭、、、、、
switch(i)
{
case 0 : wei=1;P0=0xfe;wei=0;duan=1;P0=LedChar[shi];duan=0;i=1;break;
case 1 : wei=1;P0=0xfd;wei=0;duan=1;P0=LedChar[ge];duan=0;i=0;break;
default: break;
}
作者:
东窗西望两茫然
时间:
2017-10-25 18:52
jden 发表于 2017-10-25 13:57
通过位选信号信号控制8段数码管显示,使用switch函数实现,另外,各种参数取名太草率了吧!!!
改成这样不行呀
switch(i)
{
case 0 : wei=1;P0=0xfe;wei=0;duan=1;P0=LedChar[shi];duan=0;i=1;break;
case 1 : wei=1;P0=0xfd;wei=0;duan=1;P0=LedChar[ge];duan=0;i=0;break;
default: break;
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1