矩阵键盘扫描显示键值

上传人:小** 文档编号:55386216 上传时间:2018-09-28 格式:DOC 页数:22 大小:786.50KB
返回 下载 相关 举报
矩阵键盘扫描显示键值_第1页
第1页 / 共22页
矩阵键盘扫描显示键值_第2页
第2页 / 共22页
矩阵键盘扫描显示键值_第3页
第3页 / 共22页
矩阵键盘扫描显示键值_第4页
第4页 / 共22页
矩阵键盘扫描显示键值_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《矩阵键盘扫描显示键值》由会员分享,可在线阅读,更多相关《矩阵键盘扫描显示键值(22页珍藏版)》请在金锄头文库上搜索。

1、1课程报告课程报告课 程 新型单片机实践 题 目 4*4 矩阵键盘扫描显示键值二级学院 班 级 姓 名 学 号 指导教师 设计时间 2011.11.152011.12.14 2常州工学院常州工学院新型单片机新型单片机设计任务书设计任务书学院: 专业:自动化 班级:学生 姓名指导老师职 称 课题姓名4 乘 4 键盘扫描显示键值课 题 工 作 内 容1、 设计内容:硬件电路的设计、软件电路的设计 2、 总体方案的选择、讨论确定。软件流程图的设计,硬件电路各部分的设 计, 程序的软调试、整机的调试。 3、 撰写设计报告 4、 答辩考核指 标 要 求1、采用 MCS-51 单片机作为微处理器。 2、设

2、计一个 4 乘 4 键盘扫描显示键值显示器。 3、在目测条件下数码管各段亮度均匀、充足、稳定、清晰无串扰。 4、通过按键静态显示 0015 字符。进 程 安 排第一周: 第二周: 第三周:主要 参考 文献1张义和,王敏男例说 8051 单片机 人民邮电出版社.2夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001. 4何立民. 单片机高级教程.第 1 版北京:北京航空航天大学出版社,2001.5范力昊单片机原理及应用技术.电子工业出版社3地点院 A613起止日期2011-11-232011-12-14绪论绪论3第一章第一章 总体方案设计总体方案设计4第二章第二章 系统硬件

3、电路的设计系统硬件电路的设计5第三章第三章 系统软件电路的设计系统软件电路的设计73.1 软件设计思想7 3.2 主程序设计.8 3.3 子程序设计.8 3.3.1 动态显示程序设计.9 3.3.2 按键程序设计.10第四章第四章 调试及性能分析调试及性能分析134.1 软件调试.13 4.2 性能分析.14总结总结15参考文献参考文献15附录附录16A 元件清单.16 8、瓷片电容16 B 总原理图.17 C 程序清单.18 C 实物图.214绪论绪论制作一个检测 4*4 矩阵键盘矩阵键盘的按键编码的实验, 把实际按键的 键值的八位编码先转换成 从 00001111 的编码,再译成数码管能识

4、别 的八位编码, 在数码管动态显示时, 矩矩 阵键盘阵键盘的第一行对应 0003, 4*4 第二行对应 0407,第三行 0811,第四行对应 1215。 原理:原理: 1键盘的工作原理: 键盘的工作原理: 按键设置在行、列线交点上,行、列线分别 连接到按键开关的 两端。行线通过上拉电阻接到+5V 电源上。无按键按下时,行线处 于 高电平的状态, 而当有按键按下时, 行线电平与此行线相连的列 线电平决定。 2行 列扫描法原理: 原理: 行列扫描法原理 第一步, 使行线为编程的输入线,列线是输 出线,拉低所有的列线, 判断行线的变化,如果有按键按下,按键按下的对应行线被拉低, 否则 所有的行线都

5、为高电平。 第二步, 在第一步判断有键按下后, 延时 10ms 消除机 械抖动,再次读取行值,如果此行线还处于低电平状态则进入下 一步,否则返回第一步重 新判断。第三步,开始扫描按键位置,采用逐 行扫描,每间隔 1ms 的时间,分别拉低第 一列,第二列,第三列,第四 列,无论拉低哪一列其他三列都为高电平,读取行值找到按 键的位置, 分别把行值和列值储存在寄存器里。第四步,从寄存器中找到行值和列 值并 把其合并,得到按键值,对此按键值进行编码,按照从第一行第一 个一直到第四行第四个 逐行进行编码,编码值从“0000” 至“1111” , 再进行译码,最后显示按键号码。 3数码 管动态扫描原理:

6、数码管动态扫描原理: 数码管的 7 个段及小数点都是由 LED 块组 成的,显示方式分为静 态显示和动态显示两种。数码管在静态显示方式时,其共阳管的位 选 信号均为低电平,四个数码管的共用段选线 a、b、c、d、e、f、g、dp 分别与单片机 的 8 根 I/O 口线相连,显示数字时只要给相应的段选线送 低电平。数码管在动态显示方 式时,在某一时刻只能有一个数码管被 点亮显示数字,其余的处于非选通状态,位选码端 口的信号改变时, 段选码端口的信号也要做相应的改变 ,每位显示字符停留显示的时间 一般为 1-5ms,利用人眼睛的视觉惯性,在数码管上就能看到相当稳定 的数字显示。5第一章第一章 总体

7、方案设计总体方案设计(1)总体设计要求本系统采用单片机 STC89C52 为数码管的控制核心,制造一种简单的 44键盘扫描显示,能够在目测条件下两位数码管各段亮度均匀、充足,本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。根据设计要求,初步确定设计方案如下:1. 选择 STC89C52 单片机(晶振频率为 f=12MHZ)作为整个系统的核心器件,对整个系统进行总体控制,发送并时时处理系统信息。2通过编程显示数字: 0015。3当有按键按下时显示数字。 4. 扫描信号连接到单片机的 P2 口,显示信号连接到单片机的 P0 口。5数码管点亮过程有程序控制,通过 P1.0,P1.1

