4x4键盘设计说明书_第1页
4x4键盘设计说明书_第2页
4x4键盘设计说明书_第3页
4x4键盘设计说明书_第4页
4x4键盘设计说明书_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、4x44x4 键盘在单片机上的应用键盘在单片机上的应用摘 要近年来随着电子产品的高速发展 ,单片机作为核心部件的正在不断深入各个电子产品的控制中,同时带动电子产品向着小型化、多功能化、智能化、高速化方向发展。比如,我们平常所使用的电饭煲、电冰箱、空调、计算器等电子产品都将单片机作为主要的控制器,使产品的控制和结果都变得简单化。然而仅是单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。在嵌入式 pc 应用系统中,作为人机交互设备的键盘,往往采用结构简单按键少的矩阵键盘。标准键盘虽然能直接与嵌入式 pc 机的 ps/2 接口相连,但是体积大,按键多,不能满

2、足需求,本文提出用一种 at89c52 单片机实现具有标准 ps/2 接口的矩阵键盘,具有便捷,实用的特点。关键词:关键词:接口,键盘,at89c52,lcd1602第 i 页目 录摘 要.i1 前言.12 2 总体设计总体设计.22.12.1 设计要求设计要求.22.2 整体方案设计.22.1.1 方案论证.22.1.2 方案比较.33 硬件设计.43.1 at89c51 单片机的功能 .43.2 复位电路的设置.53.3 4x4 键盘设计 .63.4 单片机模块.73.5 lcd1602 模块 .83.6 整体电路设计.94 软件设计.115 keil 与 proteus 联调 .12结

3、论.13参考文献.14附录 1:电路总图 .15附录 2:软件代码 .16第 1 页1 前言随着社会经济的快速发展,人们对自动控制要求的地方也越来越多。而在生活和生产的各领域中,凡是有自动控制要求的地方都会有单片机的身影出现;从简单到复杂,从空中到地面,几乎是凡能想像到的地方都有使用单片的需求。现在尽管单片机的应用已经很普遍,但仍有许多可以用单片机控制而尚未实现的项目,因此,单片机的应用大有想像和拓展空间。单片机的应用有利于产品的小型化、多功能化和智能化,有助于提高劳动效率,减轻劳动强度,提高产品质量,改善劳动环境,减少能源和材料消耗,保证安全等。单片机因其性价比高, 处理能力强, 且抗干扰能

4、力好, 在医疗器械、机电液控制、数据传输等各类工控系统和设备仪器中得到广泛应用。一方面, 在实际应用中, 单片机经常需要将采集到的数据发送给pc机进行处理或保存等; 另一方面, 工控系统和设备仪器设计, 因环境或软硬件资源的限制, 也往往需要不同的通信接口。比如, 很多工控pc机的键盘接口因受恶劣环境不利于键盘的使用而处于闲置状态。因此, 设计一个具有通用性的4x4键盘通信接口既方便pc机进行外设扩展, 又丰富了单片机的接口资源。目前, 单片机协议进行通信较多的是单片机接收4x4键盘设备的数据, 而以单片机做为键盘与pc机通信则较为少见。但是,单片机应用的意义绝不仅限于它的广阔范围以及所带来的

5、经济效益上,更重要的意义还在于:单片机的应用正从根本上改变着传统的控制系统设计思想和设计方法。从前必须有模拟电路或数字电路实现的大部分功能,现在已能使用单片机通过软件编程的方法来实现。这种以软件取代硬件并提高系统性能的控制系统“软化”技术,称之为微控制技术。微控制技术是一种全新的概念,是对传统控制技术的一次革命。随着单片机应用的推广普及,微控制技术必将不断发展、日益完善和更加充实。第 2 页2 总体设计2.1 设计要求利用 51 单片机设计一 4x4 行列键盘,并在 lcd 上显示键值。同时显示的键值为09、ad、#、*、这十六个值。2.2 整体方案设计本设计的整体思路是:利用 4x4 键盘,

6、通过 at89c52 单片机接收 4x4 键盘的键值,并显示在 lcd1602 上。2.1.1 方案论证设计中采用了三个方案,具体的方案见方案一、方案二和方案三。方案一:普通键盘设计方案采用普通的 4x4 键盘,通过键盘扫描得到键值,有单片机控制并显示在 lcd 上,优点是成本低,设计简单数字显示比较直观,缺点是键盘扫描效率不够且容易出错。4x4 键盘at89c52单片机lcd1602显示图 2.1 普通键盘整体方案一框图方案二:数码管显示设计方案采用普通的 4x4 键盘,通过键盘扫描得到键值,由单片机控制并显示在数码管上,优点是成本低,设计简单,键盘自动扫描,自动识别,自动编码,有键按下时才

