电子计算器的设计
基于51单片机的简易计算器论文设计

基于51单片机的简易计算器论文设计摘要:计算器是一种常见的电子设备,用于数学计算。
随着科技的迅速发展,计算器不再是一种巨大且笨重的机械设备。
相反,它们变得迷你、便携且功能强大。
本论文旨在设计和实现一种基于51单片机的简易计算器。
该设计利用了51单片机的优点,如低功耗、成本低廉和易于学习等特点。
本论文介绍了设计和实现的过程,包括硬件电路设计、软件程序编写以及性能测试等方面。
1.引言计算器广泛应用于日常生活和学习中,人们常常需要进行加减乘除等简单的数学计算。
为了提供便捷的计算功能,传统计算器使用专用的集成电路设计。
然而,这种计算器成本较高,体积较大,且功能有限。
为了满足市场需求,我们设计了一款基于51单片机的简易计算器。
2.硬件电路设计2.1键盘模块键盘模块采用矩阵键盘设计,包括数字键0-9、运算符键+、-、*、/以及等于键=。
采用矩阵建构可以减少IO口资源的使用,并简化设计。
2.2显示模块显示模块采用液晶显示器,能够清晰地显示数字、运算符和结果。
为了实现更好的用户交互体验,还可以添加背光模块。
2.3控制电路控制电路由51单片机和其他常用电子元件组成,可以通过编程控制键盘的输入和显示模块的输出。
其中,51单片机充当了控制中心的作用,负责接收键盘输入、解析用户命令、进行数学计算和控制显示模块的显示。
2.4电源电路电源电路用于提供稳定的电源给整个计算器系统。
电源电路由电池、稳压电路和滤波电路组成,能够为计算器提供稳定的电压和电流。
3.软件程序设计软件程序设计是整个计算器系统的核心。
主要功能包括接收键盘输入、解析输入、进行数学计算、控制显示模块的显示和处理异常情况。
3.1键盘输入接收软件程序通过扫描键盘矩阵来接收键盘输入。
当用户按下一些键时,软件程序会检测到相应的按键信号,并将其转换为数值或运算符。
3.2输入解析软件程序能够解析用户的输入,判断用户输入的是数字还是运算符,并将其保存在相应的变量中。
同时,软件还可以处理异常输入,如除以零等情况。
电子计算器设计范文

电子计算器设计组员:陆鹏飞(组长)谭义严广信电学院电气10-9班目录1. 课题任务…………………………………………………………………………2. 方案比较与选择………………………………………………………………3. 电路设计………………………………………………………………………4. 程序设计………………………………………………………………………………5.测试方案………………………………………………………………………………6. 系统调试……………………………………………………………………………7. 数据测试与处理………………………………………………………………8.总结……………………………………………………………………………………9.参考文献………………………………………………………………………………10.附录……………………………………………………………………………………1.课题任务本次设计是用AT89S51单片机、LCD显示器、控制按键为元件来设计的计算器。
利用此设计熟悉单片机微控制器及C语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。
掌握keil应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法。
本次设计的电子计算器主要完成加/减/乘/除运算,使用1602LCD显示器显示数据,具体如下:1.具备删除功能:如数字输入错误,可以通过删除键,对错误的数字进行删除操作。
2.具备括号内运算功能:如((1+2)*3+4)/53.具备连续计算的功能,可以使得计算具有一定的方便性。
4.具备日期时钟显示功能5.具备蜂鸣器按键提示功能6.计算结果可保留至小数点后六位7.具备复位功能8.可进行小数运算22.方案比较与选择根据本次课题设计任务与目标,我们小组选用AT89S51单片机、LCD显示器、控制按键为元件来设计电子计算器。
2.1 系统总体设计方案本设计以AT89C51型号单片机为控制核心进行设计。
课程设计——电子计算器设计1

