收藏 分享(赏)

基于键盘输入单元的单片机仿真.doc

上传人:tkhy51908 文档编号:7105360 上传时间:2019-05-06 格式:DOC 页数:24 大小:286.89KB
下载 相关 举报
基于键盘输入单元的单片机仿真.doc_第1页
第1页 / 共24页
基于键盘输入单元的单片机仿真.doc_第2页
第2页 / 共24页
基于键盘输入单元的单片机仿真.doc_第3页
第3页 / 共24页
基于键盘输入单元的单片机仿真.doc_第4页
第4页 / 共24页
基于键盘输入单元的单片机仿真.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、武汉理工大学能力拓展训练课程设计说明书I摘 要在日常生活中,我们经常要通过按键来实现对电子装置的控制,小到手表手机,中到电视电脑,大到各种复杂仪器,都需要通过按键来实现各种操作。本次课程设计作为实践教学的一个重要环节,将以按键控制显示为主题,以AT89C51 单片机及其接口芯片为核心构造一个键盘控制显示系统,并使用Proteus 软件对所设计的电路进行仿真。关键词:P roteus 键盘显示 AT89C51 仿真 武汉理工大学能力拓展训练课程设计说明书11 软件与硬件简介1.1 Proteus 软件简介Proteus 软 件 是 英 国 Labcenter electronics 公 司 出

2、版 的 EDA 工 具 软 件 。它 不 仅 具 有 其 它 EDA 工 具 软 件 的 仿 真 功 能 , 还 能 仿 真 单 片 机 及 外 围 器 件 。它 是 目 前 最 好 的 仿 真 单 片 机 及 外 围 器 件 的 工 具 。 虽 然 目 前 国 内 推 广 刚 起 步 ,但 已 受 到 单 片 机 爱 好 者 、 从 事 单 片 机 教 学 的 教 师 、 致 力 于 单 片 机 开 发 应 用 的科 技 工 作 者 的 青 睐 。 Proteus 是 世 界 上 著 名 的 EDA 工 具 (仿 真 软 件 ), 从 原 理图 布 图 、 代 码 调 试 到 单 片 机 与

3、 外 围 电 路 协 同 仿 真 , 一 键 切 换 到 PCB 设 计 ,真 正 实 现 了 从 概 念 到 产 品 的 完 整 设 计 。 是 目 前 世 界 上 唯 一 将 电 路 仿 真 软 件 、PCB 设 计 软 件 和 虚 拟 模 型 仿 真 软 件 三 合 一 的 设 计 平 台 , 其 处 理 器 模 型 支 持8051、 HC11、 PIC10/12/16/18/24/30/DsPIC33、 AVR、 ARM、 8086 和MSP430 等 , 2010 年 新 增 加 了 Cortex 和 DSP 系 列 处 理 器 , 并 持 续 增 加 其 他系 列 处 理 器 模

4、型 。 在 编 译 方 面 , 它 也 支 持 IAR、 Keil 和 MPLAB 等 多 种 编译 器 。本 次 设 计 将 使 用 Proteus7.5SP3 版 本 进 行 仿 真 。1.2 AT89C51 硬件简介AT89C51 芯 片 是 一 种 带 有 4K 字 节 闪 存 的 低 电 压 、 高 性 能 CMOS 8 位微 处 理 器 , 俗 称 单片机。 单 片 机 的 可 擦 除 只 读 存 储 器 可 以 反 复 擦 除 1000 次 。该 器 件 采 用 ATMEL 高 密 度 非 易 失 存 储 器 制 造 技 术 制 造 , 与 工 业 标 准 的MCS-51 指 令

5、 集 和 输 出 管 脚 相 兼 容 。 由 于 将 多 功 能 8 位 CPU 和 闪 烁 存 储 器组 合 在 单 个 芯 片 中 , ATMEL 的 AT89C51 是 一 种 高 效 微 控 制 器 , 为 很 多 嵌入式控制系统提 供 了 一 种 灵 活 性 高 而 且 价 格 低 廉 的 方 案 。本 次 设 计 将 使 用 此 芯 片 作 为 核 心 硬 件 进 行 设 计 。武汉理工大学能力拓展训练课程设计说明书22 总体分析设计2.1 电路结构分析本次设计的目标为单片机控制的键盘识别显示系统,主要采用AT89C51 单片机作为核心,由矩阵键盘电路、译码电路、显示电路等模块构成