7、发送数据,因此减轻了 cpu 的负担,缺点是数码管显示不直观。4x4 键盘at89c52单片机数码管显示图 2.2 4x4 键盘整体方案二框图2.1.2 方案比较由于方案一采用的是 4x4 键盘,设计需要 cpu 不断的扫描键盘,占用了大量的 cpu 资源,方案二利用 4x4 键盘,设计需要 cpu 不断的扫描键盘,占用了大量的 cpu 资源,并且用第 3 页数码管显示不够直观,交互界面不够好,因此综合方案一和方案二的优点,本设计采用了方案一较好。第 4 页3 硬件设计3.1 at89c51 单片机的功能 图 3.1 at89c51单片机因将其主要组成部分集成在一个芯片上而得名,具体说就把中央

8、处理器cpu(central processing unit)。随机存储器 ram(random ac cess memory)。只读存储器 rom(read only memory)。中断系统、定时器计数器以及 io(input/output)接口电路等主要微型机部件集成在一个芯片上。虽然单片机只是一个芯片,但从它的组成和功能上看,它已经具有了计算机系统一样的属性。为此,称它为单片微型计算机 scmc(single chip micro computer),简称单片机。同时由于单片机主要应用与控制领域,并用以实现各种测试和控制功能,为了强调起控制属性,也可以把单片机称为微控制器 mcu(mi

9、cro controller unit)。在国际上,“微控制器”的叫法似乎更通用一些,而在我国则比较习惯与“单片机”这一名称。第 5 页还有就是单片机在应用时,通常是处于控制系统的核心地位并融入其中,即以嵌入的方式进行使用,为了强调其嵌入的特点,也常常将单片机称为嵌入式微控制器emcu(embedded micro controller unit)。在单片机的电路和结构中,有许多嵌入式应用的特点。3.2 复位电路的设置复位电路产生复位信号,复位信号送入rst后还要送至片内的施密特触发器,由片内复位电路在每个机器周器的s5p2时刻对触发器输出采样信号,然后由内部复位电路产生复位操作所要的信号。一

10、般的复位电路可分为上电自动复位和按键复位,我们在此选用的是上电复位。上电自动复位原理:rst引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有效时间,就可以使单片机上电复位。上电自动复位是通过电容充电实现的,上电瞬间,rst端电位与vcc相同,随充电电流的减少,rst的电位逐渐下降,直到复位信号无效。按键复位在此不在作过多的介绍,其原理和上电复位是相同的。但其采用的是脉冲复位电路和电平复位电路两种。复位电路和单片机最小系统如下图3.2所示:图 3.2 复位电路第 6 页3.3 4x4 键盘设计图 3.3 4x4 键盘行列式键盘因为管理程序比较复杂,所以行列式键盘采用扫描技术。

11、常采用的扫描技术有:扫描法、反转法、状态矩阵法等。而本次设计采用线反转法扫描的过程步骤如下:(1)先从 p1 口的高 4 位输出低电平(列) ,低 4 位输出高电平(行):即 p1=0 x0f。从 p1口读取键盘状态。这时,如低 4 位中只要有一位出现“0” ,说明此行中有键按下。各行有键按下时,从p1 口读取的数值依次是:0eh、0dh、0bh、07h。(2)再从 p1 口的低 4 位输出低电平(行) ,高 4 位输出高电平(列):即 p1=0 xf0。从 p1口读取键盘状态。这时,如高 4 位中只要有一位出现“0” ,说明此列中有键按下。各列有键按下时,从p1 口读取的数值依次为:e0h、

12、d0h、b0h、70h。(3)将两次读取的特征值,根据图 3.2 进行组合,得到当前“按键的特征码” 。3.4 单片机模块stc89c52 单片机是 atmel 公司生产的单片机,51 的内核,具有处理能强、运行速度快、功耗低等优点。最小系统包括单片机,电源,复位电路。单片机接收 ps2 键盘的键值,并控第 7 页制 lcd 的显示。其系统框图如下图所示:接收 4x4 键值盘stcat89c2单片机控制 lcd1602显示电源供电复位电路图 3.4 单片机控制系统框图stc89c52 单片机有 4x8 个 io 口,其中 p0 口需外接上拉电阻,因此本次设计采用 p1 口作为 4x4 键盘接口

