简易计算器的设计.doc
《简易计算器的设计.doc》由会员分享,可在线阅读,更多相关《简易计算器的设计.doc(22页珍藏版)》请在沃文网上搜索。
1、摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89C51单片机、LED显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及C语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。关键词:51单片机;LED ;控制按键目 录1方案选择1 1.1题目
2、要求1 1.2设计方案1 1.3 方案原理 12硬件原理电路图的设计与分析12.1 各部分电路的设计思路12.2各部分电路的功能特性52.3 原理电路图63程序设计与分析63.1 各模块程序的设计73.2完整的程序框图84系统仿真图94.1 计算机硬件连线图94.2仿真结果94.3 PCB图115系统评价126心得体会12参考文献12附录131. 方案选择1.1 题目要求(1)通过小键盘实现数据的输入,并在LED数码管上显示(2)实现+、-、*、/ (3)在LED数码管上显示结果(4)并有清零,退出功能1.2设计方案(1) 键盘部分要求实现+、-、*、/四种运算。另外包括数字键(09)、清除键
3、和等号键,共需要16个键,故采用16 个按键即可。 (2) 对于输入的数据可以选择在LCD上显示也可以选择在LED数码管显示。由于要设计的是简单的计算器,可以进行简单的四则运算,对数字的大小范围要求不高,故我们采用可以进行六位数字的运算,选用6 个LED 数码管显示数据和结果。(3)在LED上显示数据时,利用AT89C51的引脚来控制驱动电路从而实现位选。(4)在选择主控机时本设计选用AT89C51。由于AT89C51不但继承了MCS-51的原有功能,而且AT89C51单片机内的4KB Flash存储器可在线编程或使用编程器重复编程,且价钱较低,故选用AT89C51单片机作为主控机。1.3 方
4、案原理计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子组成。该系统通过AT89C51单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据存储下来,并显示在LED数码管上。键盘是计算器的输入部件,显示器是计算器的输出部件。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入数码管显示。2硬件原理电路图的设计与分析2.1 各部分电路的设计思路 2.1.1 系统模块图:2.1.2 输入模块键盘扫描计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在
5、这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式。为此,我们引入了矩阵键盘的应用,采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为44个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。计算器的键盘布局如图2 所示:一般有16 个键组成,在单片机中正好可以用一个P 口实现16 个按键功能,这种形式在单片机系统中也最常用。 图2、矩阵键盘布局图 图3、矩阵键盘内部电路图2.1.2 单片机模块AT89C51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计
6、数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能。2.1.3 运算模块 用LED显示数据时分为位选和段选。此模块用P1.0P1.3四个P1口引脚来控制位选,用P0口来控制数码管的
7、段选。由于选用的是六位数的LED所以有六个位选,而在用P1引脚时只有4个引脚可供用,所以选用74HC138译码器来控制6个位选。用74HC245锁存器来储存数据。2.1.4 显示模块通常的数码显示器是由7 段条形的LED 组成,点亮适当的字段,就可显示出不同的数字。我们采用8 段数码管,其中位于显示器右下角的LED 作小数点用。LED 显示器有两种不同的形式:共阴极和共阳极。本次设计采用共阳极接法。数字09的共阳极字形代码如下表:显示字型gfedcba段码001111110c0h100001100f9h210110110a4h310011110b0h4110011099h5110110192h
8、6111110182h700001110f8h8111111180h9110111190h2.2各部分电路的功能特性 2.2.1 输入模块功能 本设计采用P2口控制键盘。当无按键闭合时,P2.0P2.3 与P2.4P2.7 之间开路。当有键闭合时,与闭合键相连的两条I/O 口线之间短路。确定按键编号的方法:第一步,置列线P2.4P2.7 为输入状态,从行线P2.0P2.3 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P2.4P2.7 读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。判断有无按键按下的
9、方法是:当有键按下时蜂鸣器会发出声音,没有按下时则不会有声音。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。2.2.2 单片机模块功能AT89C51是整个设计的核心模块。利用AT89C51的P0口控制数码管的段选,从而实现数字09的显示,P2口控制按键,用P1口的前三个引脚与74HC138译码器相连,从而实现对数码管位选的控制。2.2.3 运算模块的功能选用74HC138译码器来控制位选。这样可以节约P1口,在写程序时不至于发生混乱,简单明了。2.2.4 显示模块的功能LED 显示发光二极管LED 是单片机应用系统
10、中的一宗简单而常用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等。因而作为典型的外围器件,LED 显示单元是反映系统输出和操作输入的有效器件。LED 具备数字接口可以方便的和系统连接;它的优点是价格低,寿命长,对电压电流的要求低及容易实现多路等。2.3 原理电路图3程序设计与分析在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。设计的中心思想是把一个复杂应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程和调试,然后组合起来。这种方法便于设计和调试,容易实现多个程序共存,但各个模块之间的连接有一定的难度。根据需要我们可以采用自上而下的程序设
11、计方法,此方法先从主程序开始设计,然后再编制各从属程序和子程序,层层细化逐步求精,最终完成一个复杂程序的设计。3.1 各模块程序的设计3.1.1 按键扫描 在C语言的基础上,采用P2口控制键盘。当无按键闭合时,P2.0P2.3 与P2.4P2.7 之间开路。当有键闭合时,与闭合键相连的两条I/O 口线之间短路。确定按键编号的方法:第一步,置列线P2.4P2.7 为输入状态,从行线P2.0P2.3 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P2.4P2.7 读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键
12、编号。3.1.2 验证数据的有效性 由于选用的是六位的数码管,可达到的最大数据为99999,当输入的数据或计算出的数据结果大于99999时,会出错。具体用如下语句来实现:bit check_num(float f_num) if (f_num = 100000)return 1;return 0;3.1.3 数码管显示 数码管有段选和位选,不同的数据控制不同的位,因此采用C语言中的选择语句来实现对数码管显示的程序控制。3.1.4 计算程序 简单的计算器有加、减、乘、除四种运算。此部分程序框图如下:数值送缓冲显示错误信息送缓冲显示 除数为0?运算溢出?减除乘加运算符是?开 始 Y Y N N3.
13、2完整的程序框图开 始 初始化参数初始化LED显示有按键入?读取按键 Y数字键?读取数值 N Y N清零键?数值送显示缓冲状态清零 Y N功能键? N LED显示等待数值输入结果送显示缓冲执行本次功能键根据上次功能键和输入的数据计算结果数值送显示缓冲 Y 4系统仿真图4.1 系统仿真连线图4.2仿真结果 4.2.1 加法4.2.2 减法4.2.3 乘法4.2.4 除法4.3 PCB图5 系统评价 本设计实现了简单计算器的数据输入以及加、减、乘、除、清零等功能。对于简单的数据可以进行运算,比较方便简洁。在硬件设计方面所用到的器件相对较少,但主控元件引脚较多,想要完全掌握有点困难,而且在选择端口的
14、时候有点复杂。在软件方面,实现了设计的要求,程序语句简单,但是代码比较多,容易记错。由于是简单的计算器所以最大值能达到99999,适合做简单数字较小的运算,精确读可达到0.0001,对要求严格的数字精确度不是太高。针对以上问题,在熟悉更多器件的情况下,可以利用更换元器件来改进。6心得体会通过该计算器的设计我深入学习数码管扫描和键盘控制,提高了对51系列单片机的实际应用能力。同时也掌握应用程序控制51系列单片机进行简单的数学运算。提高了对51系列单片机的编程能力。这门课是最能理论联系实际的课,我们的目的是做出东西,为了这我们需要学关于这方面的各种知识,从被动性的接受知识变成了主动性的寻找知识。在
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 计算器 设计
