4x4矩阵键盘与LED灯输出设计_第1页
4x4矩阵键盘与LED灯输出设计_第2页
4x4矩阵键盘与LED灯输出设计_第3页
4x4矩阵键盘与LED灯输出设计_第4页
4x4矩阵键盘与LED灯输出设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、交通与汽车工程学院课程设计说明书课 程 名 称: 微机原理及应用课程设计 课 程 代 码: 8 2 3 4 5 7 0 题 目: 4x4矩阵键盘与LED灯输出设计 年级/专业/班: 学 生 姓 名: 学 号: 开 始 时 间: 2012 年 07 月 02 日完 成 时 间: 2012 年 07 月 06 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日目录摘 要 21.1 问题的提出 3 1.2任务与分析 4 2 系统方案设计 42.2 系统总体框图 5 3 系统硬件电路设

2、计53.1 89C52单片机5 3.2 时钟电路8 3.3 复位电路8 3.4 矩阵式键盘电路 9 3.5 译码显示电路 11 4 系统软件设计 13 4.1 proteus软件环境介绍 13 4.2 Protel软件环境介绍14 ·4.3 系统软件分析 14 4.4 程序流程图 15 5 系统调试过程 18 结 论 21 致 谢 22 参考文献23附录124 附录2 27摘 要矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,即时在LED数码管上。单片机控制的据这是键盘显示系统,该系统可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要

3、对按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实现。矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。4*4矩阵式键盘采用89C52单片机为核心,主要由矩阵式键盘电路、

4、译码电路、显示电路等组成,软件选用汇编语言编程。单片机将检测到的按键信号转换成数字量,显示于LED灯上。该系统灵活性强,易于操作,可靠性高,将会有更广阔的开发前景。关键词: 89C52单片机 4*4矩阵 LED灯1 引 言 1.1 问题的提出 矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按

5、键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。矩阵式键盘简介:矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为N*N个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。最常见的键盘布局如图所示。一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。32107654BA98FEDC图1-1 矩阵式键盘的按钮1.2任务与分析 本次设计的系统的控制中心是89C

6、52单片机。首先,在Protel软件环境中进行硬件电路图的设计。然后在8052软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。此.hex文件是硬件电路运行实现的源代码来源。把.hex文件加载到AT89C52单片机芯片,然后在Proteus软件环境中运行硬件电路,LED灯就可以正常显示了。 本设计的系统主要由:AT89C52为中央处理芯片,用于数据处理,初值设定。矩阵键盘电路是本设计的核心模块,由他提供输入信息并由LED灯显示,用C语言进行编程。本系统可以分为以下4大模块:1、AT89C52模块:用于数据处理,和矩阵电路通信,并控制信息传输过程,采集输入信息并予

7、以处理。2、矩阵电路 模块:实时输入可以通过软件编程来实现,这种方法需要编制的程序比较简单。3、LED显示模块:显示模块采用普通的LED数码管,此模块用于实时的显示输入信息。4、程序:包括单片机控制电路的接口程序(实现单片机和矩阵电路及LED灯之间的数据传输过程)和显示程序。2 系统方案设计2.1 系统设计方案通过查阅相关资料,设计初期共有2个方案供我选择,分别是:(1)采用89C2051单片机组成的系统;(2)采用89C52单片机组成的系统。(1)采用89C2051单片机组成的系统此系统的硬件部分主要是由89C2051单片机所组成。该系统硬件结构简单,但是单片机的I/O接口太少,不足以实现多

8、种功能,软件设计部分,程序冗长而复杂,易产生混淆。(2)采用89C52单片机组成的系统 这个方案采用89C52单片机,LED显示器,4*4键盘来组成系统的硬件。8052是8051的强化版,接口多于8051,功能稳定,实用性强。所以,本次设计选用AT89C52单片机组成的系统。2.2 系统总体框图图2-1 系统总体框图 当程序启动后,程序进入初始化阶段。单片机将从程序中键盘按钮初始化,得到对应的值。再反馈给LED灯,输入值是多少,就亮多少个灯。3 系统硬件电路设计3.1 89C52单片机  AT89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Program

9、mable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C52是它的一种强化版本。AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。图3-1 89C52单片机引脚图 89C52单片机与早期

10、Intel的8051/8751/8031芯片的外部引脚和指令系统完全兼容,只不过用Flash ROM 替代了ROM/EPROM而已3。89C52单片机内部结构如图所示。图3-2 89C52单片机内部结构示意图各引脚的功能如下:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高3。P1口:P1口是一个内部提供上拉电阻

11、的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址

12、数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振

13、荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR 8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA:当/EA保持低电平时,则在此期间CPU只访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式

