收藏 分享(赏)

4×4矩阵式键盘识别显示电路的设计.doc

上传人:hwpkd79526 文档编号:6760335 上传时间:2019-04-22 格式:DOC 页数:22 大小:4.07MB
下载 相关 举报
4×4矩阵式键盘识别显示电路的设计.doc_第1页
第1页 / 共22页
4×4矩阵式键盘识别显示电路的设计.doc_第2页
第2页 / 共22页
4×4矩阵式键盘识别显示电路的设计.doc_第3页
第3页 / 共22页
4×4矩阵式键盘识别显示电路的设计.doc_第4页
第4页 / 共22页
4×4矩阵式键盘识别显示电路的设计.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、学 院:物理与电子工程学院专 业:自动化班 级:13 级 7 班学 号:13006220730姓 名:梁检满指导教师:马世榜日 期:2013 年 12 月 31 日单片机大作业 目录I目录1 引言 12 设计方案 22.1 4*4 矩阵式键盘概述 .22.2 设计要求 22.3 设计思想 .23 硬件电路设计 33.1 单片机控制系统原理 332 单片机主机系统电路 33.2.1 时钟电路 73.2.2 复位电路 73.2.3 单片机最小系统 73.3 译码显示电路 .84 软件设计 114.1 软件流程图 .114.2 源程序 .115 总电路原理图 17参考文献 .18单片机大作业 引言1

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

3、AT89C51 单片机为核心,主要由矩阵式键盘电路、显示电路等组成,软件选用 C 语言编程。单片机将检测到的按键信号转换成数字量,显示于 LED 显示器上。该系统灵活性强,易于操作,可靠性高,广泛应用于各种场合。单片机大作业 设计方案22 设计方案2.1 4*4 矩阵式键盘概述矩阵式键盘又称行列键盘,它是用 N 条 I/O 线作为行线,N 条 I/O 线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样既降低了成本,又提高了精确度,省下了很多的 I/O 端口为他用,相反,独立式按键虽编程简单,但占用 I/O 口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数

4、字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要 12 到 16 个按键,在这种情况下如果用独立式按键的话,显然太浪费 I/O 端口资源,为了解决这一问题,就使用矩阵式键盘。最常见的键盘布局如图 2-1 所示。一般由 16 个按键组成,在单片机中正好可以用一个 P 口实现 16 个按键功能,这也是在单片机系统中最常用的形式。能实时在 LED 数码管上显示按键信息。显示按键信息,图2-1 键盘布局2.2 设计要求单片机的 P1 口的 P1.0P1.7 连接 44 矩阵键盘,P0 口控制一只数码管,当 44 矩阵键盘中的某一按键按下时,数码管上显示对应的键号。例如,1

5、号键按下时,数码管显示“1” , 14 号键按下时,数码管显示“E”等等。2.3 设计思想程序中将 AT89C51 单片机的引脚置高电平,单片机通过读取 IO 引脚的电平,在根据读取的数据去查找数组中相应的按键值,然后在送到数码管也就是 P0 口去显示.( AT89C51 单片机通过 IO 口来读取键盘的电平,再通过程序来查找对应的数值,在送到数码管去显示)。需要设备如下AT89C51 单片机:处理设备LED 数码管 :输出设备4X4 矩阵键盘:输入设备F B 7 3E A 6 2D 9 5 1C 8 4 0单片机大作业 硬件电路设计33 硬件电路设计3.1 单片机控制系统原理图 3-1 单片

6、机控制系统原理框图32 单片机主机系统电路AT89C51 单片机是 51 系列单片机的一个成员,是 8051 单片机的简化版。内部自带 2K 字节可编程 FLASH 存储器的低电压、高性能 COMS 八位微处理器,与Intel MCS-51 系列单片机的指令和输出管脚相兼容。由于将多功能八位 CPU 和闪速存储器结合在单个芯片中,因此,AT89C2051 构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的 RAM、ROM 和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。AT89C51AT89C51 是 一 种 带 4K 字 节 FLASH 存 储 器

