次矩阵键盘和定时器的使用

合集下载

单片机 矩阵键盘实验 实验报告

单片机 矩阵键盘实验 实验报告

实验五矩阵键盘实验一、实验内容1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。

按其它键退出。

2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。

可定义“A”键为“+”键,“B”键为“=”键。

二、实验目的1、学习独立式按键的查询识别方法。

2、非编码矩阵键盘的行反转法识别方法。

三、实验说明1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。

2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。

3、识别键的闭合,通常采用行扫描法和行反转法。

行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。

行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。

然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。

这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。

由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。

行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

矩阵键盘的使用流程解

矩阵键盘的使用流程解

矩阵键盘的使用流程解析1. 简介矩阵键盘是一种常见的输入设备,用于输入数字、字母和符号等文本信息。

它由一组按键组成,通常排列成矩形的形式。

本文将介绍使用矩阵键盘的详细流程和注意事项。

2. 连接矩阵键盘在开始使用矩阵键盘之前,首先需要将其连接到计算机或其他设备。

通常,矩阵键盘使用USB接口进行连接。

只需要将键盘的USB插头插入计算机的USB接口即可完成连接。

3. 检查键盘状态在使用矩阵键盘之前,我们需要确保键盘状态正常。

检查键盘是否接通电源,以及是否有任何损坏或松动的按键。

确保键盘的线缆与接口连接良好。

4. 输入文本信息使用矩阵键盘输入文本信息非常简单。

按下键盘上相应的按键即可输入相应的字符。

例如,按下数字键1会输入数字1,按下字母键A会输入字母A。

根据需要,可以使用矩阵键盘输入各种类型的字符,包括数字、字母、标点符号等。

通过按下不同的键盘按键,可以输入相应的字符。

5. 切换输入模式一些矩阵键盘还具有切换输入模式的功能,允许用户在不同的输入模式之间进行切换。

例如,可以切换为大写字母模式、小写字母模式或数字模式等。

切换输入模式通常通过特定的按键组合完成。

具体的切换方式可以参考键盘的说明文档或者在键盘上寻找切换模式的标识。

6. 使用快捷键矩阵键盘通常还配有一些快捷键,用于执行常见的操作或调整特定的功能。

这些快捷键可以提高工作效率和便利性。

快捷键的使用方法可以参考键盘的使用手册或者在互联网上搜索相关的资料。

通过学习和使用矩阵键盘的快捷键,可以更快速、高效地完成各种任务。

7. 注意事项在使用矩阵键盘时,需要注意以下几点:•键盘操作的力度应适中,避免过重或过轻按键,以免影响操作效果。

•避免在键盘上敲击过快,以免出现漏键或误输入的情况。

•定期清洁键盘,以保持按键的灵敏度和正常的使用寿命。

•在长时间使用键盘时,适当休息并放松手指、手腕和手臂,以防止过度疲劳和不适。

8. 小结本文介绍了矩阵键盘的使用流程,并提供了一些注意事项。

矩阵键盘原理

矩阵键盘原理

矩阵键盘原理
矩阵键盘是一种常见的输入设备,由多个按键组成。

其原理是通过一种叫作矩阵扫描的方法来实现按键的检测和识别。

矩阵键盘的按键布局通常是以行和列的形式排列的。

每个按键都与一个行和一个列相交叉,并通过一个开关来连接对应的行和列。

当按下一个按键时,该按键所在的行和列会通过开关的闭合而导通。

从而电流得以流动,系统可以检测到按键的状态。

为了实现对按键的检测,系统会逐个扫描每一行,并检测每一列的状态。

这一过程是周期性进行的,通常以毫秒级的速度进行循环扫描。

当系统检测到闭合的开关时,就会确定该按键被按下。

矩阵键盘的优点在于可以通过少量的引脚来控制多个按键。

其基本原理是利用行列交叉的方式来编码按键,进而达到节省硬件资源的效果。

总体而言,矩阵键盘的原理是通过矩阵扫描方式实现按键的检测和识别。

它是一种简单而有效的输入设备,广泛应用于计算机、电子设备和各种控制系统中。

STC89C52单片机测试报告

STC89C52单片机测试报告

STC89C52单片机调试报告The debugging report of STC89C52MCU姓名:***专业:电子信息工程时间:2011年8月2日STC89C52单片机调试报告摘要:通过这次对单片机最小系统的焊接与调试,我对单片机内部结构有了深入的了解,并且学会了利用单片机扩展其他模块,对单片机的外围器件已经能熟练地操作,自己亲自焊接与调试,发现了自己画的PCB 板有许多问题,经过不断的调试,最后顺利完成了52单片机基本外围器件的调试和扩展,这次52单片机外围器件的调试为我以后参加比赛奠定了基础。

