请大家帮忙分析:74hc165级联的“怪现象”

[复制链接]
3420|3
 楼主| yuanquan12345 发表于 2011-2-23 15:19 | 显示全部楼层 |阅读模式
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语句(如果条件成立)只是闪烁一下。
是什么原因?
请指教。
谢谢。
 楼主| yuanquan12345 发表于 2011-2-23 15:25 | 显示全部楼层
当将else注释掉,第二片165也正常了,但是,if语句自己保持,当条件不成立时也输出。好像程序运行到此就停了。
 楼主| yuanquan12345 发表于 2011-2-23 15:28 | 显示全部楼层
要想让其释放,必须另一个if成立。
 楼主| yuanquan12345 发表于 2011-2-23 15:59 | 显示全部楼层
在每个if后面加了个else嵌套正常了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1155

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部