7、( FPEROMFlash Programmable and Erasable Read Only Memory) 的 低 电 压 、 高 性 能 CMOS 8 位 微 处 理 器 ,俗 称 单 片 机 。 AT89C2051 是 一 种 带 2K 字 节 闪 存 可 编 程 可 擦 除 只 读 存 储 器 的 单片 机 。 单 片 机 的 可 擦 除 只 读 存 储 器 可 以 反 复 擦 除 1000 次 。 该 器 件 采 用ATMEL 高 密 度 非 易 失 存 储 器 制 造 技 术 制 造 , 与 工 业 标 准 的 MCS-51 指 令 集 和 输出 管 脚 相 兼 容 。 由

8、于 将 多 功 能 8 位 CPU 和 闪 烁 存 储 器 组 合 在 单 个 芯 片 中 ,ATMEL 的 AT89C51 是 一 种 高 效 微 控 制 器 , AT89C2051 是 它 的 一 种 精 简 版 本 。AT89C 单 片 机 为 很 多 嵌 入 式 控 制 系 统 提 供 了 一 种 灵 活 性 高 且 价 廉 的 方 案 。 外 形及 引 脚 排 列 如 图 所 示 单片机大作业 硬件电路设计4图 3-2 外 形 及 引 脚 排 列主要特性:与 MCS-51 兼 容 4K 字 节 可 编 程 FLASH 存 储 器 寿 命 : 1000 写 /擦 循 环 数 据 保 留

9、 时 间 : 10 年 全 静 态 工 作 : 0Hz-24MHz 三 级 程 序 存 储 器 锁 定 1288 位 内 部 RAM 32 可 编 程 I/O 线 两 个 16 位 定 时 器 /计 数 器 5 个 中 断 源 可 编 程 串 行 通 道 低 功 耗 的 闲 置 和 掉 电 模 式 片 内 振 荡 器 和 时 钟 电 路 管 脚 说 明 :VCC: 供 电 电 压 。 GND: 接 地 。 P0 口 : P0 口 为 一 个 8 位 漏 级 开 路 双 向 I/O 口 , 每 脚 可 吸 收 8TTL 门 电 流 。 当P0 口 的 管 脚 第 一 次 写 1 时 , 被 定

10、义 为 高 阻 输 入 。 P0 能 够 用 于 外 部 程 序 数 据 存储 器 , 它 可 以 被 定 义 为 数 据 /地 址 的 第 八 位 。 在 FIASH 编 程 时 , P0 口 作 为 原码 输 入 口 , 当 FIASH 进 行 校 验 时 , P0 输 出 原 码 , 此 时 P0 外 部 必 须 被 拉 高 。 单片机大作业 硬件电路设计5P1 口 : P1 口 是 一 个 内 部 提 供 上 拉 电 阻 的 8 位 双 向 I/O 口 , P1 口 缓 冲 器 能 接收 输 出 4TTL 门 电 流 。 P1 口 管 脚 写 入 1 后 , 被 内 部 上 拉 为 高

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

12、 低 , 将 输 出 电 流 。 这是 由 于 内 部 上 拉 的 缘 故 。 P2 口 当 用 于 外 部 程 序 存 储 器 或 16 位 地 址 外 部 数 据存 储 器 进 行 存 取 时 , P2 口 输 出 地 址 的 高 八 位 。 在 给 出 地 址 “1”时 , 它 利 用内 部 上 拉 优 势 , 当 对 外 部 八 位 地 址 数 据 存 储 器 进 行 读 写 时 , P2 口 输 出 其 特 殊功 能 寄 存 器 的 内 容 。 P2 口 在 FLASH 编 程 和 校 验 时 接 收 高 八 位 地 址 信 号 和 控 制信 号 。 P3 口 : P3 口 管 脚