【本科组】1.技术讨论:STC89C52是一种八位的单片机,共40个引脚,五个中断源,三个内部中断,分别为定时器0,定时器1,串口中断,两个外部中断,分别为外部中断0和外部中断1,4个双向的I/O口可以用来扩展外部器件和存储器。

除此之外,利用单片机的ALE和PSEN引脚也可以扩展外部存储器。

如果外部器件需要时钟信号,可以利用单片机的定时器作外部器件的时钟,由于单片机正常工作的时候ALE 引脚会输出6分频的方波,所以时钟信号也可以接单片机的ALE引脚。

2.技术路线:我用的PCB板是自己画的,板子上除了STC89C52单片机主控芯片外,主要模块有:四位数码管,两位数码管,蜂鸣器,虚拟串口,矩阵键盘,电源指示灯,时钟芯片DS1302,温度传感器DS18B20,12864液晶,诺基亚液晶,除此之外,我利用单片机外围引脚的排针扩展了ADC0809,DS18B20多点测温。

3.硬件设计:3.1数码管部分采用的是四位共阴数码管,段选通过单片机的P2口控制,位选通过P0.4-P0.7控制,驱动用的是8050NPN数码管,R5-R8的作用是限流,防止电流过大烧坏数码管,R1-R4的作用也是限流作用,防止电流过大烧坏单片机。

3.2复位电路单片机的第九脚只要出现连续两个机器周期以上的高电平就恢复位,复位电路上电容采用的是10UF,电阻中的阻值是10K。

4X4矩阵键盘控制数码管显示按键值

4X4矩阵键盘控制数码管显示按键值

4X4矩阵键盘控制数码管显示按键值4X4矩阵键盘控制数码管显示按键值一、设计内容与要求用80C51单片机控制系统显示按键值0~F。

二、设计目的意义2.1 设计目的1、了解单片机系统中实现LED动态显示的原理及方法;2、详细了解8051芯片的性能及编程方法;3、了解单片机系统基本原理,了解单片机控制原理;4、掌握AT89C51输入/输出接口电路设计方法;5、掌握AT89C51程序控制方法;6、掌握单片机汇编编程技术中的设计和分析方法;7、掌握使用PROTEUS软件进行仿真的方法。

8、学会使用并熟练掌握电路绘制软件Protel99SE;9、掌握电路图绘制及PCB图布线技巧。

2.2 设计意义1、在系统掌握单片机相应基础知识的前提下,熟悉单片机应用系统的设计方法及系统设计的基本步骤。

2、完成所需单片机应用系统原理图设计绘制的基础上完成系统的电路图设计。

3、完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。

4、进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。

5、用AT89C51设计出题目所要求的数码管动态循环显示,并针对实际设计过程中软、硬件设计方面出现的问题提出相应解决办法。

6、通过单片机应用系统的设计将所学的知识融会贯通,锻炼独立设计、制作和调试单片机应用系统的能力;领会单片机应用系统的软、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下坚实的基础。

三、系统硬件电路图3.1 Proteus软件简介以及仿真电路图Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、1ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。

次课矩阵键盘和定时器的使用

次课矩阵键盘和定时器的使用

作定时器用时,加法计数器对内部机器周期脉冲 Tcy计数。由于机器周期是定值,所以对Tcy的计数就 是定时,如Tcy=1 μs,计数值100,相当于定时100 μs。
加法计数器的初值可以由程序设定,设置的初值 不同,计数值或定时时间就不同。在定时器/计数器的 工作过程中,加法计数器的内容可用程序读回CPU。
T=N×Tcy=(8192-x)Tcy 式中Tcy为单片机的机器周期。如果振荡频率fosc=12 MHz,则Tcy=1 μs,定时范围为1~8192 μs。
定时器/计数器的启动或停止由TRx控制。当GATE=0时,只 要用软件置TRx =1,开关S2闭合,定时器/计数器就开始工作; 置TRx=0,S2打开,定时器/计数器停止工作。
图6.13 定时器/计数器T0、T1的结构框图
1.16位加法器
定时器/计数器的核心是16位加法计数器,图中用特殊 功能寄存器TH0、TL0及TH1、TL1表示。TH0、TL0是定 时器/计数器0加法计数器的高8位和低8位,TH1、TL1是 定时器/计数器1加法计数器的高8位和低8位。
作计数器用时,加法计数器对芯片引脚T0(P3.4)或 T1(P3.5)上的输入脉冲计数。每输入一个脉冲,加法计数 器增加1。加法计数溢出时可向CPU发出中断请求信号。
2.定时器/计数器方式控制寄存器TMOD
定时器/计数器T0、T1都有四种工作方式,可通过程 序对TMOD设置来选择。TMOD的低4位用于定时器/计 数器0,高4位用于定时器/计数器1。其位TE C/ T MI
D4 D3 D2 D1 D0 字节
M0 GATE C/T M1 M0 地址
定时器/计数器在每个机器周期的S5P2期间采样Tx脚输入信 号,若一个机器周期的采样值为1,下一个机器周期的采样值为 0,则计数器加1。由于识别一个高电平到低电平的跳变需两个 机器周期,所以对外部计数脉冲的频率应小于fosc/24,且高电 平与低电平的延续时间均不得小于1个机器周期。

