74HC595扩展按键扫描

问题出现在了按键扫描过程中,使用延时,但是为什么使用延时就检测不到,还是没琢磨明白。

#include "hc595.h"

 

/*------------------------------------------------                 按键扫描程序 ------------------------------------------------*/

unsigned char keyscan(void) {     unsigned char Val;  SendByte(0x1b);  LINE_SET;

 if((P4&0x70)!=0x70)  {

   Val = P4&0x70;    Val+=0x1b;    while((P4&0x70)!=0x70);    delay_10ms(1);    while((P4&0x70)!=0x70);    return Val;

 }  SendByte(0x17);  LINE_SET;

 if((P4&0x70)!=0x70)  {

   Val = P4&0x70;    Val+=0x17;    while((P4&0x70)!=0x70);    delay_10ms(1);    while((P4&0x70)!=0x70);    return Val;

 }

 SendByte(0x0f);  LINE_SET;

 if((P4&0x70)!=0x70)  {

   Val = P4&0x70;    Val+=0x0f;    while((P4&0x70)!=0x70);    delay_10ms(1);    while((P4&0x70)!=0x70);    return Val;

 }  SendByte(0x1d);  LINE_SET;

 if((P4&0x70)!=0x70)  {

   Val = P4&0x70;    Val+=0x1d;    while((P4&0x70)!=0x70);    delay_10ms(1);    while((P4&0x70)!=0x70);    return Val;

 }  SendByte(0x1e);  LINE_SET;

 if((P4&0x70)!=0x70)  {

   Val = P4&0x70;    Val+=0x1e;    while((P4&0x70)!=0x70);    delay_10ms(1);    while((P4&0x70)!=0x70);    return Val;

 }

   return 0xff; }

 


<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这四种芯片都是逻辑芯片,但功能不同,需要根据具体的使用场景和需求选择。 - 74HC245是一个双向总线缓冲器,适用于两个总线之间的数据传输,可以实现双向数据传输,常用于扩展芯片的I/O口和CPU之间的数据传输。 - 74HC138是一个译码器/多路复用器,适用于将多个输入信号转换为一个输出信号,常用于地址线的扩展,或者选择不同的片内功能模块。 - 74HC164是一个移位寄存器,适用于串行数据输入,将数据按位存储,然后并行输出,常用于LED显示屏的驱动、键盘扫描等。 - 74HC595也是一个移位寄存器,但是它可以串联多个芯片,实现更多的位数存储,同时具有输出使能、清零等功能,常用于LED点阵显示屏、数码管驱动等。 因此,具体选择哪种芯片需要根据实际的应用场景和需求进行评估和选择。 ### 回答2: 74HC245、74HC138、74HC164和74HC595是一系列常用的数字集成电路芯片,广泛应用于数字电子系统中。以下是对它们的选择方法的简要说明: 1. 74HC245是一个双向总线传输芯片,通常用于数据总线的双向传输。如果你需要在系统中实现数据在两个方向上的传输,可以选择74HC245芯片。 2. 74HC138是一个3-8译码器/选择器芯片,常用于对多个输入信号的解码与选择。如果你需要选择某个输入信号,并通过使能引脚来控制输出信号的选择,可以选择74HC138芯片。 3. 74HC164是一个8位串行-并行移位寄存器芯片,可用于数据的串行输入和并行输出。如果你需要将串行数据转换为并行数据,可以选择74HC164芯片。 4. 74HC595是一个8位串行-并行移位寄存器芯片,类似于74HC164,但具有串行输入时钟和串行输出时钟。如果你需要在移位寄存器中存储数据,并且需要数据的串行输入和串行输出功能,可以选择74HC595芯片。 在选择芯片时,需要根据实际的系统需求和功能要求来确定。首先,确定所需的功能和接口类型(如双向总线、译码器/选择器、移位寄存器等)。其次,根据芯片的规格书和功能表,对比不同芯片的性能参数、输入/输出引脚数量、工作电压范围等特性,选择适合的芯片。 最后,根据可用性和成本等因素,选择供应商和采购渠道,确保能够获取到所需的芯片。 总之,对于74HC245、74HC138、74HC164和74HC595芯片系列,根据功能需求和性能要求来选择合适的芯片,并考虑可用性和成本等因素决定最终采购。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值