打印

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

[复制链接]
2212|11
手机看帖
扫描二维码
随时随地手机跟帖
沙发
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接低电平,输出随输入变化而变化

使用特权

评论回复
5
mage心寒|  楼主 | 2011-12-22 16:48 | 只看该作者
简单的说下吧。。单片机通过对4094发送数据,从TD62783输出,然后送给四个按键,当按键按下去以后,TD62783的值通过一个与非门4011BP,与非门的值出来通过光耦,如果出来的电压为低则光耦导通,输出端为低,然后通过574,574的输出直接去单片机相连。

使用特权

评论回复
6
刘前辈| | 2011-12-22 17:56 | 只看该作者
回4楼:
573是锁存器,574是触发器;所以573可以直通,但是574不行,——它需要有触发脉冲。

使用特权

评论回复
7
dengm| | 2011-12-22 23:06 | 只看该作者
74HC573是透明锁存器  
74hc573:  Octal D-type transparent latch
74HC574不是透明锁存器
74HC574:  Octal D-type flip-flop; positive edge-trigger

使用特权

评论回复
8
mage心寒|  楼主 | 2011-12-23 08:51 | 只看该作者
程序的问题谁能解决??

使用特权

评论回复
9
ghg061| | 2011-12-23 11:48 | 只看该作者
不是IO0PIN&S4把,应当是IO0PIN&&S4把

使用特权

评论回复
10
mage心寒|  楼主 | 2011-12-23 14:26 | 只看该作者
10# ghg061
哎你比我还小白,&这个是按位与,&&这个是逻辑与,懂了没??虽然是今天毕业的,在学校实验室也待过,来公司也有几个月了不会犯那么低级的错误吧??偶尔也会。。

使用特权

评论回复
11
mage心寒|  楼主 | 2011-12-23 14:32 | 只看该作者
10# ghg061
哎你比我还小白,&这个是按位与,&&这个是逻辑与,懂了没??虽然是今天毕业的,在学校实验室也待过,来公司也有几个月了不会犯那么低级的错误吧??偶尔也会。。 ...
mage心寒 发表于 2011-12-23 14:26

今年写错了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

19

主题

1019

帖子

13

粉丝