单片机--矩阵键盘模块(C51)

发布者:limm20032003最新更新时间:2016-03-28 来源: eefocus关键字:单片机  矩阵键盘  C51 手机看文章 扫描二维码
随时随地手机看文章
#include < reg52.h >

#include  <intrins.h> //包含crol移位子函数的头文件

#define uchar unsigned char

#defind uint  unsigned int

 

 

uchar key_value=0x19;

uchar temp,a;

 

uchar keyboard()

{     

       uchari,t=4;

       P2=0xFF;                     //P2口写1

       a=0x7F;//p_value赋初始值 

       i=1;

       while(t--)

       {                                               

              a=_crol_(a,1);//循环左移一位,检测下一行

              key_scan();                   

              i++;

              if(i==5){ i=1; a=0x7f;}              

       }

       returnkey_value;

}

 

 

void key_scan()

{     

              P2=a;                                                  //P2.0置零

              temp=P2;                                  //读P2口的值

              temp=temp&0xF0;               //取高四位,都得用temp,即temp=p2,temp=temp&0xf0;

              while(temp!=0xF0)       //如果高四位不全为0,则有键下

              {

                     delay(5);                             //延时消抖

                     while(temp!=0xF0) //再读一次,如果高四位还是不全为0,真的有键按下了

                     {

                                   temp=P2;              //读P2口的值给temp

                                   switch(temp)

                                   {                                        

                                          case0xEE:key_value=0;       break;

                                          case0xDE:key_value=1;  break;

                                          case0xBE:key_value=2;  break;

                                          case0x7E:key_value=3;  break;

                                          case0xED:key_value=4;  break;

                                          case0xDD:key_value=5;  break;

                                          case0xBD:key_value=6;  break;

                                          case0x7D:key_value=7;  break;

                                          case0xEB:key_value=8;  break;

                                          case0xDB:key_value=9;  break;

                                          case0xBB:key_value=10; break;

                                          case0x7B:key_value=11; break;

                                          case0xE7:key_value=12; break;

                                          case0xD7:key_value=13; break;

                                          case0xB7:key_value=14; break;

                                          case0x77:key_value=15; break;

                                   }                                 

                                   while(temp!=0xf0)               //松手检测

                                   {                          

                                          temp=P2;

                                          temp=temp&0xf0;

                                   }

                     }

              }                   

}

 

void delay(uint z)

{

       uintm,n;

       for(m=z;m>0;m--)

              for(n=78;n>0;n--);

}​

 


关键字:单片机  矩阵键盘  C51 引用地址:单片机--矩阵键盘模块(C51)

上一篇:单片机音乐程序设计
下一篇:51单片机串行通信奇偶校验的设置方法

推荐阅读最新更新时间:2024-03-16 14:48