键盘、中断与定时器

键盘、中断与定时器

一、按键输入一、按键的分类键盘分编码键盘和非编码键盘。

键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘;在单片机组成的各种系统中,用的最多的是非编码键盘。

也有用到编码键盘的。

非编码键盘有分为:独立键盘和行列式(又称为矩阵式)键盘。

二、独立按键的检测当按键没按下时,CPU对应的I/O接口由于内部有上拉电阻,其输入为高电平;当某键被按下后,对应的I/O接口变为低电平。

只要在程序中判断I/O接口的状态,即可知道哪个键处于闭合状态。

(如下图所示)变化与否,得出按键是否被按下,从而做出相吗?◎现实并非理想在我们通过上面的按键检测原理得出上述的结论的时候,其实忽略了一个重要的问题:那就是现实中按键按下时候的电平变化状态。

我们的结论是基于理想的情况得出来的,就如同这幅按键按下时候对应电平变化的波形图一样。

而实际中,由于按键的弹片接触的时候,并不是一接触就紧紧的闭合,它还存在一定的抖动。

尽管这个时间非常的短暂,但是对于我们执行时间以us为计算单位的微控制器来说 ,它太漫长了。

于是就会造成上图所示的差别。

这样便存在这样一个问题。

假设我们的系统有这样功能需求:在检测到按键按下的时候,将某个I/O的状态取反。

由于这种抖动的存在,使得我们的微控制器误以为是多次按键的按下,从而将某个I/O的状态不断取反,这并不是我们想要的效果。

假如该I/O控制着系统中某个重要的执行的部件,那结果更不是我们所期待的。

于是乎有人便提出了软件消除抖动的思想,道理很简单,抖动的时间长度是一定的,只要我们避开这段抖动时期,检测稳定的时候的电平不就可以了吗。

于是这就产生了一种方法,就是通过延时来跳过这段抖动的时间,而实际上这样的效果还不错。

当然,还有其他的消抖方法,同学们请自己思考思考。

由于独立键盘的程序太简单,同学们请自行编写。

三、矩阵键盘1、为什么使用矩阵键盘当使用按键过多时,使用独立按键虽然编写程序简单,但是会大量占用IO口资源,为了节省IO资源,通常将键盘按照矩阵方式排列(如下图所示)。

4乘4矩阵式键盘使用

4乘4矩阵式键盘使用

4乘4矩阵式键盘在单片机中的应用--C语言下图为4*4键盘的结果图,用单片机的P1口接4×4矩阵键盘,接法如图所示,用数码管显示按键的值,按下键S1,数码管显示0,按下S2,数码管显示1,按下S16,显示F。

先看程序代码:#include<reg51.h>#include<intrins.h>#define uint unsigned int#define uchar unsigned charuchar code table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//八段数码管对应0—F值。