14、1时,/EA将内部锁定为RESET;当/EA端保持高电平时,则执行内部程序存储器中的程序。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 89C52的主机系统图如下所示:3.2 时钟电路图3-3中外接晶体以及两个电容构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz3.3 复位电路 为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工

15、作。 单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存器置为FFH,堆栈指针SP置为07H, SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时RAM的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。图3-3 单片机主机系统图3.4 矩阵式键盘电路AT89C52单片机的并行口P1接4×4矩阵键盘,以P1.0P1.3作输入线,以P1.4P1.7

16、作输出线;P1口输出按键信息,在LED灯上显示相应的亮灭数目。实际电路图连接如图3-4所示。图3-4 矩阵式键盘电路由于键盘按钮的不稳定性,所以设计时特别添加了防抖动程序,系统可以一延时程序判定按键是否因为抖动而按下,从而判定是否为有效输入信号其流程图如下所示:图 3-5 矩阵键盘流程图3.5 译码显示电路译码电路中常用的显示器有LED(数码管)和LCD(液晶显示器)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点。本系统输出结果选用16个LED灯(发光二极管)显示。正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于各引脚上是否是高电平。其电路图如图3-6所示。图3-6

17、译码显示电路当按键0闭合时,亮1个二极管;当按键1闭合时,亮2个二极管;当按键2闭合时,亮3个二极管;当按键3闭合时,亮4个二极管;当按键4闭合时,亮5个二极管;当按键5闭合时,亮6个二极管;当按键6闭合时,亮7个二极管;当按键7闭合时,亮8个二极管;当按键8闭合时,亮9个二极管;当按键9闭合时,亮10个二极管;当按键A闭合时,亮11个二极管;当按键B闭合时,亮12个二极管;当按键C闭合时,亮13个二极管;当按键D闭合时,亮14个二极管;当按键E闭合时,亮15个二极管;当按键F闭合时,二极管全亮。译码显示电路的流程图如下图(图3-7)所示:图3-7 译码显示电路流程图4 系统软件设计4.1 p

18、roteus软件环境介绍本系统的硬件设计首先是在Proteus软件环境中仿真实现的。Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,它的电路仿真是互动的。针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。如果有显示及输出,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,还能看到运行后输入输出的效果。Proteus建立了完备的电子设计开发环境,尤其重要的是Proteus

19、Lite可以完全免费,也可以花微不足道的费用注册达到更好的效果2。Proteus是目前最好的模拟单片机外围器件的工具。可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件.)。其实Proteus 与 multisim比较类似,只不过它可以仿真MCU,当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是初学者拥有它们的可能性比较小。当然,硬件实践还是必不可少的。在没有硬件的情况下,Proteus能像pspice 仿真模拟/数字电路那样仿真MCU及外围

20、电路。另外,即使有硬件,在程序编写早期用软件仿真一下也是很有必要的。Proteus软件主要具有以下几个方面的特点:1、设计和仿真软件Proteus 是一个很有用的工具,它可以帮助学生和专业人士提高他们的模拟和数字电路的设计能力。2、它允许对电路设计采用图形环境,在这种环境中,可以使用一个特定符号来代替元器件,并完成不会对真实电路造成任何损害的电路仿真操作。3、它可以仿真仪表以及可描述在仿真过程中所获得的信号的图表。4、它可以仿真目前流行的单片机,如PICS, ATMEL-AVR, MOTOROLA, 8051 等。5、在设计综合性方案中,还可以利用ARES开发印制电路板。·4.2 P

21、rotel软件环境介绍Protel印制板设计软件包是澳大利亚protel technology公司与1990年推出的电子CAD产品,具有方便、易学、实用、快速以及高速度、高步通率的特点。它采用了分层次下拉窗口菜单结构形式,用户基本上不需要记背太多的键盘命令,用鼠标点击菜单命令就能操作,protel有着很高的自动布线布通率。布通率是电子产CAD产品的一项重要指标,它反映电子元件在电路图中连接关系有多少能在印刷版图中实现。在设计常用的单、双面印制板时只要选择适当的元件布局和布线策略方法,protel就可以轻易的达到98%-100%的布通率。对于极少数不能布通的定方,protel可以用飞线指示出来,

22、引导用户用手工方法连通。另外,protel有强大的宏命令设置功能,利用宏命令功能多定义的热键可以大大提高操作速度1。 Protel对微机的软硬件配置要求很低:cpu在8088以上,dos2.0以上版本,内存640kb以上,双软件(或一个软件一个硬盘),单色显示器(多层板设计时最好用彩色),各种兼容打印机。也能在Windows9X平台的模拟DOS下运行。Protel已成为印制板设计加工方面的工业标准。据初步统计protel在CAD的市场占有率达 95%,成为电子产品制造业界的首选CAD软件。·4.3 系统软件分析 任何一个应用系统,它们都有着自己的硬件系统和软件系统,少了任何一个部分都