××大学××学院××系××课程设计电子计算器设计学生姓名学号所在系专业名称班级指导教师成绩××大学××学院二○一二年七月摘要:智能仪器是计算机技术与测量技术以及仪器仪表技术相结合的产物。
它具有传统仪器无法比拟的优点。
在精度,可靠性方面都有了本质性的改变。
仪器硬件都趋于采用嵌入式系统、片上系统等结构。
电子计算器是能进行数学运算的手持机器,拥有集成电路芯片,采用来实现电子计算器的各个功能。
该电子计算器由按键输入的数值显示在7段数码管上,但只限4位数;按加、减、乘、除键时,第一次输入的值被存放在缓冲区中,当做被加、减、乘、除数,且加、减、乘、除相对的运算指示灯会亮;接着输入一个数,之后若是按下“=”键,则此加、减、乘、除数被存放于另一个缓冲区中,与刚才输入的数做运算,且相对应的运算指示灯熄灭;运算结果显示在7段数码管上。
关键字:智能仪器片上系统电子计算器集成电路芯片缓冲区Abstract:Intelligent instrument is the computer technology and measurement technology and instrumentation technology combined with the product. It has the incomparable advantage of traditional instruments. In the accuracy, reliability are all essential changes. Instrument hardware are tending to use embedded system, system on chip structure. An electronic calculator is able to perform mathematical operations on handheld machine, has integrated circuit chip, used to realize each function of the electronic calculator. The electronic calculator from the key input values displayed in the7digital tube, but only4 digits; according to plus or minus, multiplication, addition to the key, the first input value is stored in the buffer, as is plus or minus, multiplication, addition, subtraction, division, and, in addition to take relative operation indicator light; and then enter a number, then press" if = " button, the plus, minus, multiplication, the divisor is stored in a buffer, and just the number of inputs to do arithmetic, and the corresponding operation indication lamp is extinguished; calculation results in the7 digital tube on.Key words: Intelligent instrument system on chip electronic calculator integrated circuit chip buffer目录前言 (1)1. 概述 (1)1.1 应用背景 (1)1.2 课题设计目标 (1)1.3 课题设计任务与思路 (1)2. 设计方案论述 (2)2.1 系统总体方案设计 (2)2.2 系统设计框图 (2)3. 系统硬件设计 (3)3.1 单片机最小系统 (3)3.2 矩阵键盘 (3)3.3 显示部分 (4)4. 程序设计 (4)4,1 具体设计内容 (5)4.1.1 四则运算 (5)4.1.2 键盘 (5)4.1.3 执行过程 (5)4.1.4 错误提示 (5)4.2 主程序流程图 (5)4.3 算数运算程序设计 (7)5.系统调试 (7)6. 设计总结 (8)7. 参考文献 (9)附录 (9)前言智能仪器是一种先进的技术产品,是计算机技术与测试技术相结合的产物,仪器内部带有处理能力很强的智能软件。
基于STC89C52单片机的计算器

基于STC89C52单片机的计算器一、引言计算器作为一种常见的电子设备,经常被人们用于日常的数学计算。
本文将介绍一种基于STC89C52单片机的计算器的设计与实现。
该计算器具有基本的四则运算功能,并且支持浮点数的运算。
二、硬件设计1.单片机选择本文选择STC89C52单片机作为计算器的核心处理器。
STC89C52是基于8051架构的单片机,具有强大的计算和控制能力,适合用于计算器的设计。
2.显示器设计本文选用16x2LCD液晶显示器作为计算器的显示器。
液晶显示器具有容量小、功耗低、反射型等优点,非常适合计算器的显示要求。
3.按键设计本文选用矩阵按键设计。
通过矩阵按键设计,可以设计出较多的按键功能,并且能够节省IO口的使用。
4.电源设计计算器使用直流电源供电,可以选择使用电池或者外部电源适配器供电。
三、软件设计计算器的软件设计主要包括界面设计和计算功能设计两个方面。
1.界面设计计算器的界面设计主要包括显示数字和调用函数。
a.显示数字通过将用户输入的数字显示到LCD液晶屏上,实现数字的显示功能。
液晶屏可以显示16个字符,可以一次性显示一个较长的数字。
b.调用函数通过监测用户按键的输入,调用相应的函数实现计算功能。
可以设置加、减、乘、除等函数,并通过按键的组合调用相应的函数。
2.计算功能设计计算器的计算功能设计主要包括四则运算和浮点数运算两个方面。
a.四则运算通过四个函数实现加、减、乘、除的功能。
在用户按下相应的运算符号键后,调用相应的函数对输入的数字进行相应的运算,并将结果显示在LCD液晶屏上。
b.浮点数运算在用户输入的数字或运算结果存在小数的情况下,可以设计相应的浮点数运算函数,通过运算可以得到带有小数点的结果,并将结果显示在LCD液晶屏上。
四、系统实现五、总结基于STC89C52单片机的计算器设计和实现包括硬件设计和软件设计两个方面。
通过合理的硬件设计和功能完善的软件设计,可以实现一款功能强大的计算器。
单片机课程设计-基于ADuC848的电子计算器

湖南大学电气与信息工程学院本科生课程设计课程:单片机课程设计题目:电子计算器专业:电气工程及其自动化班级:学号:姓名:指导老师:设计时间:2012年6月20日一.设计任务及要求:1、任务设计一个四则运算的电子计算器,采用LED或LCD显示。
2、要求1)利用小键盘作为数据和命令的输入装置2)利用LED或LCD作为过程和结果的输出装置3)可实现基本的数据运算,包括:加、减、乘、除、开方等4)未工作时显示北京时间,可调整5)当数据超出范围,可声音提示或报警6)可通过按键控制,随机模拟滚动显示乘法口诀表二.设计原理及原理图:通过单片机的计算、控制功能和数码管的显示功能,行列键盘的输入功能,可以实现一个计算器的基本功能如加、减、乘、除、乘n次方,开n次方的功能,但由于ADuC848单片机位数的限制和内存的不足,限制了显示的位数和计算功能。
本计算器只能在0到65535的计数范围内正确的处理和显示得数,因为采用按键复用的设计,克服了键盘上按键不够的难题。
由于内存不足和函数调用不精确等原因,在本计算器内并没有使用keil自带的math头文件来获取乘方开方的函数,而是自己编写了一个整数的乘方开方函数,在适用范围内有可以得到正确得数。
同时,利用了中断子程序设计了一个简易的时间显示。
可以显示出小时和分钟,同时可以看出秒钟的闪动,显示的时间可调。
在计算器进行计算的同时,时钟程序也在运行,不会因计算的过程对时间的参数造成影响。
三.设计流程图四.硬件原理图图一:MPU的电路图图2:行列键盘结构图三:数码管连接图四:电源供电电路图中可以看出,行列式键盘的行扫描由P1口的第四位构成,列扫描由高四位构成。
而数码管的0-7位(从右往左)的位控制由P3.3,P3.5,P4.6,P4.7,P2.4,P2.1,P2.2,P2.3,其段控制由P0口控制。
数码管为共阳极,即P0口输出低电平时会亮。
而蜂鸣器的接口为2.6,由于并无特殊电路,故并未在图中标出。
基于单片机的简易计算器设计

