用MATLAB做一个计算器_包括加减乘除_平方_清空等功能

用MATLAB做一个计算器_包括加减乘除_平方_清空等功能
用MATLAB做一个计算器_包括加减乘除_平方_清空等功能

广西科技大学MATLAB课程设计说明书

课题:设计简易计算器

开发环境:MATLAB GUIDE

作者:

系别:

专业:

时间:

实验目的:1、熟悉MATLAB的主要控件使用方法。

2、熟悉MATLAB的GUI设计流程。

实验环境:

编程软件:MATLAB7.0

实验内容与结果:

使用MATLAB的GUI接口设计一个简单的计算器。

效果图:

一、布局GUI。

1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:

2.然后双击“Blank GUI(Default)”出现GUI窗口

3.添加按钮

4.根据按钮的作用及视觉效果做一定的修改

把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。最终设置的静态文本框为白色,其他按钮均为分红色。

5.保存、添加功能函数

把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。

(1)数字按键编写。

在function pushbutton1_Callback(hObject, eventdata, handles)下输入:textString = get(handles.text1,'String');

textString =strcat(textString,'0');

set(handles.text1,'String',textString)

这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0”,

然后由set(handles.text1,'String','textString'在text1中输出。

同理,分别在function pushbutton2~10_Callback(hObject, eventdata, handles)下给1~9数字按键下编写此类程序。

(2).符号键:

function pushbutton12_Callback(hObject, eventdata, handles)

textString = get(handles.text1,'String');

textString =strcat(textString,'+');

set(handles.text1,'String',textString)

strcat的作用是将两个字符串连接起来,就是在已输入的存储数据textString 后添加“+”进行运算。

然后执行set(handles.text1,'String',textString)。符号键‘-’、‘*’、‘/’与‘+’的运算函数类似。

“平方运算”,主要是由“^2”功能实现。

(3)运算符“=”的编程:

textString = get(handles.text1,'String');

ans =eval(textString);

“eval”的作用是将符号表达式转换成数值表达式。

再由set(handles.text1,'String',ans)输出。

(4)按键“back”编程:即显示一个空字符:

set(handles.text1,'String','') ;

按键“back”编程:

textString = get(handles.text1,'String');

set(handles.text1,'String','') ;

ss=char(textString);

n=length(textString);

textString=ss(1:w-1);

%将w个字符串转成w-1个,即删除了末位字符

set(handles.text1,'String',textString)

(5)按键“清空”:把静态文本框的字符清空,返回一个空格

set(handles.text1,'String','')

(6)按键“退出”:关闭计算器close(gcf);

二、计算器的使用

加法运算(+):

按“=”后显示

平方运算:

按“=”后显示

附各按键的程序源代码:

function pushbutton1_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'0')

set(handles.text1,'String',textString)

function pushbutton2_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'1')

set(handles.text1,'String',textString)

function pushbutton3_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'2')

set(handles.text1,'String',textString)

function pushbutton4_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'3')

set(handles.text1,'String',textString)

function pushbutton5_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'4')

set(handles.text1,'String',textString)

function pushbutton6_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'5')

set(handles.text1,'String',textString)

function pushbutton7_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'6')

set(handles.text1,'String',textString)

function pushbutton8_Callback(hObject, eventdata, handles)

textString=strcat(textString,'7')

set(handles.text1,'String',textString)

function pushbutton9_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'8')

set(handles.text1,'String',textString)

function pushbutton10_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'9')

set(handles.text1,'String',textString)

function pushbutton11_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'+')

set(handles.text1,'String',textString)

function pushbutton12_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'-')

set(handles.text1,'String',textString)

function pushbutton13_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'*')

set(handles.text1,'String',textString)

function pushbutton14_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'/')

set(handles.text1,'String',textString)

function pushbutton15_Callback(hObject, eventdata, handles)

textString=strcat(textString,'.')

set(handles.text1,'String',textString)

function pushbutton16_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

s=eval(textString)

set(handles.text1,'String',s)

function pushbutton17_Callback(hObject, eventdata, handles) textString=get(handles.text1,'String')

textString=strcat(textString,'^2')

set(handles.text1,'String',textString)

function pushbutton18_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton18 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) textString=get(handles.text1,'String')

w=length(textString)

t=char(textString)

textString=t(1:w-1)

set(handles.text1,'String',textString)

function pushbutton19_Callback(hObject, eventdata, handles)

