打印

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

[复制链接]
2662|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

粉丝