课程设计-制作单片机的4X4矩阵键盘(共22页).doc

上传人:飞****2 文档编号:14497650 上传时间:2022-05-04 格式:DOC 页数:22 大小:196.50KB
返回 下载 相关 举报
课程设计-制作单片机的4X4矩阵键盘(共22页).doc_第1页
第1页 / 共22页
课程设计-制作单片机的4X4矩阵键盘(共22页).doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《课程设计-制作单片机的4X4矩阵键盘(共22页).doc》由会员分享,可在线阅读,更多相关《课程设计-制作单片机的4X4矩阵键盘(共22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上目录摘要电子信息行业将是人类社会的高科技行业之一,是设施现代化的基础,也是人类通往科技巅峰的直通车。电子行业的发展很重要,而计算机技术是现代科技发展的重要组成部分。矩阵式键盘控制系统可以提高效率,是进行按键操作管理的有效方法,它可以提高系统准确性,有利于资源的节约,降低对操作者本身的要求。并能正确、实时、高效地显示按键信息,以提高工作效率和资源利用率。矩阵式键盘是当今使用最为广泛的键盘模式,该系统以N个端口连接控制N*N个按键,并通过单片机,显示在LED数码管上。单片机控制键盘显示系统,可以对不同的按键进行实时显示,其核心是单片机、键盘矩阵电路和数码管显示电路。4*4

2、矩阵式键盘以AT89C51单片机为核心,主要由矩阵式键盘电路、显示电路等组成,软件选用C语言编程。单片机将检测到的按键信号转换成数字量,显示于LED显示器上。该系统灵活性强,易于操作,可靠性高,广泛应用于各种场合。第一章 硬件部分第一节 AT89C51AT89C51是一种带4KFLASH(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位,俗称。AT89C51为很多提供了一种灵活性高且价廉的方案。引脚如图所示 AT89C51图1 AT89C51管脚图AT89C51其具有以下特性:与MCS-51 兼容 4K

3、字节可编程FLASH 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级锁定 1288位内部RAM 32可编程I/O线 两个16位/计数器 5个 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 特性概述:AT89C51 提供以下标准功能:4k Flash ,128字节内部RAM,32 个I/O 接口,两个16位定时/计数器,一个5向量两级中断结构,一个全双工口,片内振荡器及。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,口及继续工作。掉电方式保存RAM中的内容,

4、但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 管脚说明:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为输入。P0能够用于外部程序数据,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在

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

6、后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(写选通) P3.7 /RD(读选通) P3口同时为闪烁编程和编程校验接收一些。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个的高电平时间。 ALE/PROG:当访问外部时,允许的用于

7、锁存地址的低位字节。在FLASH期间,此用于输入脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该被略微拉高。如果在外部执行状态ALE禁止,置位无效。 /PSEN:外部的选通信号。在由外部程序取指期间,每个两次/PSEN有效。但在访问存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序(000

8、0H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。振荡和陶瓷振荡均可采用。如采用外部驱动器件,XTAL2应不接。有余输入至内部要通过一个二分频,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 第二节4*4矩阵式键盘1.2.1

9、矩阵式键盘介绍矩阵式键盘(或者叫行列式键盘)常应用在按键数量比较多的系统之中。这种键盘由行线和列线组成,按键设置在行、列结构的交叉点上,行、列线分别接在按键开关的两端。行列式键盘可分为非编码键盘和编码键盘两大类。编码键盘内部设有键盘编码器,被按下键的键号由键盘编码器直接给出,同时具有防抖和解决重键的功能。非编码键盘通常采用软件的方法,逐行逐列检查键盘状态,当有键按下时,通过计算或查表的方法获取该键的键值,通常,计算机通过程序控制对键盘扫描,从而获取键值,根据计算机扫描的方法可以分为定时扫描法和中断扫描法两种。本系统中的4*4矩阵式键盘结构简单,按键数较少,采用非编码式键盘,当有键按下时,由单片

10、机通过程序扫描确定键值,并将获得的键值通过LED数码管显示出来,4*4矩阵式键盘结构及键值分布如下图:图2 4*4矩阵键盘原理结构图1234567890ABCDEF图3 键盘键值分布1.2.2 键盘扫描原理为了更加贴近实际应用,本系统采用中断式扫描法,这样可以节约单片机开销,提高单片机工作效率,使得单片机在没有键盘输入时可以处理其他工作,其具体工作过程为:在没有键按下时矩阵键盘行线接高电平,列线接低电平,当某个键被按下时,该按键所在行线电位被拉低,触发单片机的外部中断INT0,进入中断子程序,在中断程序中,单片机对矩阵键盘进行扫描以确定按下的键值,扫描过程如下:1、 检测行线电平,确定是否有按

11、键被按下;2、 延时去抖动;3、 重新确认是否有按键被按下,若有,扫描键值,若没有,返回主程序;4、 扫描键值,首先行线接高电平,列线接低电平,对行线电平进行检测,以确定按下的键所在的行;5、 行线接低电平,列线接高点平,对列线电平进行检测,确定按下的键所在的列;6、 将扫描所得的按键值送入LED数码管显示。第三节 LED数码管LED(发光二级管)显示器件是计算机控制控制系统中的廉价输出设备,它由多个发光二极管组成,能显示许多种字符。由于制作材料不同,LED可以发出红、黄、篮、紫等各种单色光,一个发光二级管正常发光时的电流大约为10mA,本系统中使用的是七段共阴极LED数码管。图4、5所示为七

12、段共阴极LED显示器件的结构及外形图。七段LED显示器件就是将7个发光二极管按一定的方式组合在一起,如图4所示。abcdefgCOMagdfebc图4 7段LED显示器件外形图aaaaaaaCOM 图5 7段LED显示器件结构图下表给出了共阴极7段LED显示器件所能显示的部分字符与7段控制显示代码的对应关系表1 . 共阴极7段LED显示器件所能显示的部分字符与7段控制显示代码的对应关系显示字符控制显示代码(十六进制)显示字符控制显示代码(十六进制)106A7725BB7C34FC39466D5E56DE7967DF71707H7687FP7396F-4003F不显示00在本系统中,4*4键盘共

13、有16个键,对其编号09,AF,所以用一个7段数码管静态显示即可满足即时显示按键信息的要求。所谓静态显示,就是当显示器件显示某个字符时,相应的显示段(发光二级管)恒定地导通或截止,直到显示另一个字符为止。这种显示方式显示一个字符时,只需要微处理器送一次代码,因此占用机时少,而且显示稳定可靠,其缺点是,使用元器件相对较多,且线路比较复杂,相对而言成本较高,比较适合显示位数较少的情况。第四节 硬件电路连接1.4.1 单片机始终电路时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XT

14、AL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图6所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图6中外接晶体以及电容C1和C2构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz 。1.4.2单片机复位电路为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片

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

16、行线,P2.4P2.7接列线,初始化和无按键按下时,P2.0P2.3输出高电平,P2.4P2.7输出低电平,当P2.0P2.3中某个位为低电平时说明有按键按下,触发单片机中断完成相应功能,键盘与单片机的连接如图5.1.4.4 LED数码管显示电路LED显示器接在单片机的P1口,其中P1.0P1.6接LED的控制端,P1.7接COM端,工作时P1.7端始终输出低电平,P1.0P1.6根据要显示的字符输出相应的数据。LED与单片机的连接如图5.。1.4.5 中断触发电路本系统采用中断处理方式,可以提高单片机的数据处理能力,有利于节能。由矩阵键盘连接电路可知,无按键按下时,行线始终为高电平,当有按键

17、按下时,相应的行线被拉为低电平,利用这一规律设计按键的中断触发电路:将四条行线接到74LS21(4输入与门)经过与运算后接到单片机的P3.2(INT0)口,设置INT0为下降沿触发,当行线中任意一条为低电平时,触发INT0中断,单片机调用中断子程序检测键值并输出到LED显示。电路图如图6.此外,长时间无按键按下时,为了节能,可以关闭LED显示,单片机关闭LED显示通过外部电路触发INT1中断完成。如图6所示,其中R1为1K。复位电路接在P3.3(INT1)口,设置INT1中断为低电平触发方式,当OFF按键按下时P3.3输入低电平,触发INT1中断,单片机调用相应中断程序使P1输出全为低电平,L

18、ED不显示字符图6 系统硬件连接图第二章 软件部分第一节 所用软件简介2.1.1 KeilKeil C51是Keil Software公司出品的51系列兼容C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的和功能强大的集成开发调试工具,全Windows界面,并将这些部分组合在一起。其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 系统

19、概述 Keil C51软件提供丰富的和功能强大的集成开发调试工具,全界面。另外重要的一点,只要看一下后生成的汇编代码,就能体会到Keil C51生成的效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil C51软件开发系统的整体结构 C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的(IDE),可以完成编辑、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑C或汇编源文件。然后分别由C51及C51编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文

20、件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行级调试,也可由使用直接对进行调试,也可以直接写入程序存贮器如EPROM中。 使用独立的Keil时,注意事项 标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 上的复位按钮只复位仿真芯片,不复位目标系统。 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目

21、标系统中使用。2.1.2 ProteusProteus是世界上著名的EDA工具(),从原理图布图、代码调试到与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是

22、目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。广泛应用于各个领域。Proteus为用户提供了丰富的资源,主要有:1Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。 2Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、。理论上同一种仪器可以在一个电路中随意的调用。 3除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出

23、来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。 4Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括和数字信号。在PROTEUS绘制好原理图后,调入已编译好的文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。 PROTEUS 是单片机课堂教学的先进助手。 PROTEUS不仅可将许多功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。 它的元器

24、件、连接线路等却和传统的实验硬件高度对应。这在相当程度上替代了传统的实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。 使用Prot

25、eus 进行单片机设计,是和相结合的综合运用,有利于培养学生的电路设计能力及的操作能力;在和全国大学生电子设计竞赛中,我们使用 Proteus 对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行开发成功之后再进行实际制作,能极大提高系统设计效率。因此,Proteus 有较高的推广利用价值。第二节 程序流程图开始主程序初始化LED数码管接通矩阵键盘行线高电平,列线低电平开中断INT0、INT1是否关闭LED显示执行INT0中断服务程序设置中断INT0、INT1触发方式执行INT1中断服务程序是否有

26、按键按下是是否否图7 主程序流程图INT0中断服务程序确认是否有按键按下延时去抖动重新确认是否有按键按下判断被按下键所在的行和列将所得键值送到LED显示返回主程序是否是否INT1中断服务子程序确认OFF键是否按下延时去抖动重新确认OFF键是否按下关闭LED数码管显示返回主程序否否是是图8 中断服务程序流程图第三节 程序#includevoid main()P1=0x00; /初始化LED数码管TCON=0x01; /设置INT0、INT1触发方式IE=0x85; /使能INT0、INT1中断while(1)P2=0x0f; /接通矩阵键盘 void counter0(void) interru

27、pt 0 /INT0中断服务程序char key,key_h,key_l,delay;if(P2!=0x0f) /确认是否有键按下for(delay=0;delay100;delay+); /延时去抖动if(P2!=0x0f) /重新确认是否有键按下P2=0x0f;key_h=P20x0f; /检测按键所在行P2=0xf0;key_l=P20xf0; /检测按键所在列key=key_h+key_l;switch(key) /确定按键值并送入LED显示case 0x11:P1=0x06;break;case 0x21:P1=0x5b;break;case 0x41:P1=0x4f;break;c

28、ase 0x81:P1=0x66;break;case 0x12:P1=0x6d;break;case 0x22:P1=0x7d;break;case 0x42:P1=0x07;break;case 0x82:P1=0x7f;break;case 0x14:P1=0x6f;break;case 0x24:P1=0x3f;break;case 0x44:P1=0x77;break;case 0x84:P1=0x7c;break;case 0x18:P1=0x39;break;case 0x28:P1=0x5e;break;case 0x48:P1=0x79;break;case 0x88:P1=

29、0x71;break;default : P1=0x00;break;void counter1(void) interrupt 1 /INT1中断服务程序char i;if(P33=0) /确认OFF键是否按下for(i=0;i100;i+); /延时去抖动if(P33=0) /重新确认复位键是否按下P1=0x00; /关闭LED显示第三章 仿真结果本章举几个方针结果的例子图9 1行1列(1)按下时仿真结果图10录管2 难,比如很多关于单片机的基础知识学的不是很好, 191919191919191919191919191919191919191919191919191919191919191

30、919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919 2行2列(6)按下时仿真结果 图11录管2 难,比如很多关于单片机的基础知识学的不是很好, 1919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919

31、19191919191919191919191919191919191919191919191919191919191919191919 4行3列(E)按下时仿真结果图12 OFF键按下时仿真结果心得体会通过本次单片机课程设计,我不仅加深了对单片机理论知识的理解,学会了学以致用的重要性;而且还学会了如何去加强锻炼创新精神,同时也提高了自身的动手能力,让我深刻的意识到理论与实际结合的重要性。在本次设计过程中,虽然设计的题目不是很难,但在实际操作过程当中也遇到了不少困难,通过遇到的困难也让我不断地去查找资料,不断地询问同学,不断地去开动自己的脑子,从而也不断地超越自我,让自己的知识能够得到不断地完

32、善;同时更重要的是,在这一设计过程当中,让我懂得了在学习的道路上会遇到很多的阻碍,但关键的是能做到坚持不懈,不轻易放弃;最终达到自己想要的目标。 单片机的学习对于我们专业来说非常的重要,通过本次设计也让我更加清晰了对专业的了解,理论知识再丰富,没有实际的操作经验也是不行的;本次设计也运用到了proteus仿真软件,由于之前没有学过该仿真软件,所以在操作的过程中遇到了很多困难,但庆幸的是通过不断的学习,对proteus软件也有了很大的了解,也学会了一些简单的操作,所以也让我意识到,如果你想学好,通过自己的努力就一定会学好。当然在本次设计过程中,也遇到了很多的困难,比如很多关于单片机的基础知识学的不是很好。当然在设计过程中也少不了同学们的互相帮助,要是没有同学帮助的帮助,我想我一个人也不可能在短时间内完成设计要求;所以在此也要感谢在设计中给予我帮助的指导老师和同学们。参考文献1、单片机原理及应用技术 国防工业出版社 张淑清等编著2、计算机控制技术(第二版) 电子工业出版社 朱玉玺等编著3、数字电子技术基础(第五版) 高等教育出版社 阎石主编4、51单片机快速上手 机械工业出版社 陈志旺 李亮等编著5、Visual C+使用教程 电子工业出版社 郑阿奇主编专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