按键松手检测,加了那句话电压一直为低。。。求解

[复制链接]
 楼主| mage心寒 发表于 2011-12-22 15:45 | 显示全部楼层 |阅读模式
如题。。待会贴代码
 楼主| mage心寒 发表于 2011-12-22 15:46 | 显示全部楼层
void Key_Test(void)                          //测试
{
//  uchar testnum=0;
  IO2CLR|=ENABLE2;
  CLR_CLK1;
  Write4094(0xf0,LedTable[testnum],LedTable[testnum],0x00);
  delay_us(10);
  SET_CLK1;
  if((IO0PIN&S4)==0)
    {
      delay_ms(10);
      if((IO0PIN&S4)==0)
      {
         while(!(IO0PIN&S4));
         testnum++;
         if(testnum==16)testnum=0;
      }  
    }
}
代码
 楼主| mage心寒 发表于 2011-12-22 15:48 | 显示全部楼层
问题是我加了 while(!(IO0PIN&S4));这句话以后从574出来的电压都是低电平,如果屏蔽掉完全正常,按键显示都没问题。。求解。。
 楼主| mage心寒 发表于 2011-12-22 16:03 | 显示全部楼层
顺便问下74HC574可以直通吗,74HC573可以,不知道574可以不??就是CP接高电平,oe接低电平,输出随输入变化而变化
 楼主| mage心寒 发表于 2011-12-22 16:48 | 显示全部楼层
简单的说下吧。。单片机通过对4094发送数据,从TD62783输出,然后送给四个按键,当按键按下去以后,TD62783的值通过一个与非门4011BP,与非门的值出来通过光耦,如果出来的电压为低则光耦导通,输出端为低,然后通过574,574的输出直接去单片机相连。
刘前辈 发表于 2011-12-22 17:56 | 显示全部楼层
回4楼:
573是锁存器,574是触发器;所以573可以直通,但是574不行,——它需要有触发脉冲。
dengm 发表于 2011-12-22 23:06 | 显示全部楼层
74HC573是透明锁存器  
74hc573:  Octal D-type transparent latch
74HC574不是透明锁存器
74HC574:  Octal D-type flip-flop; positive edge-trigger
 楼主| mage心寒 发表于 2011-12-23 08:51 | 显示全部楼层
程序的问题谁能解决??
ghg061 发表于 2011-12-23 11:48 | 显示全部楼层
不是IO0PIN&S4把,应当是IO0PIN&&S4把
 楼主| mage心寒 发表于 2011-12-23 14:26 | 显示全部楼层
10# ghg061
哎你比我还小白,&这个是按位与,&&这个是逻辑与,懂了没??虽然是今天毕业的,在学校实验室也待过,来公司也有几个月了不会犯那么低级的错误吧??偶尔也会。。
 楼主| mage心寒 发表于 2011-12-23 14:32 | 显示全部楼层
10# ghg061
哎你比我还小白,&这个是按位与,&&这个是逻辑与,懂了没??虽然是今天毕业的,在学校实验室也待过,来公司也有几个月了不会犯那么低级的错误吧??偶尔也会。。 ...
mage心寒 发表于 2011-12-23 14:26

今年写错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

1019

帖子

13

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