13、,p0 口作为与 lcd1602 的接口,其电路图如下图 3.5 所示:图 3.5 单片机最小系统图第 8 页3.5 lcd1602 模块lcd1602 采用 8 位并行数据传输,其操作时序如下图 3.6 所示:图 3.6 lcd 单片机图lcd1602 的指令集对应的指令码如表 3.1 所示码指 令说 明rsr/wd7 d6d5d4d3d2d1d0清除显示屏000000000*光标回到原点000000001*进入模式设定00000001i/ds显示幕 on/off0000001dcb移位000001s/cr/l*功能设定00001dlnf*字发生器地址设定0001acg设置显示地址001ad

14、d忙碌标志位 bf00bf显示数据10写入数据读取数据11读出数据i/d i/d=1 表示加 1 i/d=0 表示减 1s s=1 表示显示幕 on s=0 表示显示幕 off d d=1 表示显示幕 on d=0 表示显示幕 off c c=1 表示光标 on c=0 表示光标 off b b=1 表示闪烁 on b=0 表示闪烁 ons/c s/c=1 表示显示屏幕移位 s/c=0 光标移位r/l r/l=1 表示右移 r/l=0 表示右左移 d/l d/l=1 表示 8 位 d/l=4 表示 4 位 f f=1 表示 5x10 点矩阵 f=0 表示 5x7 点矩阵 n n=1 表示 2

15、行显示行 n=0 表示 1 行显示行第 9 页 bf bf=1:内部正在动作 bf=0:可接受指令或数据码 5表 3.1 指令码lcd1602 接口由 8 位数据线,电源地电源正,液晶显示偏压信号(vl) ,数据命令选择端(rs) ,读写选择端(rw)组成。其接口信号说明如下图 3.7 所示:图 3.7 接口信号说明图可以在 1602 的液晶显示偏压信号端接一个可变电阻,调节显示亮度,初始状态时,调至 1602 上面一排显示 12 个黑块为止,lcd1602 电路图如下图 3.8 所示:图 3.8 lcd1602 电路图3.6 整体电路设计最终设计电路如下图 3.9 所示,4x4 键盘有键按下

16、就读出数据,最终在 lcd1602 液晶显示器上显示。第 10 页图 3.9 4x4 键盘显示电路第 11 页4 软件设计1、主程序设计:首先初始化 io 口和键盘、lcd1602,然后接收按键的键值,并通过 8位并行传输方式传送给 lcd1602 显示。2、获取键值程序:按照 4x4 键盘协议操作,键盘按下时发送通码,弹起时发送断码,在单片机中,将接收到的码字与第二套扫描码比较,得出键值。本次设计共采用 16 个键,模拟键。3、lcd 显示程序:首先初始化 lcd1602 端口和寄存器,然后接收单片机传送的数据,通过 1602 写操作时序显示接收到的数据。开始初始化键盘、lcd接收键值lcd

17、1602上显示处理键值4.1 程序整体设计框图第 12 页5 keil 与 proteus 联调在 protues 上进行仿真实验。首先使用 keilc 将编写完成的程序编译生成 hex 文件,将 hex 文件烧录到两片单片机中,进行仿真实验,结果如下图所示,可以看到,接收端已将接受到的数据完整的显示了出来。图 5.1 仿真效果图第 13 页结 论本系统采用第二套键盘扫描码,利用 4x4 键盘作为输入,准确度比普通键盘高,完成了系统的仿真图,电路图和程序设计,实现了系统的功能。本次设计完成后,在效果上能完全达到原先设计的功能。例如,通过按下按键“1” ,能将数值“1”发送到 lcd 上显示驱动

18、程序经 keil uvision3 编译,在 at89c52 上单片机通过,该模拟键盘接口可以作为一个接口模块嵌入到其他设备仪器和工程控制系统,增加了与pc 机的通信途径。在应用和测试结果分析中,该接口模块具有较高的可靠性与稳定性由于时间仓促和我们自身水平有限,本设计在功能上也只是完成了一些基本功能,对于电路的可靠性,稳定性等参数还未做过详细的测试。仿真中出现的一些问题,也尚未解决。经过繁忙而又紧张的课程设计,终于顺利的完成了设计任务。虽然在这段时间里每天都那么繁忙,但是在这忙碌的过程中却得到了许多的收获。经过课程设计,在查阅资料的过程中,学习了基于单片机的 c 语言程序设计,了解了单片机串行