set(handles.text1,'String','')

function pushbutton20_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton20 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close(gcf);

三、设计心得及体会:略.

matlab课程教学设计(简单计算器的设计)

matlab课程设计报告 题目简易计算器的设计 学院电子信息工程学院 专业电子信息 学生姓名和学号 指导教师

一、选题目的及意义 GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作,而在matlab有很简单的gui设计工具,我们可以通过这个工具轻松地构建我们想要的程序,从而实现与用户的信息交互。本次课程设计是使用了matlab中的guide生成了简单的计算器程序。 二、源代码 function varargout = Calculator(varargin) %Simple Calculator %@Anhui University % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Calculator_OpeningFcn, ... 'gui_OutputFcn', @Calculator_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

简易计算器的设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计内容 (1) 1.2设计原理 (1) 1.3设计思路 (2) 1.4实验环境 (2) 第2章详细设计方案 (3) 2.1硬件电路设计 (3) 2.2主程序设计 (7) 2.2功能模块的设计与实现 (8) 第3章结果测试及分析 (11) 3.1结果测试 (11) 3.2结果分析 (11) 参考文献 (12) 附录1 元件清单 (13) 附录2 总电路图 (14) 附录3 程序代码 (15)

第1章总体设计方案 1.1 设计内容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用4×4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬件电路。 1.2 设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1)提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

GUI设计的简易计算器附程序

电子信息工程系实验报告 课程名称:MATLAB 应用 实验项目名称:GUI 计算器设计 实验时间:2012-11-22班级:测控081姓名:学号:810707132实验目的: 1.熟悉MATLAB 的菜单设计方法 2.熟悉MATLAB 的主要控件使用方法 3.熟悉MATLAB 的GUI 设计流程 4.运用MATLAB 的GUI 设计一个简单的计算器 实验环境: MATLAB7.8 实验内容: function varargout =jisuanqi1(varargin)%JISUANQI1M-file for jisuanqi1.fig %JISUANQI1,by itself,creates a new JISUANQI1or raises the existing %singleton*.%%H =JISUANQI1returns the handle to a new JISUANQI1or the handle to %the existing singleton*.%%JISUANQI1('CALLBACK',hObject,eventData,handles,...)calls the local %function named CALLBACK in JISUANQI1.M with the given input arguments.%%JISUANQI1('Property','Value',...)creates a new JISUANQI1or raises the %existing singleton*.Starting from the left,property value pairs are %applied to the GUI before jisuanqi1_OpeningFunction gets called.An %unrecognized property name or invalid value makes property application %stop.All inputs are passed to jisuanqi1_OpeningFcn via varargin.%%*See GUI Options on GUIDE's Tools menu.Choose "GUI allows only one %instance to run (singleton)".%%See also:GUIDE,GUIDATA,GUIHANDLES %Edit the above text to modify the response to help jisuanqi1 %Last Modified by GUIDE v2.505-Dec-201022:24:59 %Begin initialization code -DO NOT EDIT gui_Singleton =1;成 绩: 指导教师(签名):

用MATLAB做一个计算器_包括加减乘除_平方_清空等功能

广西科技大学MATLAB课程设计说明书 课题:设计简易计算器 开发环境:MATLAB GUIDE 作者: 系别: 专业: 时间:

实验目的:1、熟悉MATLAB的主要控件使用方法。 2、熟悉MATLAB的GUI设计流程。 实验环境: 编程软件:MATLAB7.0 实验内容与结果: 使用MATLAB的GUI接口设计一个简单的计算器。 效果图: 一、布局GUI。 1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:

2.然后双击“Blank GUI(Default)”出现GUI窗口 3.添加按钮

