当前位置:文档之家› MATLAB GUI入门简单实例(加法计算器)

MATLAB GUI入门简单实例(加法计算器)

MATLAB GUI入门简单实例(加法计算器)
MATLAB GUI入门简单实例(加法计算器)

本人初学GUI,针对网上版本的混乱,学得一头雾水,特重新整理如下,供大家参考。

1.首先我们新建一个GUI文件:File/New/GUI 如下图所示;

选择Blank GUI(Default),点击OK。

2.进入GUI开发环境以后添加3个编辑文本框(Edit Text),2个静态文本框(Static Text),和一个Push Button按钮,布置如下图所示;

Edit Text 3

Edit Text 1 Edit Text 2

Push Button

(1)第一个“Edit Text 1”的用来存储第一个加数,我们将“string”改为“0”,“tag”改为“input1”

(2)第二个“Edit Text 2”的用来存储第二个加数,我们将“string”改为“0”,“tag”改为“input2”

(3)第三个“Edit Text 3”的“string”改为“0”,“tag”为“answer”

(4)修改Pushbutton按钮的属性,“string”改为“Add”,“tag”改为“add”

(5)另外2个Static文本就是的“string”修改为“+”“=”

(6)点击“保存”,名字任意取,自动弹出M文件(我的是7.0版本,不知其他版本会不会如此)。

3.我们先为第一个Edit Text文本框添加代码,即读取第一个加数;

点击上图所示红色方框,选择input1_Callback,光标便立刻移到下面这段代码(程序自动生成)的位置。

function input1_Callback(hObject, eventdata, handles)

% hObject handle to input1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,’String’) returns contents of input1 as text

% str2double(get(hObject,’String’)) returns contents of edit1 as a double

然后在上面这段代码的下面插入如下代码:

%以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字,则现实空白内容input=str2num(get(hObject,'String'));%检查输入是否为空. 如果为空,则默认显示为0

if (isempty(input))

set(hObject,'String','0')

end

guidata(hObject,handles);%保存handles结构体,只要在handles结构体有改变时,才需要保存%guidata(hObject, handles);%这里由于handles没有改变,故这里其实没有必要,但是为了避免潜在的不必要麻烦,建议在所有Callback都添加该命令。

这段代码使得输入被严格限制,我们不能试图输入一个非数字。

4. 为input2_Callback添加同样一段代码

input=str2num(get(hObject,'String'));%检查输入是否为空. 如果为空,则默认显示为0

if (isempty(input))

set(hObject,'String','0')

end

guidata(hObject,handles);

5. 现在我们为计算按钮“add”添加代码来实现把数据1(input1)和数据2(input2)相加的目的。

用3中同样的方法在m文件中找到add_Callback代码段,如下;

function add_Callback(hObject, eventdata, handles)