8、 分别扫描点亮两位数码管完成,数码管采用直接驱动方式,共阳极接法。(2)系统框图本文设计行、列驱动电路,显示屏电路,运用单片机的智能化,系统的将每个功能电路模块连接在一起,总体结构设计如下图 1 所示:6单片机控制器键盘扫描数码管显示第二章第二章 系统硬件电路的设计系统硬件电路的设计本系统的硬件电路是由单片机最小系统、按键电路、动态显示驱动电路三部分组成。其中,单片机最小系统包括电源电路、复位电路和晶振电路构成;按键电路采用独立编码方式;显示部分使用共阳型高台扫描、高态显示信号驱动电路,完成数字效果。总原理图见附录 B。2.12.1 晶振电路晶振电路晶振是为电路提供频率基准的元器件,通常分成有

9、源晶振和无源晶振两个大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等) ,如需更换晶振时要同时更换外围的电路。有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。如图 2-1 为晶振电路。图 1-1 系统框图7图图 2-12-1 晶振电路图晶振电路图2.22.2 复位电路复位电路为确保微机系统中电 路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V5%,即 4.755.25V。由于微机电路

10、是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当 VCC 超过 4.75V 低于 5.25V 以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。如图 2-2 为复位电路图。图图 2-22-2 复位电路图复位电路图8第三章第三章 系统软件电路的设计系统软件电路的设计3.1 软件设计思想软件设计思想主程序先进行设置数码管闲时显示- - ,并启动,再进行键盘扫描载入0015 字型,然后判断一组字型是否扫描完,按不同情况进行循环调用子程序。进入子程序后,首先设置相应的程序,反复调用显示子程序,并在显示过程中反复调用键盘扫描子程序进行延时,判断是否退出相应的方式显示子程序。

11、设计过程中,能很好得提高按键响应速度。如图 2 所示为软件系统框图。9主程序扫描子程序延时子程序显示子程序字符编码:因为该数码管为共阳型显示,可以把 I/O 口输出位对应每段数码管显示段,因此若要使数码管一段点亮,则该位为“0” ;该段不亮,则该位为“1” 。所以对“0015”的编码,并将编码写入数组中便于查表操作,数组定义编码程序如下:unsigned char code TAB18= / 共阳 7 节显示器(ga)编码 0xbf,0xc0, 0xf9, 0xa4, 0xb0, 0x99, / 数字 0-40x92, 0x82, 0xf8, 0x80, 0x98, / 数字 5-90xa0,

12、 0x83, 0xa7, 0xa1, 0x84, / 字母 a-e(10-14)0x8e, 0xbf; / 字母 F(15),负号(-)3.23.2 主程序设计主程序设计主程序里只有一个不断执行扫描函数 scanner()的循环。图 3 为主程序流程图。 图 3-1 软件设计框图10开始开始声明函数变声明函数变量量执行扫描函数执行扫描函数主程序如下:/=主程序=main()/ 主程序开始 while(1)/ 无穷回圈,程序一直跑 scanner();/ 扫瞄键盘及显示 7 段显示器 / 主程序结束3.33.3 子程序设计子程序设计子程序中包括动态显示程序、按键程序、延时程序三种,下面依次详细介

13、绍。3.3.13.3.1 动态显示程序设计动态显示程序设计本系统中采用依次开关断数码管静态显示方式。图 3-2 主程序流程图11当第一个位扫描完成后,就进行这样的调整动作,以产生第二位的编码。同样的,当第二个字型扫描完成后,就进行这样的调整动作。这个调整动作是将 2 个编码根据顺序填入存储器,调整存储器地址的程序流程图如图 4 所示。送第一位显示送第一位显示扫描函数扫描函数延时延时关断第一位显示关断第一位显示送第二位显示送第二位显示延时延时关断第二位显示关断第二位显示显示子程序如下:void display(unsigned char x,unsigned char y)SEG_0=1;SEG

14、7P=TABx;delay1ms(1);SEG_0=0;SEG_1=1;SEG7P=TABy;delay1ms(1);SEG_1=0; 图 3-3 动态显示流程图123.3.23.3.2 按键程序设计按键程序设计系统中采用 44 矩阵键盘,在 P2 口接按键,P0 端口控制数码管显示。在扫描函数里,依次送出列扫描信号,而每组列扫描信号输出后,即读取按键状态,若有按下按键,则进行键值的判断与计算,再将其对应的显示信号送入显示管。在组列扫描的最后,还要确定按键已放开,才进行下一组列扫描。如图 3-4 所示为按键控制流程图。13声明变量声明变量扫描函数扫描函数输出显示数据与输出显示数据与 扫描信号扫

15、描信号读取键值读取键值按下按键按下按键第零行?第零行?第一行?第一行?第二行?第二行?第三行?第三行?Row=0Row=1Row=2Row=3计算键值显示计算键值显示 区移位填入显区移位填入显 示区示区放开按键读取键值读取键值调用延时函数调用延时函数yesyesyesyesyesnonononononoyes按键子程序如下:if(rowkey != 0)/ 若有按键 if(rowkey = 0x01) row=0; / 若第 0 列被按下 else if(rowkey = 0x02) row=1; / 若第 1 列被按下 else if(rowkey = 0x04) row=2; / 若第 2 列被按下 else if(rowkey = 0x08) row=3; / 若第 3 列被按下 图 3-4 按键流程图14kcode = 4 * col + row;/ 算出按键之号码 dig1=kcode/10+1;dig0=kcode%10+1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号