4.根据按钮的作用及视觉效果做一定的修改 把按钮的字符串大小、颜色进行设置,对按钮的位置进行排布,尽量使按钮集中在静态文本框下面。最终设置的静态文本框为白色,其他按钮均为分红色。 5.保存、添加功能函数 把做好的按钮及静态文本框保存后自动弹出Editor的M文本,对然后对相应的pushbutton添加功能函数。以下是相应按钮的功能函数。 (1)数字按键编写。 在function pushbutton1_Callback(hObject, eventdata, handles)下输入:textString = get(handles.text1,'String'); textString =strcat(textString,'0'); set(handles.text1,'String',textString) 这是使用句柄handles指向对象text1,并以字符串形式来存储数据文本框text1的内容,并存储数个“0”, 然后由set(handles.text1,'String','textString'在text1中输出。

用MATLAB GUI设计简单计算器

HUBEI NORMAL UNIVERSITY 《MATLAB与仿真》课程设计论文 Course’s Thesis

摘要 基于MATLAB GUI的计算器设计是利用GUIDE创建图形用户界面进行计算器设计。设计计算器时,主要是考虑到计算器的易用性、功能的常用程度进行计算器界面与功能的设计。通过调整控件和文本的布局及颜色,使界面简单大方、布局合理,达到界面友好的效果。 计算器设计时主要利用到get和set两个函数进行各个控件属性值的传递和设置。计算器实现的功能有:数字0~9和小数点的输入显示,平方、开平方和对数的输入显示。进行四则运算、正弦计算、余弦计算、正切计算和余切计算,可以求阶乘、求百分数和求倒数。可以进行括号及变量x与变量y的输入,结合坐标轴编辑框和曲线颜色编辑框实现函数的曲线绘制。最后运行调试,实现基于MATLAB GUI的计算器的设计。 MATLAB GUI介绍 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。 MATLAB是matrix和laboratory两个词的组合,意为矩阵工厂,主要面对科学计算、可视化以及交互式程设计的高科技计算环境。MATLAB是将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效 数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,特别是所附带的30多种面向不同领域的工具箱支持,使得它在许多科学领域中成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。 MATLAB的图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。MATLAB的图形用户界(GUI)是由光标,窗口,菜单、文字说明等对象构成一个用户界面。用户可以通过键盘输入相关的参数,通过鼠标选择、激活这些对象,使计算机完成相关的计算或者绘制波形等功能。MATLAB的GUI为开发者提供了一个不脱离MATLAB的开发环境,有助于MATLAB程序的GUI集成。这样可以使开发者不必理会一大堆烦杂的代码,简化程序,但是同样可以实现向决策者提供图文并茂的界面,甚至达到多媒体的效果。可以说MATLAB提供了一个简便的开发环境,可以让开发者快速上手,提高了开发者的工作效率。 MATLAB的图形界面设计是通过对各种图形对象的操作来实现的,因此用户在使用的过程需要深入了解各种图形对象的特征、属性和操作。由此可见,图形用户界面的设计、制作是一件比较繁琐的工作。图形用户界面的创建一般有两种常用的方式:第一是通过使用m文件直接动态添加控件;第二是使用GUIDE快速生成GUI界面。这两种实现的方法都需要使用M语言编程,但是技术的侧重点不同。所谓的GUIDE就是图形用户界面开发环境 (Graphical User Interface Development Environment),它向用户提供了一系列的创建用户图形界面的工具。这些工具大大简化了GUI设计和生成的过程。GUIDE可以完成的任务有如下两点:第一是输出GUI,第二是GUI编程。GUIDE

基于单片机的简易计算器设计

目录 引言 (1) 第一章设计原理及要求 (2) 1.1设计方案的确定 (2) 1.2系统的设计方案 (2) 1.3系统的设计要求 (2) 第二章硬件模块设计 (4) 2.1单片机AT89C51 (4) 2.1.1 AT89C51芯片的特点 (5) 2.1.2 管脚说明 (5) 2.1.3 振荡器特性 (7) 2.1.4 芯片擦除 (7) 2.2键盘控制模块 (7) 2.2.1 矩阵键盘的工作原理 (8) 2.2.2 键盘电路主要器件介绍 (8) 2.3LCD显示模块 (10) 2.3.1 显示电路 (11) 2.3.2 LCD1602主要技术参数 (11) 2.3.3 引脚功能说明 (11) 2.4运算模块(单片机控制) (12) 第三章软件设计 (14) 3.1功能介绍 (14) 3.2系统流程图 (14) 3.3程序 (16) 第四章系统调试 (17) 4.1软件介绍 (17) 4.1.1 Keil uVision2仿真软件简介 (17) 4.1.2 protues简介 (17)

4.2软件调试 (18) 4.2.1 软件分析及常见故障 (18) 4.2.2 仿真结果演示 (20) 4.3硬件调试 (21) 结束语 (23) 参考文献 (24) 附录 (25) 致谢 (36)

引言 计算工具最早诞生于中国,中国古代最早采用的一种计算工具叫筹策,也被叫做算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的,约二百七十枚一束,放在布袋里可随身携带。另外直到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时的珠算盘已经与现代的珠算盘几乎相同。 17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的“纳皮尔算筹”,英国牧师奥却德发明了圆柱型对数计算尺,这种计算尺不仅能做加、减、乘、除、乘方和开方运算,甚至可以计算三角函数、指数函数和对数函数。这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。1642年,年仅19岁的法国伟大科学家帕斯卡引用算盘的原理,发明了第一部机械式计算器,在他的计算器中有一些互相联锁的齿轮,一个转过十位的齿轮会使另一个齿轮转过一位,人们可以像拨电话号码盘那样,把数字拨进去,计算结果就会出现在另一个窗口中,但是它只能做加减运算。1694年,莱布尼兹在德国将其改进成可以进行乘除的计算。此后,一直到20世纪50年代末才有电子计算器的出现。

基于matlab的计算器制作

基于MATLAB的计算器制作从入门到高级 项目一、建立GUI框架 1,双击MATLAB图标(本实例使用的是MATLAB R2014),打开软件 2,打开GUI操作界面。有两种方式: a、在命令行窗口输入guide,然后点击回车。 b、先点击新建图标,在选择‘图形用户界面’。 得到如下窗口: 左上方有两个按钮:‘新建GUI’,‘打开现有GUI’。 对于‘新建GUI’:下方的选择框内有你可以选择建立的GUI类型,对于初学者一般选择第一个。下方是用来设置 保存文件位置的。

对于‘打开现有GUI’:初学者可能会在网上下载一些GUI源程序,使用‘打开现有GUI’,再浏览到文件所在位置便可。 3、构建GUI框架: 在选择新建GUI并且确定后,会弹出如下窗口: 在窗口的左边会有很多选项,可以一个个拖动编辑框内; 是不是发现这些选项发挥的作用刚好就是我们平常打开一个网页或者一个软件进行操作时的选择按钮。比较常见的有:按钮、单选按钮、拖动条、弹出式菜单等。看到这里细心地朋友就会发现,MATLAB GUI似乎可以开发出大型

软件哦,只要你有足够的想象力,当你从一个小白进阶到 一个高手之后,你可以做到的。 本次计算器制作只需要用到静态文本(或者是动态文本)用来做显示器,按钮(用来操作)。也可以添加一个面板 用来修饰。 在拖出的选项上双击,会得出该选项的属性栏,比如说 双击一个按钮选项,你会得到: 这个属性框比较复杂,没有必要一个个说清楚(有兴趣的 可以自己研究,其实理解起来也挺简单的) 本次计算器制作,我们只需要知道以下几个:

◆a、BackgroundColor取值为颜色的预定义字符或RGB 数值;缺省(就是默认的意思)值为浅灰色; ◆b、ForegroundColor取值为颜色的预定义字符或RGB 数值,该属性定义控件对象标题字符的颜色;缺省值为黑色; ◆c、String取值为字符串矩阵或块数组,定义控件对 象标题或选项内容; ◆d、FontName取值为控件标题等字体的字库名; ◆e、FontSize取值为数值,控制字体大小; ◆f、Tag取值为字符串,定义了控件的标识值,在任何 程序中都可以通过这个标识值控制该控件对象; ◆g、Style取值可以是pushbutton(缺省值), radiobutton, checkbox, edit, text, slider, frame, popupmenu 或listbox; 项目二、简单加法器的制作 1、框架准备

8279实现的两位数加减乘除计算器

中国矿业大学 计算机科学与技术学院 硬件课程设计报告 专业:计算机科学与技术 班级:计算机10级02班 设计题目:简单计算器 成员:刘伟李伟大张伟 指导教师:周杰伦职称:副教授 2012年1月12日

简单计算器 目录 1.设计任务与要求…………………………. 2. 8279可编程设置型键盘/显器介绍……… 1 8279特点……………………………………………………………….. 2 8279引脚说明…………………………………………………………… 3 8279结构………………………………………………………………….. 4 8279的控制字……………………………………………………………… 3.硬件连接及初级设计说明…………… 1 硬件连接…………………………………………………………………… 2 计算功能………………………………………………………………….. 3 输入功能………………………………………………………………… 4 三个模块………………………………………………………………….. 5 LED发光显示……………………………………………………………. 4.程序流程图………………………………… 1 键盘读数流程图…………………………………………………………….. 2 程序处理流程图…………………………………………………………….. 3 显示程序流程图…………………………………………………………….. 4 计算过程流程图……………………………………………………………… 5 总程序流程图……………………………………………………………….. 5.程序设计………………………………….. 1 代码………………………………………………………………………… 6.收获与会………………………………….. 7.参考文献……………………………………

单片机设计简易计算器

简易计算器 Simply Calculator 1 设计思想 此计算器有键盘部分、单片机、显示部分三部分组成,键盘部分主要完成输入功能;单片机主要完成数据处理功能,包括确定按键,完成运算,以及输出数据;显示器部分主要完成单片机输出的显示。 本设计的思路是利用单片机性能好,稳定性强的优点来实现系统的运行。设计大致可以分为三个步骤:第一步,硬件的选取和设计;第二步,程序的设计和调试;第三步,Protues 系统仿真。 硬件是设计的骨骼,不仅关系到设计总体方向的确定,还要综合考虑节能,环保,以及稳定性和经济性等各种因素。因此需要花费大量的时间。硬件的选取最为重要,包括选用的芯片,显示设备的选取,输入设备的选取等。本设计是通过单片机来实现的,因此选用了ATMEGA16单片机作为主体,输入设备选用矩阵键盘。程序是硬件的灵魂,是实现设计的中心环节。本设计使用的程序语言是C语言,在“ICC AVR”中运行,调试,直到运行出正确结果,然后输出后缀名为.HEX格式的文件,以备在Protues中仿真使用。程序是设计的关键,程序的调试需要大量的时间,耐心,还够要有足的细心才能成功。本设计中就出现了大量的错误,经过认真修改,最终才能运行出正确结果。最后的系统仿真是设计是否成功的验证,是设计不可缺少的重要环节。这就要求能掌握Protues的一些基本操作。2原理分析 2.1矩阵键盘的扫描 图2.1 矩阵键盘图

如图2.1所示,单片机的8个I/O口和矩阵键盘相连,用8个I/O口来控制矩阵键盘的16个按键是非常有意思的,首先我们设置单片机的PD0—PD7为输出,且PD0—PD3依次设置为低电平,而PD4—PD7设置为高电平,然后我们设置PD4—PD7为输入,而PD0—PD3仍然为输出,假如此时M1键按下,则PD0与PD4相连,因为PD0是低电平,而PD4是输入,所以PD4会被拉为低电平,同理,如果M2被按下,则PD5会被拉低,M3按下,PD6会被拉低,M4按下,PD7被拉低。这是判断有无键盘按下的过程,当我们判断是那一个键盘按下时,我们首先设置8个I/O口为输出,输出为FE,即,PD0为低电平,其他全为高电平,然后我们设置PD4—PD7为输入,如果M1被按下,则PD4会比被拉为低电平,此时会变成EE,同理可以知道M2被按下时会变为DE,M3被按下时会变为BE,M4被按下时会变为7E。同理我们可以设置8个I/O口输出FD来检测M5—M8是否被按下,设置8个I/O口输出FC来来检测M9—M12,设置8个I/O口输出F7来检测M13—M16,如果M1—M4没有被按下,就继续检测M4—M8,一次类推,就可以检测出16个按键了。在这次设计中,16个按键M1—M16所对应检测值分别为:EE,DE,BE,7E,ED,DD,BD,7D,EB,DB,BB,7B,E7,D7,B7,77。 2.2 数字显示与计算 本次设计选用的显示器是1602液晶显示器,此液晶显示器能显示32个字符,VSS接地,VDD接电源正极,E为时使能信号,R/W为读写选择端(H/L),RS为数据/命令选择端(H/L),D0—D7为数据I/O口。 首先我们初始化液晶显示器,然后显示出第一个被按下的数,并且使光标右移,如果有第二个数按下,则据继续显示,以此类推,然后把所有显示出来的数换算成一个数,如果按下“+”号,则显示出“+”,并且同理显示出“+”号后面按下的数字,然后调用加子程序,运算出结果,如果按下的是“-”,则调用减子程序,如果按下“*”,则调用乘子程序,如果按下“/”,则调用除子程序。然后再调用显示结果子程序,显示出结果。

基于MATLAB计算器设计与开发

六.主要参考文献 . (19) 一、课程设计应达到的目的 本课程是为自动化专业本科生开设的专业课程设计课。通过本课程的课程设计实践帮助学生巩固关于数据结构、算法、程序设计的基础知识。通过本课程设计,学生可以初步掌握开发一个小型实用系统的基本方法,提高运用编程软件实现GUI 程序设计的能力。 二、 课程设计的基本要求: 要求利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现: A. 具有友好的用户图形界面。实现十进制数的加、减、乘、除、乘方、取模等简单计算。(必做) B. 科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行。(必做) C. 能够保存上次历史计算的答案,先是答案存储器中得内容。(必做) D. 有清除键,能清除操作,并对不正确的表达式能指出其错误原因。(必做) E. 独立存储器功能,使之可以直接输入存储器,可与存储器中的数值相加减。能够清除独立存储器中的内容。(选做) 利用MATLAB GUI 功能,在绘制一个静态文本框和一个文本编辑框,以及命令按钮,调整好各控件大小、颜色,整体布局如图所示: 然后通过双击个按钮来改写其属性,在m 文件中编写其回调函数,最后在运行调试。 成绩

三、课题设计内容与步骤 3.1 各功能界面设计 GUI设计界面: 3.2 各功能模块实现 算法设计: A. 数字键设计:0—9以及小数点函数都一样,只是参数不同: global jj textString = get(handles.text1,'String'); if(strcmp(textString,'0.')==1)&(jj==0) set(handles. edit1,'String','1') ; else textString =strcat(textString,'1'); set(handles. edit1,'String',textString) end jj=0;

基于matlab的计算器编程附代码

1.需求分析 本次的实验要求是设计一个计算器,主要功能如下: (1)实现基本数学运算(加减乘除等),而且要能进行混合运算 (2)实现部分函数功能,如求平方根、求倒数等 (3)能实现小数运算 界面与标准计算器界面类似 根据要求以及以前的学习情况,决定使用matlab进行编程。Matlab强大的计算功能以及便捷的GUI设计,可以较为简便的实现所要求的功能。按照要求,数据输入和输出支持小数点,支持四则混合运算,决定使用如下几个数据进行分析:(1+3)*5 Sqrt(4) 1/2 Sin4 用以检验是否可以进行加减乘除四则运算、平方根、倒数、正弦的运算。 2.程序设计 M atlab的程序设计较为简便,用GUI设计出一个计算器的模型,然后系统会自动生成一个框架,在框架中,写入每一个按键对应的程序就可以实现功能。 3.调式分析 编程的过程中遇到的问题不是很多,基本就是找要实现各个功能的子程序,通过上网和去图书馆,加上自己的编写,终于实现了实验要求的功能。但是有一点很重要,matlab不支持中文,所以从路径到文件名必须是全英文的,不然就无法识别。此外,给每个按键命名也是很重要的,不然在生成的程序框架里面,就无法识别各个按键的作用,编写程序的时候也就无法做到一一对应。 4.使用说明 程序的使用比较简单,由于是可视化界面,直接打开matlab,然后建立一个GUI 工程,再打开生成的fig文件,就是一个计算器的界面,直接按照市面上卖的计算器的

方法,按键使用即可。 5.测试结果 计算结果为20 4sqrt=2 Sin4结果为 1/2=0.5 经过计算,这些结果均与实际结果相吻合,计算器的功能实现的较为完好。 6.心得体会 本次试验由于不限制语言,于是计算功能强大,操作简便的matlab变成了首选,matlab的GUI设计,操作是较为简单的,首先建立一个GUI工程,然后用可视化界面,

汇编语言课程设计报告——实现加减乘除四则运算的计算器

汇编语言课程设计报告 ( 2011 -- 2012 年度第 2 学期) 实现加减乘除四则运算的计算器 专业 计算机科学与技术 学生姓名 班级 学号 指导教师 完成日期

目录 目录错误!未定义书签。 1 概述错误!未定义书签。 设计目的错误!未定义书签。 设计内容错误!未定义书签。 2 系统需求分析错误!未定义书签。 系统目标错误!未定义书签。 主体功能错误!未定义书签。 开发环境错误!未定义书签。 3 系统概要设计错误!未定义书签。 系统的功能模块划分错误!未定义书签。系统流程图错误!未定义书签。 4系统详细设计错误!未定义书签。 5 测试错误!未定义书签。 测试方案错误!未定义书签。 测试结果错误!未定义书签。 6 小结错误!未定义书签。 参考文献错误!未定义书签。 附录错误!未定义书签。 附录源程序清单错误!未定义书签。

实现加减乘除四则运算的计算器 1 概述 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。 设计内容 能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下: c:\tasm>js 3+2 5 2 系统需求分析 系统目标 本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。比如,十进制数的加减乘除四则运算。我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 主体功能 系统分析主要包括设计的功能分析和系统的流程,功能分析放在首位,每一个软件都要能满足一定的功能才有使用价值。根据功能需求来创建应用程序。 本设计的功能如下: 1、输入2个数,先判断是加减运算还是乘除运算,再进行计算 2、判断符号是否为运算符 3、回车为换行符 4、用十进制或十六进制输出运算结果 开发环境 集成环境 3 系统概要设计 系统的功能模块划分 本题目实现的模块图如图3-1所示

简易计算器的设计

一、功能实现:利用1602液晶显示器实现整数和小数的加法、减法、乘法、除法、开根号的运算。第一行显示输入的数据,第二行显示运算结果。 二、Proteus仿真图

三、操作说明:每次运算完后必须按一下清零键,该系统才会重新开始执行。 四、程序: #include #include #define int unsigned int #define char unsigned char void inti(); //初始化

void delay(); //延时 void anjian(); //按键显示数字和符号,第一个数存在a内 void sheji(); //设计显示完后的参数 void jsab(); //存储两个输入数 void jisuanxs(); //计算显示 void chufa(); //除法计算部分 void chengfa(); //乘法计算部分 void jianfa(); //减法计算部分 void jiafa(); //加法计算部分 void kaigenhao(); //开根号运算部分 void benshenxs(); //一个数本事显示 void leijixiaoshudian(); //小数点的累计 void fenli(); //计算后的结果分离,以便于显示 void ql(); //清屏 void xshuju(char shuju); //写数据 void xzhiling(char zhiling); //写指令 //char num[]="I LOVE YOU"; 显示在屏幕上 int sz[]={'0','1','2','3','4','5','6','7','8','9','+','-','*','/','=','.'}; char xs[]="ENRRO"; sbit e=P2^2; sbit rs=P2^0; sbit rw=P2^1; sbit key0=P2^6; sbit key1=P2^7; sbit key2=P3^0; sbit key3=P3^1; sbit key4=P3^2; sbit key5=P3^3; sbit key6=P3^4; sbit key7=P3^5; sbit key8=P3^6; sbit key9=P3^7; sbit key10=P1^3; sbit key11=P1^4; sbit key12=P1^5; sbit key13=P1^6; sbit key14=P1^7; sbit qingling=P1^0; sbit key15=P1^1; sbit key16=P1^2; int fuhao,num,m,n,q,w,s,fuhao1,fuhao2,fuhao3,fuhao4,fuhao5,xiaoshu,cishu1,cishu2; int i,g,j,p; int t,f,h; float a,b,c,d;

用MATLAB制作简单计算器

用M A T L A B制作简单计 算器 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

安阳工学院电子信息与电气工程学院《MATLAB编程与应用》课程大作业 题目:用MATLAB制作简单计算器 班级:电子信息工程(专升本) 教师成绩由以下评分标准累计得出 1、设计和仿真结果正确,分析清晰合理。 40% 2、大作业报告重点突出、阐述清晰。 30% 3、陈述清晰正确、有说服力,能够正确回答问题。 30% 总分 (上述成绩由教师填写) 学生自评分值(该表格全部由学生填写) 大作业总成绩(该表格“姓名”和“学号”由学生填写,“成绩”由教师填写)

1.计任务: 1、熟悉MATLAB的主要控件使用方法。 2、熟悉MATLAB的GUI设计流程。 2.设计方案 利用MATLAB GUI设计实现一个图形用户界面的计算器程序,要求实现: A.实现十进制数的加、减、乘、除、简单计算。 B. 科学计算函数,包括正弦、余弦、正切、(余切、开方、指数等函数运行。 C. 能够保存上次历史计算的答案,先是答案存储器中得内容。 D. 有清除键,能清除操作。 3.方案实施 通过MATLAB的gui程序设计较为简单,在gui设计中主要用到两种控件,显示框用到文本编辑框(edit text),说明框用到静态文本框(Static text),数字以及运算等按钮用到命令按钮(push button)。然后在通过各个按钮的回调函数,实现简单的计算功能。 4.方案施舍 首先用MATLAB GUI功能,在绘制一个静态文本框和一个文本编辑框,以及24个命令按钮,调整好各控件大小、颜色,整体布局如图所示: 图-1 一、布局GUI 1.打开Matlab,输入Guide 回车或者在工具栏上点击图标出现Guide 窗口:

设计一个简单计算器的C语言课程设计报告

C语言课程设计报告题目:设计一个简单计算器 目录 1. 设计目的 2. 内容

3. 总体设计(有流程图) 4. 源程序编写(附上了运行图) 5. 执行结果 6. 心得体会 一、设计目的 设计一个简单计算器,在功能上功能尽量模拟windows 操作系统中的计算器,系统界面不做强制要求。 全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数、指针和文件的操作,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,规范编程思想,为以后在专业

课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。 二、内容 1、程序设计的一般步骤 a、确定数据结构 b、确定算法 C、编程 d、调试 e、总结资料 2、基本要求 a .设计正确,方案合理,能实现相应功能。 b .界面友好,使用方便。 c .程序精炼,结构清晰。 d .设计报告含程序设计说明,用户使用说明,源程序清单及程序框图。 e .上机演示。

三、总体设计(程序设计组成框图、流程图)

四、源程序编与 #in clude #in clude #in clude double jisua n( char a[]) { int i=1,j,k,m,cnt=0,t1=0,t2=0,t3=0; char nibo[50],zha n2[50]; double x,n, l,z=0,zha n3[20]; typedef struct { double d1; int d2; }dd; typedef struct {

MATLAB编写矩阵计算器

一、GUI开发环境简介 MATLAB提供了一套可视化的创建图形窗口的工具,使用用户界面开发环境可方便的创建GUI应用程序, 它可以根据用户设计的GUI布局,自动生成M文件的框架,用户使用这一框架编制自己的应用程序。 图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、 文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。 二、矩阵计算器介绍 2.1 程序使用的控件 在矩阵计算器设计中主要用到三种控件,文本编辑框(edit text),静态文本框(Static text),命令按钮(push button),边框(panel)。然后在通过各个按钮的回调函数,实现简单的计算功能。 2.2 程序功能介绍 (1)具有用户图形界面。实现矩阵的加、减、乘、左除、右除等简单计算。 (2)有清空键,能清除操作。 2.3 矩阵计算器界面及主要控件功能 注释: text1文本编辑框控件功能:输出要计算公式。如[12 45;78 56]+[659 238;79 56] MatA文本编辑框功能:输入参与计算矩阵A MatB文本编辑框功能:输入参与计算矩阵B MatC静态文本框功能:输出计算结果矩阵C

三、部分计算操作结果 (1) 加法+ MatA text1 pushbutton22 pushbutton23 pushbutton24 pushbutton20

(2)求逆 (3)转置 (4)群运算.*

四、部分模块功能算法的实现 (1)按键’加法+’响应: a=get(handles.matA,'string'); textString=strcat(a,'+'); b=get(handles.matB,'string'); textString=strcat(textString,b); set(handles.text1,'String',textString); (2)按键’转置’响应 a=get(handles.matA,'string'); textString=strcat(a,''''); set(handles.text1,'String',textString); (3)按键’计算’响应 textString=get(handles.text1,'String'); f=eval(textString); set(handles.matC,'string',num2str(f,'%15.5g')) (5)按键’清空’响应 set(handles.text1,'String','') set(handles.matA,'String','[]') set(handles.matB,'String','[]') set(handles.matC,'String','') 注释:其余模块功能算法与以上代码较为相似,不在一一举例。

流体力学简单计算MATLAB程式

用matlab进行编程计算 第一问: z=30;p1=50*9.8*10^4;p2=2*9.8*10^4;jdc=0.00015;gama=9800;d=0.257;L=50000 ;mu=6*10^(-6); hf=z+(p1-p2)/(0.86*gama) xdc=2*jdc/d; beta=4.15;m=1; Q=(hf*d^(5-m)/(beta*mu^m*L))^(1/(2-m)); v=4*Q/(pi*d^2); Re=v*d/mu; Re1=59.7/xdc^(8*xdc/7); Re2=(665-765*log(xdc))/xdc; i=hf/L; if Re<3000 Q=Q; elseif 3000

简易加减法计算器

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

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

3、元件的选择

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

相关文档
最新文档