数码管显示4×4矩阵键盘的键盘号万意讲解_第1页
数码管显示4×4矩阵键盘的键盘号万意讲解_第2页
数码管显示4×4矩阵键盘的键盘号万意讲解_第3页
数码管显示4×4矩阵键盘的键盘号万意讲解_第4页
数码管显示4×4矩阵键盘的键盘号万意讲解_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、数码管显示数码管显示 4X44X4 矩阵键盘的键盘号矩阵键盘的键盘号 学学 院:物理与电子工程学院院:物理与电子工程学院 专专 业:自动化业:自动化 班班 级:级:13 级级 7 班班 学学 号:号姓姓 名:万名:万 意意 指导教师:马世榜指导教师:马世榜 日日 期:期:2013 年年 12 月月 31 日日 目录目录 单片机大作业 目录 2 1 1 引言引言.1 2 2 设计方案设计方案.2 3 3 硬件设计硬件设计.2 3.13.1 AT89S51AT89S51 .2 3.23.2 4*44*4 矩阵式键盘矩阵式键盘 .5 3.2.13.2.1 矩阵式键盘介绍矩阵

2、式键盘介绍.5 3.2.23.2.2 键盘扫描原理键盘扫描原理.6 3.33.3 硬件电路连接硬件电路连接.9 3.4.13.4.1 单片机时钟电路单片机时钟电路.9 3.4.23.4.2 单片机复位电路单片机复位电路.9 3.4.33.4.3 矩阵式键盘电路矩阵式键盘电路.9 3.4.43.4.4 LEDLED 数码管显示电路数码管显示电路.9 4 4 软件设计软件设计.11 4.14.1 所用软件简介所用软件简介.11 4.1.14.1.1 KeilKeil.11 4.1.24.1.2 ProteusProteus.11 4.24.2 程序流程图程序流程图.13 4.34.3 源程序源程序

3、.14 5 5 电路原理图电路原理图.16 参考文献参考文献.17 单片机大作业 引言 1 1 1 引言引言 矩阵式键盘乃是当今使用最为广泛的键盘模式,该系统以 N 个端口连接控制 N*N 个按键,即时在 LED 数码管上。单片机控制的据这是键盘显示系统,该系统 可以对不同的按键进行实时显示,其核心是单片机和键盘矩阵电路部分,主要对 按键与显示电路的关系、矩阵式技术及设备系统的硬件、软件等各个部分进行实 现。 4*4 矩阵式键盘采用 AT89S51 单片机为核心,主要由矩阵式键盘电路、译码 电路、显示电路等组成,软件选用汇编语言编程。单片机将检测到的按键信号转 换成数字量,显示于 LED 显示

4、器上。该系统灵活性强,易于操作,可靠性高,将 会有更广阔的开发前景。 单片机大作业 设计方案 2 2 2 设计方案设计方案 单片机的 P1 口的 P1.0P1.7 连接 44 矩阵键盘,P0 口控制一只数码管, 当 44 矩阵键盘中的某一按键按下时,数码管上显示对应的键号。例如,1 号键 按下时,数码管显示“1” , 14 号键按下时,数码管显示“E”等等。本论文主要 研究单片机控制的键盘识别显示系统,分别对按键信息和显示电路以及软、硬件 各个部分进行研究。 主要内容如下: 根据矩阵式键盘的特点,进行键盘控制系统的整体研究与设计; LED 实时显示按键信息; 采用软件编程的方法实现按键信息的提

5、取和显示。 单片机大作业 硬件设计 3 3 3 硬件硬件设计设计 3.13.1 AT89S51AT89S51 AT89S51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器, 俗称单片机。AT89S51 单片机为很多嵌入式控制系统 提供了一种灵活性高且 价廉的方案。 引脚如图所示 AT89S51 其具有以下特性: 与 MCS-51 兼容 4K 字节可编程 FLASH 存储器 寿命:1000 写/擦循环 数据保留时间: 10 年 全静态工作: 0Hz

6、-24MHz 三级程序存储器锁定 1288 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 图 3-1 AT89S51 管脚图 AT89S51 单片机大作业 硬件设计 4 5 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 特性概述: AT89S51 提供以下标准功能: 4k 字节 Flash 闪速存储器 ,128 字节内 部 RAM,32 个 I/O 接口,两个 16 位定时/计数器,一个 5 向量两级中断结 构,一个全双工 串行通信口,片内振荡器及 时钟电路。同时,AT89S51 可降 至 0Hz 的静态逻辑操作,并支持两种 软件可选的节电工

7、作模式。空闲方式停 止 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。 掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到 下一个硬件复位。 管脚说明: VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。 当 P0 口的管脚第一次写 1 时,被定义为 高阻输入。P0 能够用于外部程序数 据存储器,它可以被定义为数据 /地址的低八位。在 FIASH 编程时,P0 口作 为原码输入口,当 FIASH 进行校验时, P0 输出原码,此时 P0 外部必须接上 拉电阻。 P1

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

9、16 位地址外部数 据存储器进行存取时, P2 口输出地址的高八位。在给出地址 “1”时,它利 用内部上拉优势,当对外部八位地址数据 存储器进行读写时, P2 口输出其 特殊功能寄存器 的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和 单片机大作业 硬件设计 5 控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输 入。作为输入,由于外部下拉为低电平, P3 口将输出电流( ILL)这是由于 上拉的缘故。 P3 口也可作为 AT89S51 的一些特殊功能口,如

10、下表所示: 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:当访问外部 存储器时,地址锁存允许的输出电平用于锁存地 址的低位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平

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

12、EA 保持低电平时,则在此期间外部程序 存储器(0000H- FFFFH) ,不管是否有内部程序存储器。注意加密方式1 时,/EA 将内部锁定 为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在FLASH 编程期 单片机大作业 硬件设计 6 间,此引脚也用于施加 12V 编程电源(VPP) 。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置 为片内振荡器。 石晶振荡和陶瓷振荡均可采用。如采用外部 时钟源驱动器件, XTAL2 应不接。有余输

13、入至内部 时钟信号要通过一个二分频 触发器,因此对 外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 3.23.2 4*44*4 矩阵式键盘矩阵式键盘 3.2.13.2.1 矩阵式键盘介绍矩阵式键盘介绍 矩阵式键盘(或者叫行列式键盘)常应用在按键数量比较多的系统之中。这 种键盘由行线和列线组成,按键设置在行、列结构的交叉点上,行、列线分别接 在按键开关的两端。行列式键盘可分为非编码键盘和编码键盘两大类。编码键盘 内部设有键盘编码器,被按下键的键号由键盘编码器直接给出,同时具有防抖和 解决重键的功能。非编码键盘通常采用软件的方法,逐行逐列检查键盘状态,当 有键按下时,通过计算或

14、查表的方法获取该键的键值,通常,计算机通过程序控 制对键盘扫描,从而获取键值,根据计算机扫描的方法可以分为定时扫描法和中 断扫描法两种。 本系统中的 4*4 矩阵式键盘结构简单,按键数较少,采用非编码式键盘,当 有键按下时,由单片机通过程序扫描确定键值,并将获得的键值通过 LED 数码管 显示出来,4*4 矩阵式键盘结构及键值分布如下图: 单片机大作业 硬件设计 7 图 3-2 矩阵式键盘电路原理图 3.2.23.2.2 键盘扫描原理键盘扫描原理 为了更加贴近实际应用,本系统采用中断式扫描法,这样可以节约单片机开 销,提高单片机工作效率,使得单片机在没有键盘输入时可以处理其他工作,其 具体工作

15、过程为: 在没有键按下时矩阵键盘行线接高电平,列线接低电平,当某个键被按下时, 该按键所在行线电位被拉低,触发单片机的外部中断 INT0,进入中断子程序,在 中断程序中,单片机对矩阵键盘进行扫描以确定按下的键值,扫描过程如下: 1、检测行线电平,确定是否有按键被按下; 2、延时去抖动; 3、重新确认是否有按键被按下,若有,扫描键值,若没有,返回主程序; 1234 5678 90AB CDEF 图 3-3 键盘键值分布 单片机大作业 硬件设计 8 4、扫描键值,首先行线接高电平,列线接低电平,对行线电平进行检测, 以确定按下的键所在的行; 5、行线接低电平,列线接高点平,对列线电平进行检测,确定

16、按下的键 所在的列; 6、将扫描所得的按键值送入 LED 数码管显示。 3.33.3 LEDLED 数码管数码管 LED(发光二级管)显示器件是计算机控制控制系统中的廉价输出设备,它 由多个发光二极管组成,能显示许多种字符。由于制作材料不同,LED 可以发出 红、黄、篮、紫等各种单色光,一个发光二级管正常发光时的电流大约为 10mA, 本系统中使用的是七段共阴极 LED 数码管。 图 4、5 所示为七段共阴极 LED 显示器件的结构及外形图。七段 LED 显示器 件就是将 7 个发光二极管按一定的方式组合在一起,如图 4 所示。 a b c d e f g COM a g d f e b c

17、图 3-4 7 段 LED 显示器件外形 图 aaa aa aa COM 图 3-5 7 段 LED 显示器件结构 图 单片机大作业 硬件设计 9 下表给出了共阴极 7 段 LED 显示器件所能显示的部分字符与 7 段控制显示代 码的对应关系 表 3-1 共阴极 7 段 LED 显示器件所能显示的部分字符与 7 段控制显示代码的对应关系 显示字符控制显示代码(十六进制) 显示字符控制显示代码(十六进制) 106A77 25BB7C 34FC39 466D5E 56DE79 67DF71 707H76 87FP73 96F-40 03F不显示00 在本系统中,4*4 键盘共有 16 个键,对其编

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

19、成振荡器的高增 益反向放大器,引脚 XTALl 和 XTAL2 分别是此放大电器的输入端和输出端,由于 单片机大作业 硬件设计 10 采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种 方式,如图 6 所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振 荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一 起可构成一个自激振荡器并产生振荡时钟脉冲。 图 6 中外接晶体以及电容 C1 和 C2 构成并联谐振电路,它们起稳定振荡频率、 快速起振的作用,其值为 30pF 左右,晶振频率选 11.0592MHz 。 3.4.23.4.2 单片机复位电路单

20、片机复位电路 为了初始化单片机内部的某些特殊功能寄存器,必须利用复位电路,复位后 可使 CPU 及系统各部件处于确定的初始状态,并从初始状态开始正常工作。 单片机的复位是靠外电路来实现的,在正常运行情况下,只要 RST 引脚上出 现两个机器周期时间以上的高电平,即可引起系统复位,但如果 RST 引脚上持续 为高电平,单片机就处于循环复位状态。复位后系统将输入/输出(1/0)端口寄存 器置为 FFH,堆栈指针 SP 置为 07H, SBUF 内置为不定值,其余的寄存器全部清 0,内部 RAM 的状态不受复位的影响,在系统上电时 RAM 的内容是不定的。复位 操作有两种情况,即上电复位和手动(开关

21、)复位。本系统采用上电复位方式。 图 6 中 R2、R3 和 C3 组成上电复位电路,其值 R2、R3 取为 1K, C3 取为 10pF。 3.4.33.4.3 矩阵式键盘电路矩阵式键盘电路 4*4 矩阵式键盘接于单片机的 P2 口,P2.0P2.3 接行线,P2.4P2.7 接列线, 初始化和无按键按下时,P2.0P2.3 输出高电平,P2.4P2.7 输出低电平,当 P2.0P2.3 中某个位为低电平时说明有按键按下,触发单片机中断完成相应功能, 键盘与单片机的连接如图 5. 3.4.43.4.4 LEDLED 数码管显示电路数码管显示电路 LED 显示器接在单片机的 P1 口,其中 P

22、1.0P1.6 接 LED 的控制端,P1.7 接 COM 端,工作时 P1.7 端始终输出低电平, ,P1.0P1.6 根据要显示的字符输出相 应的数据。 单片机大作业 硬件设计 8 图 3-6 系统硬件连接图 单片机大作业 软件设计 12 4 4 软件软件设计设计 4.14.1 所用软件简介所用软件简介 4.1.14.1.1 KeilKeil Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发 系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优 势,因而易学易用。用过汇编语言后再使用 C 来开发,体会更加深刻。Ke

23、il C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面,并将 这些部分组合在一起。其方便易用的集成环境、强大的软件仿真调试工具也会令 你事半功倍。Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码 很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 1.系统概述 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界 面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil C51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在 开发大型软件时更能体现高级语言

24、的优势。 Keil C51 单片机软件开发系统的整体结构 C51 工具包的整体结构,uVision 与 Ishell 分别是 C51 for Windows 和 for Dos 的集成开发环境(IDE) ,可以完成编辑、编译、连接、调试、仿真等整个开发流 程。开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源文件。然后分别由 C51 及 C51 编译器编译生成目标文件(.OBJ) 。目标文件可由 LIB51 创建生成库文件, 也可以与库文件一起经 L51 连接定位生成绝对目标文件(.ABS) 。ABS 文件由 OH51 转换成标准的 Hex 文件,以供调试器 dScope51 或 tSc

25、ope51 使用进行源代码级调 试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如 EPROM 中。 使用独立的 Keil 仿真器时,注意事项 仿真器标配 11.0592MHz 的晶振,但用户可以在仿真器上的晶振插孔中换插其他 频率的晶振。 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 仿真芯片的 31 脚(/EA)已接至高电平,所以仿真时只能使用片内 ROM,不能使 用片外 ROM;但仿真器外引插针中的 31 脚并不与仿真芯片的 31 脚相连,故该仿 真器仍可插入到扩展有外部 ROM(其 CPU 的/EA 引脚接至低电平)的目标系统中 使用。 4.1.24.1.2 P

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

27、机大作业 软件设计 13 它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目 前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单 片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青 睐。广泛应用于各个领域。 Proteus 为用户提供了丰富的资源,主要有: 1Proteus 可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元 器件,有 30 多个元件库。 2Proteus 可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI 调 试器、I2C 调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。 理论上

28、同一种仪器可以在一个电路中随意的调用。 3除了现实存在的仪器外,Proteus 还提供了一个图形显示功能,可以将线路上 变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。 这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。 这些都尽可能减少了仪器对测量结果的影响。 4Proteus 可提供的调试手段 Proteus 提供了比较丰富的测试信号用于电路的 测试。这些测试信号包括模拟信号和数字信号。 在 PROTEUS 绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在 PROTEUS 的原理图中看到模拟的实物运行状态和过程。 PROTEUS

29、是单片机课堂教学的先进助手。 PROTEUS 不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程 形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验 难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上 替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、 电路修改、软件调试、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于 PROTEUS 提供了实验 室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在 数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、

30、创 造精神的平台 随着科技的发展, “计算机仿真技术”已成为许多设计部门重要的前期设计手段。 它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为 减少,也可降低工程制造的风险。相信在单片机开发应用中 PROTEUS 也能茯得愈 来愈广泛的应用。 使用 Proteus 软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多媒体技 术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力; 在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境 对学生进行培训,在不需要硬件投入的条件下,学生普遍反映,对单片机的学习 比单纯学习书本知识更容易接受

31、,更容易提高。实践证明,在使用 Proteus 进 行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因 此,Proteus 有较高的推广利用价值。 单片机大作业 软件设计 14 4.24.2 程序流程图程序流程图 开始 主程序 初始化 LED 数码管 接通矩阵键盘 行线高电平,列线低电平 开中断 INT0、INT1 是否关闭 LED 显示 执行 INT0 中断服务程序 设置中断 INT0、INT1 触发方式 执行 INT1 中断服务程序 是否有按键 按下 是是 否 否 图 4-1 主程序流程图 单片机大作业 软件设计 15 4.34.3 源程序源程序 #include void main() P1=0 x00; /初始化 LED 数码管 TCON=0 x01; /设置 INT0、INT1 触发方式 IE=0 x85; /使能 INT0、INT1 中断 while(1) P2=0 x0f; /接通矩阵键盘 void counter0(void) interrupt 0 /INT0 中断服务程序 char

温馨提示

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

评论

0/150

提交评论