13、是 8 个 带 内 部 上 拉 电 阻 的 双 向 I/O 口 , 可 接 收 输 出 4 个TTL 门 电 流 。 当 P3 口 写 入 “1”后 , 它 们 被 内 部 上 拉 为 高 电 平 , 并 用 作 输 入 。作 为 输 入 , 由 于 外 部 下 拉 为 低 电 平 , P3 口 将 输 出 电 流 ( ILL) 这 是 由 于 上 拉的 缘 故 。 P3 口 也 可 作 为 AT89C51 的 一 些 特 殊 功 能 口 , 如 下 表 所 示 : 口 管 脚 备 选 功 能 P3.0 RXD( 串 行 输 入 口 ) P3.1 TXD( 串 行 输 出 口 ) P3.2 /

14、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: 当 访 问 外 部 存 储

15、 器 时 , 地 址 锁 存 允 许 的 输 出 电 平 用 于 锁 存 地 址 的 地位 字 节 。 在 FLASH 编 程 期 间 , 此 引 脚 用 于 输 入 编 程 脉 冲 。 在 平 时 , ALE 端 以单片机大作业 硬件电路设计6不 变 的 频 率 周 期 输 出 正 脉 冲 信 号 , 此 频 率 为 振 荡 器 频 率 的 1/6。 因 此 它 可 用作 对 外 部 输 出 的 脉 冲 或 用 于 定 时 目 的 。 然 而 要 注 意 的 是 : 每 当 用 作 外 部 数 据 存储 器 时 , 将 跳 过 一 个 ALE 脉 冲 。 如 想 禁 止 ALE 的 输 出

16、可 在 SFR8EH 地 址 上 置0。 此 时 , ALE 只 有 在 执 行 MOVX, MOVC 指 令 是 ALE 才 起 作 用 。 另 外 , 该 引 脚被 略 微 拉 高 。 如 果 微 处 理 器 在 外 部 执 行 状 态 ALE 禁 止 , 置 位 无 效 。 /PSEN: 外 部 程 序 存 储 器 的 选 通 信 号 。 在 由 外 部 程 序 存 储 器 取 指 期 间 , 每 个 机器 周 期 两 次 /PSEN 有 效 。 但 在 访 问 外 部 数 据 存 储 器 时 , 这 两 次 有 效 的 /PSEN信 号 将 不 出 现 。 /EA/VPP: 当 /EA

17、 保 持 低 电 平 时 , 则 在 此 期 间 外 部 程 序 存 储 器 ( 0000H-FFFFH) , 不 管 是 否 有 内 部 程 序 存 储 器 。 注 意 加 密 方 式 1 时 , /EA 将 内 部 锁 定为 RESET; 当 /EA 端 保 持 高 电 平 时 , 此 间 内 部 程 序 存 储 器 。 在 FLASH 编 程 期间 , 此 引 脚 也 用 于 施 加 12V 编 程 电 源 ( VPP) 。 XTAL1: 反 向 振 荡 放 大 器 的 输 入 及 内 部 时 钟 工 作 电 路 的 输 入 。 XTAL2: 来 自 反 向 振 荡 器 的 输 出 。

18、振 荡 器 特 性 : XTAL1 和 XTAL2 分 别 为 反 向 放 大 器 的 输 入 和 输 出 。 该 反 向 放 大 器可 以 配 置 为 片 内 振 荡 器 。 石 晶 陶 瓷 振 荡 均 可 采 用 。 如 采 用 外 部 时 钟 源 驱 动 器件 , XTAL2 应 不 接 。 有 余 输 入 至 内 部 时 钟 信 号 要 通 过 一 个 二 分 频 触 发 器 , 因此 对 外 部 时 钟 信 号 的 脉 宽 无 任 何 要 求 , 但 必 须 保 证 脉 冲 的 高 低 电 平 要 求 的 宽 度 。图 3-3 单片机主机系统图单片机大作业 硬件电路设计73.2.1