6、,分别对按键信息和显示电路以及软、硬件各个部分进行控制;本设计采用汇编语言编程来实现对单片机的控制。实际运作时,单片机会将检测到的按键信号转换成数字,显示于七段数码管上。系统主要结构可以拆分如下: 矩阵键盘:按键传送输入信息;本次设计使用 16 个独立按键形成 4*4矩阵键盘; AT89C51:采用软件编程来实现按键信息的提取和转换; 七段数码管:用于显示最终被单片机转换过的按键信息。 由以上构思可以设计此按键显示电路。2.2 总体方案设计图 2.2 为按键控制显示电路系统的总体原理框图:图 2.2 整体电路原理方框图即实验者通过按下矩阵键盘的按键来进行信息输入,当有按键被按下时,矩阵键盘输入

7、单片机提取转换数码管显示数字武汉理工大学能力拓展训练课程设计说明书3按键信息被输入到经过编程的单片机 AT89C51 中进行提取与转换,变为对数码管进行操作的输出信息,使数码管显示对应的数字。2.3 总体电路图总体电路图如图 2.3 所示:图 2.3 整体电路图列 线 P1.0-P1.3 为 输 出 线 , 行 线 P1.4-P1.7 为 输 入 线 。 一 开 始 单 片 机将 列 线 ( P1.0-P1.3) 全 部 输 出 低 电 平 , 此 时 读 入 行 线 数 据 , 若 行 线 全 为高 电 平 则 没 有 键 按 下 , 当 行 线 有 出 现 低 电 平 时 调 用 延 时

8、程 序 以 此 来 去 除 按键 抖 动 。 延 时 完 成 后 再 判 断 是 否 有 低 电 平 , 如 果 此 时 读 入 行 线 数 据 还 是 有低 电 平 , 则 说 明 确 实 有 键 按 下 。 最 后 一 步 确 定 键 值 。 现 在 我 们 以 第 二 行 的 S5键 为 例 , 若 按 下 S5 后 我 们 应 该 怎 么 得 到 这 个 键 值 呢 ? 当 判 断 确 实 有 键 按 下之 后 , 列 线 轮 流 输 出 低 电 平 , 根 据 读 入 行 线 的 数 据 可 以 确 定 键 值 。 首 先 ,单 片 机 将 P10 输 出 为 低 电 平 , 其 它

9、 P11-P13 输 出 高 电 平 , 此 时 读 取 行 线 的数 据 全 为 高 电 平 , 说 明 没 有 在 第 一 行 有 键 按 下 ; 其 次 , 单 片 机 将 P11 输 出低 电 平 , 其 它 P10、 P12、 P13 仍 为 高 电 平 , 此 时 再 来 读 取 行 线 数 据 , 发 现武汉理工大学能力拓展训练课程设计说明书4行 线 读 到 的 数 据 有 低 电 平 , 数 值 为 1011( 0x0B) , 如 果 我 们 的 键 盘 布 局 已经 确 定 , 那 么 0x0B 就 代 表 S5 的 值 了 。 转 到 S5 键 功 能 处 理 子 程 序

10、就 可 以达 到 目 的 。3 硬件电路模块3.1 键盘输入模块矩阵键盘驱动的主要作用就是实时监测外部按键中断,一旦发现外部有键按下就向内核发送键盘消息实现键盘输入功能。键盘驱动创建了中断服务线程和 4 个键盘中断事件,每行按键对应一个键盘中断事件。有键被按下时,中断服务例程得到对应的中断标识符并报告给系统任务调度进程,同时产生键盘中断事件,键盘中断服务线程响应键盘中断事件,开始扫描矩阵键盘。根据产生的中断事件类型不同,可以首先确定被按下键的行位置。由于键盘被按下后,该键对应的行和列被连通,因此根据判断各列对应的 I/O 口的电平,可以得到被按下键的列位置。用单片机的并行口 P1 连接 44