基于51单片机可修改错误功能的计算器工作原理解析
utiliTIes.h #ifndefUTILITIES_H_INCLUDED #defineUTILITIES_H_INCLUDED typedefunsignedcharuchar,BYTE,uint8; typedefunsignedintuint,WORD,uint16; typedefunsignedlongulong,DWORD,uint32; typedefcharint8; typedefintint16; typedeflongint32; typedefunsignedchar*uchar_p; typedefunsignedint*uint_p; typedefunsignedlong*ulong_p;
[单片机]
基于51<font color='red'>单片机</font>可修改错误功能的计算器工作原理解析
单片机软硬件联合仿真解决方案
作者Email: goldbull.nease.net 摘要:本文介绍一种嵌入式系统仿真方法,通过一种特殊设计的指令集仿真器ISS将软件调试器软件Keil uVision2和硬件语言仿真器软件Modelsim连接起来,实现了软件和硬件的同步仿真。 关键词:BFM,TCL,Verilog,Vhdl,PLI,Modelsim,Keil uVision2,ISS,TFTP,HTTP,虚拟网卡,Sniffer,SMART MEDIA,DMA,MAC,SRAM,CPLD 缩略词解释: BFM:总线功能模块。在HDL硬件语言仿真中,BFM完成抽象描述数据和具体的时序信号之间的转换。 PLI:Verilog编程语言接口,是C语言
[应用]
51单片机定时中断实现显示的程序
第一位始终显示0,第二位显示在0-9之间循环 ;************************************************** Counter EQU 59H ;计数器,显示程序通过它得知现正显示哪个 数码管 FIRST EQU P2.7 ;第一位数码管的位控制 SECOND EQU P2.6 ;第二位数码管的位控制 DISPBUF EQU 5AH ;显示缓冲区为5AH和5BH ORG 0000H AJMP START ORG 000BH ;定时器T0的入口 AJMP DISP ;显示程序 ORG 30H START: MOV SP,#5FH ;设置堆栈 MOV P1,#0FFH MOV P0,#0FFH
[单片机]
一种基于单片机控制的ISD4004语音芯片应用电路
1 前言 ISD4004语音芯片是由美国ISD公司推出不久的新产品。关于该语音芯片的引脚说明以及内部电路等,因为很容易在ISD公司提供的芯片资料中查到,笔者就不在本文作过多的描述。只简单对其特点做一介绍。 与普通的录音/重放芯片相比,ISD4004具有如下特点:首先是记录声音没有段长度限制,并且声音记录不需要A/D转换和压缩。其次,快速闪存作为存储介质,无需电源可保存数据长达100年,重复记录10000次以上。此外,ISD4004具有记录时间长(可达16分钟,本文采用的为8分钟的 ISD4004语音芯片)的优点。最后,ISD4004开发应用具有所需外围电路简单的优点,这一点从本文介绍的其在语音报站器中的实际应用中可以体会到
[单片机]
一种基于<font color='red'>单片机</font>控制的ISD4004语音芯片应用电路
自制单片机STC开发板
 STC Bearings GMBH是欧洲传动与控制技术发展重要成员公司之一,成立于1927年,一直致力于精密轴承、重型轴承与座、衬套、密封件等生产制造,客户遍布全球,配套众多行业如工业齿轮箱、港口矿山重型机械、钢铁工业、风力发电、汽车铁路车辆、军工航天工业等,年销售额在1.5亿欧元。   1.选取单片机STC89C52RC(6元)+底座(0.4元)双列直插40脚。   2.震荡电路,晶振11.0592(1元),2个30p电容(共0.1元)。焊接18.19脚。   3.复位的电路,电阻+电容+Button。   4.串口的电平转换电路,MAX232CPE(MAX232EPE),5个1uF的电解电容。   5,采用USB供电,
[单片机]
自制<font color='red'>单片机</font>STC开发板
如何使用8051单片机在7段显示器上显示数字?
在使用 单片机开发 项目的时候,经常会使用到7段显示器。7段显示器可以显示字母和数字,它内部是其实是发光 LED 灯,通过控制不同的 接口 点亮内部LED灯,从而显示出数字。目前,它在许多 电子产品 中用于显示 信息 ,比如:充电宝、直发器等。 7段显示器由8个LED构成,这些LED以顺序方式连接,以方便在打开某些LED组合时显示0到9的数字。点亮时,它一次只显示一位数字。 使用80 51单片机 在7段显示器上显示数字的原理图: 在7段显示器上显示从“0到F”的数字的程序是: #include reg51.h sbit a= P3^0; sbit x= P3^1; sbit y= P3^2; sbit z= P3
[单片机]
如何使用8051<font color='red'>单片机</font>在7段显示器上显示数字?
关于单片机串口发送和接收的问题
串口初始化过程:     1、确定T/C1的工作方式--TMOD     2、设置T/C初始值----------------------------TH1、TH2     3、启动T/C-----------------------------------TR1     4、串行口的控制------------------------------SCON     5、串口在中断方式下,需要开CPU和源中断----IE      总结:不一定需要使用中断函数,可以在main函数里面的while里面判断RI和TI是否等于1, 如果不使用中断函数interrupt,可以不用开源中断ES和EA。
[单片机]
关于<font color='red'>单片机</font>串口发送和接收的问题
基于单片机实现多通道数据综合采集系统的应用方案
1.前言 在工业控制中需要对各种参量进行采集,即利用信号采集系统将各种数据采集到计算机中进行实时处理。传感器起着中间桥梁的作用,但是它输出的信号往往是很微弱的电流信号,需要经过放大转换成电压信号后才能输入到A/D中进行数据采集。另外,随着测试技术的不断发展,为了适应数字化、高效率等要求,在工业测试系统中单片机的应用也越来越广泛,它具有实时及可靠性高的优点,并且日益显示出巨大的优越性。本系统采用美国Cygnal公司的C8051F020单片机为控制核心,组成了多通道数据综合采集系统,它利用较少的外围器件实现了对液压设备的控制。 2.C8051F020单片机简介 C8051F020器件是完全集成的混合信号系统级MCU芯片(SOC),
[单片机]
基于<font color='red'>单片机</font>实现多通道数据综合采集系统的应用方案
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

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

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

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