单片机课程设计论文键盘按键识别及LED数码显示_第1页
单片机课程设计论文键盘按键识别及LED数码显示_第2页
单片机课程设计论文键盘按键识别及LED数码显示_第3页
单片机课程设计论文键盘按键识别及LED数码显示_第4页
单片机课程设计论文键盘按键识别及LED数码显示_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计论文设计题目:键盘按键识别及led数码显示系 院:信息工程学院专 业:09计算机应用技术姓 名:xxx学 号:2009010220指导老师:xxx目录第1节 课程设计任务书··························3第2节 引言·······&#

2、183;····························52.1 4*4矩阵式键盘系统概述··················

3、83;···········52.2 本设计任务和主要内容·······························6第3节 系统主要硬件电路设计··

4、83;·················7 3.1 单片机控制系统原理····················73.2 单片机主机系统电路·······

5、3;············7 3.3 矩阵式键盘电路························8 3.4 译码显示电路·········

6、83;················8第4节 系统的软件设计··························11第5节 课程设计心得体会 ···

7、····················16 参考文献·····························

8、;·········16第一节 课程设计任务书南 昌 工 程 学 院课程设计(论文)任务书1、 一、课程设计(论文)题目:键盘按键识别及led数码显示二、课程设计(论文)使用的原始资料(数据)及设计技术要求:利用实验箱上的键盘,编写键盘扫描程序。1 编写键盘扫描程序,识别按键2 对识别的按键赋予一定的定义,在led数码管上显示要求:1 画出逻辑硬件图2 画出程序流程图,设计出程序并通过检查。三、课 程 设计(论文)工作内容及完成时间:6.13-6.17查阅资料,画出逻辑图及流程图6.20-6.24 软件编

9、制、调试、完成课程设计四、主 要参考资料: 1. 嵌入式技术基础与实践 王宜怀 清华大学出版社 2 郁文工作室,嵌入式c语言程序设计使用mcs51m.北京:人民邮电出版社,2006 信息工程学院 系 09计算机应用技术 专业 1 班学生: xxx 日期: 自 2011 年 6 月 13 日至 2011 年 6 月 24 日指导教师: xxx 助理指导教师(并指出所负责的部分):教研室: 教研室主任: 第二节 引言引言矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以n个端口连接控制n*n个按键,即时在led数码管上。单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单

10、片机和键盘矩阵电路部分,主要对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。4*4矩阵式键盘采用at89s51单片机为核心,主要由矩阵式键盘电路、译码电路、显示电路等组成,软件选用汇编语言编程。单片机将检测到的按键信号转换成数字量,显示于led显示器上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。2.1 4*4矩阵式键盘识别显示系统概述矩阵式键盘模式以n个端口连接控制n*n个按键,实时在led数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的i/o端口为他用,相反,独立式按键虽编程简单,但占用i/o口资源较多,不适合在按键

11、较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费i/o端口资源,为了解决这一问题,我们使用矩阵式键盘。矩阵式键盘简介:矩阵式键盘又称行列键盘,它是用n条i/o线作为行线,n条i/o线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为n*n个。这种行列式键盘结构能有效地提高单片机系统中i/o口的利用率。最常见的键盘布局如图1-1所示。一般由16个按键组成,在单片机中正好可以用一个p口实现16个按键功能,这也是在单片机系统中最常

12、用的形式,本设计就采用这个键盘模式。如图1-1所示图2-1 键盘布局随着21世纪的到来,资源危机接踵而至。快速席卷整个国家,这一状况还将随着时间的推移和社会的发展而更加严重。国家提倡资源节约型社会,资源危机已成为全球性的突出问题,利用科技手段缓解这一危机,将是人类主要的出路。 电子信息行业是人类社会的高科技行业之一,是设施现代化的基础,也是人类通往科技巅峰的直通路。电子行业的发展从长远来看很重要,但最主要的还是科技问题。国家设施的现代化的根本出路在于全面提高科技水平,现代的社会经营模式由传统模式向现代化、高科技模式转变,由粗放型向集约型方向转变,必须要求科技有一个大的发展,进行一次新的技术革命

13、。矩阵式键盘提高效率进行按键操作管理有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身素质的要求。是它能准确、实时、高效地显示按键信息,以提高工作效率和资源利用率。 随着计算机技术和电子科技的迅猛发展,计算机和电子产品的价格日益降低,可靠性日益提高。本文旨在设计一套能对按键信息进行自动实时显示的系统。2.2 本设计任务和主要内容本论文主要研究单片机控制的键盘识别显示系统,分别对按键信息和显示电路以及软、硬件各个部分进行研究。主要内容如下: 根据矩阵式键盘的特点,进行键盘控制系统的整体研究与设计; led实时显示按键信息(显示按键的坐标); 采用软件编程的方法实现按键信息的提取和