11、矩阵键盘,并以单片机的 P1.0P1.3 各管脚作输入线,以单片机的 P1.4P1.7 各管脚作输出线,在数码管上显示每个按键 “0F”的序号。矩阵键盘又称为行列式键盘,它是用 4 条 I/O 线作为行线,4 条 I/O 线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是 44 个。这种行列式键盘结构能够有效地提高单片机系统中 I/O 口的利用率。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如 P1 口)就可以构成 4*4=16 个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再

12、多加一条线就可以构成 20 键的键盘,而直接用端口线则只能多出一键(9 键) 。四个并行口,其电路图如图 3.1;武汉理工大学能力拓展训练课程设计说明书5图 3.1 44 矩阵键盘输入模块3.2 单片机AT89C51 单片机模块是整个电路的核心,时钟信号与复位信号的产生以及程序的处理等任务都是由单片机来完成的。时钟信号用来提供单片机片内各种微操作的时间基准,复位信号用来初始化单片机内部的某些特殊功能寄存器,使 CPU 及系统各部件处于确定的初始状态,并从初始状态开始正常工作。由于Protues 软件自带缺省引脚的信息自动补充功能,本实验中将省略内部时钟电路与外部复位电路。3.3 数码管模块译码

13、电路中常用的显示器有 LED(数码管)和 LCD(液晶显示器) 。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点。本系统输出结果选用 1 个七段数码管显示。数码管有共阴共阳之分,本系统采用共阳型。LED的外形结构如图 3.3.1,外部有 10 个引脚,其中 GND 脚为公共端也称位选端,其余 8 个引脚称为段选端,当要使某一位数码管显示某一数字(0-9 中的一个)必须在这个数码管的段选端加上与数字显示数字对应的 8 位段选码(也称字形码),在位选端加上低电平即可。武汉理工大学能力拓展训练课程设计说明书6数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间

14、隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。图 3.3.1 LED 数码管结构 如下表 1 即两种数码管中数字显示对应的段码:表 1 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

15、 A1H 5EH5 92H 6DH E 86H 79H6 82H 7DH F 84H 71H7 F8H 07H 空白 FFH 00H8 80H 7FH P 8CH 73H武汉理工大学能力拓展训练课程设计说明书7本次设计中数码管模块接至单片机的 P0.00.6 六个并行口和 P2.7 口,其电路如图 3.3.2;图 3.3.2 数码管模块武汉理工大学能力拓展训练课程设计说明书84 软件设计与仿真4.1 软件流程图开始无按键显示 0检测是否有按键按下根据当前状态识别显示键值结束图 4.1 软件流程图4.2 系统程序代码#includevoid keyscan();void delay();void

16、 display(unsigned char i);void main()while(1)keyscan();void keyscan()unsigned char n;P1=0xfe;n=P1;武汉理工大学能力拓展训练课程设计说明书9nif(n!=0xf0)delay();P1=0xfe;n=P1;nif(n!=0xf0)switch(n)case(0xe0):display(0);break;case(0xd0):display(1);break;case(0xb0):display(2);break;case(0x70):display(3);break;P1=0xfd;n=P1;nif

17、(n!=0xf0)delay();P1=0xfd;n=P1;nif(n!=0xf0)switch(n)case(0xe0):display(4);break;case(0xd0):display(5);break;case(0xb0):display(6);break;case(0x70):display(7);break;P1=0xfb;n=P1;nif(n!=0xf0)delay();P1=0xfb;n=P1;nif(n!=0xf0)switch(n)case(0xe0):display(8);break;case(0xd0):display(9);break;武汉理工大学能力拓展训练课程

18、设计说明书10case(0xb0):display(10);break;case(0x70):display(11);break;P1=0xf7;n=P1;nif(n!=0xf0)delay();P1=0xf7;n=P1;nif(n!=0xf0)switch(n)case(0xe0):display(12);break;case(0xd0):display(13);break;case(0xb0):display(14);break;case(0x70):display(15);break;void display(unsigned char i)unsigned char table=0xC

