计算器设计报告
- 格式:doc
- 大小:39.50 KB
- 文档页数:7
1. 方案根据计算器的功能要求,选择AT89C51为主控机,通过扩展必要的外围接口电路,实现对计算器的设计。
外部主要由4*4矩阵键盘和一个液晶显示屏构成,内部由一块AT89C51单片机构成。
计算器电路包括四个部分:选用LCD作为显示部分,矩阵键盘作为输入部分,运算模块,单片机控制部分。
模块图如图1.2所示。
图1.2 方案二模块图1.1整体设计根据简易计算器的功能和指标要求,本设计系统选用MCS-51系列单片机AT89C51为主控机。
通过扩展必要的外围接口电路,实现对简易计算器的设计。
计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。
具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用七段数码管显示数据和结果。
(2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可。
(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。
(4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在七段数码管上提示错误。
线路原理框图如图1.3所示。
图1.3 线路原理框图2电路设计原理2.1键盘接口电路计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。
矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。
这样键盘上按键的个数就为4×4个。
物理与电子信息学院电子技术综合设计报告设计题目:基于51单片机的计算器专业:电气工程及其自动化学号:姓名:成绩:指导教师:基于51单片机的计算器设计一、系统方案本课题计算器设计硬件电路采用三部分电路模块构成,第一部分是键盘模块电路,采用4*4矩阵式键盘作为输入电路;第二部分是LCD1602液晶显示模块;第三部分是以51单片机作为控制核心。
软件程序主要由三部分组成:主程序、按键扫描程序和LCD1602显示程序。
二、硬件设计如图1所示,该图是一个计算器的PCB线路模型。
我们用到了17个键位,1个自锁开关,分别负责控制计算器的运行与电源开关。
1个STC89C51单片机,负责存储与执行计算器各部分的运行状况,是整个电路的核心部分。
一个LCD1602显示屏,负责计算器的显示模块。
部分电阻、电容、晶振等,用来支持计算机电路的正常执行。
在此线路中,设计时未设计下载接口,但使用了电源接口代替下载口,负责电路板的供电等。
三、软件设计首先,我们使用了Proteus设计进行仿真,确认该设计思路可执行后,通过DXP设计电路。
Proteus仿真例如图2所示。
原理图参考了中国电子科技论坛提供的一些相关资料,同时自己进行了适当的改进。
依据Proteus所绘制的原理图,我们在Autium Designer上绘制了AD版的原理图,如图3所示。
在生成PCB版图时,第一次使用的封装为中国电子科技论坛提供的封装,但是由于该封装存在明显缺陷,即:焊盘太小,部分接口太接近等问题,然后我们将大量的元件更换至了由老师提供的封装,部分元件仍然使用原封装。
在将程序下载至单片机的过程中,我借用了同学购买的单片机开发板,使用了STC 公司提供的软件四、系统调试与结果在使用Proteus仿真阶段,我们就开始了程序编写的任务。
程序编写我们真的感觉是从0开始。
因为在编写程序过程中,我们并没有完成51系列单片机的C语言程序的学习、LCD1602等元器件理论性知识的学习。
计算器详细设计说明书1引言1.1编写目的编写这份详细设计说明书,旨在完整地描述计算器的功能实现细节,预期读者为程序代码编写人员。
1.2背景说明:a.待开发软件系统的名称:计算器1.3定义运算数:表示一个二元运算中的一个操作数运算符:表示一个二元运算中的一个操作数的运算类型符号ON/OFF:开关键,Open/OFF的缩写,即启动计算器MC:清空键,Member Clear的缩写,即清空输入2程序系统的结构图1.classDiagram1类图及接口说明:方法shawData:把按钮上的数字显示在显示框里,即计算器屏幕上方法powOn:控制计算器是否启动方法operation:在显示框里显示运算符方法cumulate:实现x的n次方方法clearAll:清空输入的数据方法calculat:实现计算器的四则元算(加减乘除)3程序1(标识符)设计说明3.1程序描述本程序主要实现简单的二元加减乘除运算,还有求幂、倒数、根号、取反运算。
设计本程序主要是给用户用来计算日常的简单计算,给用户减轻运算的负担。
3.2功能结构化语言表示如下:public double calculate (double num1, double num2, string operat){try{if (operat == "+"){resultNum = num1 + num2;return resultNum;}else if (operat == "-"){resultNum = num1 - num2;return resultNum;}else if (operat == "*"){resultNum = num1 * num2;return resultNum;}else if (operat == "/"){resultNum = num1 / num2;return resultNum;} return 0;}catch (DivideByZeroException e){textBox1.Text = "除数不能为零";}catch(Exception e){textBox1.Text="数据超出范围";}return double.MinValue;}private void cumulate(double num, double len){for (double i = 0; i < len; i++){resultNum *= num;}textBox1.Text = Convert.ToString(resultNum);resultNum = 1;}private void equal_Click(object sender, EventArgs e){if (select == false){if (opr1 != ")"){midle1 = textBox1.Text;double transform;if (opr1 == "^"){cumulate(Convert.ToDouble(midle), Convert.ToDouble(midle1));}else{transform = calculate(Convert.ToDouble(midle), Convert.ToDouble(midle1), opr1);textBox1.Text = Convert.ToString(transform);}textBox2.Text = textBox1.Text;textBox1.Text = "";}}}3.3性能精度:双精度浮点型灵活性:容错能力一般,不能保存记录。
题目一计算器1.1 题目简介用Java语言、MyEclipse工具、设计一个GUI简易计算器,编写计算器的基本运算的程序,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算,基本实现计算器的四则运算和三角函数运算功能以及开方和求对数的基本运算。
本计算器只适用十进制的运算,不限制十进制的大小。
编写本计算器运用java的类得调用和直接在程序中定义类,实现计算器的基本功能,在这个计算器中对于执行的操作可以进行复制和保存以便以后能直接查看运行结果本计算器保存没不得运行结果,只有点清除键是才可以清除每步的结果。
1.2 设计的内容、要求和目标设计内容:设计一个GUI简易计算器,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算。
设计要求:由于现代用户更倾向于由鼠标方便操作的图形用户界面,所以我们采用GUI来实现计算器,并采用Swing组件,AWT事件来处理等实现具体功能。
(1)、应具有相应的界面,可参考下图进行设计:(2)、操作符号定为:“+”“-”,“*”,“/”等。
(3)、用户通过点击面板中的各种组件输入的表达式,应在上方文本框。
(4)、党用户点击“=”时,文本框中之前的内容应清空,直接显示表达式运算结果。
例如:输入表达式“7*8”之后按“=”,显示结果“56”。
(5)、具有菜单栏,内有相应的编辑“复制”、“粘贴”等菜单,提供相应的功能。
设计目标:利用Java语言设计一个简单的计算器,以实现基本的加减乘除功能,还有sin、|cos、tan、log等算术运算;同时实现退格、清零等运算。
1.3总体设计1)、对计算器面板的整体布局首先是对计算器的整体面板进行一个简单的设计,整体布局是采用layout (边框布局)布局,对计算器中的一些数字按钮和运算符按钮采用gridlayout 布局(网格布局)。
2)、创建实现程序所需的类整理思路,确定一个主类CalculatorWindow,然后对Dialog、HandleBack、HandleClear、HandleCos、HandleCot、HandleSin、HandleTan、HandleDigit、HandleDot、HandleDownNumber、HandleEquality、HandleLog、HandleOperation、HandlePOrN、HandlePositiveOrNegative、NumberButton、OperationButton、SelectJTree等类的创建。
计算器设计报告简易计算器的设计报告计算器的设计1概述1.1 课程设计目的1、巩固并加深学生对C++语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用VC++ 6.0集成开发环境;4、提高运用C++语言解决实际问题的能力;5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的MIS系统;6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。
1.2 课程设计内容课题名称:计算器的实现说明:实现一个计算器。
要求:用“计算器”的标准视图执行简单的计算。
3四则代码如下void CCALDlg::OnButtonequal{// TODO: Add your control notification handler code hereUpdateDataTRUE;num2 =m_str;ifnum2==0&&ope==3{m_str1="除数不能为零";m_str =0;num1 = 0;num2 = 0;UpdateDataFALSE;}else{// int f = 0;switch ope{//加case 0:m_str = num1 + num2;peak;//减case 1:m_str = num1 - num2;peak;54系统详细设计4.1 设计步骤打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名yeyahui及其所在位置,点击确定,如图4-1所示。
图4-1 新建MFC AppWizard[exe]工程将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成,如图4-2所示。
7图4-3新建的对话框4.2 界面设计界面设计主要是创建控件,在图4-3所示的ResoureView选项卡中打开Dialog资源组,双击IDD_ZHOUTONG_DIALOG,在右边的窗口中显示出待编辑的对话框。
课程设计报告——计算器编程计算器系统编程设计一、设计背景:课堂所学与实际需求相结合,计算器的使用频率高 二、主要功能:能进行基本运算和稍复杂的操作 二、系统结构:三、设计说明 (一)控件的应用1、菜单编辑器的应用创建三个主菜单 ,分别命名为“编辑”、“查看”、“帮助” A 、“编辑”包含两个子菜单:复制、粘贴可 显示数字的 文本框 可操作的控件 可 显示数字的 文本框 可供选择的单选按钮 可操作的控件计算器主界面编辑 查看 帮助复制 粘贴标准型 科学型 辅导老师关于计算器B、“查看”标准型里包含三个子菜单:标准型、科学型、数字分组,科学型里还包括进制转换及角度转换的子菜单C、“帮助”包含两个子菜单:辅导老师、关于计算器2、文本框的应用普通型和科学型中各有一个,显示单击命令按钮的内容及运算结果3、命令按钮的应用通过创建数字按钮、算术运算按钮、函数运算等按钮,实现计算器的运算操作及窗体的转换4、单选按钮的应用在科学计算器中设置不同进制的转换、角度的转换5、标签的应用通过是否显示字母M表达数据是否被暂存(二)系统设计及实现1、主界面设计显示标准型的界面,通过菜单“查看”中的子菜单“科学型”及菜单“帮助”中的两个子菜单及期中的“返回”按钮实现窗体的转换2、工程的创建步骤如下:(1)新建一个“标准EXE”工程。
(2)添加4个子窗体(3)对所有的窗体进行简单的属性设置,如下表默认名称(Name)标题(Caption)Form1 计算器(1)Form1 计算器(2)Form1 辅导老师Form1 关于计算器3、菜单的创建(1) 标准型通过“菜单编辑器”创建,如下表标题(Caption)名称(Name)快捷键(ShortCut)编辑Edit……复制Copy Ctrl+C……粘贴Paste Ctrl+V查看View……标准型Biao……科学型Ke……数字分组Identify帮助Help……辅导老师Teacher……关于计算器About(2)科学型在查看菜单中增添了部分子菜单,如下表标题(Caption)名称(Name)快捷键(ShortCut)十六进制Liu F5十进制Shi F6八进制Ba F7二进制Er F8角度Jiao F2弧度Hu F3梯度Ti F44、窗体的设计(1)标准型标准型计算器的功能由“计算器(1)”窗体完成,用到的控件主要有:菜单、命令按钮、标签、文本框。
引言当今时代,是一个新技术层出不穷的时代。
在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间内将单片机技术融会贯通,才能跟上时代的步伐。
它所给人带来的方便也是不可否定的,它在一块芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。
20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
本设计是由单片机实现的模拟计算器,它不仅能实现数据的加减乘除运算,而且还能使数据及其计算结果在数码管上显示出来,能够实现0-256的数字四则运算。
本设计是用单片机A T89C51来控制,采用LCD显示,软件部分是由C语言来编写的。
设计任务:利用键盘和LCD设计一个简单的数学计算器,可以完成简单的如加,减,乘,除的四则运算,并将运算结果在LCD上显示出来。
1.方案论证1.1 方案一根据功能和指标要求,本系统选用MCS-51系列单片机AT89C51为主控机。
通过扩展必要的外围接口电路,实现对计算器的设计。
计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。
用七段数码管作为显示电路,矩阵键盘作为输入电路。
模块图如图1.1所示。
图1.1 方案一模块图1.2 方案二根据计算器的功能要求,选择AT89C51为主控机,通过扩展必要的外围接口电路,实现对计算器的设计。
目录1.总体方案选择 (2)1.1 实验要求: (2)1.2方案设计 (2)2.硬件原理电路图的设计及分析 (3)2.1主控模块 (3)2.1.1 STC89C52单片机主要特性 (3)2.1.2 STC89C52单片机管脚图 (4)2.1.3 STC89C52单片机的中断系统 (5)2.1.4 STC89C52单片机的定时/计数器 (5)2.2矩阵键盘模块设计: (5)2.2.1矩阵键盘原理介绍 (5)2.2.2矩阵键盘电路设计 (6)2.3 LCD液晶显示器简介 (7)2.3.1液晶模块简介 (7)2.3.2液晶显示部分与89S52的接口 (8)3系统软件设计 (10)3.1系统软件流程图 (10)3.2系统整体原理图 (11)4.系统调试 (12)4.1硬件调试 (12)4.2软件调试 (12)4.3调试结果 (13)5.心得体会131.总体方案选择1) 1.1 实验要求:2)通过小键盘实现数据的输入, 并在LED数码管上显示3)实现+、-、*、/4)在LED数码管上显示结果并有清零, 退出功能1.2方案设计本系统以STC89C52单片机为控制核心, 对系统进行初始化, 主要完成对键盘的响应、液晶显示灯功能的控制, 起到总控和协调各模块之间工作的作用。
单片机通过检测键盘读取使用者按下对用功能的按键, 然后通过单片机内部运放把运算的结果显示在液晶屏幕上。
图1-1系统结构框图本系统结构如图1-1所示, 本设计可分为以下模块: 单片机主控模块、键盘模块、功率放大模块、闹铃模块、按键设置模块。
下面对各个模块的设计方案逐一进行论证分析。
2.硬件原理电路图的设计及分析2.1主控模块STC89C52有40个引脚, 4个8位并行I/O口, 1个全双工异步串行口, 同时内含5个中断源, 2个优先级, 2个16位定时/计数器。
STC89C52的存储器系统由4K的程序存储器(掩膜ROM), 和128B的数据存储器(RAM)组成。
51单片机简易计算器设计报告(一)背景介绍在数字化时代,计算器作为一种简单易用的工具,越来越得到人们的关注和热爱。
而基于51单片机的简易计算器,不仅可以成为一种学习电子技术的手段,还具有满足简单计算需求的实用性。
设计思路本计算器采用键盘输入和数码管输出的电路设计,为用户提供加、减、乘、除、小数点、退位以及等于等功能。
1.键盘输入采用矩阵键盘的方式,将所有按键按行列排列,并利用51单片机中断方式来读取键值。
2.计算处理通过编写相应的程序代码,计算出用户输入的两个数值及操作符的结果,并将结果存储在数据缓存器中,最后将其输出至数码管。
3.数码管显示根据计算结果的数据类型,将其经过相应的转换处理后,通过数码管将结果输出至用户。
设计技术1.软件编写软件编写方面,采用汇编语言进行编写,代码总长度为2.2KB 左右。
其中,以中断方式读取键值、实现数值存储与判断、计算处理、数码管的结果输出等作为关键点进行编写。
2.硬件搭建硬件搭建方面,需要按照电路图进行搭建,并将51单片机与相关周边电路进行连接。
根据设计思路,将键盘、数码管、电源、指示灯等设备按照需求进行连接。
可改进之处虽然 51单片机的简易计算器的搭建能够满足基本计算需求,但其在以下几方面还有可改进之处:•添加计算科学函数,如三角函数、对数函数等。
•改进操作方式,使其更加符合人体工程学原理。
•添加储存器,使用户能够将计算结果进行存储和调用。
总结通过本次对基于51单片机的简易计算器的设计与实现,我们深入了解了电子技术的基本概念和硬件搭建原理,并了解到了简单嵌入式系统的工作原理。
虽然该计算器在功能和效率方面还有待改进,但对于初学者来说,其对于电子技术的学习和实验还是很有价值和意义的。
•编写的汇编代码过于繁琐,可考虑使用高级语言编写以提高效率和易读性。
•在电路搭建时需注意布线的合理性,尽量避免出现干扰和信号损失的问题。
综上所述,基于51单片机的简易计算器的设计和实现虽存在一些不足,但还是很有价值的。
陕西师范大学远程教育学院
题目: 基于vb语言的简单计算器设计
学习中心:
陕西省咸阳教育科技培训学院
学号:
层次: 高中起点专科
姓名: 田园
一、设计思路
1.要达到的目的
主要是培养学生利用系统提供的基本控件进行创新性设计,理解Visual Basic
语言中面向对象的程序设计。培养学生综合利用Visual Basic语言进行程序设计的能力。
2.关键问题的解决
先使用Command命令按钮,命令按钮控件数组,文本框等基本控件设计窗体,再根
据下面方法编制程序:
1. 连续输入新操作数的若干个数字时,采用
Private Sub Command1_Click(C As Integer)
Text1.SetFocus
num = num + Command1(C).Caption
Text1.Text = num
End Sub
单击数字键0~9和点“.”时,光标落实到焦点上
并把数字键的值递给text1.text
2对于判断正负数时,如果想要得到负数可以用通过if·····then····结构分情况解决正负
数问题
If Text1.Text <> "" Then
Text1.Text = -1 * Text1.Text
num = Text1.Text
End If
3.通过select case结构选择事件来判断实现相加,相减,相乘,相
除
Select Case A
Case 0
num = Str(Val(num1) + Val(num))
Case 1
num = Str(Val(num1) - Val(num))
Case 2
num = Str(Val(num1) * Val(num))
Case 3
If Val(num) = 0 Then
MsgBox "除数不能为零!!!"
Text1.Text = "0."
num = ""
Else
num = Str(Val(num1) / Val(num))
End If
End Select
4.通过用
if ····then····elseif 结构来解决输出零和负数,并且把计
算机默认隐藏的小数点之前的零用trim函数把字符前后空格消掉,
并且按情况把“0.”数值显示出来
If num = 0 Then
Text1.Text = "0."
ElseIf num <= -1 Or num >= 1 Then
Text1.Text = num
ElseIf num > 0 And num < 1 Then
Text1.Text = "0" & Trim(num)
Else
Text1.Text = "-0" & Trim(-num)
End If
5.
单击command8时,把text1.text的值转换为百分化形式
Private Sub Command8_Click()
Text1.Text = "0" & Text1.Text / 100
End Sub
二、模块之间的调用关系,或程序流程图
打开计算器 输入第一个数字 选择运算符号
输入第二个数字 显示结果
三、部分程序关键源代码及注释
Private Sub Command2_Click(C As Integer)
num1 = num
Text1.Text = ""
num = ""
End Sub
当单击“+,-,×,÷”command2数组事件时,text.1.Text显示空字
符
Private Sub Command4_Click()
Select Case A
Case 0
num = Str(Val(num1) + Val(num))
Case 1
num = Str(Val(num1) - Val(num))
Case 2
num = Str(Val(num1) * Val(num))
Case 3
If Val(num) = 0 Then
MsgBox "除数不能为零!!!"
Text1.Text = "0."
num = ""
Else
num = Str(Val(num1) / Val(num))
End If
End Select
If num = 0 Then
Text1.Text = "0."
ElseIf num <= -1 Or num >= 1 Then
Text1.Text = num
ElseIf num > 0 And num < 1 Then
Text1.Text = "0" & Trim(num)
Else
Text1.Text = "-0" & Trim(-num)
End If
num = ""
End Sub
‘num的值等于val函数转化字符的数值并通过select case结构选择
事件来判断实现相加,相减,相乘,相除,当转化后的字符值为零时,
弹出信息窗口提醒,之后用if ····then····elseif 结构来解决输出
零和负数,并且把计算机默认隐藏的小数点之前的零用trim函数把
字符前后空格消掉,并且按情况把“0.”数值显示出来
rivate Sub Command5_Click()
If Text1.Text <> "" Then
Text1.Text = -1 * Text1.Text
num = Text1.Text
End If
End Sub
当单击command5时,计算机判断text1.text的值大小,通过
if·····then····结构分情况解决正负数问题
四、设计方案的完善及目前存在的问题
1.设计方案要完善的地方
1.增加高级函数运算功能
2.能实现退格时把所有字符都退完并显示“0.”
2. 目前存在的问题
①无法运算高级函数问题
②退格键清除完数字报错
五、本次设计的收获及心得体会
通过这次课程设计,我知道了自己在一年里学计算机知识的收获已经自己的掌握程度,
代码比源程序没多大变动由此我知道了自己的不足和了解创新的重要性,还对课程进行了彻
底的复习,这是一举两得的事。
六、该题目和VB设计的意见和建议
1. 对该题目的意见和建议
题目很好很切合实际问题,简单易懂,希望题目能更简练些,也希望以后能多进行
这种课设活动
2.对本次设计的意见和建议
这次活动使我们对课本知识的进一步了解,和对VB程序的进一步认识,提高了我
们动手实践的能力为我们以后的学习和工作打下了良好的基础。使我们的计算机程序思
维进行了一次深刻的训练,提高我们的动手设计能力。