12864显示屏运行while函数是为什么总是闪烁。
时间:10-02
整理:3721RD
点击:
主程序:
void main(void)
{
uint i,a,k1,k2,k3,b,c,d,e,f;a=0;b=0;c=0;d=0;e=0;f=0;
port_init();
Lcd_inital();
LcdWriteString(0,0,tab1);
LcdWriteString(5,0,tab5);
LcdWriteString(0,1,tab2);
LcdWriteString(5,1,tab5);
LcdWriteString(0,2,tab3);
LcdWriteString(5,2,tab5);
while(1)
{
if((PINB&(1<<1))!=0)
{
if((PINB&(1<<2))!=0)
{
if((PINC&(1<<PC7))==0)
{
b++;
if(b>9)
{
b=0;
a++;
}
}
delay(5);
if((PINC&(1<<PC6))==0)
{
b--;
if(b<1)
{
b=9;a--;
}
}
}
}
delay(5);
if((PINB&(1<<1))==0)
{
if((PINC&(1<<PC7))==0)
{
c++;
if(c>9)
{
c=0;
d++;
}
}
delay(5);
if((PINC&(1<<PC6))==0)
{
c--;
if(c<1)
{
c=9;d--;
}
}
}
delay(5);
if((PINB&(1<<2))==0)
{
if((PINC&(1<<PC7))==0)
{
e++;
if(e>9)
{
e=0;
f++;
}
}
delay(5);
if((PINC&(1<<PC6))==0)
{
e--;
if(e<1)
{
e=9;f--;
}
}
}
delay(5);
WriteCommandLCM(0X83);
for(i=7;i<9;i++)
{
tab1[7]=d+0x30;
tab1[8]=c+0x30;
WriteDataLCM(tab2[i]);
}
delay(5);
WriteCommandLCM(0X93);
for(i=7;i<9;i++)
{
tab2[7]=a+0x30;
tab2[8]=b+0x30;
WriteDataLCM(tab1[i]);
}
delay(5);
WriteCommandLCM(0X8B);
for(i=7;i<9;i++)
{
tab3[7]=f+0x30;
tab3[8]=e+0x30;
WriteDataLCM(tab3[i]);
}
k2=a*10+b;
k1=d*10+c;
k3=f*10+e;
delay(5);
PORTD&=~TC;
delay(k2);
PORTD|=TC;
delay(5);
PORTB&=~(1<<4);
delay(k1);
PORTB|=(1<<4);
delay(5);
PORTD&=~(1<<2);
delay(k3);
PORTD|=(1<<2);
}
}
void main(void)
{
uint i,a,k1,k2,k3,b,c,d,e,f;a=0;b=0;c=0;d=0;e=0;f=0;
port_init();
Lcd_inital();
LcdWriteString(0,0,tab1);
LcdWriteString(5,0,tab5);
LcdWriteString(0,1,tab2);
LcdWriteString(5,1,tab5);
LcdWriteString(0,2,tab3);
LcdWriteString(5,2,tab5);
while(1)
{
if((PINB&(1<<1))!=0)
{
if((PINB&(1<<2))!=0)
{
if((PINC&(1<<PC7))==0)
{
b++;
if(b>9)
{
b=0;
a++;
}
}
delay(5);
if((PINC&(1<<PC6))==0)
{
b--;
if(b<1)
{
b=9;a--;
}
}
}
}
delay(5);
if((PINB&(1<<1))==0)
{
if((PINC&(1<<PC7))==0)
{
c++;
if(c>9)
{
c=0;
d++;
}
}
delay(5);
if((PINC&(1<<PC6))==0)
{
c--;
if(c<1)
{
c=9;d--;
}
}
}
delay(5);
if((PINB&(1<<2))==0)
{
if((PINC&(1<<PC7))==0)
{
e++;
if(e>9)
{
e=0;
f++;
}
}
delay(5);
if((PINC&(1<<PC6))==0)
{
e--;
if(e<1)
{
e=9;f--;
}
}
}
delay(5);
WriteCommandLCM(0X83);
for(i=7;i<9;i++)
{
tab1[7]=d+0x30;
tab1[8]=c+0x30;
WriteDataLCM(tab2[i]);
}
delay(5);
WriteCommandLCM(0X93);
for(i=7;i<9;i++)
{
tab2[7]=a+0x30;
tab2[8]=b+0x30;
WriteDataLCM(tab1[i]);
}
delay(5);
WriteCommandLCM(0X8B);
for(i=7;i<9;i++)
{
tab3[7]=f+0x30;
tab3[8]=e+0x30;
WriteDataLCM(tab3[i]);
}
k2=a*10+b;
k1=d*10+c;
k3=f*10+e;
delay(5);
PORTD&=~TC;
delay(k2);
PORTD|=TC;
delay(5);
PORTB&=~(1<<4);
delay(k1);
PORTB|=(1<<4);
delay(5);
PORTD&=~(1<<2);
delay(k3);
PORTD|=(1<<2);
}
}
闪烁是什么意思,背光闪,字闪,还是字不清楚闪
背光闪。如果不执行while函数就不闪了,你看我的程序有问题没有。
电源供电不稳定的原因