19、0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;P2=0xfe;P0=tablei;void delay()unsigned char i,j;for(i=0;i1);for (j=0;j=0 i-)xs1i=xs1i-1;xs10=x;s1+;t1=t1*10+x;if (bb=2)if (s2=4) cs=0;return ;elsefor (i=3;i0;i-)xs2i=xs2i-1;武汉理工大学能力拓展训练课程设计说明书15xs20=x;s2+;t2=t2*10+x;if (x10

20、)if (bb=1) fh=x;bb=2;return;if (bb=2)if (fh=11) t1=t1/t2;if (fh=12) t1=t1*t2;if (fh=13) t1=t1-t2;if (fh=14) t1=t1+t2;if (t1=10000) cs=0;return;elseif (t1=0 xs11=t1%100/10;xs12=(t1-(t1/1000)*1000)/100;xs13=t1/1000;bb=2;s2=0;t2=0;xs20=10;xs21=10;xs22=10;xs23=10;fh=x;void main()sz0=0xfc;sz1=0x60;sz2=0x

21、da;sz3=0xf2;sz4=0x66;sz5=0xb6;武汉理工大学能力拓展训练课程设计说明书16sz6=0xbe;sz7=0xe0;sz8=0xfe;sz9=0xf6;sz10=0x00; cs=0;for (;)if (cs=0) chushihua();if (cs=1) sj=saomiao();if (cs=1 if (cs=1 if (cs=1 武汉理工大学能力拓展训练课程设计说明书17其仿真图如下:图 5.1 功能拓展仿真图(被加数)图 5.2 功能拓展仿真图(加数)武汉理工大学能力拓展训练课程设计说明书18图 5.3 功能拓展仿真图(和)武汉理工大学能力拓展训练课程设计说明

22、书196 心得体会万事开头难。在刚开始课程设计的时候,大家都有点茫然而且无从下手的感觉。首先是题目的选择,在没有决定题目之前,查找资料毫无目的,基本是查查这个资料,待会又搜索另一个。这大大的浪费来我我的时间。最后,但经过老师的指导及自己查阅相关的资料,逐渐有了自己的设计想法,制定出了系统的结构框图。终于定下了题目。定下了题目之后,做起来就比较有目的。在指导老师的提示下,我们在网上查到了一些相关的资料,再综合书本上学到的一些知识,参考网上的程序,经过调试修改后,最终实现了题目设计的要求。编程和仿真过程中,遇到了几处困难,在和同学的共同探讨研究后问题都迎刃而解,了解了团队合作和人际关系的重要性。真

23、的,有许多东西看似已经懂了,但真正到了实际却又是另一种情况。有时自己认为自己已掌握的东西可能仅是一些肤浅的表面或总体的一个方面,甚至有时是错误的认识,而如果没有经过实践,你是无法发现这些问题的。最后的演示过程中,实际对硬件电路的连接更加深了我对单片机的了解,知道了单片机在实际应用的重要性。通过本次课程设计才体会到书上所说的“纸上得来终觉浅,绝知此事需躬行”的真正含义,也明白了老师的良苦用心。以后就业的方向完全可以选择单片机,我想单片机在以后的生活中的应用会越来越多。武汉理工大学能力拓展训练课程设计说明书20参考文献1孙余凯. 数字集成电路实用技术.电子工业出版社,20102江晓.数字电子技术

24、.西安电子科技大学出版社,20093曹国清. 数字电路与逻辑设计.中国矿业大学出版社,20084伍时和. 数字电子技术基础.清华大学出版社,20095李群芳,张士军 ,黄建等.单片微型计算机与接口技术.电子工业出版社,20096陈光东,赵性初.单片微型计算机原理与接口技术.武汉理工大学能力拓展训练课程设计说明书21华中科技大学出版社,20057高峰.单片微机应用系统设计及实用技术.机械工业出版社,2004武汉理工大学能力拓展训练课程设计说明书22目录摘 要 .I1 软件与硬件简介 11.1 Proteus 软件简介 .11.2 AT89C51 硬件简介 .12 总体分析设计 22.1 电路结构分析 22.2 总体方案设计 22.3 总体电路图 33 硬件电路模块 43.1 键盘输入模块 .43.2 单片机 53.3 数码管模块 54 软件设计与仿真 84.1 软件流程图 84.2 系统程序代码 84.3 仿真结果 .115 功能拓展 .126 心得体会 .19参考文献 .20

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

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

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


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

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

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