四则运算计算器数字电路设计

合集下载

项目计算器子项目一整数四则运算计算器设计

项目计算器子项目一整数四则运算计算器设计
方法是类的成员。 定义的格式
修饰符 返回类型 方《C法#程序名设计(》 形参列表)
{
工作任务二:设计程序模块的流
❖ 说明:
程图
1、“返回类型”指定该方法返回的值的类型。
如果方法无返回值,则返回类型为void;
2、“方法名”是一个有效的标识符;“形参列
表”中的“形参”是“形式参数”的简称,
“形参列表”是一个可选项,指定方法的参数,
状态是对象执行《某C#程项序设计活》 动或等待某个事件时
工作任务一:构建计算器的状态 图
状态机的各种元素
《C#程序设计》
工作任务一:构建计算器的状态 图 ❖ 一个简单的编辑器可被视为有限的状态机
状态: Emptying for text(等待文本)。
有错误进行调试修改《C#。程序设计》
工作任务
❖ 工作任务一:构建计算器的状态图; ❖ 工作任务二:设计程序模块的流程图; ❖ 工作任务三:设计界面完成窗体及控件的属
性设置; ❖ 工作任务四:编写程序代码; ❖ 工作任务五:测试软件,对错误进行调试修
改。
《C#程序设计》
工作任务一:构建计算器的状态图
如果返回类型为 void,则可使用没有值的 return 语句来停止方法的执行。
如果没有 return 关键字,方法执行到代码块 末尾时即会停止。
具有非 void 返回《类C#程型序设计的》 方法才能使用 return 关键字返回值。
工作任务二:设计程序模块的流 程图
❖ 小组讨论三个方法的实现流程,画出流程图
《C#程序设计》
工作任务一:构建计算器的状态 ❖ 编写计算器程序的图思路:
InitMembers()方法:对计算器的状态进行初始化 Numbers_Click(int)方法:处理接受到数字,参

C++课件案例三四则运算计算器

C++课件案例三四则运算计算器
C++ 课件案例 - 四则运算 计算器
本课件将介绍如何用C++编写一个能进行四则运算的计算器。我们将学习输入 和输出的基本原理、不同的数据类型、各种运算符,以及实现一个完整的计 算器的方法。
输入
接收用户输入
理解用户输入并将其用 于计算。
验证输入
确保输入符合预期的格 式与范围。
错误处理
处理无效的或错误的输 入,避免程序崩溃。
小结
学习了四则运算的 基本原理
掌握了输入、数据类型 和运算符的应用。
实现了一个简单的 计算器
了解了计算器的核心算 法和实现方法。
准备迈向更高级的 计算机编程
为进一步学习提供了扎 实的基础。
2
中缀表达式求值
将中缀表达式转换为后缀表达式,然后进行运算。
3
后缀表达式求值
根据后缀表达式的规则进行运算,并得到最终结果。
计算器核心算法
栈的应用
使用栈来实现表达式求值 的算法,保证运算符和操 作数的顺序。
递归思想
利用递归来处理嵌套的表 达式,实现复杂运算。
优先级与结合性
考虑运算符的优先级和结 合性,避免运算结果出现 错误。
数据类型
整数类型
用于存储整数,支持基本的算术运算。
浮点数类型
用于存储小数,支持精确的数学运算。
字符类型
用于存储单个字符,可以进行逻辑运算。
字符串类型
用于存储文本,支持字符串连接与比较。
运算符
1 加法 3 乘法2 减法4 除法计算器实现1
前缀表达式求值
根据前缀表达式的规则进行运算,并得到最终结果。

【数据结构】【a】十进制整数四则运算计算器正文终稿

【数据结构】【a】十进制整数四则运算计算器正文终稿

东北大学信息科学与工程学院数据结构课程设计报告题目十进制整数四则运算计算器课题组长余灏然课题组成员魏嘉张越专业名称计算机科学与技术班级计算机1307指导教师杨雷2015 年1月课程设计任务书题目:十进制整数四则运算计算器问题描述:由输入的四则运算表达式字符串,动态生成算术表达式所对应的二叉树,通过表达式二叉树自动求值并输出。

设计要求:设计十进制整数四则运算计算器。

(1)采用二叉树、栈等数据结构。

(2)给定表达式字符串,生成二叉链表的表达式二叉树。

(3)对表达式二叉树采用后序遍历求值并输出。

(4)可以考虑加入复数四则运算功能。

(5)其它完善性功能。

指导教师签字:2014年12月28日目录1 课题概述 (1)1.1 课题任务 (1)1.2 课题原理 (1)1.3 相关知识 (4)2 需求分析 (4)2.1 课题调研 (5)2.2 用户需求分析 (5)3 方案设计 (5)3.1 总体功能设计 (5)3.2 数据结构设计 (5)3.3 函数原型设计 (5)3.4 主算法设计 (5)3.5 用户界面设计 (5)4 方案实现 (6)4.1 开发环境与工具 (6)4.2 程序设计关键技术 (6)4.3 个人设计实现(按组员分工)4.3.1余灏然设计实现 (6)4.3.2 魏嘉设计实现 (9)4.3.3 张越设计实现 (11)5 测试与调试 (13)5.1 个人测试(按组员分工) (13)5.1.1 余灏然测试 (13)5.1.2 魏嘉测试 (16)5.1.3 张越测试 (20)5.2 组装与系统测试 (25)5.3 系统运行 (25)6 课题总结 (26)6.1 课题评价 (26)6.2 团队协作 (26)6.3 个人设计小结(按组员分工) (26)6.3.1 余灏然设计小结 (26)6.3.2 魏嘉设计小结 (27)6.3.3 张越设计小结 (27)7 附录A 课题任务分工 (28)A-1 课题程序设计分工 (28)A-2 课题报告分工 (29)附录C 用户操作手册(可选) (30)C.1 运行环境说明 (30)C.2 操作说明 (30)1 课题背景1.1 课题任务【问题描述】由输入的四则运算表达式字符串,动态生成算术表达式所对应的二叉树,通过表达式二叉树自动求值并输出。

2位十进制四则运算器电路

2位十进制四则运算器电路

《电子设计自动化》课程设计题目: 2位十进制四则运算器电路摘要本次设计的目的是通过QuartusII软件实现输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果(发光二极管显示运算模式;调用LPM_MULT、LPM_CONSTANT及LPM_DIVIDE模块)。

实现的方法是利用四则运算的规律进行初步设计,然后进行调整和修改。

最终结果要求:随机的输入两个数,经过加法、减法、乘法和除法的运算,可以得到正确的运算结果。

主要分为4大部分:一、2位十进制数模块;二、加减乘除四则运算四个小模块;三、加减乘除四则运算的选择模块;四、处理输出结果的模块。

目录1 系统设计 (4)2 单元电路设计 (5)3 软件设计 (5)4 系统测试 (14)5 结论 (14)6 参考文献 (14)1、系统设计一、设计要求:输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT及LPM_DIVIDE模块。

二、系统设计方案:(1)系统设计思路要完成2位十进制四则运算器电路,首先,需要生成2个两位的十进制数,其次,需要加减乘除四个运算,然后,四种运算的选择,最后,对输出结果的处理。

2个2位十进制模块:法一,用两个100进制计数器构成;法二,用4个10进制计数器构成。

因为add1模块(后面详细介绍)只有两个输入口,所以选择法一比较方便。

加减乘除四则运算:①加法:写一个加法程序,制成模块,再分别取出它的各位、十位、百位。

②减法:写一个减法程序,用调用LPM的方法制成一个模块,在分别取出它的各位、十位和符号位。

③乘法:直接调用内部LPM,制成乘法模块。

④除法:直接调用内部LPM,制成除法模块。

加减乘除运算的选择:写一个4路选择器,分别选择加减乘除。

对输出结果的处理:写一个程序,对应不同选择下的不同输出,注意位数(加法:输出在0~198之间,需3个LED灯来显示;减法:输出在0~99之间,需3个LED灯(其中一个符号位);乘法:输出在0~9801之间,需4个LED灯;除法:输出在0~99之间,需2个LED灯。

人机交互的四则运算计算器应用程序设计报告

人机交互的四则运算计算器应用程序设计报告

嵌入式原理及应用综合实训报告题目:人机交互的四则运算计算器院别:自动化学院专业:电气工程及其自动化(职教师资)姓名:梁柱槐学号:2010105144118指导教师:肖蕾、刘克江实训日期:2013.06.10—2013.06.16人机交互的四则运算计算器应用程序设计摘要实验借用实验板XS128-80PIN核心板中MC9S12XS256芯片与4*4小键盘模块接口以及LCD1602液晶显示模块接口,学会根据外围电路设计进行软件编程及调试,练习撰写实训总结报告,进而培养学生运用专业知识设计实际系统的能力。

具体效果如下:A.输入模块使用4*4小键盘,系统可以检测用户按下某个按键;B.输出模块使用液晶显示模块"LCD1602",将用户按下的按键值显示出来;C.系统具备有特殊功能按键,例如: A->'+' B->'-' F->'*' D->'/' E->'=' C->'清屏'D.其他扩展功能。

关键词:XS128-80PIN核心板、MC9S12XS256芯片、4*4小键盘、液晶显示模块"LCD1602"目录摘要 0一、人机交互的四则运算计算器硬件电路设计 (1)1.1硬件电路总体概述 (1)1.2硬件电路模块化介绍 (2)1.2.1电源模块 (2)1.2.2 MC9S12XS256芯片及其最小系统 (3)1.2.3 LCD1602液晶显示模块电路 (6)1.2.4 4*4小键盘模块电路 (9)二.人机交互的四则运算计算器软件设计 (11)2.1程序流程图 (11)2.2 系统初始化程序设计 (12)2.2.1 μC/OS系统移植 (12)2.2.2 MC9S12XS256芯片内核初始化 (13)2.2.3 LCD1602初始化程序设计 (13)2.4 4*4按键扫描程序设计 (16)2.3 主程序及任务调度设计 (16)2.3.1主程序设计 (16)2.3.2 任务调度设计 (17)心得体会 (18)参考文献 (19)程序代码 (19)一、人机交互的四则运算计算器硬件电路设计1.1硬件电路总体概述本项目是基于MC9S12XS256芯片的人机交互的四则运算计算器应用程序设计,整个电路是以MC9S12XS256芯片为核心,所以整个电路是由以下几大模块组成的:(1)电源模块;(2) MC9S12XS256芯片及其最小系统:○1.MC9S12XS256芯片;○2.晶振电路;○3.复位电路;(3) LCD1602液晶显示模块电路。

汇编语言课程设计_四则运算计算器设计

汇编语言课程设计_四则运算计算器设计

目录1 设计目的 (1)2 概要设计 (1)2.1 系统总体分析 (1)2.2 主模块框图及说明 (2)3 详细设计 (3)3.1 主模块及子模块说明 (3)3.2 各模块详细设计 (3)3.2.1 判定运算符模块设计 (3)3.2.2取运算数模块 (3)3.2.3计算模块 (4)3.2.4结果处理模块 (5)3.2.5输出模块 (5)3.2.6错误处理模块 (6)4 程序调试 (7)4.1 运行界面分析 (7)4.2 调试过程及分析 (7)5 心得体会 (8)5.1 设计体会 (8)5.2 系统改进 (8)参考文献 (10)附录 (11)实现加减乘除四则运算的计算器1 设计目的汇编语言是继机器语言后出现的计算机程序设计语言,是计算机所能提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特征并能够直接控制硬件的惟一语言。

因而了解之一语言的特性,并熟练掌握这一语言并应用于开发中便是计算机专业学生所必需掌握的技能之一。

本课程设计通过加减乘除四则运算计算器的设计,增强对于汇编语言寄存器、指令、伪指令、中断等的理解。

可通过编写的汇编程序完成基本的加减乘除四则运算。

主要功能:能实现加减乘除的计算;该程序接受的是16进制数;执行时,需在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:C:\tasm>js 3+252 概要设计2.1 系统总体分析四则运算计算器应当实现对用户输入表达式的处理。

根据用户输入的表达式,完成加减乘除四则运算。

程序自动判定表达式输入,并完成对于输入的16进制数的转换,同时计算结果并以10进制数输出。

对于异常情况程序应当进行处理,保证程序的正确运行。

设计一个计算器,在DOS界面下输入<程序名> <表达式>可直接输出运算结果。

例如在DOS界面中输入JS 3+6,可直接输出9。

程序接受16进制数输入,以十进制数输出运算结果。

对于输出错误情况,程序自动给出错误提示,若输入的格式有误,程序给出“JS <Expression> [10]”(即输入样例)提示,若输入的表达式有误,程序给出“Error in expression !”(即表达式错误)提示。

第5章 阶段项目一:四则运算计算器

第5章 阶段项目一:四则运算计算器

强制转换按钮类型 如0-9总共十个按钮都要调Button类型。代码如下: Button a = (Button)sender; 如果要将当前按钮的值传递到文本框中数字的后 面,则代码为: txtOutput.Text = txtOutput.Text + a.Text;
C#
C#程序设计与开发
第5章 阶段项目一:四则运算计算器
1 2 3
相关知识
学习任务
总结
4
作业
5.1学习任务1: 整数四则运算计算器设计
相关知识 数字键0-9总共十个按钮实现的功能基本一样 , 只需要编写一个方法num_Click() 。 运算符也都将调用方法operator_Click()
窗体设置
控件设置
5.2学习任务2: 实数四则运算计算器设计
相关知识
窗体设置
控件属性
5.3学习任务3: 带记忆功能四则运算计算器设计
相关知识
窗体和控件
C#

汇编语言课程设计--四则运算计算器的设计

汇编语言课程设计--四则运算计算器的设计

《汇编语言》课程设计说明书设计题目四则运算计算器的设计专业班级学号姓名指导教师起止日期成绩课程设计任务书一、设计题目:四则运算计算器的设计二、设计的主要内容:设计一个能实现加减乘除取余计算的程序。

将键盘输入的表达式预放入一缓冲区中,然后从该缓冲区的第一个字符开始读取判断,当读到一个有效的表达式时对表达式进行相应的运算后,输出用十六进制数表示的运算结果。

目标:要求该程序接受从键盘输入的十六进制数,执行相应的计算后,计算结果以十六进制数输出。

指导教师:教研室主任:1选题背景及意义运用汇编语言,实现简单计算器的一般功能.通过该程序设计,让我们熟悉并掌握DOS系统功能调方法用及BIOS系统功能调用方法,同时在程序设计过程中熟悉并掌握各种指令的应用,知道编程的具体流程,以及掌握DEBUG的一系列的功能执行命令,及用它进行调试,运行功能。

2主要设计内容及预期目标设计一个能实现加减乘除取余计算的程序。

将键盘输入的表达式预放入一缓冲区中,然后从该缓冲区的第一个字符开始读取判断,当读到一个有效的表达式时对表达式进行相应的运算后,输出用十六进制数表示的运算结果。

目标:要求该程序接受从键盘输入的十六进制数,执行相应的计算后,计算结果以十六进制数输出。

3 概要设计本题目实现的模块图如图3-1所示图3-1 概要模块(1)界面设置主要实现确定界面样式的功能,以菜单形式显示。

(2)选择算法设置用于选择加、减、乘、除法来进行运算。

(3)十进制转换设置应用十进制的转换算法来处理加、减、乘、除法四则运算。

4 详细设计4.1 界面设置通过定义数据段,利用09H显示出功能列表。

通过定义数据段,以字符串的形式输入每个提示信息,利用09H键盘输入并回显命令显示每一个功能提示,是计算器的功能列表有序清晰的显示在屏幕上。

4.2 选择算法设置首先选择要进行的四则运算,若选择1,则进行加法;若选择2,则进行减法;若选择3,则进行乘法;若选择4,则进行除法。

微机设计报告(四则运算器)

微机设计报告(四则运算器)

学院:班级:姓名:学号:课程设计题目:四则运算计算器课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月目录概述 (1)一、设计要求 (1)二、设计思想 (1)三、程序工作原理 (2)四、程序流程图及说明 (3)五、程序源代码 (7)六、程序运行示例 (18)七、设计过程中遇到的问题及解决方法 (18)八、设计心得 (19)九、参考文献 (19)四则运算计算器概述此计算器,可以实现从键盘输入一个十进制的四则运算表达式,如:-3+4*(5-6)-8/2,编程计算表达式的值,输出十进制结果。

表达式和结果可以是三位或四位十进制,也可以是带负数的十进制数,并且+-*/()位置任意摆放(只要符合数学上的运算逻辑)。

一、设计要求用汇编语言设计一个程序,用来实现计算器的四则运算功能。

需要实现在屏幕要显示输入的表达式,以及运算结果。

例如:-3+4*(5-6)-8/2计算表达式的结果,并将该表达式及结果显示出来;设计要求如下:(1)由键盘作为输入部分。

(2)能进行四则混合运算,并且能计算带括号和负数的数学表达式。

(3)按ESC 键则退出计算器菜单界面并返回dos 系统,否则继续输入表达式,求得对应的结果。

二、设计思想根据题目的要求,可以把整个源程序大致划分六大步骤。

(1)首先键盘输入合法中缀算术表达式,并将其存储到S1中。

(2)然后调用子程序CHANGE将中缀式转化为后缀式。

(3)调用子程序CALCULATE对后缀表达式进行有符号数的运算,并将最终结果存放在栈中。

(4)POP AX,AX->STORAGE,即用STORAGE 存放最终运算结果。

(5)调用子程序OUTPUT将运算结果输出。

(6)通过用键盘输入ESC退出DOS程序。

三、程序工作原理步骤一的原理:此处用系统功能1号调用,每次从键盘输入一个字符,就将其存入到数组S1中,然后在判断此字符是否为回车,如果不是,则循环,继续输入字符,否则,程序往下执行。

数据结构课程设计—十进制四则运算计算器的设计与实现

数据结构课程设计—十进制四则运算计算器的设计与实现

十进制四则运算计算器的设计与实现1.问题描述(1)题目描述:在以二叉树表示算术表达式的基础上,设计一个十进制的四则运算计算器。

(2)基本要求:实现整数或浮点数的四则运算。

(3)测试数据:12 - ( - 4 ) * ( ( 20 + 3 / 5 ) * 8 / 5 ) * ( - 4 ) #=-515.36- ( 22.7 - 4208.3 ) / ( ( 2.4 + 1.6 ) * 12 ) + 4.4 - 2.9 #=88.710 - ( - 3 ) * ( ( 21 + 3 / 5 ) * 8 / 3 ) * ( - 2 ) #=-335.62.需求分析(1)程序实现的功能是从键盘输入有效的表达式,求出其值并输出(2)程序运行后,会提示用户输入表达式,并判断是否有效,并返回值3.概要设计为了实现程序功能,用二叉树存储表达式,然后从二叉树按后序遍历的方式取出数据,进行运算,运算时用堆栈存储数据。

(1)二叉链表的定义ADT BinaryTree{//数据对象D:D是具有相同特性的数据元素的集合。

//数据关系R:// 若D=Φ,则R=Φ,称BinaryTree为空二叉树;// 若D≠Φ,则R={H},H是如下二元关系;// (1)在D中存在惟一的称为根的数据元素root,它在关系H下无前驱;// (2)若D-{root}≠Φ,则存在D-{root}={D1,Dr},且D1∩Dr =Φ;// (3)若D1≠Φ,则D1中存在惟一的元素x1,<root,x1>∈H,且存在D1上的关系H1 ?H;若Dr≠Φ,则Dr中存在惟一的元素xr,<root,xr>∈H,且存在上的关系Hr ?H;H={<root,x1>,<root,xr>,H1,Hr};// (4)(D1,{H1})是一棵符合本定义的二叉树,称为根的左子树;(Dr,{Hr})是一棵符合本定义的二叉树,称为根的右子树。

第6章 四则运算计算器1

第6章 四则运算计算器1
设计
工作任务一:构建计算器的状态图

状态机的各种元素
《C#程序设计》
项目:整数四则运算计算器的设计
工作任务一:构建计算器的状态图

灯泡的状态图:
off
turnon turnoff
on
burnout
《C#程序设计》
《C#程序设计》
项目:整数四则运算计算器的设计
函数参数

params参数 params参数必须是一维数组(含一维交错数组),且不需 指定长度。 定义形参时要使用params关键字;调用时,实参不需要用 params关键字,实参可以是任意个数的元素,也可以是一个 同类型的数组。 params参数只能作为参数列表的最后一个参数,并且在方 法的声明中只允许一个params关键字。 params参数不能再用ref或out修饰。
工作任务二:设计程序模块的流程图

小组讨论三个方法的实现 流程,画出流程图
开始
初始化
输入0~9的数字
F
T Numbers_Click(I)
输入运算符号OP
Operators_Click(OP) 结束
《C#程序设计》
项目:整数四则运算计算器的设计
工作任务二:设计程序模块的流程图

问题:
–必须判断一下输入的是第一个数字还是 第一个以后的数字
请问:如何处理?
《C#程序设计》
项目:整数四则运算计算器的设计
工作任务二:设计程序模块的流程图

定义一个bool类型的变量bNumBegins,其初值为 true,当输入第一个数字之后就将它置为false, 直到此数输入完成后再置为true,准备进行下一 轮的计算。
《C#程序设计》

8位四则运算计算器设计报告

8位四则运算计算器设计报告

单片机应用课程设计报告设计题目8位四则运算计算器姓名胡成、柏壮壮、王庆安、杜威、孙润学号Z11414107、Z11414039Z11414075、Z11414101、Z11414105年级2014级专业自动化指导教师张道信、张德祥考核成绩电气工程与自动化学院2017 年6 月28 日8位四则运算计数器摘要随着时代的发展,单片机在生活中应用越来越广泛。

而生活中,用到计算的场合十分之多,有时候计算较复杂时,人工计算远远不及计算器的快速性、准确性。

因此计算器的出现大大便捷了人类生活。

本文介绍用STC89C52RC单片机来设计简单四则运算计算器。

关键词:STC89C52RC、硬件电路、软件程序8 Bit Arithmetics CalculatingAbstractWith the development of the era, MCU becomes more and more general in life. And calculation applies to many occasions in life, sometimes calculate by self can not be comparable to calculating in complex occasions, especially in the aspect of rapidity and accuracy. So, the appearance of calculating has convenient people’s lives. This writings introduces how to design simple arithmetics calculating with STC89C52RC MCU.Keywords: MCU、Hardware circuit、Software program目录摘要 (2)第1章单片机的基本概述 (4)1.1 基本概述 (4)第2章单片机应用课程设计的目的和意义 (5)2.1 设计的目的和意义 (5)第3章系统的硬件电路设计 (6)3.1 系统的整体设计框架 (6)3.2 系统的硬件设计模块 (6)3.2.1晶振电路 (6)3.2.2复位电路 (7)3.2.3矩阵键盘电路 (7)3.2.4蜂鸣器电路 (8)3.2.5 LCD显示电路 (8)第4章系统的软件设计 (9)4.1 矩阵键盘扫描程序 (9)4.2 LCD程序 (11)第5章功能分析 (14)5.1 功能分析 (14)第6章个人心得体会 (15)6.1 胡成的心得体会 (15)6.2 柏壮壮的心得体会 (15)6.3 王庆安的心得体会 (15)6.4 杜威的心得体会 (15)6.5 孙润的心得体会 (15)参考文献 (16)附录一硬件电路图 (17)附录二系统硬件电路照片 (18)第1章单片机的基本概述1.1 基本概述单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统。

(完整word版)基于51单片机的四则运算器的设计

(完整word版)基于51单片机的四则运算器的设计

摘要当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。

计算器作为一种快速通用的计算工具方便了用户的使用。

计算器可谓是我们最亲密的电子伙伴之一。

本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究.单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。

在工业生产中。

单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器.本系统采用AT89C52设计计算器控制器,实现了能根据实际输入值显示,简单运算的功能。

关键词:电子;微控制器;AT89C52单片机;四则运算器;正文一、设计目的和要求课程设计是单片机课程教学的最后一个环节,是对学生进行全面的系统的训练。

进行课程设计可以让学生把学过的比较零碎的知识系统化,真正的能够把学过的知识落到实处,能够开发简单的系统,也进一步激发了学生再深一步学习的热情,因此课程设计是必不少的,是非常必要的。

本次课程设计是设计一个简易的四则运算计算器,四则运算器设计要求:用AT89C51单片机设计一个简易的一位四则运算器,扩展4×4个键,分别表示为0~9、+、—、×、÷、RESULT、CLEAR,并连接两个数码管。

具体要求如下:(1)按CLEAR,数码管显示“0”,表示系统清零;(2)分别按数字键、运算符键、数字键、RESULT键后,在数码管上显示其运算结果。

二、系统总体设计方案本次设计的简易的四则运算器,其只限于两位数的数值运算,并在数码管上实现了显示,可以显示两次输入的数值,输入计算符则数码管清除,无法显示小数,无法显示负数值。

图1.单片机功能示意图三、单片机的概述:系统采用AT89C51单片机,该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS—51指令集和输出管脚相兼容。

四则运算计算器数字电路设计

四则运算计算器数字电路设计

四则运算运算计算器数字电路设计由于加减乘除计算器的各电路较复杂,就不将其组合在一起了,以下是各个加法,减法,乘法,除法计算器的单独电路图,其中输入均采用二进制四位输入。

一.加法计算器这个较为简单,可以直接利用中规模四位全加器74LS283,即可制成加法计算器。

电路图:A4 A3 A2 A1 为二进制被加数;B4 B3 B2 B1 为二进制加数;SUM4 SUM3 SUM2 SUM1 为二进制得数。

加上输入输出后如图所示:仿真图形为:前四个图像为被加数,中间四位为加数,后四位为得数。

由此可看出,已成功制成加法计算器。

二.减法计算器电路图:利用数据选择器和四输入与非门,可以实现减法计算器的功能,其中,C1 C2 C3 C4为四位二进制被减数输入端;B1 B2 B3 B4 为四位二进制减数输入端;输出端 27 26 25 24 为得数。

加上输入输出后如图所示:仿真图形如下:前四位为被减数,中间四位为减数,最下面四位为得数,由仿真图形可看出,已成功制成减法计算器。

三.乘法计算器利用中规模四位全加器74LS283和而输入与门可以实现乘法计算器功能。

其中,输入端4 3 2 1 为二进制四位被乘数,输入端5 6 7 8 为二进制四位乘数,输出端54 50 51 52 53 49 48 46 47为得数。

电路图如下:加上输入输出后:仿真图形为:1被乘数和乘数:2得数:由仿真图形可以看出,已成功制成了乘法计算器。

四.除法计算器这个实在是太难了,想了好久也没想到怎么设计,作业催的紧,就只好先不做了,请老师见谅,哈!以上就是四则计算器的数字电路设计与仿真。

EDA课程设计--2位十进制四则运算器电路

EDA课程设计--2位十进制四则运算器电路

《电子设计自动化》课程设计题目:2位十进制四则运算器电路院(系)专业届别班级学号姓名任课老师摘要本次设计的目的是通过QuartusII软件实现输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果(发光二极管显示运算模式;调用LPM_MULT、LPM_CONSTANT及LPM_DIVIDE模块)。

实现的方法是利用四则运算的规律进行初步设计,然后进行调整和修改。

最终结果要求:随机的输入两个数,经过加法、减法、乘法和除法的运算,可以得到正确的运算结果。

主要分为4大部分:一、2位十进制数模块;二、加减乘除四则运算四个小模块;三、加减乘除四则运算的选择模块;四、处理输出结果的模块。

目录1 系统设计 (4)2 单元电路设计 (5)3 软件设计 (5)4 系统测试 (14)5 结论 (14)6 参考文献 (14)1、系统设计一、设计要求:输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT及LPM_DIVIDE模块。

二、系统设计方案:(1)系统设计思路要完成2位十进制四则运算器电路,首先,需要生成2个两位的十进制数,其次,需要加减乘除四个运算,然后,四种运算的选择,最后,对输出结果的处理。

2个2位十进制模块:法一,用两个100进制计数器构成;法二,用4个10进制计数器构成。

因为add1模块(后面详细介绍)只有两个输入口,所以选择法一比较方便。

加减乘除四则运算:①加法:写一个加法程序,制成模块,再分别取出它的各位、十位、百位。

②减法:写一个减法程序,用调用LPM的方法制成一个模块,在分别取出它的各位、十位和符号位。

③乘法:直接调用内部LPM,制成乘法模块。

④除法:直接调用内部LPM,制成除法模块。

加减乘除运算的选择:写一个4路选择器,分别选择加减乘除。

对输出结果的处理:写一个程序,对应不同选择下的不同输出,注意位数(加法:输出在0~198之间,需3个LED灯来显示;减法:输出在0~99之间,需3个LED灯(其中一个符号位);乘法:输出在0~9801之间,需4个LED灯;除法:输出在0~99之间,需2个LED灯。

EDA课程设计方案之2位十进制四则运算器电路四则运算器

EDA课程设计方案之2位十进制四则运算器电路四则运算器

《电子设计自动化》课程设计题目: 2位十进制四则运算器电路院(系)信息科学与工程学院专业通信工程届别 2011级班级学号姓名任课老师彭盛亮摘要本设计是利用EDA技术实现的2位十进制四则运算器,是基于QuartusII7.2软件,利用其强大、直观、便捷和操作灵活的原理图输入设计的功能来完成本次设计的。

此设计利用QuartusII7.2中的EP2C5T144C8芯片来控制整个程序的运行,用七段数码管显示各个输入和输出,用LED灯的亮灭来显示运算模式,而软件部分则是由VHDL 语言来编写的,是通过精心的设计和合理的规划而完成的设计。

设计完成后的运算器不仅能实现数据的加减乘除运算,而且还能使数据及其计算结果在数码管上显示出来,能够实现0-99的十进制数字四则运算。

目录第一章系统设计 (1)1.1设计要求 (1)1.2系统设计方案 (1)1.2.2总体方案的论证 (2)1.2.4各功能块的划分和组成 (3)第二章单元电路设计 (4)2.1 输入模块 (4)2.2加法模块 (5)2.3减法模块 (5)2.4乘法模块 (6)2.5 除法模块 (7)2.6 模式选择模块 (8)2.7输出模块 (8)第三章软件设计 (9)3.1 软件设计平台、开发工具和实现方法 (9)3.2程序的流程方框图 (9)3.3实现的功能及程序清单 (10)3.3.1百进制计数器 (10)3.3.2四选一数据选择器 (11)3.3.3加法模块: (12)3.3.4减法模块 (12)3.3.5乘法模块 (13)3.3.6除法模块 (13)3.3.7输出模块 (13)第四章系统测试 (15)4.1 功能的测试方法、步骤 (15)4.2 仪器设备 (16)第五章结论 (16)参考文献 (16)附录A 电路图图纸 (17)附录B 软件程序 (20)第一章系统设计1.1设计要求输入两个2位十进制数(0~99),输出它们的四则运算(加减乘除)结果;发光二极管显示运算模式;可调用LPM_MULT及LPM_DIVIDE模块。

C案例三四则运算计算器课件

C案例三四则运算计算器课件

C案例三四则运算计算器课件
目录
目退录出
四、上机过程
创建MFC应用程序
➢ 启动Visual C++ 6.0后,选择“文件”→“新建”命 令,打开如图3-4所示的“新建”对话框。
➢ 在“新建”对话框的“工程”选项卡中,选择 MFC AppWizard(exe)选项,创建一个MFC应用 程序。在“工程”文本框中输入希望创建的工程 名称,同时选择文件保存的路径,单击【确定】 按钮,弹出对话框。选择【单个文档】单选按钮 后单击【完成】按钮,即弹出新建工程信息”对 话框,单击【确定】按钮即可创建完成一个基本 的单文档MFC应用程序框架,如图所示。
C案例三四则运算计算器课件
目录
目退录出
基于对话框的MFC应用程序框架
C案例三四则运算计算器课件
目录
目退录出
类的实现 ➢ 在Visual C++ 6.0集成环境中,在工作区窗
口(Workspace)的ClassView选项卡中选中 Calculator classes选项并右击,在弹出的快 捷菜单中选择New Class命令,在弹出的 New Class对话框中,在Class type下拉列表 框中选择Generic Class选项,在Class Information选项区域的Name文本框中输入 类名“calculators”,如图所示,单击【OK】 按钮创建calculators类。
C案例三四则运算计算器课件
目录
目退录出
添加calculators类基本信息
C案例三四则运算计算器课件
目录
目退录出
➢ 创建完成后在类视图的ClassView选项 卡中出现类calculators,双击该类名, 可以看到在calculators.h文件中已经出

四则运算计算器程序设计(java-GUI)

四则运算计算器程序设计(java-GUI)
当进行按下‘=’键时,进行表达式的求值。表达式求值的过程参见数据结构与算法设 计部分。
三、 布局设计
如右图所示的布局方式, 整体分为三部分,使用三个 中间容器即可实现此种布局。 构造方法用于布局的实现, 在构造方法中申明和初始化 三个中间容器 p1、p2、p3, 其中 p1 存放显示控件,位于 窗体的上部;p2 存放数字键, 位于窗体的左部;p3 存放功能键和运算符按钮,位于窗体的右部。p1 使用 FlowLayout 布局, 并设置对齐方式为左对齐;p2 和 p3 使用 GridLayout 布局,网格规模分别为 4*3 和 3*3。窗 体布局使用 BorderLayout 布局,按图所示分别使 p1 在 NORTH 位置,p2 在 WEST 位置,p3 在 CENTER 位置。
布局的方式有多种多样,读者可以有自己的创新,不局限与这一种布局方式。
四、 事件处理响应
通过实现 ActionListener 接口中的 public void actionPerformed(ActionEvent e)方法,将事 件处理全部集中在 actionPerformed(ActionEvent e)方法中。首先在构造方法中为所有的 JButton 对象添加监听器,在 actionPerformed(ActionEvent e)方法中,首先有一个 JButton 类 型的变量用来获取事件源的引用,然后程序根据事件源的不同做出不同的响应。
for( i=0 ; i<11 ; i++)//为所有的按钮添加监听器 button_num[i].addActionListener(this);
for( i=0 ; i<7 ; i++) button_bol[i].addActionListener(this);

四则运算计算器的程序编写

四则运算计算器的程序编写

四则运算计算器一、程序功能简介可以计算整数四则运算,例如:7+5*(3+4)二、课程设计要求(1)按要求在提供的框架程序源程序的基础上对程序进行修改、补充,并调试通过。

(2)修改主程序结构,使程序可以反复运算,直到选择退出为止。

(3)增加文件的输入输出功能,是计算过的式子和结果可以根据需要设置命令存储到文件中,同时也可以直接从文件中输入四则运算的式子,运算后,结果输出到原文件中。

(4)扩充程序功能,使程序适合实型数运算。

(5)增加程序的判断功能,当有非法的输入时(如字母等),给出提示信息并退出运算。

(6)扩充程序功能,使程序可以进行关系表达式(>=,>,<=,<,==等)的运算,运算结果为TRUE 或FALSE 。

在VC++6 环境下编译已经完美实现上述功能注:包含Debug 的语句如:if (Debug) printf(""); 都可以忽略,这些显示是编写工程中需要观察的信息,如果要打开,请在主菜单下输入大写的'D'。

Log:20060703 开始分析框架程序,并规划程序结构20060704 计算的核心部分基本完成,并封装成Operation()20060705 编写Menu_Sel() Do_Press() strChk() Do_File() FileCHK() Nexus() 整体功能和界面基本完成20060706 强化strChk(),增加Debug 模式,修正符号优先级问题。

20060707 郁闷,在英化程序-_-/// ...在Do_File() 增加输出文件另存功能...20060708 ....20060709 ....20060710 强化strChk(),增加结果整形识别,增加'!=' 处理,文件名非法字符校验。

最后更新20060710*//* =============================================== *//* 头文件声明*/#include <stdio.h> /* In Out printf().. */#include <math.h> /* pow(M,n) 开M^n */#include <string.h> /* strcpy... */#include <stdlib.h> /* atof... */#include <conio.h> /* getch()... */#define Max 256 /* 表达式长度定义,可以在这里调节*//* =============================================== *//* 函数声明*//* 计算字符串(不带括号的),计算的核心部分*/char*Calculate_f(char*chpString);/* 主操作过程,输入式子串,返回double 型结果*/double Operation(char*chpString);/* Source1、Source2 加起来到Destination 中*/char*AddStrings_f(char*chpDestination,char*chpSource1,char*chpSource2);/* 寻找char_to_find 在Source 中的位置,后移一位*/int FindChar(char*chpSource,char chCharToFind);/* 获取字符串的长度*/int Len_f(char*chpSource);/* 将Source 左边Length 个字符放在Destination 中*/char*Left_f(char*chpSource,char*chpDestination,int nLength);/* 将Source 右边Length 个字符放在Destination 中*/char*Right_f(char*chpSource,char*chpDestination,int nLength);/* 将Source 中从Start 开始Length 长度的字符串截下来放在Destination 中*/ char*Midstr_f(char*chpSource,char*chpDestination,int nStart,int nLength);/* 在字符串中删除一个字符del '+' */void DelChar(char*chpString,int sPos);/* 在字符串中插入一个字符*/int InsChar(char*chpString,int sPos,char sChar);/* 替换字符串中的某个字符*/void StrReplace(char*chpString,char strOld ,char strNew);/* 将实数值变为字符串*/char*Str_f(double nV alue,char*chpDestination);/* 计算字符串的值,返回实数值*/double V al_f(char*chpSource);/* =============================================== *//* 主菜单... */int Menu_Sel();/* 手工输入表达式求值*/int Do_Press();/* 文件导入表达式求值*/int Do_File();/* 文件检查0 重新输入,1 继续*/int FileChk(char*FN);/* 式子的合法性检查0 含有非法字符,1 正常2 关系运算*/int StrChk(char*chpSource);/* 关系运算*/int Nexus(char strIn[]);/* 显示关于*/void Show_About();/* =============================================== *//* 全局变量声明*/int Debug=0;/* 调试信息显示开关0 不显示,1 显示*/char*TF_Info[3]={"FALSE","TURE","Error"};/* 关系运算信息*//* 将Source 左边Length 个字符放在Destination 中*/char*Left_f(char*chpSource,char*chpDestination,int nLength){*(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL*/while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 将Source 中从Start 开始Length 长度的字符串截下来放在Destination 中*/char*Midstr_f(char*chpSource,char*chpDestination,int nStart,int nLength){chpSource+=nStart-1;/* 设置源起点*/*(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL */while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 将Source 右边Length 个字符放在Destination 中*/char*Right_f(char*chpSource,char*chpDestination,int nLength){while(*chpSource !=0){chpSource++;}/* 将源指针移到最后*/chpSource-=nLength;/* 将源指针跳到开始复制点*/ *(chpDestination+--nLength+1)=0;/* 设置目标字符串最后一个为NULL */while(nLength>=0)/* 直到目标字符串的最后一个*/{*(chpDestination+nLength)=*(chpSource+nLength--);}return chpDestination;}/* 在字符串中删除一个字符del '+' */void DelChar(char*chpString,int sPos){char sBuf[Max];int nCount;strcpy(sBuf,chpString);for(nCount=sPos;sBuf[nCount];nCount++){sBuf[nCount]=sBuf[nCount+1];}strcpy(chpString,sBuf);}/* 在字符串中插入一个字符*/int InsChar(char*chpString,int sPos,char sChar){char sBuf[Max];int iLen;int nCount;strcpy(sBuf,chpString);iLen=strlen(sBuf);if(iLen<Max){sBuf[iLen+1]='\0';for(nCount=iLen;nCount>=sPos;nCount--){sBuf[nCount+1]=sBuf[nCount];}sBuf[sPos]=sChar;strcpy(chpString,sBuf);}elsereturn0;return1;}/* 替换字符串中的某个字符'#' to '-' */void StrReplace(char*chpString,char strOld ,char strNew){char sBuf[Max];int nCount=0;strcpy(sBuf,chpString);while(sBuf[nCount]){if(sBuf[nCount]==strOld) sBuf[nCount]=strNew;nCount++;}strcpy(chpString,sBuf);}/* 寻找char_to_find 在Source 中的位置,后移一位*/int FindChar(char*chpSource,char chCharToFind){int nPos=0;while(*(chpSource+nPos)!=0)/* 直到目标字符串的最后一个*/ {if(chCharToFind ==*(chpSource+nPos++))/* 比较.. */{return nPos;/* 返回第一个出现点,加一*/ }}return0;}/* 获取字符串的长度*/int Len_f(char*chpSource){int nRetval=0;/* 初始化长度*/while(*(chpSource+nRetval++)!=0){}/* 移动指针到Null */return--nRetval;}/* 将实数值变为字符串*/char*Str_f(double nV alue,char*chpDestination){char strTmp[Max];gcvt(nV alue,sizeof(double)+1,strTmp);/* 实数值转字符串*/if(strTmp[0]=='-')/* 将'-' 负号转译为'#' */{strTmp[0]='#';}strcpy(chpDestination,strTmp);if(Debug) printf("...Conversion Double to String:%f - >%s\n",nV alue,chpDestination);return chpDestination;}/* Source1、Source2 加起来到Destination 中*/char*AddStrings_f(char*chpDestination,char*chpSource1,char*chpSource2){char*chpTempdest=chpDestination;while(*chpSource1!=0)/* 先把chpSource1 放入chpDestination */{*(chpTempdest++)=*(chpSource1++);}while(*chpSource2!=0)/* 在chpDestination 后继续写入chpSource2 */{*(chpTempdest++)=*(chpSource2++);}*chpTempdest=0;/* 指针位置归零*/return chpDestination;}/* 计算字符串的值,返回实数值*/double V al_f(char*chpSource){double nResult=0.;char strTmp[Max];strcpy(strTmp,chpSource);if(strTmp[0]=='#')/* 将'#' 转译为'-' 负号*/{strTmp[0]='-';}nResult=atof(strTmp);/* 字符串转为实数*/if(Debug)printf("...Conversion String to Double:%s -> %s -> %f\n",chpSource,strTmp,nResult);return nResult;}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四则运算运算计算器数字电路设计
由于加减乘除计算器的各电路较复杂,就不将其组合在一起了,以下是各个加法,减法,乘法,除法计算器的单独电路图,其中输入均采用二进制四位输入。

一.加法计算器
这个较为简单,可以直接利用中规模四位全加器74LS283,即可制成加法计算器。

电路图:
A4 A3 A2 A1 为二进制被加数;B4 B3 B2 B1 为二进制加数;SUM4 SUM3 SUM2 SUM1 为二进制得数。

加上输入输出后如图所示:
仿真图形为:
前四个图像为被加数,中间四位为加数,后四位为得数。

由此可看出,已成功制成加法计算器。

二.减法计算器
电路图:
利用数据选择器和四输入与非门,可以实现减法计算器的功能,其中,C1 C2 C3 C4为四位二进制被减数输入端;B1 B2 B3 B4 为四位二进制减数输入端;输出端 27 26 25 24 为得数。

加上输入输出后如图所示:
仿真图形如下:
前四位为被减数,中间四位为减数,最下面四位为得数,由仿真图形可看出,已成功制成减法计算器。

三.乘法计算器
利用中规模四位全加器74LS283和而输入与门可以实现乘法计算器功能。

其中,输入端4 3 2 1 为二进制四位被乘数,输入端5 6 7 8 为二进制四位乘数,
输出端54 50 51 52 53 49 48 46 47为得数。

电路图如下:
加上输入输出后:
仿真图形为:
1被乘数和乘数:
2得数:
由仿真图形可以看出,已成功制成了乘法计算器。

四.除法计算器
这个实在是太难了,想了好久也没想到怎么设计,作业催的紧,就只好先不做了,请老师见谅,哈!
以上就是四则计算器的数字电路设计与仿真。

相关文档
最新文档