19、通信的基本知识,对于以后的学习和工作都有很大的益处。在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。通过这次课程设计,锻炼了自己独立思考的能力。第 14 页参考文献参考文献1 张培仁.基于 c 语言编程 mcs-51 单片机原理与应用m. 北京:清华大学出版社,2003. 2 杨振江、杜铁军.流行单片机实用子程序及应用实例m.西安电子科技大学出版社,2002. 3 蔡美琴、张为民.mcs-51 系列单片机系统及其应用(第二版)m. 北京:高等教育出版社,2004.4 苏家健.单

20、片机原理及应用技术m. 北京:高等教育出版社,2004.5 c 语谭浩强.言程序设计(第三版)m.北京:清华大学出版社,2005.6 黄惟公.单片机原理与应用技术:西安电子科技大学出版社 20077 张毅刚.mc-51 单片机应用设计(二版):哈尔滨工业大学出版社 20058 李广第.单片机基础.北京:北京航空航天大学出版社9 杨文龙.单片微机原理及应用:西安电子科技大学出版社10 胡汉才.单片机原理及接口技术.北京:清华大学出版第 15 页附录附录 1 1:电路总图:电路总图图 附录 1 4x4 键盘显示电路总图第 16 页附录附录 2 2:软件代码:软件代码1 键码处理程序:#includ

21、e smc1602.hvoid vkeyprocess(unsigned char uckeycode)vwritecmd(0 xc7);switch(uckeycode)case 11:vshowonechar(1);break; /1case 12:vshowonechar(2);break; /2case 13:vshowonechar(3);break; /3case 21:vshowonechar(4);break; /4case 22:vshowonechar(5);break; /5case 23:vshowonechar(6);break; /6case 31:vshowone

22、char(7);break; /7case 32:vshowonechar(8);break; /8case 33:vshowonechar(9);break; /9case 41:vshowonechar(0);break; /0case 14:vshowonechar(a);break; /acase 24:vshowonechar(b);break; /bcase 34:vshowonechar(c);break; /ccase 44:vshowonechar(d);break; /d case 43:vshowonechar(#);break; /#case 42:vshowonech

23、ar(*);break; /*default:break;2 键盘扫描子程序:#include 第 17 页#define scanport p1 /44 键盘扫描端口,低 4 位是行线,高 4 位是列线。 /采用逐列扫描的方法,无按键时,低 4 位输出 1,高 4位输出 0。 /当有按键时,高 4 位输出扫描电位,低 4 位输入扫描结果。/*/* *全局变量*unsigned char uca_linescan4=0 xef,0 xdf,0 xbf,0 x7f;/列线扫描电压,分为第1,2,3,4 根列线 /为低电平,其他为高电平。/*/* *函数实现* /*unsigned char uc

24、keyscan()unsigned char uctemp=0; /扫描状态暂存。unsigned char ucrow=0,ucline=0; /行号,列号。for(ucline=0;ucline4;ucline+)/列扫描scanport=uca_linescanucline; /输出扫描电位。uctemp=scanport&0 x0f; /输入扫描电位,并屏蔽高 4 位。if(uctemp!=0 x0f) /判断该列是否有按键按下。switch(uctemp)case 0 x0e: ucrow=10;break; /如果有,则判断行号。case 0 x0d: ucrow=20;b

25、reak;case 0 x0b: ucrow=30;break;case 0 x07: ucrow=40;break;default: ucrow=50;break;第 18 页break; /scanport=0 x0f; /恢复 p1 口return ucrow+ucline+1;/返回按键编码。格式为 2 位数,高位为行号,低位为列号。3 驱动程序:/*#include /#define lcdrs p2_0 /寄存器选择信号: /0-数据寄存器; /1-指令寄存器。#define lcdrw p2_1 /读写信号: /1-读 lcd; /0-写 lcd。#define lcde p2_2 /片选信号,当输入下降沿信号时, /执行指令或传送数据。#define lcdport p0 /lcd 数据接口。/* *延时函数*/*void vdelay()unsigned int uicount;for(uicount=0;uicount: vwriteda

温馨提示

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

评论

0/150

提交评论