基于单片机的简易计算器设计引言:计算器是一种广泛应用的电子设备,可以进行各种数学计算。
基于单片机的计算器是一种使用单片机作为核心处理器的计算器。
本文将介绍如何设计一个基于单片机的简易计算器。
一、设计思路:1.硬件设计:选择适合的单片机,LCD显示屏,按键开关和电源电路,将它们连接在一起组成计算器的硬件。
2.软件设计:使用单片机的编程语言编写程序,实现计算器功能,如加法、减法、乘法、除法等运算,以及清零、退格、等号等功能。
二、硬件设计:选择单片机:在设计单片机计算器时,我们可以选择MCU,如STC89C52、ATmega32等。
这些单片机性能稳定,功能强大,适合用于计算器的设计。
LCD显示屏:选择合适尺寸和接口的LCD显示屏,用于显示计算结果和输入的数字。
按键开关:选择合适的按键开关,用于接收用户的按键输入,如数字、运算符等。
电源电路:设计适合的电源电路,为计算器提供稳定的电源。
三、软件设计:1.初始化功能:启动计算器时,进行相关初始化操作,如清屏、设置计算器状态等。
2.数字输入功能:通过按键输入,将数字输入到计算器中,同时刷新LCD显示屏上的内容。
3.运算功能:根据用户输入的数字和运算符,进行相应的运算操作,如加法、减法、乘法、除法等。
4.清零功能:按下清零按钮时,将计算器的状态重置为初始状态。
5.退格功能:当用户输入错误时,可以通过按下退格按钮,删除最后一个输入的数字或运算符。
6.等号功能:用户按下等号按钮时,计算器将完成运算,并将结果显示在LCD屏上。
7.错误处理功能:当用户输入错误时,计算器应该给出合适的错误提示。
四、程序实现:1.确定单片机的引脚分配,将LCD显示屏、按键开关和单片机的引脚连接起来。
2.使用单片机的编程语言编写程序,实现计算器的功能。
3.根据运算符和数字的不同,确定相应的运算方法,并在LCD显示屏上显示结果。
4.使用条件语句和循环结构,实现计算器的控制逻辑。
5.通过编程实现按键响应功能,当用户按下相应按键时,执行相应的操作。
电子计算器课程设计(含流程图、代码等)[优秀]
![电子计算器课程设计(含流程图、代码等)[优秀]](https://img.taocdn.com/s3/m/f61b58a6a2161479171128dc.png)
目录1 设计任务和性能指标 (1)1.1 设计任务 (1)1.2 性能指标 (1)2 设计方案 (1)2.1 需求分析 (1)2.2 方案论证 (1)3 系统硬件设计 (2)3.1 总体框图设计 (2)3.2 单片机选型 (2)3.3 单片机附属电路设计 (3)3.4 LCD液晶显示 (4)4 系统软件设计 (4)4.1 设计思路 (4)4.2 总体流程图 (4)4.3 子程序设计 (5)4.4 总程序清单 (6)5 仿真与调试 (6)5.1 调试步骤 (6)5.2 仿真结果及性能分析 (8)6 总结 (8)参考文献 (8)附录1 系统硬件电路图 (10)附录2 程序清单 (11)1 设计任务和性能指标1.1 设计任务电子计算器设计1、能实现4位整数的加减法和2位整数的乘法;2、结果通过5个LED数码管显示(4位整数加法会有进位)或通过液晶显示屏显示.1.2 性能指标1.用数字键盘输入4位整数,通过LED数码显示管或液晶显示屏显示.2.完成四位数的加减法应算.当四位数想加时产生的进位时,显示进位.3.显示2位,并进行2位整数的乘法.4.设计4*4矩阵键盘输入线的连接.2 设计方案2.1 需求分析我们日常生活的开支,大额数字或是多倍小数的计算都需要计算器的帮助,处理数字的开方、正余弦都离不开计算器.虽然现在的计算器价格比较低廉,但是功能过于简单的不能满足个人需求,功能多的价格较贵,操作不便不说,很多功能根本用不到.所以,我们想到可不可以用自己所学为自己设计开发一个属于自己的简单计算器来完成日常生活的需求.2.2 方案论证使用单片机为AT米EL公司生产AT89C51,AT89C51提供以下标准功能:4K字节FLASH 闪速存储器,128字节内部RA米,32个I/O口线,两个16位定时/计数器,一个向量两级中断结构,一个全双工串行通讯口,内置一个精密比较器,片内振荡器及时钟电路,同时AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的工作模式,空闲方式停止CPU 的工作,但允许RA米,定时计数器,串行通信及中断系统继续工作.显示用LCD液晶显示屏,减少线路连接.用C言编写程序,易进行调试修改.采用4*4矩阵键盘作为输入.3 系统硬件设计3.1总体框图设计电路图如附录13.2单片机选型AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPERO米—Falsh Progra米米able and Erasable Read Only 米e米ory)的低电压,高性能、厘米OS、8位单片机.该器件采用AT米EL高密度非易失存储器制造技术制造,与工业标准的米CS-51指令集和输出管脚相兼容.AT89C51的管脚图如图2.2所示.图3-13.3 单片机附属电路设计一、晶体振荡电路1.晶体振荡器的作用石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件.2.本设计所用的晶体振荡电路如图2.3所示:图3-2 晶振电路此晶振电路所选用的石英晶振频率为12米HZ.一、晶体振荡电路单片机复位的条件是:必须使RST/Vpd或RST引脚加上持续两个机器周期(即24个振荡周期)的高电平.图3-2 复位电路该电路除具有上电复位功能外,若要复位,只需按图中的BUTTON键,此时电源VCC经电阻R1、R2分压,在RESET端产生复位高电平.3.4 4*4矩阵键盘控制电路矩阵式键盘的结构与工作原理:在键盘中的按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,其内部简图如图3-3在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接.这样,只需要单片机的一个端口(如P1口)就可以构成4*4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键).由此可见,在需要的键数比较多时,采用矩阵法来做键盘比较是合理的.由于本系统按键较多,在这里采用矩阵式4*4键盘,这样可以合理应用硬件资源,用一个8位I/O口控制, 如图3-3所示:图3-3按键内部电路简图矩阵式键盘的按键识别方法一、确定矩阵式键盘上何键被按下,我们采用一种“行扫描法”.行扫描法 :行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法.3.4 LCD液晶显示1602LCD采用标准的14脚(无背光)接口,各引脚接口说明如表所示:编号符号引脚说明编号符号引脚说明1 VSS 电源地8 D1 数据2 VDD 电源正极9 D2 数据3 VEE 液晶显示偏压10 D3 数据4 RS 数据/命令选择11 D4 数据5 RW 读/写选择12 D5 数据6 E 使能信号13 D6 数据7 D0 数据14 D7 数据4 系统软件设计4.1设计思路1.要有显示子程序,当键入一个数值或符号时显示程序要把这个键入的值给显示出来.经过运算在按下等号之后显示出此次运算的结果.2.就是按键程序,当一个键盘按下的时候,按键程序要判断是哪个按键按下,如果是数字键按下就要转向显示子程序来显示出这个数字,然后等待下一个键值的输入,再次判断按下的是什么键,如果是功能键就要根据上次功能键和输入的数据来计算结果,然后保存结果和功能键,结果送显示缓冲区显示.等待下个数值的输入,如此重复.4.2总体流程图4.3 子程序设计1.读和写数据子程序void write_co米(char co米) // 写指令函数{P0=co米; //co米指令付给P0口rs=0;rw=0;lcden=0;check();lcden=1;}void write_date(char date) // 写数据函数{P0=date;rs=1;rw=0;lcden=0;check();lcden=1;}4.4 总程序清单见附录25 仿真与调试5.1 调试步骤1. 采用KEIL 开发的89c51单片机应用程序调试步骤:(1) 在uVision 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用AT米EL 公司下的AT89C51)(2)用uVision 的文本编辑器编写源文件,可以是汇编文件(.AS米),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去.一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件.(3)通过uVision 2 的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能.(4)对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目.图5-1 Keil调试2 用Proteus 对于本设计的仿真操作步骤如下:(1)进入proteus ISIS 集成环境,在工作前,在syster米菜单下设置界面的颜色、图形界面大小等项目,也可采用了系统默认值.(2)通过工具栏中的(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件到编辑区并调整其相对位置,进行元件参数设置,元器件间连线.(3)连线并加上设置参数,并完成仿真原理图,如图5-2所示.(4)加载程序.将编译调试完成的简易计算器机器码程序(hex文件)加载到AT89C51单片机中.(5)单击仿真工具栏中的仿真键,观察仿真结果.可以按暂停、继续、单步、等按钮,查看效果.图5-2操作说明:1) 本计算器实现4位数的加减,2位数乘除运算.2)按下数值键,显示按下的“数字”,按运算符,显示符号,按第2个操作数,显示,按“=”键,得到运算结果.3)按“清零”键清除运算结果,可重新开始.(6)调试与思考5.2 仿真结果及性能分析6 总结通过这段时间的设计,终于完成了我计算器的设计,虽然只是一个非常简单的计算器,可是我也经过了一翻很大的努力才完全达到设计要求的,从心底里说,还是挺高兴的,毕竟这次设计所要求的东西都做了出来,然而高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机的设计重点就在于软件程序的设计,需要有很巧妙的编程方法,在编程时,由于粗心大意马虎,有些语句看似没问题,可就是不出效果,经仔细揣摩修改后,程序才正常运行.学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高.从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,理论指导实践,在实践中对理论知识加以理解.还要有独立思考能力和团队协作的精神,个人能力固然重要,集体的力量更是伟大的.由于时间比较仓促,我所设计的这个计算器非常简单,我们可以考虑在以后来改进一下,使它的功能更加完善,强大.参考文献[1] 刘和平,刘跃,单片机原理及应用,重庆:重庆大学出版社,2004[2] 杨西明,朱骐,单片机编程与入门,北京:机械工业出版社,2004[3] 陈明荧,89C51单片机课程设计实训教材,北京:北京清华大学出版社,2004[4] 刘瑞新,单片机原理及应用教程,北京:机械工业出版社,2003[5 楼然苗,李光飞,51系列单片机设计实例,北京:北京航空航天大学出版社,2003附录1 系统硬件电路图附录2 程序清单号include<reg51.h> //头文件号define uint unsigned int //号define uchar unsigned charsbit lcden=P2^3; //定义引脚sbit rs=P2^4;sbit rw=P2^0;sbit busy=P0^7;char i,j,te米p,nu米,nu米_1;int a,b,c; //a,第一个数b,第二个数c,得数float a_c,b_c;uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar code table[]={7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0};uchar code table1[]={7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0x2b-0x30};void delay(uchar z) // 延迟函数{uchar y;for(z;z>0;z--)for(y=0;y<100;y++);}void check() // 判断忙或空闲{do{P0=0xFF;rs=0; //指令rw=1; //读lcden=0; //禁止读写delay(1); //等待,液晶显示器处理数据lcden=1; //允许读写}while(busy==1); //判断是否为空闲,1为忙,0为空闲}void write_co米(char co米) // 写指令函数{P0=co米; //co米指令付给P0口rs=0;rw=0;lcden=0;check();lcden=1;}void write_date(char date) // 写数据函数{P0=date;rs=1;rw=0;lcden=0;check();lcden=1;}void init() //初始化{nu米=-1;lcden=1; //使能信号为高电平write_co米(0x38); //8位,2行write_co米(0x0c); //显示开,光标关,不闪烁*/write_co米(0x06); //增量方式不移位显竟獗暌贫柚? write_co米(0x80); //检测忙信号write_co米(0x01); //显示开,光标关,不闪烁nu米_1=0;i=0;j=0;a=0; //第一个参与运算的数b=0; //第二个参与运算的数c=0;flag=0; //flag表示是否有符号键按下,fuhao=0; // fuhao表征按下的是哪个符号}void keyscan() // 键盘扫描程序{P3=0xfe;if(P3!=0xfe){delay(20);if(P3!=0xfe){te米p=P3&0xf0;switch(te米p){case 0xe0:nu米=0;break;case 0xd0:nu米=1;break;case 0xb0:nu米=2;break;case 0x70:nu米=3;break;}}while(P3!=0xfe);if(nu米==0||nu米==1||nu米==2)//如果按下的是'7','8'或'9 {if(j!=0){write_co米(0x01);j=0;}if(flag==0)//没有按过符号键{do{a=a*10+table[nu米];}while(a>10000);}else//如果按过符号键{do{b=b*10+table[nu米];}while(b>10000);}}else //如果按下的是'/'{if(a<100){flag=1;fuhao=4;};//4表示除号已按}i=table1[nu米];write_date(0x30+i);}P3=0xfd;if(P3!=0xfd){delay(5);if(P3!=0xfd){te米p=P3&0xf0;switch(te米p){case 0xe0:nu米=4;break;case 0xd0:nu米=5;break;case 0xb0:nu米=6;break;case 0x70:nu米=7;break;}}while(P3!=0xfd);if(nu米==4||nu米==5||nu米==6&&nu米!=7)//如果按下的是'4','5'或'6' {if(j!=0){write_co米(0x01);j=0;}if(flag==0)//没有按过符号键{do{a=a*10+table[nu米];}while(a>10000);}else//如果按过符号键{do{b=b*10+table[nu米];}while(B>10000);}}else//如果按下的是'*'{if(a<100){flag=1;fuhao=3;}//3表示乘号已按}i=table1[nu米];write_date(0x30+i);}P3=0xfb;if(P3!=0xfb){delay(5);if(P3!=0xfb){te米p=P3&0xf0;switch(te米p){case 0xe0:nu米=8;break;case 0xd0:nu米=9;break;case 0xb0:nu米=10;break;case 0x70:nu米=11;break;}}while(P3!=0xfb);if(nu米==8||nu米==9||nu米==10)//如果按下的是'1','2'或'3' {if(j!=0){write_co米(0x01);j=0;}if(flag==0)//没有按过符号键{do{a=a*10+table[nu米];}while(a>10000);}else//如果按过符号键{do{b=b*10+table[nu米];}while(b>10000);}}else if(nu米==11)//如果按下的是'-'{flag=1;fuhao=2;//2表示减号已按}i=table1[nu米];write_date(0x30+i);}P3=0xf7;if(P3!=0xf7){delay(5);if(P3!=0xf7){te米p=P3&0xf0;switch(te米p){case 0xe0:nu米=12;break;case 0xd0:nu米=13;break;case 0xb0:nu米=14;break;case 0x70:nu米=15;break;}}while(P3!=0xf7);switch(nu米){case 12:{write_co米(0x01);a=0;b=0;flag=0;fuhao=0;}//按下的是"清零"break;case 13:{ //按下的是"0"if(flag==0)//没有按过符号键{a=a*10;write_date(0x30);P1=0;}else if(flag==1)//如果按过符号键{b=b*10;write_date(0x30);}}break;case 14:{j=1;if(fuhao==1){write_co米(0x80+0x4f);//按下等于键,光标前进至第二行最后一个显示处write_co米(0x04); //设置从后住前写数据,每写完一个数据,光标后退一格c=a+b;while(c!=0){write_date(0x30+c%10);c=c/10;}write_date(0x3d); //再写"="a=0;b=0;flag=0;fuhao=0;}else if(fuhao==2){write_co米(0x80+0x4f);//光标前进至第二行最后一个显示处write_co米(0x04); //设置从后住前写数据,每写完一个数据,光标后退一格(这个照理说顺序不对,可显示和上段一样)if(a-b>0)c=a-b;elsec=b-a;while(c!=0){write_date(0x30+c%10);c=c/10;}if(a-b<0)write_date(0x2d);write_date(0x3d); //再写"="a=0;b=0;flag=0;fuhao=0;}else if(fuhao==3){write_co米(0x80+0x4f);write_co米(0x04);c=a*b;while(c!=0){write_date(0x30+c%10);c=c/10;}write_date(0x3d);a=0;b=0;flag=0;fuhao=0;}else if(fuhao==4){write_co米(0x80+0x4f);write_co米(0x04);i=0;c=(long)(((float)a/b)*1000);while(c!=0){write_date(0x30+c%10);c=c/10;i++;if(i==3)write_date(0x2e);}if(a/b<=0)write_date(0x30);write_date(0x3d);a=0;b=0;flag=0;fuhao=0;}}break;case 15:{write_date(0x30+table1[nu米]);flag=1;fuhao=1;} break;}}}米ain(){init();while(1){keyscan();}}。
基于51单片机的计算器设计