14、显示。第三节 系统主要硬件电路设计3.1 单片机控制系统原理图3-1 单片机控制系统原理框图 32 单片机主机系统电路at89c51单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2k字节可编程flash存储器的低电压、高性能coms八位微处理器,与intel mcs-51系列单片机的指令和输出管脚相兼容。由于将多功能八位cpu和闪速存储器结合在单个芯片中,因此,at89c2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的ram、rom和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。图3-2 仿真原理图3.3 矩阵式键盘电路

15、 at89c51单片机的并行口p1接4×4矩阵键盘,以p1.0p1.3作输入线,以p1.4p1.7作输出线;p1口输出按键信息,在数码管上显示每个按键的“0f”序号。实际电路图连接如图2-4所示。图3-3 矩阵式键盘电路3.4 译码显示电路译码电路中常用的显示器有led(数码管)和lcd(液晶显示器)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点。本系统输出结果选用2个led显示。数码管有共阴共阳之分,本系统采用8段共阳型led,其原理图如图3-5所示。数码管内部有8个发光二极管,公共端由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(gnd),各发光二极管是否点

16、亮取决于a-dp各引脚上是否是高电平。 led数码管的外形结构如图3-4,外部有10个引脚,其中3, 8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字(0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。led有共阴极和共阳极两种。如图3-4所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5v的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另

17、一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。 符号和引脚 共阳极 共阴极图3-4 led数码管结构图3-5 译码显示电路当无按键闭合时,p1.0-p1.3与p1.4-p1.7之间开路。当有键闭合时,与闭合键相连的两条i/o口线之间短路。判断有无按键按下的方法是:第一步,置列线p1.0 -p1.3为输入状态,从行线p1.4-p1.7输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线p1.0-p1.3读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合

18、一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。由于本显示电路功能简单,为使编程简单,采用直接输出模式,即把p2.0p2.6端口用8芯排线连接到数码显示模块区域中的ag端口上,要求:p2.0对应着a,p2.1对应着b,p2.6对应着g。将行列分别送到两个数码管,显示按键的坐标。第四节 系统的软件设计4.1 软件流程图开始 键盘值初始化读列线是否有键按下 n 延时去抖动 y读列是否有按键按下 n 根据当前状态识别按键 y 显示按键坐标图3-1 软件设计流程图42 系统程序设计#include <reg51.h> #d

19、efine uchar unsigned char /宏的定义变量类型 uchar 代替 unsigned char#define uint unsigned int /宏的定义变量类型 uint 代替 unsigned intuchar dis_buf,dis_buf1; /显示缓存uchar temp;uchar l,h; /键顺序吗void delay0(uchar x); /x*0.14ms/ 此表为 led 的字模 0 12 3 4 56 78 9 a b cd e funsigned char code led7code = 0x3f,0x06,0x5b,0x4f,0x66,0x6

20、d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/* * 延时子程序 * */void delay(uchar x) uchar j; while(x-)!=0) /cpu执行x*12次,x=10 for(j=0;j<125;j+) ; /* * 键扫描子程序 (4*3 的矩阵) p1.4 p1.5 p1.6 p1.7为行 * p1.1 p1.2 p1.3为列 * */ void keyscan(void) temp = 0; p1=0xf0; /高四位输入 行为高电平 列为低电 delay(1); /延时temp=p1; /读p1

21、口 temp=temp&0xf0; /屏蔽低四位 temp=(temp>>4)|0xf0); if(temp=1) / p1.4 被拉低 h=1; else if(temp=2) / p1.5 被拉低 h=2; else if(temp=4) / p1.6 被拉低 h=3; else if(temp=8) / p1.7 被拉低 h=4; dis_buf = h; dis_buf = dis_buf & 0x0f; / else / key=16; p1=0x0f; /低四位输入 列为高电平 行为低电平 delay(1); /延时temp=p1; /读p1口 temp

22、=temp&0x0f; temp=(temp|0xf0);if(temp=1) /p1.0 被拉低 l=1; else if(temp=2) /p1.1 被拉低 l=2; else if(temp=4) /p1.2 被拉低 l=3; else if(temp=8)/p1.3 被拉低 l=4; /else / key=16; dis_buf1= l; /键值入显示缓存 dis_buf1= dis_buf1 & 0x0f; /* *判断键是否按下 * */ void keydown(void) p2=0xf0; p3=0xf0; /将高4位全部置1 低四位全部置0if(p1!=0xf0) /判断按键是否按下 如果按钮按下 会拉低p1其中的一个端口 keyscan(); /调用按键扫描程序 /* * 主程序 * */ main() p1=0xff; /置p0口 p2=0xff; p3=0xff; /置p1口 delay(10); /延时 while(1) keydown(); /调用按键判断检测程序 p2 = led7codedis_buf%16&0x7f; p3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论