19、时钟电路时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。MCS-51 单片机内部有一个用于构成振荡器的高增益反向放大器,引脚 XTALl 和 XTAL2 分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如图 3-3 所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图 3-3 中外接晶体以及电容 C2 和 C3 构成并联谐振电路,它们起稳定振荡频率、快速起振

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

21、的内容是不定的。复位操作有两种情况,即上电复位和手动(开关)复位。本系统采用上电复位方式。图 3-2 中 R1 和 Cl 组成上电复位电路,其值 R 取为 1K, C 取为 10pF。3.2.3 单片机最小系统其作用主要是为了保证单片机系统能正常工作。如图 3-2 所示,单片机最小系统主要由 AT89S51 单片机、外部振荡电路、复位电路和 +5V 电源组成。在外部振荡电路中,单片机的 XTAL1 和 XTAL2 管脚分别接至由 12MHZ 晶振和两个30PF 电容构成的振荡电路两侧,为电路提供正常的时钟脉冲。在复位电路中,单片机 RESET 管脚一方面经 20 F 的电容接至电源正极,实现上

22、电自动复位,另一方面经开关 s 接电源。其主要功能是把 PC 初始化为 0000H,是单片机从 0000H单元开始执行程序,除了进入系统的初始化之外,当由于程序出错或者操作错误使系统处于死锁状态时,为了摆脱困境,也需要按复位键重新启动。因此,复位电路是单片机系统中不可缺少的一部分。单片机大作业 硬件电路设计8图 3-4 单片机最小系统3.3 矩阵式键盘电路AT89C51 单片机的并行口 P1 接 44 矩阵键盘,以 P1.0P1.3 作输入线,以P1.4P1.7 作输出线;P1 口输出按键信息,在数码管上显示每个按键的“0F”序号。实际电路图连接如图 3-4 所示。图 3-5 矩阵式键盘电路3

23、.4 显示电路译码电路中常用的显示器有 LED(数码管)和 LCD(液晶显示器) 。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点。本系统输出结果选用 2 个 LED 显示。数码管有共阴共阳之分,本系统采用 8段共阴型 LED,其原理图如图 3-6 所示。数码管内部有 8 个发光二极管,公共端由 8 个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND),各发光二极管是否点亮取决于 a-dp 各引脚上是否是高电平。LED 数码管的外形结构如图 3-6,外部有 10 个引脚,其中 3, 8 脚为公共端单片机大作业 硬件电路设计9也称位选端,其余 8 个引脚称为段选端,当要使某一

24、位数码管显示某一数字(0-9 中的一个)必须在这个数码管的段选端加上与数字显示数字对应的 8 位段选码(也称字形码),在位选端加上低电平即可。由于系统要显示的内容比较简单,显示量不多,所以选用数码管既方便又经济。LED 有共阴极和共阳极两种。如图 3-1 所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V 的电压。一位显示器由 8 个发光二极管组成,其中 7 个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为 dp 发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。符号和引脚 共阳极 共阴极图 3-6

25、LED 数码管结构单片机大作业 硬件电路设计10图 3-7 显示电路当无按键闭合时,P1.0-P1.3与 P1.4-P1.7之间开路。当有键闭合时,与闭合键相连的两条 I/O 口线之间短路。判断有无按键按下的方法是:第一步,置列线 P1.4-P1.7为输入状态,从行线 P1.0-P1.3输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线 P1.4-P1.7读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续

26、多次进行同样的键操作。由于本显示电路功能简单,为使编程简单,采用直接输出模式,即把 P0.0P0.7端口用 8 芯排线连接到数码显示模块区域中的 ah 端口上,要求:P0.0 对应着a,P0.1 对应着 b,P0.7 对应着 h。表 3-2 LED 显示段码字型 共阳极段 共阴极段 字型 共阳极段 共阴极段0 C0H 3FH 9 90H 6FH1 F9H 06H A 88H 77H2 A4H 5BH B 83H 7CH3 B0H 4FH C C6H 39H4 99H 66H D A1H 5EH5 92H 6DH E 86H 79H6 82H 7DH F 84H 71H7 F8H 07H 空白

