51单片机矩阵键盘的编程

发布者:数据梦行者最新更新时间:2012-08-25 来源: 51hei关键字:51单片机  矩阵键盘  编程 手机看文章 扫描二维码
随时随地手机看文章
C51单片机上的外设键盘键是使用的矩阵方式扩展的,但是硬件仿真时必须把蜂民器的开关打开触使行扫描的74HC53的E端接地为输出型,否则测死了也没反应,我还以为是我的程序有问题呢,后来才找到的。

其原理

74HC138译码器在输出端Y1与WR(P3^6)都处于低电平通过或非门,转化成行扫描的74HC53的片选端打开写入数据,在输出端的高4位通过移位方式输出到外设键盘中。然后给WR一个高电平来给74HC53一个低电平使得输入无效进行锁存操作。然后通过RD(P3^7)与Y2共同输出低电平通过或非门加上个非门把低电平送到列扫描的74HC53的片选端E上,在读取数据前必须先将要获取的高4位进行置1,然后读取高4位数据,通过RD送出高电平进行锁住输出,防止74HC53同时输入输出导致芯片烧毁。然后根据获得的unsigned char进行移位比对操作来获得是哪一列,然后在通过运算得到第几个按键被按下。

这是最简单的矩阵方式扩展键盘的代码流程,上述是我理解的流程,测试已没问题。

#include
#include

void my_delay10nms(unsigned int n)
{
 unsigned i,j;
 while(n --)
 {
  for(i = 128;i > 0;i --)
  for(j = 10;j > 0;j --);
 }
}

sbit LED_BIT = P1^6;
void main(void)
{
unsigned char Key_h;
unsigned char Key_Val;
unsigned char Key_r;
unsigned char Last_key;
unsigned char Key_Temp;
  while(1)
  {
      Key_Val=0;
      for(Key_h=4;Key_h<8;Key_h++)
   {
     P2=0x88;
     P0=(1<				   
关键字:51单片机  矩阵键盘  编程 引用地址:51单片机矩阵键盘的编程

上一篇:义隆单片机和MCS—51单片机的区别
下一篇:基于SPI总线的51单片机多机互连编程技术

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved