项目六按键识别的设计oq0tblmj.pptVIP

  • 4
  • 0
  • 约1.07万字
  • 约 61页
  • 2018-09-13 发布于湖北
  • 举报
项目六按键识别的设计oq0tblmj

TMOD设置为0x06,表示T0用作计数器,工作于方式2,由于计数值设为256-1=255,当P3.4有键按下时,负跳变会使计数器初值255加1,计数器立即溢出而触发计数中断,计数中断函数将计数变量COUNT累加。 当将计数初值设为256-2=254,则每按两次才会触发一次计数中断 二、源程序编写说明: 任务5 用计数器中断实现100以内的按键计数 #includereg52.h #define uchar unsigned char #define uint unsigned int Uchar code DSY_code[ ]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f}; Uchar count=0; void main( ) { P0=0x00; P2=0X00; TMOD=0X06; TH0=TL0=256-1; 二、源程序编写 任务5 用计数器中断实现100以内的按键计数 二、源程序编写 ET0=1; EX0=1; EA=1; IP=0X22; IT0=1; TR0=1; While(1) { P0=dsy_code[count/10]; P2=dsy_code[count%10]; } } 任务5 用计数器中断实现100以内的按键计数 //T0中断 void clear_counter() interrupt 0 { count= 0; } //T0计数器中断函数 Void key_counter() interyupr 1 { Count=(count+1)%100;//因为只有两位数码管,计数控制在100以内 } 二、源程序编写 任务5 用计数器中断实现100以内的按键计数 * 应用电子专业课程开发实例 任务2 多路按键状态指示的设计 1.提出任务 任务2 多路按键状态指示的设计 ◇ 知识链接 一、矩阵式键盘 1.结构和工作原理 当输入部分有多个按键时,若仍然采用独立键盘,必然会占用大量的I/O口,采用矩阵键盘是一种比较节省资源的方法。矩阵式键盘又称行列式键盘,往往用于按键数量较多的场合。矩阵式键盘的按键设置在行与列的交点上。 任务2 多路按键状态指示的设计 一般矩阵键盘的连接示意图 任务2 多路按键状态指示的设计 2.按键的识别 确定键盘上哪一个键被按下可以采用逐行扫描或逐列扫描的方法,称为行(列)扫描法。 (1)先将全部列线置为低电平,然后通过行线接口读取行线电平,判断键盘中是否有按键被按下。 (2)判断闭合键的具体位置。在确认键盘中有按键被按下后,依次将列线置为低电平,再逐行检测各行的电平状态。若某行为低电平,则该行与置为低电平的列线相交处的按键即为闭合按键。 (3)综合上述两步的结果,即可确定出闭合键所在的行和列,从而识别出所按下的键。 任务2 多路按键状态指示的设计 3.矩阵式键盘的软件设计 矩阵式键盘的扫描常用编程扫描方式、定时扫描方式或中断扫描方式,无论采用哪种方式,都要编制相应的键盘扫描程序。在键盘扫描程序中一般要完成以下几个功能: (1)判断键盘上有无按键按下; (2)去键的机械抖动影响; (3)求所按键的键号; (4)转向键处理程序。 任务2 多路按键状态指示的设计 在编程扫描方式中,只有当单片机空闲时,才执行键盘扫描任务。一般是把键盘扫描程序编成子程序,在主程序循环执行时调用。在主程序执行任务太多或执行时间太长时,按键的反应速度会变慢。 在定时扫描方式中单片机可以定时对键盘进行扫描,方法是利用单片机内部定时器,每隔一定的时间就产生定时中断,CPU响应中断后对键盘进行扫描,并在有按键按下时进行处理。 在中断扫描方式中,当键盘上有按键被按下时产生中断申请,单片机响应中断后,在中断服务程序中完成键扫描、识别键号并进行键功能处理。 以上几种键盘扫描方式只是转入键盘扫描程序的方式不同,而键盘扫描程序的设计方法是类似的。 任务2 多路按键状态指示的设计 2.任务分析 (1)硬件电路设计 本设计采用AT89S51单片机最小系统,P3口外接矩阵式键盘接口电路,P1口外接共阴型七段数码管,如图5.2.1所示。电路中共有16个按键,按4×4的矩阵式排列,键号依次为0~F。单片机的P3.0~P3.3为输出口,连接4条列线;P3.4~P3.7为输入口,连接4条行线。 任务2 多路按键状态指示的设计 键盘键值显示电路图 任务2 多路按键状态指示的设计 (2)软件设计思路 矩阵式按键的软件设计与独立式按键不同的只是按键的识别方法不同。在矩阵式按键的扫描程序中,要对按键逐行逐列地扫描,得到按下键的行列信息,然后还要转换成键号,以便据此转到相应的键处理程序。 按键扫描子函数中,

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档