27、FFH 00H8 80H 7FH P 8CH 73H单片机大作业 软件设计114 软件设计4.1 软件流程图图 4-1 软件设计流程图4.2 源程序#include#define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0单片机大作业 软件设计12x39,0x5e,0x79,0x71;/定义显示段码uchar num,temp;void delay(uchar k)/定义延时函数uchar i,

28、j;for(i=k;i0;i-)for(j=110;j0;j-); void disp(char num1)/定义显示函数 P0=tablenum1;/将段码值送入 P0 口显示char keyscan()/定义键盘检测函数P1=0xfe;/给 P1 口送检测信号 11111110,即先检测第一列有无按键被按下(key1key4)temp=P1;/将检测信号赋给变量 temptemp=temp/与 11110000 相“与”去除低四位检测部分while(temp!=0xf0)/判断是否有按键被按下,即 key1-key4 有任意按键被按下 temp 便不等于 0xffdelay(5);/按键防

29、抖动延时(时间要求不严格)while(temp!=0xf0)/延时之后再次判断temp=P1;/进入函数说明有按键被按下,再将 p1 值赋给 temp 进行判断是哪位被按下switch(temp)/利用 switch 函数判断 temp 值case 0xee:/若 P0 等于 0xee,即 11101110,则由判断为 0 的位被按下即第四位(最低位) ,则应赋值 num 为 0;num=0;单片机大作业 软件设计13break;case 0xde:/11011110 同理判断其为第三位被按下(该行第二位)num=1num=1;break;case 0xbe:/同上则 num=2num=2;b

30、reak;case 0x7e:/同上 num=3num=3;break;while(temp!=0xf0)/判断按键是否松开,循环判断直至按键松开temp=P1;temp=temp P1=0xfd;/给 P1 口再次送检测信号 11111101,来检测第二列有无按键被按下(key5key8) ,以下几步同上temp=P1;temp=tempwhile(temp!=0xf0)delay(5);while(temp!=0xf0)temp=P1;switch(temp)单片机大作业 软件设计14case 0xed:num=4;break;case 0xdd:num=5;break;case 0xbd

31、:num=6;break;case 0x7d:num=7;break;while(temp!=0xf0)temp=P1;temp=temp P1=0xfb;/给 P1 口再次送检测信号 11111011,来检测第三列有无按键被按下(key9key12) ,以下几步同上temp=P1;temp=tempwhile(temp!=0xf0)delay(5);while(temp!=0xf0)单片机大作业 软件设计15temp=P1;switch(temp)case 0xeb:num=8;break;case 0xdb:num=9;break;case 0xbb:num=10;break;case 0

32、x7b:num=11;break;while(temp!=0xf0)temp=P1;temp=temp P1=0xf7;/给 P1 口再次送检测信号 11110111,来检测第四列有无按键被按下(key13key16) ,以下几步同上temp=P1;temp=tempwhile(temp!=0xf0)delay(5);单片机大作业 软件设计16while(temp!=0xf0)temp=P1;switch(temp)case 0xe7:num=12;break;case 0xd7:num=13;break;case 0xb7:num=14;break;case 0x77:num=15;brea

33、k;while(temp!=0xf0)temp=P1;temp=temp return num;/子函数最后返回 num 值void main() P0=0x00;/清屏单片机大作业 软件设计17delay(5);/延时while(1)/主循环disp(keyscan();/检测并显示单片机大作业 总电路原理图185 总电路原理图单片机大作业 参考文献19参考文献1 电子工业出版社 . 单片机设计与应用M.2 谢自美.电子线路设计实验测试.:华中科技大学出版社,20083 陈小忠.单片机实用接口技术子程序.人民邮电出版社,20054 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,20035 廖常初.现场总线概述J.电工技术,2001

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报