void Delay_1ms(uint i)//1ms延时{uchar x, j;for(j=0;j<i;j++)for(x=0;x<=148;x++);}void delay()//消除按键抖动延时{int i,j;for(i=0; i<=10; i++)for(j=0; j<=2; j++);}uchar Keyscan(void){uchar i,j, temp, Buffer[4] = {0xfe, 0xfd, 0xfb, 0xf7};for(j=0; j<4; j++){P1 = Buffer[j];delay();temp = 0x10;for(i=0; i<4; i++){if(!(P1 & temp)){return (i+j*4);}temp <<= 1;}}}void Main(void){uchar Key_V alue; //读出的键值while(1){P1 = 0xf0;if(P1 != 0xf0){Delay_1ms(15); //按键消抖if(P1 != 0xf0){Key_Value = Keyscan();}}P0 = table[Key_V alue];//P0口输出数据到数码管}}代码分析:程序从Main开始执行,Key_V alue用来存放Keyscan();的返回值,Key_V alue为1,则数码管会显示1。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
作定时器用时,加法计数器对内部机器周期脉冲 Tcy计数。由于机器周期是定值,所以对Tcy的计数就 是定时,如Tcy=1 μs,计数值100,相当于定时100 μs。
加法计数器的初值可以由程序设定,设置的初值 不同,计数值或定时时间就不同。在定时器/计数器的 工作过程中,加法计数器的内容可用程序读回CPU。
显示驱动技术讲义
3.定时器/计数器控制寄存器TCON
TCON控制寄存器各位定义如下:
D7 D6 D5 D4 D3 D2 D1 D0
字节
TCON TF1 TR1 TF0 TR0
IE1
IT1
IE0 IT0 地址
88H
TF0(TF1):T0(T1)定时器/计数器溢出中断标志位。 当T0(T1)计数溢出时,由硬件置位,并在允许中断的情况 下,向CPU发出中断请求信号,CPU响应中断转向中断服 务程序时,由硬件自动将该位清零。
} }
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
键盘扫描子程序
uchar Keyscan() //键盘扫描 { temp=0xfe;
P1=temp; //令P1.0=0 if((P1&0xf0)!=0xf0)
{ delay_50us(100); if((P1&0xf0)!=0xf0) //确认是否按下 { Flag=1; switch(P1) {case 0xee:keynum=1;break;//S7被按下;对应显示"1" case 0xde:keynum=2;break;// S11;对应显示"2" case 0xbe:keynum=3;break;//S15;对应显示"3"}
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
可用程序将0~8191(213-1)的某一数送入THx、TLx作 为初值。THx、TLx从初值开始加法计数,直至溢出。 所以初值不同,定时时间或计数值不同。必须注意的是: 加法计数器THx溢出后,必须用程序重新对THx、TLx 设置初值,否则下一次THx、TLx将从0开始计数。
第6章 定时器中断在显示技术中的应用
开发板3*4矩阵键盘电路图:
显示驱动技术讲义
第6章 定时器中断在显示技术中的应用
主程序
显示驱动技术讲义
uchar temp,keynum,Flag; void ma) {
if( Flag==1)//如果有键按下 display();
} }
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
扫描第二行应该怎么写?
return(keynum);
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
void display(void) {
Flag=0; P2=0x00;//开4个位选; P0=table[Keyscan()];//数码管显示;table里面放0-9
1.16位加法器
定时器/计数器的核心是16位加法计数器,图中用特殊 功能寄存器TH0、TL0及TH1、TL1表示。TH0、TL0是定 时器/计数器0加法计数器的高8位和低8位,TH1、TL1是 定时器/计数器1加法计数器的高8位和低8位。
作计数器用时,加法计数器对芯片引脚T0(P3.4)或 T1(P3.5)上的输入脉冲计数。每输入一个脉冲,加法计数 器增加1。加法计数溢出时可向CPU发出中断请求信号。
D4 D3 D2 D1 D0 字节
M0 GATE C/T M1 M0 地址
89H
T1
T0
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
C / T定时或计数功能选择位,当C/ T =1时为计数方式;当
C/ =0时为定时方式。
M1、M0:定时器/计数器工作方式选择位,其值与工作方 式对应关系如表2.6所示。
INT 0
、_I_N__T___1
无关。一般情况下GATE=0。
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
定时器/计数器工作方式
M1
M0
工作方式
方式说明
0
0
0
13位定时器/计数器
0
1
1
0
1
1
1
16位定时器/计数器
2
具有自动重装初值的8位定时器 /计数器
3
第6章 定时器中断在显示技术中的应用
//的段选 delay_50us(100);
}
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
6 定时器/计数器
对于定时器/计数器来说,不管是独立的定时器芯片 还是单片机内的定时器,大都具有以下特点:
(1) 定时器/计数器的计数值是可变的,当然计数的 最大值是有限的,这取决于计数器的位数。
(2) 在到达设定的定时或计数值时发出中断申请,以 便实现定时控制。
MCS-51单片机(51子系列)内带有两个16位定时器/计 数器T0和T1,它们均可作为定时器或计数器使用。
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
6.1 定时器/计数器T0、T1的结构
图6.13 定时器/计数器T0、T1的结构框图
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
2.定时器/计数器方式控制寄存器TMOD
定时器/计数器T0、T1都有四种工作方式,可通过程 序对TMOD设置来选择。TMOD的低4位用于定时器/计 数器0,高4位用于定时器/计数器1。其位定义如下:
D7 D6 D5 TMOD GATE C/ T MI
GATE:门控位,用于控制定时器/计数器的启动是否受外
部中断请求信号的影响。如果GATE=1,定时器/计数器0的启动
_______
受芯片引脚 INT 0 (P3.2)控制,定时器/计数器1的启动受芯片引
_______
脚 INT 1 (P3.3)控制;如果GATE=0,定时器/计数器的启动与引

_______
TR0(TR1):T0(T1)运行控制位。当TR0(TR1)=1时启 动T0(T1);TR0(TR1)=0时关闭T0(T1)。该位由软件进行 设置。
第6章 定时器中断在显示技术中的应用
显示驱动技术讲义
6.2 定时器/计数器T0、T1的四种工作方式
1.工作方式0
图2.14 定时器/计数器方式0的逻辑结构
如果C/T=1,图2.14中开关S1自动地接在下面,定 时器/计数器工作在计数状态,加法计数器对Tx引脚上 的外部脉冲计数。计数值由下式确定:
相关文档
最新文档