资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
0目录一、 设计任务和要求.(2)1、1 设计要求. (2)1、2 性能指标.(2)1、3 设计方案的确定.(2) 二、 单片机简要原理.(2)2、1 AT89C51的介绍单片机最小系统.(2)2、2 单片机最小系统.(2)三、 硬件的设计.(4)3、1 键盘电路的设计.(4) 3、2 显示电路的设计.(5)四、 软件的设计.(6)4、1 系统设计.(6)4、2 显示电路的设计.(8)五、 调试与仿真.(10)5、1 Keil C51单片机软件开发系统.1.(10)5、2 proteus的操作.(10)6、 总结.(11)7、 参考文献.(11)附录1 程序.(12)附录2 系统硬件电路图.(18)1、 设计任务和要求1.1 设计要求 本次课程设计,我选择的课题是单片机十进制加法计算器软硬件设计 ,设计任务为: 设计一键盘显示装置,键盘上除需定义10个十进制数字键外还要相应的功能键,其它键不定义无响应。利用此系统可分别可输入十进制被加数与加数,实现两数相加并将结果以十进制形式显示出来。1.2 性能指标 本课程设计的十进制加法计算器的计算范围为0255,计算结果全为整数,计算结果溢出结果不显示。1、加法:三位加法,计算结果超过255溢出不显示22、减法:三位减法,计算结果若小于零溢出不显示3、乘法:三位数乘法4、除法:整数除法5、有清零功能1.3 设计方案的确定 按照1.1的设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于AT89C51芯片的I口不够多,而且为了硬件电路设计的简单化,故选择串行动态显示和用P1口扩展 4*4键盘,扩展的 4*4键盘定义十个数字键,六个功能键,使用串行动态显示显示运算结果。 主程序进行初始化,采用行列扫描进行查表得出键值,每次按键后调用显示子程序。 二、 单片机简要原理在该课程设计中,主要用到一个AT89C51芯片和串接的共阴数码管。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。2.1 AT89C51的介绍:3图1 AT89C51外形结构和引脚分布图芯片AT89C51的外形结构和引脚图如图一所示。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.2 单片机最小系统单片机最小系统就是支持主芯片正常工作的最小部分,包括主控芯片、复位电路和晶振电路。(一) 复位电路4图2 复位电路本设计采用上电与手动复位电路,电阻分别选取100和10K ,电容选取10uF,系统一上电,芯片就复位,或者中途按按键也可以进行复位。(2) 晶振电路图3 晶振电路晶振电路是单片机的心脏,它用于产生单片机工作所需要的时钟信号。单片机的晶振选取11.0592MHz,晶振旁电容选取30pF。三、 硬件设计简易数字计算器系统硬件设计主要包括:键盘电路,显示电路以及其他辅助电路。下面分别进行设计。 3.1 键盘电路的设计 键 盘 可 分 为 两 类 : 编 码 键 盘 和 非 编 码 键 盘 。 编 码 键 盘 是 较 多 按 键 ( 20个 以 上 ) 和 专 用 驱 动 芯 片 的 组 合 , 当 按 下 某 个 按 键 时 , 它 能 够 处 理 按 键抖 动 、 连 击 等 问 题 , 直 接 输 出 按 键 的 编 码 , 无 需 系 统 软 件 干 预 。 通 用 计算 机 使 用 的 标 准 键 盘 就 是 编 码 键 盘 。 当 系 统 功 能 比 较 复 杂 , 按 键 数 量 很多 时 , 采 用 编 码 键 盘 可 以 简 化 软 件 设 计 。 但 大 多 数 智 能 仪 器 和 电 子 产 品的 按 键 数 目 都 不 太 多 ( 20个 以 内 ) , 为 了 降 低 成 本 和 简 化 电 路 通 常 采 用5非 编 码 键 盘 。 非 编 码 键 盘 的 接 口 电 路 有 设 计 者 根 据 需 要 自 行 决 定 , 按 键信 息 通 过 接 口 软 件 来 获 取 。 本 课 题 需 要 的 是 16个 按 键 , 故 选 择 用 非 编码 键 盘 。计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为44个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。矩阵键盘的工作原理:计算器的键盘布局如图五所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。具 体 电 路 连 接 如 图 五 所 示 : 图5 4*4键盘接口电路3.2 显示电路的设计 当系统需要显示少量数据时,采用LED数码管进行显示是一种经济实用的方法。数码管显示有静态显示和动态显示两种方法。为了减少端口的使用,故选择动态显示。 电路如下图六所示:6图6 三位数码管的显示电路四、 软件设计在十进制加法计算器的软件规划要求下,简易计算器的程序主要包括以下功能模块:(1) 主模块,为系统的初始化。(2) 显示与读键模块,分为判键程序段、运算操作子程序、显示子程序等部分;4.1 系统设计(一) 系统模块图图六 系统模块图此系统包括输入、运算和显示模块,由单片机控制。其中通过输入键盘模块将数字09和运算符号 “+”、“-”、“*”、“/”输入单片机进行运算;运算模块分别根据输入的运算符进行加减乘除运算;显示模块将运算后的数值通过动态扫描使之在数码管上输出。(2) 系统总流程图主程序主要是用来进行初始化的,调用其他子程序,清空各个标志位,清空缓存区,读取键码,判断功能,在LED上作出回应,主程序流程图如图六所示。单片机运算模块显示模块输入模块7(1)数字送显示缓冲程序设计简易计算器所显示的数值最大位三位。要显示数值,先判断数值大小和位数,如果是超过三位或大于255,将不显示数字。可重新输入数字,再次计算。(2)运算程序的设计首先初始化参数,送LED三位显示“0”,其它位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是功能键,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送 LED显示,若是运算键则保存相对运算程序的首地址。开始LED 显示数字键初始化参数输入数值清零键根据上次功能键和输入键的数据计算结果结果送显示缓存数值送显示缓存保存结果和功能键1等待数值输入功能键状态清零按键输入?分析键值初始化参数是功能键否是清零键是是数字键8图7 主程序流程图4.2 显示与按键设计(1) LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也称为七段LED显示器。为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字09的共阳极字形代码如下表:显示字型 g f e d c b a 段码0 0 1 1 1 1 1 1 0c0h1 0 0 0 0 1 1 0 0f9h2 1 0 1 1 0 1 1 0a4h3 1 0 0 1 1 1 1 0b0h4 1 1 0 0 1 1 0 99h5 1 1 0 1 1 0 1 92h6 1 1 1 1 1 0 1 82h7 0 0 0 0 1 1 1 0f8h8 1 1 1 1 1 1 1 80h9 1 1 0 1 1 1 1 90h表1 共阳极数码管段码对照表(2) 读键子程序设计为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得到被按键的键码,现使用行扫描法识别按键。其程序框图如图八:读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有列线均输出低电平,从所有读入键盘信息(行信息);第二次所有行线均输出低电平,从所有行线读入键盘信息(列信息)。将两次读键信息进行组合就可以得到按键的特征编码,然后通过查表得到按键的顺序编码。将各特征编码按希望的顺序排成一张表,然后用当前读得的特征码来查表。当表中有该特征码时,它的位置就是对应的顺序编码;当表中没有该特征码时,说明这是一个没有定义的键码,与没有按键(0FFH)同等看待。 9图8 计算键值子程序流程图开始初始化地址参数列扫描信号移位读入行信号查表得键值按照行列计算键值等待按键释放输出列扫描信号该列有输入?四列扫描完?返回开始是否否 是10五、 调试与仿真下面用KEIL uVision3 与 proteus仿真软件介绍十进制加法计算器的仿真与调试。5.1 Keil C51单片机软件开发系统(一) 系统的整体结构C51工具包的整体结构中,其中uVision是C51 for Windows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。(二) 采用KEIL 开发的89c51单片机应用程序步骤:1. 在uVision 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号