简易计算器设计课程设计.doc
《简易计算器设计课程设计.doc》由会员分享,可在线阅读,更多相关《简易计算器设计课程设计.doc(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date简易计算器设计课程设计_x0001_课程设计(论文)题 目 名 称 简易计算器设计 课 程 名 称 单片机原理及应用 学 生 姓 名 学 号 系 、专 业 指 导 教 师 2013 年 6 月 24 日 摘要本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。设计
2、过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用44矩阵键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,采用汇编语言进行编程,并用proteus仿真。关键词:计算器;AT89C51芯片;数码管;矩阵键盘 目录第1章 设计说明11.1 设计要求11.2 性能指标11.3 设计方案的确定1第2章 单片机主要原理22.1 单片机概述22.2 单片机最小系统42.3
3、 七段共阳极数码管5第3章 硬件设计63.1 键盘电路的设计63.2 显示电路的设计7第4章 软件设计84.1 系统设计84.2 显示与按键设计9第5章 调试与仿真125.1 Keil C51单片机软件开发系统125.2 proteus的操作12第6章 心得体会17 参考文献18 致谢19 附录 程序清单20-第1章 设计说明1.1 设计要求要求能实现小于255的数的加减乘除运算,采用44键盘,根据输入键的按下实现不同的功能,最终结果通过LED显示。1.2 性能指标 本课程设计的十进制加法计算器的计算范围为0255,计算结果全为整数,计算结果溢出结果不显示。1.加法:三位加法,计算结果超过25
4、5溢出不显示2.减法:三位减法,计算结果若小于零溢出不显示3.乘法:三位数乘法4.除法:整数除法5.有清零功能1.3 设计方案的确定 按照设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于AT89C51芯片的I/O口不够多,而且为了硬件电路设计的简单化,故选择串行动态显示和用P1口扩展4*4键盘,扩展的4*4键盘定义十个数字键,六个功能键,使用串行动态显示显示运算结果。 主程序进行初始化,采用行列扫描进行查表得出键值,每次按键后调用显示子程序。 第2章 单片机主要原理在该课程设计中,主要用到一个AT89C51芯片和串接的共阴数码管。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍
5、和说明。2.1 单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3,3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。MSC-51芯片简介:8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并
6、行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:(1)中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。(2)数据存储器(RAM):8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。(3)程序存储器(ROM
7、) :8051单片机具有64KB程序存储器寻址空间,程序存储器内外统一编址,用来存放用户程序、表格、常数。当引脚EA=1时,程序从内部的程序存储器开始执行,当内部程序存储器中的程序执行完毕后,在转向外部的程序存储器。当引脚EA=0时,程序从外部程序存储器开始执行。(4)并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。当P0口作为通用的I/O接口使用时,漏极处于开路状态,所以需接上拉电阻。(5)全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。(6)中
8、断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。(7)MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,下图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:如图1.1图1.1 单片机引脚1.电源引脚:VCC:电源正(一般接+5V电源)GND:电源接地端2.复位引脚:RST:复位引脚。当该引脚保持两个机器周期以上的高电平时,单片
9、机就可恢复初始状态。3.端口引脚:P0.0-P0.7:P0口,8位双向线。P1.0-P1.7:P0口,8位双向线。P2.0-P2.7:P0口,8位双向线。P3.0-P3.7:P0口,8位双向线。4.时钟电路:XTAL1和XTAL2:外接晶振引脚。晶振信号直接加在XTAL1和XTAL2两端。5.控制引脚:ALE/、EA/Vpp组成MCS控制总线。EA/Vpp(31引脚):程序存储器的内外部选通线。当EA =1时,选通内部程序存储器中的程序,当片内程序存储器存放的指令读完后再读外部存储器指令;当EA=0时,不管片内有无程序存储器,一律读取外部程序存储器程序。ALE/(30引脚):地址锁存信号。:访
10、问外部程序存储控制信号。2.2 单片机最小系统单片机最小系统就是支持主芯片正常工作的最小部分,是单片机工作的最基本的配置,包括主控芯片、复位电路和晶振电路。如图2.1 图2.1 单片机最小系统2.3 七段共阳极数码管图2.2 七段共阳数码管图为七段共阳数码管的引脚图,从左到右数码管的段码分别为a,b,c,d,e,f,g和小数点dp,低电平时点亮,最右边为位选端。第3章 硬件设计简易数字计算器系统硬件设计主要包括:键盘电路,显示电路以及其他辅助电路。下面分别进行设计。 3.1 键盘电路的设计 键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按
11、键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。但大多数智能仪器和电子产品的按键数目都不太多(20个以内),为了降低成本和简化电路通常采用非编码键盘。非编码键盘的接口电路有设计者根据需要自行决定,按键信息通过接口软件来获取。本课题需要的是16个按键,故选择用非编码键盘。计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四
12、条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为44个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。矩阵键盘的工作原理:计算器的键盘布局如图五所示:一般有16个键组成,在单片机中正好可以用一个P1口实现16个按键功能,这种形式在单片机系统中也最常用。具体电路连接如图3.1所示: 图3.1 4*4键盘接口电路3.2 显示电路的设计 当系统需要显示少量数据时,采用LED数码管进行显示是一种经济实用的方法。数码管显示有静态显示和动态显示两种方法。为了减少端口的使用,故选择动态显示。 电路如下图3.2所示:图3.2 三位
13、数码管显示电路第4章 软件设计在十进制加法计算器的软件规划要求下,简易计算器的程序主要包括以下功能模块:(1)主模块,为系统的初始化。(2)显示与读键模块,分为判键程序段、运算操作子程序、显示子程序等部分;4.1 系统设计(1)系统模块图输入模块单片机运算模块显示模块 图4.1 系统模块图此系统包括输入、运算和显示模块,由单片机控制。其中通过输入键盘模块将数字09和运算符号“+”、“-”、“*”、“/”输入单片机进行运算;运算模块分别根据输入的运算符进行加减乘除运算;显示模块将运算后的数值通过动态扫描使之在数码管上输出。(2)系统总流程图主程序主要是用来进行初始化的,调用其他子程序,清空各个标
14、志位,清空缓存区,读取键码,判断功能,在LED上作出回应,主程序流程图如图4.2所示。1.数字送显示缓冲程序设计简易计算器所显示的数值最大位三位。要显示数值,先判断数值大小和位数,如果是超过三位或大于255,将不显示数字。可重新输入数字,再次计算。2.运算程序的设计首先初始化参数,送LED三位显示“0”,其它位不显示。然后扫描键盘看是否有键输入,若有,读取键码。判断键码是数字键、清零键还是功能键,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。 开始从初始化参数LED显示功
15、能键按键输入?根据上次功能键和输入的数据计算结果 否 是保存结果和功能键读取按键结果送显示缓存分析键值 等待数值输入请零键数字键 数值显示中 图4.2 主程序流程图4.2 显示与按键设计(1)LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也称为七段LED显示器。为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字09的共阳极字形代码如下表:表1 共阳极数码管段码对照表显示字型gfedcba段码001111110c0h100001100f9h210110110
16、a4h310011110b0h4110011099h5110110192h6111110182h700001110f8h8111111180h9110111190h(2)读键子程序设计为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码键码。为了得到被按键的键码,现使用行扫描法识别按键。其程序框图如图4.3。矩阵按键扫描程序是一种节省I/O口的方法,按键数目越多节省I/O口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省了硬件资源。
17、另外,本键盘扫描程序,每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有列线均输出低电平,从所有读入键盘信息(行信息);第二次所有行线均输出低电平,从所有行线读入键盘信息(列信息)。将两次读键信息进行组合就可以得到按键的特征编码,然后通过查表得到按键的顺序编码。将各特征编码按希望的顺序排成一张表,然后用当前读得的特征码来查表。当表中有该特征码时,它的位置就是对应的顺序编码;当表中没有该特征码时,说明这是一个没有定义的键码,与没有按键(0FFH)同等看待。 开始初始化地址参数输出列扫描信
18、号列扫描信号移位读入行信号 否该列有输入 是按照行列计算键值 否4列扫描完?查表得键码 是返回等待按键得键码开始图4.3 计算键值子程序流程图第5章 调试与仿真下面用KEIL uVision3与 proteus仿真软件介绍十进制加法计算器的仿真与调试。5.1 Keil C51单片机软件开发系统(1)系统的整体结构C51工具包的整体结构中,其中uVision是C51 for Windows的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 计算器 设计 课程设计
限制150内