void main()
{
uint xx=0,yy=0;
lcd_init(); //初始化LCD
// xianshi();
while(1)
{
hc165pl=1; //165移位负跳变
xx=w165();
yy=w165();
hc165pl=0;
xianshi();
if(xx==0xfe)
{
whc595_dat(0xbf); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(xx==0xfd)
{
whc595_dat(0xdf); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(xx==0xfb)
{
whc595_dat(0xef); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(xx==0xf7)
{
whc595_dat(0xf7); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(xx==0xef)
{
whc595_dat(0xfb); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(xx==0xdf)
{
whc595_dat(0xfd); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(xx==0xbf)
{
whc595_dat(0xfe); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(yy==0xfe)
{
whc595_dat(0x9f); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(yy==0xfd)
{
whc595_dat(0xe7); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(yy==0xfb)
{
whc595_dat(0xf9); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
if(yy==0xf7)
{
whc595_dat(0xbe); //也就是单片机的扩展
hc595st=0; //595锁存端(12脚
// delay(1);
hc595st=1;
}
/*else
{
whc595_dat(0xff);
hc595st=0;
hc595st=1;
} */
}
}
上面的程序今天又试了一天,发现:如果加上else语句,那么除了在else上面的if语句体作用(如果条件成立),其他的if语句(如果条件成立)只是闪烁一下。
是什么原因?
请指教。
谢谢。 |