% hObject handle to add (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

在上面这段代码后添加以下代码;

a=get(handles.input1,'String');

b=get(handles.input2,'String');

%a和b是字符串变量,我们需要使用str2double函数将其转换为数值,然后才能相加,否则字符串是没法相加的

total=str2num(a)+str2num(b); %格式转换为数值

c=num2str(total); %转化为字符串

set(handles.answer,'String',c);%保存结构体,将结果赋值给answer_static Text空间的string 属性,于是就可以显示结果了

guidata(hObject,handles);%更新结构体

7.点击绿色小三角“Run”按钮,弹出Fig对话框,填入数字,计算程序运行如下:

Run 运行

按钮

简易加减计算器小程序

[java語言與程序設計]简易加减计算器小程序 歸真我发表于:2011/8/1922:51:21标签(TAG): 简易加减计算器小程序 在上一篇《简易计算器面板小程序》中,我已对面板部分的程序作了详细的注释,并对程序的运行过程及结果作了完整的介绍,并且是上机调试过了得到的结果。但是,那只是面板,不能运算。要想让它具有运算的功能,还得在此基础上作一些修改,加进有关按钮动作响应部分的程序。为了便于理解,便于调试,便于学习,掌握其要点,我想应该遵循循序渐进的原则,所以,先从加减运算开始,看看这个功能是怎么实现的。请看下面的小程序。从程序中可以看出,它是利用内部类ButtonAct来处理按钮的动作响应的。从总体上讲是两个按钮“运算”和“重置”,但“运算”又区分为“加”和“减”。所以,用负责实现双分支的if语句来编程。 /**C2.java简易加减计算器小程序*/ import java.applet.*; import java.awt.*; import java.awt.event.*; public class C2extends Applet{ TextField t1,t2,t3; Button btn1,btn2; CheckboxGroup select; Checkbox a,s;//分别代表加、减 Label b; public void init(){ t1=new TextField(13); t2=new TextField(13); t3=new TextField(13); btn1=new Button("等于");

btn2=new Button("重置"); select=new CheckboxGroup(); a=new Checkbox("加",true,select); s=new Checkbox("减",false,select); b=new Label("简易加法/减法计算器"); add(b); add(t1); add(a); add(s); add(t2); add(btn1); add(t3); add(btn2); btn1.addActionListener(new ButtonAct());//注册给ButtonAct对象btn2.addActionListener(new ButtonAct());//注册给ButtonAct对象} class ButtonAct implements ActionListener{//内部类,按钮处理public void actionPerformed(ActionEvent e){ int op1,op2,op3; if(e.getSource()==btn1){//等于按钮 op1=Integer.parseInt(t1.getText()); op2=Integer.parseInt(t2.getText()); if(a.getState())//以下判断计算类型并实现相应的计算 op3=op1+op2; else op3=op1-op2; t3.setText(Integer.toString(op3)); } else{//重置按钮 t1.setText(""); t2.setText(""); t3.setText(""); a.setState(true); } } }//end of ButtonAct }//*~ 运行结果为:

速算,简易计算器c语言代码,可实现加减乘除

#include"stdio.h" #include"math.h" #include"stdlib.h" struct optrstyle { int top; char stack[20]; } struct opndstyle { int top; int stack[20]; } void main() { char ch; while(1) { printf("-----------------------------------------\n"); printf("|-----------欢迎来到速算24--------------|\n"); printf("|----------是否开始游戏?????------------|\n"); printf("|--------- 开始游戏请按'Y'-------------|\n"); printf("|--------- 退出游戏请按其他键-------------|\n"); printf("-----------------------------------------\n"); scanf("%c",&ch); if(ch=='Y' or ch=='y') { } else break; } } int EvaluateExpression() { // 算术表达式求值的算符优先算法。设OPTR 和OPND 分别为运算符栈和运算数栈,OP 为运算符集合。 InitStack(OPTR); Push(OPTR,'#'); InitStack(OPND); c = getchar(); while(c!='#' || GetTop(OPTR)!='#') { if(!In(c,OP))

android简单计算器课程设计

摘要 Android是当今最重要的手机开发平台之一,它是建立在Java基础之上的,能够迅速建立手机软件的解决方案。Android的功能十分强大,成为当今软件行业的一股新兴力量。Android基于Linux平台,由操作系统、中间件、用户界面和应用软件组成,具有以下5个特点:开放性、应用程序无界限、应用程序是在平等条件下创建的,应用程序可以轻松的嵌入网络、应用程序可以并行运行。而简单计算器又是手机上必备的小程序,所以此次创新实践很有意义。并且具有很强的使用性。 关键字:Android Java基础计算器

目录 第1章开发工具与环境 (1) 1.1 Android平台 (1) 1.2 Java开发环境 (1) 1.3 Eclipse (1) 1.4 Android程序基础—Android应用程序的构成 (2) 第2章系统分析与设计 (4) 2.1系统的可行性分析 (4) 2.2 系统的需求分析 (4) 2.3 系统的优势 (4) 2.4 系统的流程图 (5) 第3章系统详细设计 (6) 3.1 动作Activity (6) 3.2 布局文件XML (6) 3.3 Activity的详细设计 (7) 3.2 布局文件XML的详细设计 (21) 3.2 系统的运行结果 (24) 结论 (25) 参考文献 (26)

第1章开发工具与环境 1.1 Android平台 1.谷歌与开放手机联盟合作开发了Android, 这个联盟由包括中国移动、摩托罗拉、高通、宏达和T-Mobile在内的30多家技术和无线应用的领军企业组成。 2.Android是一个真正意义上的开放性移动设备综合平台。通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,来建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统,这样应用之间的通用性和互联性将在最大程度上得到保持。 3.所有的Android应用之间是完全平等的。 4.所有的应用都运行在一个核心的引擎上面,这个核心引擎其实就是一个虚拟机,它提供了一系列用于应用和硬件资源间进行通讯的API。撇开这个核心引擎,Android的所有其他的东西都是“应用”。 5.Android打破了应用之间的界限,比如开发人员可以把Web上的数据与本地的联系人,日历,位置信息结合起来,为用户创造全新的用户体验。 1.2 Java开发环境 Java技术包含了一个编程语言及一个平台。Java编程语言具有很多特性,如面向对象、跨平台、分布式、多线程、解释性等等。Java编程语言起源于Sun公司的一个叫“Green”的项目,目的是开发嵌入式家用电器的分布式系统,使电气更加智能化。1996年1月发布了JDK1.1版本,一门新语言自此走向世界。之后,1998年12月发布了1.2版本,2002年2月发布1.4版本,2004年10月发布1.5版本(5.0),2006年12月发布1.6(6.0)版本,这是目前的最新版本。Java1.2版本是一个重要的版本,基于该版本,Sun将Java技术分为J2SE、J2ME、J2EE,其中J2SE为创建和运行Java程序提供了最基本的环境,J2ME与J2EE 建立在J2SE的基础上,J2ME为嵌入式应用(如运行在手机里的Java程序)提供开发与运行环境,J2EE为分布式的企业应用提供开发与运行环境。 1.3 Eclipse

简易加减法计算器

电子技术课程设计 题目:简易加减法计算器 一、设计课题:简易加减法计算器 二、设计任务和要求: 1、用于两位以下十进制数的加减运算。 2、以合适方式显示输入数据及计算结果。 三、原理电路设计 1、方案的比较 对于简单加减计算器可有三种不同的方案 ①用数/模转换,与模拟电路中的加减计算器进行简单的加减计 算。先用74LS147二-十进制优先编码器转化为二进制进行输A,然后数模转化模拟信号,进行加减计算后,转化为数字信号输 出。 此方案思路较明确,但经过二次数模相互转换,精确率较低; 具体输出时的负数效应,与单输入的二进制转化为十进制时电 路较复杂,无成块的集成电路,致使误差率较大。 ②可用数字电路中4位超前进位加法器74LS283与方案一输入相 同;后用三态输出CMOS门电路进行选择输入,进行加法运算

后输出,输出时,注意负数的问题与在输出中2进制与10进制关系的问题。还有寄存器的问题。 此方案思路明确,比较精确,此中的2进制与10进制问题需复杂门电路解决无现成集成元件,存在太多的散元件。减法运算需要反码进行运算,况且在其触发过程中需要考虑同步问题。 ③可运用数字电路中的单时钟同步十进制加/减计数器74LS190 进行加减计算。方案以上升沿进行输入,触发加减计算。本方案输入方式不同于一般输入方式,需要有所改进。但思路明了,不十分复杂,对于负数运算较复杂,可集成程度较高。 终上所述,最好是相互结合,以③为本。 2、单元电路设计

3、元件的选择

对于计数器来说需要选同时可以进行加减计数的计数器进行 加减,因此选用单时钟十进制加/减计数器74LS190. 其电路图及功能表如下: 中间由于1/0的输出不能够持久的进行保持,因此可用RS触 发器进行保持。对于加/减,等于触发需要74LS194进行触发 保持 4、整体电路(见附图) 5、工作原理 主要运用十进制加/减计数器74LS190加/减计数功能与74LS194的触发 功能。 六、设计总结 我们以为,在这学期的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教别人,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。而且,这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。 因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。我们的激情永远还会结束,

简易计算器课程设计

基于单片机的计算器的设计 摘要:本设计是一个实现加减乘除的计算器,它的硬件主要由四部分构成,一个8051单片机芯片,两个八段共阴极数码管,一个4*4键盘,它可以实现一位数的加减乘除运算。 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 关键词:LED接口;键盘接口;8255A;汇编语言 一、概述 1.1设计要求及任务: (1)设计4*4的键盘,其中10个数字键0~9,其余六个键“+”、“—”、“*”、“/”、“=”、和“C”键; (2)设计两位LED接口电路; (3)实现1位数的简单运算 1.2设计原理 (1)LED显示器接口技术 LED动态显示接口技术 (2)键盘显示技术 逐行(逐列扫描法) 二、系统总体方案和硬件设计 2.1计算器总体思想 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 执行过程:开机显示零,等待键入数值,当键入数字,经通过数码管显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。 图1 系统设计框图

2.2硬件的选择与连接 图二硬件连接总图 2.2.1硬件选择 (1)由于本设计比较简单,因此选用内部含有4KBE2PROM的89C51单片机作为系统的核心。 (2)扩展输入/输出端口 在扩展输入/输出端口时,要求输入口能够缓冲,,输出口能够锁存。常用小规模集成电路芯片74LS244或74LS245等扩展输入端口,用74LS273、74LS373、 74LS377扩展输出端口。这种扩展方法的特点是电路简单,但功能单一、灵活性差。因而常采用中规模的可编程并行接口芯片8255A扩展输入/输出端口。 (3)锁存电路采用74LS373 2.2.2接口设计 (1)单片机与8255A的接口设计 8255A中的数据总线缓冲器为三态双向数据缓冲存储器,用于将8255A的数据线 D0~D7和单片机的数据总线(P0口)连接,实现单片机和接口间的数据传送。 读写控制部件的接口设计 1、/CS为片选信号,接成低电平表示8255A 被选中。/CS与P2.7相连,用P2口的最高位控制8255A是否工作。即将P2.7控制为低电平。 2、RESET-复位信号,高电平有效,接在单片机的RST端。 3、/RD和/WR为读写控制信号,低电平有效。分别将两个端口接单片机的/RD和/WR 4、A1和A0-端口选择信号,分别与单片机的低两位地址线P1.1和P1.0相连。用于选择不同端口。采用74LS373三态锁存器,用于分离P0口第八位地址线,将它的Q0和Q1口接至8255A的地址输入端A0和A1。

单片机 简易加法计数器

《单片机原理及应用》课程课程设计 题目简易计算器的设计 院(系)信息工程学院 专业班级 11级计算机应用技术1班 学生姓名 XXXXX 学号 XXXXXXXX 设计地点计算机应用实验室 指导教师 XXXX 起止时间:2013年6月3日至2013 年6 月14 日

摘要 随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本题目是实现两位数的加减运算的简易计算器,实现键盘输入,由七段LED 数码管输出;程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不十分完善,限制也较多。本设计重在设计构思,使得我们用专业知识、专业技能分析和解决问题,通过设计使得我们对所学知识彻底巩固。 课程设计目的和意义: 通过这次课程设计,进一步掌握单片机理论知识,知道AT89S52单片机的原理、编程和各种功能的应用,了解简易计算器的工作原理,初步掌握计算器的硬软件设计、编写、调试和仿真,充分提高动手能力和排除故障的能力。同时通过毕业设计加深了我们对单片机的认识和兴趣,发挥了我们的创新能力。 在本次课程设计中,充分调动了组员的积极性,彼此之间通过相互合作,共同努力,一起出色地完成了任务! 设计任务:能够实现0~9这10个1位数的加减运算,用10个按键模拟0~9数字键,用两个按键实现加减运算,运算结果用5个数码管显示出来。如:5+3=8。关键词 : 单片机;数码管;矩阵键盘

目录 1.设计方案 (4) 1.1设计思路 (4) 1.2整体设计 (4) 2.电路设计原理 (6) 2.1键盘接口电路 (6) 2.2数码管显示原理及译码电路 (7) 2.3运算模块(单片机控制) (7) 3.功能程序仿真调试 (10) 3.1编程调试环境 (10) 3.2测试结果截图 (11) 4.程序设计 (12) 4.1软件程序设计 (12) 4.2源程序 (14) 5.总结 (18) 6.参考文献 (19)

VB6.0的小程序计算器

的小程序计算器 对于刚入门学习VB6 的朋友来说肯定会做些小程序吧,这里就是给大家演示个简单的计算器程序,仅供参考啦。 界面上加减乘除四个按钮分别是cmdAdd cmdPlus、cmdMultiple、cmdDevide,小数点按钮是cmdDot,负号按钮是cmdMinuse,数字0?9为了偷懒,用了控件数组cmdNumber(O)~ cmdNumber(9),上面txtShow 是显示数字和结果用的,txtOperate 是显示中间步骤的。 思路大致是这样, 点加减乘除这类操作符的时候, 把当前txtShow 的值保存在模块变量mstrParam1 里,同时把操作符保存到mstrOperate 里,按等于号时把先把当前txtShow 的值保存在模块变量mstrParam2 里,然后对mstrParam1 和mstrParam2 进行运算,当然要记得设法把String 转换成数值进行运算。 转换的过程要注意,这里是用的Variant 数据类型, vParam1 和vParam2 都是Variant 类型,保存的是mstrParam1 和mstrParam2 的数值。之所以不用integer 、long 、double 这些标准类型,是因为这些类型都有大小限制,做出来用着不方便,VB最大的整型long才 到47 ,这意味着计算器的计算结果只能限制在9位到10位。而Variant类型可以支持非常 大的数,具体多大不清楚,但起码几十位是能够支持的。另外,最后算完的结果也要做格式化,因为如果数值非常大的话,VB会自动转成科学计数法,所以要用Format函数进行调整。 如果需要源代码的话在我百度空间里留言。Explicit Private Const mstrFORMATDEFAULT As String = "#.##" Private mstrParam1 As String, mstrParam2 As String Private mstrOperate As String Private Sub cmdAdd_Click() mstrParam1 = Trim mstrOperate = "+" ___ nil = & mstrParam1 & vbCrLf = & mstrOperate & vbCrLf End Sub Private Sub cmdPlus_Click() mstrParam1 = Trim mstrOperate = "-" ____ Illi

简易计算器课程设计

科研训练论文 题目:基于单片机的计算器的设计 目录 一、概述 (3) 1.1设计要求及任务: (3) 1.2设计原理: (3) 二、系统总体方案及硬件设计 (3) 2.1计算器总体思想 (3) 2.2硬件的选择与连接 (4) 2.2.1硬件选择 (4) 2.2.2接口设计 (5) 三、软件设计 (7)

3.2系统流程总图 (8) 3.3显示程序设计 (8) 3.4键盘识别程序设计 (9) 3.4.1原理与分析 (9) 3.4.2流程图 (10) 四、设计体会与总结 (11) 五、参考文献 (11) 附录 基于单片机的计算器的设计 摘要:本设计是一个实现加减乘除的计算器,它的硬件主要由四部分构成,一个8051单片机芯片,两个八段共阴极数码管,一个4*4键盘,它可以实现一位数的加减乘除运算。 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 关键词:LED接口;键盘接口;8255A;汇编语言

一、概述 1.1设计要求及任务: (1)设计4*4的键盘,其中10个数字键0~9,其余六个键“+”、“—”、“*”、“/”、“=”、和“C”键; (2)设计两位LED接口电路; (3)实现1位数的简单运算 1.2设计原理: (1)LED显示器接口技术 LED动态显示接口技术 (2)键盘显示技术 逐行(逐列扫描法) 二、系统总体方案及硬件设计 2.1计算器总体思想 显示部分:采用LED动态显示。 按键部分:采用4*4键盘。采用软件识别键值,并执行相应的操作。 执行过程:开机显示零,等待键入数值,当键入数字,经通过数码管显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在数码管上输出运算结果。

简易加减计算器设计(数电)

电子技术课程设计电气与信息工程学院建筑电气与智能化专业题目:简易加减计算器设计 姓名:徐雪娇 学号:094412110 指导教师:祁林

简易加减计算器设计 一、设计目的 1、在前导验证性认知实验基础上,进行更高层次的命题设计实验. 2、在教师指导下独立查阅资料、设计、特定功能的电子电路。 3、培养利用数字电路知识,解决电子线路中常见实际问题的能力. 4、积累电子制作经验,巩固基础、培养技能、追求创新、走向实用。 5、培养严肃认真的工作作风和严谨的科学态度。 二、设计要求 1、用于两位一下十进制的加减运算。 2、以合适方式显示输入数据及计算结果。 三、总体设计 第一步置入两个四位二进制数。例如(1001)2,(0011)2和(0101)2,(1000)2,同时在两个七段译码显示器上显示出对应的十进制数9,3和5,8。 第二步通过开关选择加(减)运算方式; 第三步若选择加运算方式所置数送入加法运算电路进行运算;同理若选 择减运算方式,则所置数送入减法运算电路运算; 第四步前面所得结果通过另外两个七段译码器显示。即: 方案一 通过开关J1-J8接不同的高低电平来控制输入端所置的两个一位十进制数, 译码显示器U10和U13分别显示所置入的两个数。数A直接置入四位超前进位 加法器74LS283的A4-A1端,74LS283的B4-B1端接四个2输入异或门。四个 2输入异或门的一输入端同时接到开关S1上,另一输入端分别接开关J5-J8,通过开关J5-J8控制数B的输入。当开关S1接低电平时,B与0异或的结果为B, 通过加法器74LS283完成两个数A和B的相加。当开关J1接高电平时,B与1 异或的结果为B非,置入的数B在74LS283的输入端为B的反码,且74LS283 的进位信号C0为1,其完成S=A+B(反码)+1,实际上其计算的结果为S=A-B 完成减法运算。由于译码显示器只能显示0-9,所以当A+B>9时不能显示,我们 在此用另一片芯片74LS283完成二进制码与8421BCD码的转换,即S>9(1001) 时加上6(0110)2,产生的进位信号送入译码器U12来显示结果的十位,U11 2 显示结果的个位。由于减法运算时两个一位十进制数相减不会大于10,所以不 会出现上述情况,用一片芯片U11即可显示结果。 方案二 由两异或门两与门和一或门组成全加器,可实现一位二进制加逻辑运算,四 位二进制数并行相加的逻辑运算可采用四个全加器串行进位的方式来实现,将低 位的进位输出信号接到高位的进位输入端,四个全加器依次串行连接,并将最低

简易计算器(加减乘除幂e)

此计算机包含+,-,/,*,!,sin,tan,cos,^,e。 #include #include #include #include #define max 100 #define MaxOp 100 struct //设定运算符优先级 { char ch; //运算符 int pri; //优先级 } lpri[]={{'=',0},{'(',1},{'*',5},{'/',5},{'+',3},{'-',3},{')',6},{'^', 7},{'e',7},{'!',7},{'s',7},{'t',7},{'c',7}}, rpri[]={{'=',0},{'(',6},{'*',4},{'/',4},{'+',2},{'-',2},{')',1},{'^', 6},{'e',6},{'!',6},{'s',6},{'t',6},{'c',6}}; int leftpri(char op) //求左运算符op的优先级 { int i; for(i=0;i

程序代码简单小程序

实验一(带有进度条的倒计时程序) Public Class Form1 Dim timers As Integer Dim temp As Integer Private Sub Timer1_Tick(ByVal sender As , ByVal e As Handles If + / timers < Then += / timers Else = False = ("进度完成!") End If temp += 1 = () End Sub Private Sub Form1_Load(ByVal sender As , ByVal e As Handles timers = 30 End Sub Private Sub Button2_Click(ByVal sender As , ByVal e As Handles timers = Val(InputBox("输入", "请输入总时间。", 30, 0, 0)) End Sub Private Sub Button1_Click(ByVal sender As , ByVal e As Handles = True End Sub End Class 实验二(定时器控制蝴蝶飞舞) Public Class Form1 Dim t As Integer Private Sub Timer1_Tick(ByVal sender As , ByVal e As Handles ’Dim t As Boolean ' If t = True Then ' = ' t = False 'Else ' = ' t = True 'End If Select Case t Case 0 =

简易加减计算器的设计

简易加减计算器的设计 一设计任务和要求 1自选器件制作一个简易计算器实现二位以下十进制数的加减计算 2进一步掌握数字电子技术课程所学的理论知识。 3熟悉几种常见的二——十进制编码器芯片、加法器芯片和八段字符型LED显示芯片,掌握其工作原理及其使用方法,并能够熟的练将其组合连接,使其构成简单的加减计算器,实现二位以下的十进制数的加减计算。 4了解数字系统设计的基本思想方法,学会科学分析和解决问题,培养认真严谨的工作作风和实事求是的工作态度。 二原理电路设计。 (1)方案比较 方案一: 该方案有三大块组成:编码输入电路、加减运算电路和显示电路。 编码输入电路: 和方案一相同,我们采用二——十进制编码器作为编码输入器件,它可将我们输入的十进制数对应的编译成对应的二进制BCD代码,输入到运算电路。 加减运算电路: 加减运算电路主要由74LS283(四位超前进位加法器)和进位信号门电路组成。 由于编码电路送过来的代码信号都是反码的形式,所以我们首先采用非门电路获得正确的代码,仍然采用个位和个位相加,十位和十位的相加的原则,将两个的个位的代码送入到一个加法器中,但是加法器只可以做加法运算,不满足我们的设计要求,因此,我们采用异或门电路,将一个位作为减数的代码与异或门电路异或,目的是取反,得到其反码,再将进位信号接入异或门控制电路,进位相当于加一,这样我们就得到了减数的补码。同样的,74LS283也是一个十六进制的芯片,不满足我们的要求,我们仍然是用组合逻辑电路,设计一个进位信号,这里我们采用两片74LS283,第一片运算编码电路送过来的代码,当其运算结果大于9时,由组合逻辑电路产生进位信号。当运算结果为16、17、18时,我们将进位输出信号与组合逻辑电路进位信号做或运算,这样我们就得到了合适的进位了。可是怎样才可以得到正确的十进制数的代码呢,在其进行加法运算时,我们在第二片加法器上认为加上0110代码,将其与第一片加法器的运算结果做和,这样就得到了我们所需要的云算结果了。当我们我们做减运算时,控制异或门运算电路,得到被减数的补码,使其进行加法运算,当5减6时,为了得到正确的云算结果,我们将第一片的运算结果减六,及加上其补码——十,这样就得到了我们所需要的运算结果了。 十位运算和个位运算相同,不再赘述。 显示电路: 显示电路主要由7448(七段显示译码器)构成,将加减运算电路计算所得的运算结果输入到7448中,就得到了我们所需要的十进制的运算结果了。

随机加减法小程序

C语言编写随机加减法小程序 主要功能:1、可以自己设置加减法的范围。 2、可以控制题目的数量。 #include "stdio.h" #include "stdlib.h" #include "time.h" void main() { char again='y'; //again表示是否终止 int count=0,option; //count存储输入无效数字的次数,option存储输入的菜单项 int sum,cha,a,k,sm,m,right=0,wrong=0,num1,num2; while(again=='y') { system("cls"); //清屏 printf("请输入加减法的范围最大值:\n"); scanf("%d",&k); printf("请输入总题数:\n"); scanf("%d",&sm); printf("===========欢迎你进行%d以内加减法练习============\n",k); printf("=================================================\n"); printf(" 1.加法练习\n"); printf(" 2.减法练习\n"); printf(" 3.退出\n"); printf("=================================================\n"); printf("请输入1或2或3,并按回车键进入:"); //显示欢迎界面 scanf("%d",&option);//接受用户的选择 switch(option) { case 1: // 加法练习 system("cls");//清屏 printf("=================================================\n"); printf(" 1.加法练习本次练习共计%d道题\n",sm); printf("=================================================\n"); printf("\n"); srand(time(0)); for (a=1;a<=sm;a++)//控制总题数 { num1=rand()%k; num2=rand()%k;

简易计算器

电子信息与电气工程学 院 课程设计报告 设计类型:综合设计 设计题目:基于单片机的简易计算器设计 系别:电子信息与电气工程学院 年级专业:07电子信息工程(2)班 学号: 学生姓名: 指导教师: 同组成员: 2010 年 6月 23 日

《通信技术创新课程设计》课程设计任务书

目录 1 摘要: (4) 2 方案论证与选择 (4) 2.1 输入模块 (4) 2.2 显示模块 (4) 2.4 报警电路 (5) 3 MSC-51芯片简介和工作原理 (5) 3.1中央处理器: (5) 3.2中断系统: (6) 3.3时钟电路: (6) 4 硬件工作原理电路 (8) 4.1 电路工作框图 (8) 4.2 硬件电路图 (9) 4.3软件流程图 (9) 4.4 硬件引脚锁定 (10) 5、实验数据 (10) 6、小结 (10) 参考文献 (10) 附:程序代码 (11) 附:程序清单 (12)

基于单片机的简易计算器设计 1 摘要: 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 本任务是个简易的显示数字的加减乘除运算,程序都是根据我们自己在这两周自学而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识、专业技能分析和解决问题全面系统的锻炼。 关键词: 单片机计算器范围加减乘除 2 方案论证与选择 2.1 输入模块 方案一:采用独立式按键作为输入模块,其特点:直接用I/O口构成单个按键电路,接口电路配置灵活、软件结构简单,但是当键数较多时,占用I/O口较多; 方案二:采用矩阵式键盘作为输入电路,其特点:电路和软件稍复杂,但相比之下,当键数越多时越节约I/O口。 本设计使用键盘输入0到9的数值,若采用独立按键,对数值进行递增递减需频繁按键,为软件设计增加负担,且操作界面不友好。若采用矩阵式按键,可以方便地输入一个温度值,使操作界面更具人性化,节约了宝贵的I/O口资源。通过对比,故采用方案二作为系统输入模块。 2.2 显示模块 方案一:用LCD显示,要用LCD显示,需要学习其专用的驱动控制芯片,比如HD61203,软件实现较为复杂,且LCD的价格昂贵。 方案二:采用LED数码管并行动态显示,电路简单,同样的功率驱动下,显示亮度不及静态显示,且占用I/O口较多。 方案三:采用LED数码管串行静态显示,仅占用控制器串口的两个I/O口,软件实现简单,显示亮度高,成本低。 表1 用LED显示器显示十六位进制数的字形代码在下图表示:

简单的加减计算器详解

简易加减法计算器课程设计 电气与信息工程学院 电气工程及其自动化专业 题目:简易加减法计算器 姓名:胡永朋 学号:181413112 指导教师:李慧 时间:2015年 6 月22 日~ 2015年6 月26日

本次课程设计的任务是设计一个具有加减运算功能的简易计算器,并通过合适的方式显示最后的计算结果。设计电路的完成主要是利用简单的数字电路和逻辑运算来进行的。简易加减计算器电路主要是对数据的输入和显示,数据的加减运算,数据的输出与显示三个主要的方面来设计研究完成的。 在输入电路的部分,我们通过开关的闭合与断开来实现数据的输入,开关闭合接入高电平“1”,断开接入低电平“0”,而输入的数据将通过七段显示译码器显示出来。加减运算电路主要通过加法器来实现。 一、设计方案 设计方案比较: 方案一:输入十进制的数字,再通过编码器对数字进行编码,输出二进制的数据,运用显示译码器对输入的数字以十进制的形式进行显示,在进行加减计算的时候将二进制数字运用模数转换,然后再进行相加减,然后再讲这些模拟信号再次转换成数字信号,再将数字信号输入到显示译码器来显示数字。这个方案中要进行数模转换和模数转换所需要的电路器件有些复杂,并且转换的时间长,而且转换以后的数值精度不高,鉴于这种方案中的缺点太多,不采用。 方案二:输入十进制的数字,并对数字进行编码,通过显示译码器将输入的数值显示出来,再讲编码所得的二进制数字求其补码,将补码送到串行进位加法器中进行相加,最后将二进制码转换成BCD 码输入到显示译码器中,从而就可以将相加以后所得的数字显示出

来。这个方案中避免了方案一中需要大量的时间和精度不高的缺点,但是由于应用了串行加法器的缘故,电路会比较复杂,不利于进行连接。 方案三:本方案采用十位和十位相加,个位和个位相加的方法,将个位和十位分别输入到电路中,由于输入的数字是二进制码,将二进制码输入到显示译码器中就可以显示输入的数字。相加或相减的时候采用补码的形式通过加法器进行相加。再将二进制转化成BCD码输入到显示译码器中就可以将相加所得的数字显示出来。此方案中运用了较少的原件,并且运行所需时间很少,相对于方案一和方案二,这个方案是最好的! 二、设计原理 设计原理分析:如图1 置入用开关控制,二进制码输入显示译码器,这样四个显示译码器上

简易计算器.

湖南人文科技学院 课程设计报告课程名称:单片机原理及应用课程设计 设计题目:简易计算器 系别:通信与控制工程系 专业:自动化 班级:一班 学生姓名: 陈彬王冬林 学号: 10421120 10421104 起止日期: 2012年12月24日~ 2013年01月06日 指导教师:谭周文 教研室主任:岳周

指导教师评语: 指导教师签名:年月日 成绩 评 定 项目权重成绩 1、设计过程中出勤、学习态度等方面0.2 2、课程设计质量与答辩0.5 3、设计报告书写及图纸规范程度0.3 总成绩 教研室审核意见: 教研室主任签字:年月日 教学系审核意见: 主任签字:年月日

摘要 该简易计算器以STC89C52单片机为核心,显示模块数码管,利用C语言编写相应程序进行四位自然数的有效四则运算。该计算器计算精度不高,只能实现简单的加减乘除,且有效数字位数有限。该装置由STC89C52模块,4x4键盘(包括1~9,+,-,*,/等十六个字符),数码管组成。STC89C52为主模块,其控制键盘及显示模块。键盘可以实现数字及运算符号的输入,数码管可以进行人机交互,显示按下键盘所对应的字符以及显示运算结果。此计算器采用浮点运算采用3字节二进制补码表示,有效数字6位。对于输入输出,采用3字节BCD码浮点数格式,有效数字只有4位,因此最终有效数字只有4位。可进行连续输入,例如:1.23+4.56*8.23/234.8 ,但是运算结果为从左到右,这也是8位简易计算器的方式。其可进行错误判断,溢出、除零等错误将显示一个字符 E 。 关键词:STC89C52、C语言、数码管显示

目录 1. 设计要求 (1) 2. 方案论证与对比 (1) 2.1 方案一 (1) 2.2 方案二 (2) 2.3 方案对比与选择 (3) 3. 单元电路设计与计算 (3) 3.2 液晶显示模块 (5) 3.3 键盘检测模块 (8) 3.3.1 键盘设置 (8) 3.3.2 键盘原理 (8) 4. 系统工作流程 (9) 5. 详细仪器清单 (9) 6. 总结与思考 (10) 7. 致谢 (10) 参考文献 (11) 附录一:简易计算器原理图 (12) 附录二:简易计算器PCB图 (13) 附录三:总程序流程图 (14) 附录四:总程序 (15)

1111简易加减计算器

电子技术课程设计报告 设计题目: 专业班级: 学生姓名: 指导教师: 设计时间: 机械电气工程学院电气工程系

摘要 通过开关输入待计算的数字,并通过数码管显示,然后经过加法器实现加法运算,由于减法运算可通过补码实现,故减法也通过加法器实现,通过开关选择做何种运算,最后通过数码管显示计算结果。 目录 一、设计任务 二、系统总体设计方案 三、系统分析与设计 四、系统总体框图 五、电路工作原理及特点 六、各部分电路的主要工作原理简介及基本参数的计算,各元件的计算与选择 七、总电路图、元器件清单、仪器仪表清单 八、系统安装、调试与参数测量 九、改进意见与收获体会 十、主要参考资料 正文: 一、设计任务 1、用于两位一下十进制的加减运算。 2、以合适方式显示输入数据及计算结果。 二、系统总体设计方案 通过开关J1-J8接不同的高低电平来控制输入端所置的两个一位十进制数,译码显示器U10和U13分别显示所置入的两个数。数A直接置入四位超前进位加法器74LS283的A4-A1端,74LS283的B4-B1端接四个2输入异或门。四个2输入异或门的一输入端同时接到开关S1上,另一输入端分别接开关J5-J8,通过开关J5-J8控制数B的输入。当开关S1接低电平时,B与0异或的结果为B,通过加法器74LS283完成两个数A和B的相加。当开关J1接高电平时,B与1异或的结果为B非,置

入的数B在74LS283的输入端为B的反码,且74LS283的进位信号C0为1,其完成S=A+B(反码)+1,实际上其计算的结果为S=A-B完成减法运算。由于译码显示器只能显示0-9,所以当A+B>9时不能显示,我们在此用另一片芯片74LS283完成二进制码与8421BCD码的转换,即S>9(1001)2时加上6(0110)2,产生的进位信号送入译码器U15来显示结果的十位,U14显示结果的个位。由于减法运算时两个一位十进制数相减不会大于10,所以不会出现上述情况,用一片芯片U14即可显示结果。 三、系统分析与设计 第一步置入两个四位二进制数。例如(1001)2,(0011)2和(0101)2,(1000) ,同时在两个七段译码显示器上显示出对应的十进制数9,3和5,8。 2 第二步通过开关选择加(减)运算方式; 第三步若选择加运算方式所置数送入加法运算电路进行运算;同理若选择减运算方式,则所置数送入减法运算电路运算; 第四步前面所得结果通过另外两个七段译码器显示。即: 若选择加法运算方式,则(1000)2+(0110)2=(1110)2十进制8+6=14 并在七段译码显示器上显示14。 若选择减法运算方式,则(0101)2-(1000)2=(10011)2十进制5-8= -3 并在七段译码显示器上显示-3。 四、系统总体框图

简易计算器设计

摘要: 计算器(calculator ;counter)一般是指“电子计算器”,该名词由日文传入中国。计算器能进行数学运算。计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备组成。低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。使用简单计算器可进行加(+)、减(-)、乘(*)、除(/)、开方(sqrt)、百分数(%)、倒数(1/x)等简单算术计算。本次设计只完成加(+)、减(-)、乘(*)、除(/)运算。 关键字: 加减乘除、优先级、进制转换、数据选择、有效数字、正负 1 设计内容与设计要求 1、1基本内容:设计一个简易计算器 1、2基本要求: ①实现最大输入两位十进制数字的四则运算(加减乘除) ②能够实现多次连算(无优先级,从左到右计算结果) 如12+34×56-78÷90+9=36.75 ③最大长度以数码管最大个数为限,溢出报警 ④有正负数区分; ⑤除法不能除尽时小数保留2位有效数字 1、3扩展要求: 能够区分运算优先级(先乘除,后加减) 如12+34×56-78÷90+9=1924.13 2 方案选择 能够进行区分优先级的计算,先乘除,后加减。 乘除运算同步进行,从左往右; 乘除结束后的数据进行加减运算。

3 系统具体设计 3、1总体框架(总电路图附录1) 3、2各个模块设计 ①乘法模块(VHDL附录2) 当乘法符号的上升沿的时候读入反馈的结果(包括数据及正负号)并输出到data1、data1_pn; 当乘法符号的下降沿的时候读入数据(包括数据及正负号)并输出到data2、data2_pn。并进行计算,结果的数据由乘法器计算得到;结果的正负号即为两个相乘数据的正负号取异或。

相关主题
文本预览
相关文档 最新文档