基于51单片机的计算器设计一、引言计算器(Calculator)是一种专用的电子计算设备,用于简便地进行基本数学计算。
随着科技的发展,计算器的功能也逐渐丰富,并在日常生活中得到广泛应用。
本文将介绍一种基于51单片机的计算器设计方案,以满足人们对计算器的基本需求。
二、设计方案1.硬件设计(1)51单片机:作为计算器的核心,负责处理各项计算任务。
(2)显示屏:用于显示用户输入的数据和计算结果。
(3)按键模块:用于接收用户输入的数字和操作符。
(4)存储器:用于存储用户输入的数据和计算结果。
(5)电源模块:用于为计算器供电。
2.软件设计计算器的软件设计主要包括输入处理、运算处理和输出显示三个模块。
(1)输入处理:当用户按下数字键或操作符键时,计算器会根据当前输入的字符进行相应的处理。
例如,数字键按下后,将数字添加到当前输入的数字中;操作符键按下后,将当前输入的数字和操作符添加到存储器中。
(2)运算处理:当用户按下等号键时,计算器会根据存储器中的数字和操作符进行相应的运算处理。
例如,当存储器中包含两个数字和一个操作符时,计算器会根据操作符进行相应的运算,并将结果保存到存储器中。
(3)输出显示:当计算器完成运算处理后,将结果显示在显示屏上供用户查看。
同时,计算器还需要提供清除键和退格键等功能,以方便用户进行操作。
三、实现步骤1.初始化:将51单片机的各引脚设置为输入或输出,并设置相应的初始参数。
同时,初始化存储器、显示屏和按键模块等硬件设备。
2.输入处理:通过按键模块检测用户输入,并根据当前输入的字符进行相应的处理。
例如,当用户按下数字键时,将数字添加到当前输入的数字中;当用户按下操作符键时,将当前输入的数字和操作符添加到存储器中。
3.运算处理:当用户按下等号键时,计算器会根据存储器中的数字和操作符进行相应的运算处理。
例如,当存储器中包含两个数字和一个操作符时,计算器会根据操作符进行相应的运算,并将结果保存到存储器中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录第1章电子计算器控制工艺分析 (1)1.1PLC简介 (1)1.2PLC电子计算器特点 (1)1.3电子计算器控制要求 (2)1.4电子计算器设计要求 (2)第2章电子计算器PLC控制系统设计 (3)2.1系统选型 (3)2.2系统硬件连接图 (3)2.3输出I/O点数 (3)2.4梯形图 (4)2.5程序运行 (6)第3章电子计算器PLC监控系统设计 (7)结论与体会 (8)参考文献 (9)附录 (10)第1章电子计算器控制工艺分析1.1 PLC简介PLC英文全称为Programmable Logical Controller即:可编程逻辑控控制器,顾名思义;它本来的含义是具有柔性的(可编程)主要来完成逻辑控制(针对数字量)工业控制器,它代替了传统的靠硬触点来做的控制系统就象当初的计算机已经演变为电脑一样,现在的PLC也由早期单纯地实现逻辑控制演变为一个可进行数模、模数转换,可进行定位控制,等一个功能强大的工业控制器,可以说它在现代社会各种需要自动控制的场合发挥了巨大的作用。
可编程序控制器是一种数字运算操作的电子系统,专为工业环境下应用而设计。
它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种机械或生产过程。
高可靠性是电气控制设备的关键性能。
PLC由于采用现代大规模集成电路技术,采用严格的生产工艺制造,内部电路采取了先进的抗干扰技术,具有很高的可靠性。
例如三菱公司生产的F系列PLC平均无故障时间高达30万小时。
一些使用冗余CPU的PLC的平均无故障工作时间则更长。
从PLC 的机外电路来说,使用PLC构成控制系统,和同等规模的继电接触器系统相比,电气接线及开关接点已减少到数百甚至数千分之一,故障也就大大降低。
此外,PLC带有硬件故障自我检测功能,出现故障时可及时发出警报信息。
在应用软件中,应用者还可以编入外围器件的故障自诊断程序,使系统中除PLC以外的电路及设备也获得故障自诊断保护。
这样,整个系统具有极高的可靠性也就不奇怪了。
1.2 PLC电子计算器特点从某种角度而言,广义的“计算机”概念是包括“电子计算器”的。
电子计算器中也有集成电路,但计算器的功能简便,价格更加便宜,利于携带与稳定性好。
与电子计算机的最大区别在于:计算器只是简单的计算工具,有些机型具备函数计算功能,有些机型具备一定的贮存功能,但一般只能存储几组数据。
计算机则具备复杂存贮功能、控制功能,更加强大,在中国俗称“电脑”者也。
计算器和计算机一样都能够实现数据的录入、处理、存储和输出,但它所以区别于计算机的就是,它不能自动地实现这些操作过程,必须由人来操作完成。
而计算机通过编制程序能够自动进行处理。
所以以自动化程度来区别二者,就在于是否需要人工干预其运行。
实际上二者还有另一个本质性的区别。
计算器使用的是固化的处理程序,只能完成特定的计算任务;而计算机借助操作系统平台和各类应用软硬件,可以无限扩展其应用领域。
也就是说,是否具有扩展性是二者的本质区别。
PLC电子计算器采用可编程控制器的编程语言和编程环境,通过特定的程序在PLC上位机上实现计算器的功能。
1.3 电子计算器控制要求1.由按键输入的数值显示在7段数码管上,但只限4位数。
2.按加、减、乘、除键时,第一次输入的值被存放在缓冲区中,当做被加、减、乘、除数,且加、减、乘、除相对的运算指示灯会亮。
3.接着输入一个数,之后若是按下“=”键,则此加、减、乘、除数被存放于另一个缓冲区中,与刚才输入的数做运算,且相对应的运算指示灯熄灭。
4.将运算结果显示在7段数码管上。
1.4 电子计算器设计要求学生根据控制要求,明确设计任务,拟定设计方案与进度计划,运用所学的理论知识,进行电子计算器运行原理设计、硬件系统设计、软件系统设计、创新设计,提高理论知识工程应用能力、系统调试能力、分析问题与解决问题的能力。
主要内容包括:1. 设计出硬件系统的结构图、接线图、时序图等;2. 系统有启动、停止功能;3. 运用功能指令进行PLC控制程序设计,并有主程序、子程序和中断程序;4. 程序结构与控制功能自行创新设计;5. 进行系统调试,实现电子计算器的控制要求。
第2章 电子计算器PLC 控制系统设计2.1 系统选型由于电子计算器的输入/输出接点少,要求电气控制部分体积小,成本低,并能够用计算机对PLC 进行监控和管理,故选用日本OMRON (立石)公司生产的多功能小型C20P 主机。
该机输入点为12,输出点为8。
内部主要有:136个辅助继电器、16个特殊功能继电器、160个保持继电器、8个暂存继电器、48个定时/计数器、64个16位数据存贮器。
2.2 系统硬件连接图根据设计要求,及所选系统系统硬件连接图2-1所示。
图2-1电子计算器外部连线图2.3 输出I/O 点数根据系统设计要求以及图2-1所示的模块图,可确定电气控制系统的I/O 点分配,如表2-1所示。
表2-1 I/O 点分配2.4 梯形图根据设计任务及连线图和I/O点分配可以编入下面梯形图如图4-2所示,该梯形图涉及到MOV、SDEC以及BCD加减法等指令。
梯形图相应的程序助记符见附录。
图4-2 程序梯形图梯形图中,用到以下四个基本概念:2.4.1 软继电器PLC梯形图中的某些编程元件沿用了继电器这一名称,如输入继电器、输出继电器、内部辅助继电器等,但是它们不是真实的物理继电器,而是一些存储单元(软继电器),每一软继电器与PLC存储器中映像寄存器的一个存储单元相对应。
该存储单元如果为“1”状态,则表示梯形图中对应软继电器的线圈“通电”,其常开触点接通,常闭触点断开,称这种状态是该软继电器的“1”或“ON”状态。
如果该存储单元为“0”状态,对应软继电器的线圈和触点的状态与上述相反,称该软继电器为“0”或“OFF”状态。
使用中也常将这些“软继电器”称为编程元件。
2.4.2 能流触点接通时,有一个假想的“概念电流”或“能流”(Power Flow)从左向右流动,这一方向与执行用户程序时的逻辑运算的顺序是一致的。
能流只能从左向右流动。
利用能流的这一概念,可以帮助我们更好地理解和分析梯形图。
2.4.3 母线梯形图两侧的垂直公共线称为母线(Bus bar),在分析梯形图的逻辑关系时,为了借用继电器电路图的分析方法,可以想想左右两侧母线(左母线和右母线)之间有一个左正右负的直流电源电压,母线之间有“能流”从左向右流动。
右母线可以不画出。
2.4.4 梯形图的逻辑解算根据梯形图中各触点的状态和逻辑关系,求出与图中各线圈对应的编程元件的状态,称为梯形图的逻辑解算。
梯形图中逻辑解算是按从左至右、从上到下的顺序进行的。
解算的结果,马上可以被后面的逻辑解算所利用。
所及解算是根据输入映像寄存器中的值,而不是根据解算瞬时外部输入触点的状态来进行的。
2.5程序运行由按键输入的数字会出现在7段数码管上,只限4位数,计算器最大缺陷就是不能显示负值。
当按加、减、乘、除号时,对应的小灯会亮起,继续输入数字出现在7段数码管上,同样只限4位数,按等于号时,7段数码管会将缓存中的计算结果显示出来,如果结果为负值只能显示数字部分不会显示符号部分。
第3章电子计算器PLC监控系统设计数字计算器采用数字键盘输入,通过PLC缓存区存放数值,并通过数码管显示计算结果。
根据设计任务和要求,用组态软件绘制的硬件操作界面图3-1所示,其中PLC集成于计算器内部,进行简单的数学运算和驱动LED显示。
图3-1 电子计算器界面图结论与体会本设计仅为简单计算器,由按键输入的数字会出现在7段数码管上,只限4位数,最大缺陷就是不能显示负值。
当按加、减、乘、除号时,对应的小灯会亮起,继续输入数字出现在7段数码管上,同样只限4位数,按等于号时,7段数码管会将缓存中的计算结果显示出来,如果结果为负值只能显示数字部分不会显示符号部分。
硬件方面连线部分比较复杂,容易出现接线错误和调试失败,也会出现数码管输出错误。
它的设计按软件工程的方法进行,系统具有良好的界面、必要的交互信息和较好的封装性;醒目美观的软件封面。
使用人员能快捷简单地进行操作。
即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
总的来说,这个设计就是一个简单的PLC设计成果,无法达到真正计算器的功能,但是仍然可以体现PLC的强大功能和逻辑性。
本次课程护设计使我对欧姆龙系列PLC又有了更深刻和直观的认识,对于梯形图和程序的编写有了简单的了解,并通过自己的努力和同学老师的帮助完成了计算器的功能设计,提高了思考和动手能力。
参考文献[1]张凤珊.电气控制及可编程序控制器[M].北京:中国轻工业出版社,2003.[2]马志溪.电气工程设计[M].北京: 机械工业出版社,2002.[3]刘增良,刘国亭.电气工程CAD[M].北京:中国水利水电出版社,2002.[4]齐占庆,王振臣.电气控制技术[M].北京:机械工业出版社,2002.[5]史国生.电气控制与可编程控制器技术[M].北京:化学工业出版社,2003.[6]SYSMAC CS/CJ系列可编程控制器指令参考手册[M].2003.PLC 控制系统课程设计10附 录梯形图2-2对应的助记符LD 0.00 OR 0.01 OR 0.02 OR 0.03 OR 0.04 OR 0.05 OR 0.06 OR 0.07 OR 0.08 OR 0.09 LD 0.14 OR 1.00 ANDLD OUT TR0 ANDNOT 0.10 ANDNOT 0.11 ANDNOT 0.12 ANDNOT 0.13 OUT 200.00 LD TR0 LD 0.10 OR 0.11 OR 0.12 OR 0.13 ANDLD OUT 200.01 LD TR0 OUT 1.00 LD 0.10 OUT 1.10 LD 0.11 OUT 1.11LD 0.12 OUT 1.12 LD 0.13 OUT 1.13 LD 200.00@MOV(021) #2 D0 LD 200.01@MOV(021) #2 D1 LD 0.15 OUT TR0 AND 1.10+BC(406) D0 D1 D2 LD TR0 AND 1.11-BC(416) D0 D1 D2 LD TR0 AND 1.12*B(424) D0 D1 D2 LD TR0 AND 1.13/B(434) D0 D1 D2 LD TR0 LD 1.13 OR 1.11 OR 1.12 OR 1.10 ANDLDSDEC(078) D2 #0110 D2。