23、不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂,它对硬件系统起到扩充和完善的作用。可想而知软件系统与硬件系统同等重要,下面为系统软件设计过程:(1)程序设计过程因为使用了矩阵电路,在写程序是必须对单片机的P/I口进行初始化,以确定各键盘按钮所代表的信号。开始4.4 程序流程图键盘值初始化读列线是否有键按下 N Y延时去抖动读列线是否有键按下 N Y根据当前状态识别按键LED灯亮停止仿真图4-1 主程序流程图主程序流程图说明:因为使用了矩阵电路,只需要用单片机对每个按钮的值进行初始化。在首

24、次对按钮进行操作之前,必须对它进行初始化,然后进行按键的判断,如果按下键,则转去处理程序,若没按下键,则保持当前的状态。将正常显示的LED灯数目与按下的键做对比,看是否正确。5 系统调试过程通过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。通过调试可以检查出系统出现的一些错误,从而进行下一步的修改。(1)在Protel 99 SE中,对硬件电路图进行ERC电气规则检查。 图 5-1 protel原理图图5-2 ERC电气规则检查结果(2)程序调试程序经过调试显示“0错误,0警告”。表示程序调试通过。图5-3 程序调试通过示意图(3)prot

25、ues调试在进行protues调试前,应先用Keil uVision4创建一个后缀名为“.hex”的文件,创建的流程图如下所图示:开始打开Keil uVision4写入源代码生成名为lyz.c的文件创建一个group,选择AT89C52,并把lyz.c加入进去编译并生成“.hex”文件结束 图5-4 hex文件生成流程图图5-5 protues仿真图结 论通过此次的单片机课程设计,我不仅加深了对单片机理论的理解,深刻懂得了要不断地时间才能掌握知识,而且还学会了如何去加强锻炼创新精神,从而不断地战胜自己,超越自己。创新,是要我们将理论很好地联系实际,并不断地去开动自己的脑子,从为先到并做到别人没

26、想到没做到的事,不断地超越别人,超越自己;同时,更重要的是,在这一设计过程中,我懂得了坚持不懈,不轻易言弃是每个理工科学子应具备的良好素质。设计过程,也好比是我们的成长的历程,常有一些不如意的事情发生,这就对我们提出了挑战。只要自己坚持,坚持,再坚持,再苦再累也值得。 机遇青睐有准备的人。这个设计过程中,我遇到过许多的考验,给整个设计带来的困扰,但最后还是坚持了下来.回头想想这个设计的过程,我明白了,原来结果并不是那么得重要,我们更应该注重的是过程。系统以单片机AT89C52为核心部件,单片机系统完成对按键信号识别、检测、处理、显示等功能,用Proteus软件绘制电路原理图,利用C语言编制程序

27、。这个系统设计能让我们更好地去认识和使用单片机,矩阵式键盘,节约I/O口资源,引脚分配,实时显示,芯片应用,编程实践,还有诸如此类的优点.本次设计只涉及了一部分的功能,可以将之使用在电话座机中。在进一步的研究中还可以考虑加入声音的播放等功能,相信会使之更加完善。致 谢在陈飞老师的指导下,在孙为民、杨冬、刘镇伟等同学的帮助下,我完成了本次设计。本设计从选题到完成,每一步都是在他们的指导和帮助下完成的,倾注了老师和同学们大量的心血及努力。另外,本设计的完成也离不开其他老师和各位同学给我的建议和帮助,是他们让我明白了团队合作的精神。在此,我谨向陈飞老师和帮助过我的老师和同学们,表示崇高的敬意和衷心的

28、感谢!参考文献1Protel99SE EDA 技术及应用徐峥颖编著,北京:机械工业出版社,20052单片机系统的protues设计与仿真张靖武编著,北京:电子工业出版社,20073单片机原理及接口技术李朝青编著,北京:北京航空航天大学出版社,20054MCS-51单片机应用开发实用子程序边春远编著,北京:人民邮电出版社,2005附录1源程序:#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define SCANPORT P1uchar uca_LineScan4=0xEF,0xDF,0xBF,0x7F;uchar ucKeyScan()uchar Temp=0; uchar ucRow=0,ucLine=0; for(ucLine=0;ucLine<4;ucLine+)SCANPORT=uca_LineScanucLine; Temp=SCANP

温馨提示

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

评论

0/150

提交评论