搜档网
当前位置:搜档网 › 第02讲 简易计算器的设计

第02讲 简易计算器的设计

第02讲 简易计算器的设计
第02讲 简易计算器的设计

第02讲计算器

2.1 计算器简介

大家都知道,计算器是日常生活中不可缺少的一个工具,在Microsoft的Windows操作系统中,附带了一个计算器程序,有标准型和科学型两种模式。Windows XP下的标准型和科学型计算器程序分别如图2-1和图2-2所示。

图2-1 Windows XP下的标准型计算器

图2-2 Windows XP下的科学型计算器

Windows操作系统下附带的计算器程序功能相当的强大,本课我们将模仿Windows的计算器,使用Visual C# 2005开发平台开发一个功能相对简单的计算器应用程序,它能完成加、减、乘、除运算。

接下来详细的介绍简易计算器的设计方法和步骤。

2.2 界面设计及属性设置

用户界面设计是软件开发中非常重要的一个部分,用户界面的好坏直接影响软件的质量,本节将介绍如何设计简易计算器的用户界面以及界面上各控件的属性设置。

2.2.1 界面设计

打开Visual Studio 2005开发工具,新建一个Windows应用程序,然后在窗体上依次放置1个TextBox和17个Button控件,如图2-1所示(设置好属性后)。

图2-1 计算器用户界面

2.2.2 属性设置

窗体和各控件的属性设置如表2-1所示。

表2-1 窗体和各控件的属性

2.3 编写代码

本程序需要用到一些公共变量,例如用来接收操作数、运算结果,判断输入的是否为小数等,因此首先在代码的通用段声明以下变量:

//******************************************************************

double num1, num2, result; // 操作数及运算结果

bool decimalFlag = false; // 判断输入的是否为小数

string myOperator; // 操作类型

//******************************************************************

接下来编写一个名为“NumClick”的方法,单击数字按钮时,调用NumClick 方法,将输入的数字追加到文本框中,代码如下:

//******************************************************************

// 单击数字按钮时,调用如下NumClick方法

//******************************************************************

public void NumClick(int myNumber)

{

if (decimalFlag) // 输入小数

{

txtReadout.Text = txtReadout.Text + myNumber;

}

else

{

if (txtReadout.Text == "0.") // 输入整数

{

// 输入的是整数的第一个数字

txtReadout.Text = myNumber + ".";

}

else

{

// 输入的不是整数的第一个数字

txtReadout.Text = txtReadout.Text.Substring

(0, txtReadout.Text.Length - 1) + myNumber + ".";

}

}

}

//******************************************************************

//******************************************************************

编写窗体的载入事件代码如下:

//******************************************************************

// 窗体载入事件代码

//******************************************************************

private void Form1_Load(object sender, EventArgs e)

{

txtReadout.Text = "0.";

// 指定文本框的对齐方式为右对齐

txtReadout.TextAlign = HorizontalAlignment.Right;

}

//******************************************************************

//******************************************************************

编写数字按钮【0】~【9】的单击事件代码如下:

//******************************************************************

// 数字按钮【0】~【9】的单击事件代码

//******************************************************************

private void btnNum0_Click(object sender, EventArgs e)

{

NumClick(0);

}

private void btnNum1_Click(object sender, EventArgs e)

{

NumClick(1);

}

private void btnNum2_Click(object sender, EventArgs e)

{

NumClick(2);

}

private void btnNum3_Click(object sender, EventArgs e)

{

NumClick(3);

}

private void btnNum4_Click(object sender, EventArgs e)

{

NumClick(4);

}

private void btnNum5_Click(object sender, EventArgs e)

{

NumClick(5);

}

private void btnNum6_Click(object sender, EventArgs e)

{

NumClick(6);

}

private void btnNum7_Click(object sender, EventArgs e)

{

NumClick(7);

}

private void btnNum8_Click(object sender, EventArgs e)

{

NumClick(8);

}

private void btnNum9_Click(object sender, EventArgs e)

{

NumClick(9);

}

//****************************************************************** //****************************************************************** 编写小数点按钮【.】的单击事件代码如下:

//******************************************************************

// 【.】按钮的单击事件代码

//****************************************************************** private void btnDot_Click(object sender, EventArgs e)

{

decimalFlag = true; // 输入小数点

}

//******************************************************************

//****************************************************************** 编写复位按钮【C】的单击事件代码如下:

//******************************************************************

// 【C】按钮的单击事件代码

//****************************************************************** private void btnC_Click(object sender, EventArgs e)

{

num1 = 0;

num2 = 0;

txtReadout.Text = "0.";

decimalFlag = false;

}

//******************************************************************

//****************************************************************** 编写【+】、【-】、【*】、【/】按钮的单击事件代码如下://******************************************************************

// 【+】、【-】、【*】、【/】按钮的单击事件代码

//****************************************************************** private void btnAdd_Click(object sender, EventArgs e)

{

myOperator = "add";

num1 = double.Parse(txtReadout.Text);

txtReadout.Text = "0.";

decimalFlag = false;

}

private void btnSub_Click(object sender, EventArgs e)

{

myOperator = "Sub";

num1 = double.Parse(txtReadout.Text);

txtReadout.Text = "0.";

decimalFlag = false;

}

private void btnMul_Click(object sender, EventArgs e)

{

myOperator = "Mul";

num1 = double.Parse(txtReadout.Text);

txtReadout.Text = "0.";

decimalFlag = false;

}

private void btnDiv_Click(object sender, EventArgs e)

{

myOperator = "Div";

num1 = double.Parse(txtReadout.Text);

txtReadout.Text = "0.";

decimalFlag = false;

}

//****************************************************************** //****************************************************************** 最后编写【=】按钮的单击事件代码如下:

//****************************************************************** // 【=】按钮的单击事件代码

//****************************************************************** private void btnAmount_Click(object sender, EventArgs e)

{

num2 = double.Parse(txtReadout.Text);

switch (myOperator)

{

case "add":

result = num1 + num2;

txtReadout.Text = result.ToString();

break;

case "Sub":

result = num1 - num2;

txtReadout.Text = result.ToString();

break;

case "Mul":

result = num1 * num2;

txtReadout.Text = result.ToString();

break;

case "Div":

if (num2 == 0)

{

txtReadout.Text = "除数不能为“0”!";

}

else

{

result = num1 / num2;

txtReadout.Text = result.ToString();

}

break;

}

}

//****************************************************************** //******************************************************************

2.4 运行结果

运行程序,计算加法“23 + 1.8”,结果如图2-4所示。

图2-4 加法运算

单击【C】按钮,再计算减法“2.3 - 18”,结果如图2-5所示。

图2-5 减法运算

单击【C】按钮,再计算乘法“2.3 × 1.8”,结果如图2-6所示。

图2-6 乘法运算

单击【C】按钮,再计算除法“23.18 ÷0”,结果如图2-7所示。

图2-7 除数为“0”的除法运算

单击【C】按钮,再计算除法“2.3 ÷ 1.8”,结果如图2-8所示。

图2-8 除法运算

作业2

一、选择题

1. 若要使窗体在运行时,用户不可以使用鼠标托拽窗体边缘的方法来改变窗体的大小,应当将窗体的()属性设为“GrowAndShrink”。

A. MaximizeBox

B. MinimizeBox

C. StartPosition

D. AutoSizeMode

2. 在Visual C# 2005中,用于连接两个字符串的运算符是()。

A. @

B. &

C. +

D. ~

3. 确定文本框控件中文本对齐方式的属性是()。

A. TextAlign

B. Text

C. ReadOnly

D. Anchor

4. Substring()用于()。

A. 清除字串前后所有空格

B. 截取字符串的一部分

C. 获取字符串的长度

D. 将字符串中的子字符串替换成另外一个字符串

二、填空题

1. 用于确定窗体第一次出现时的位置的属性是。

2. 用于确定窗体标题栏的右上角的最小化按钮是否可用的属性是。

三、问答题

1. 解释代码:

//****************************************************************** txtReadout.Text = txtReadout.Text.Substring

0, txtReadout.Text.Length - 1) + myNumber + ".";

//******************************************************************

2. 解释代码:

//****************************************************************** txtReadout.TextAlign = HorizontalAlignment.Right;

//******************************************************************

四、上机操作题

1. 完善本章介绍的计算器程序,实现sqrt、1/x、%运算。

单片机简易计算器课程设计

课程设计 题目名称简易计算器设计 课程名称单片机原理及应用 学生姓名 班级学号 2018年6 月20日

目录 一设计目的 本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数范围内的基本四则运算,并在LED上显示相应的结果。软件方面使用C语言编程,并用PROTUES仿真。 二总体设计及功能介绍 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机,实现对计算器的设计。具体设计及功能如下: 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED显示数据和结果; 另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算键盘; 执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。

三硬件仿真图 硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。 四主程序流程图 程序的主要思想是:将按键抽象为字符,然后就是对字符的处理。将操作数分别转化为字符串存储,操作符存储为字符形式。然后调用compute()函数进行计算并返回结果。具体程序及看注释还有流程图 五程序源代码 #include #include #include/* isdigit()函数*/ #include/* atoi()函数*/ #define uchar unsigned char #define uint unsigned int

计算器模拟系统设计-毕业设计

计算器模拟系统设计 学生:XXX 指导教师:XXX 内容摘要:本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED 上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和 74lS164,输入用4×4矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil 软件用汇编语言进行编程,并用proteus仿真。 关键词:LED 计算器 AT89C51芯片 74LS164

Calculator simulation system desig n Abstract:The design is a simple calculator based on 51 series microcontroller system design, to complete the calculator keyboard input, add, subtract, multiply, and in addition to three unsigned numeric simple four operations, and the corresponding result will be displayed on the LED. The design process of hardware and software aspects of the synchronous design. Hardware choose AT89C51 microcontroller and 74ls164--enter the 4 × 4 matrix keyboard. Static display with five 7-segment common cathode LED display. Software calculator function from the analysis, flow charts, design, and then program the preparation of system design. Selected to compile the most efficient Keil software in assembly language programming, and with proteus simulation. Keywords: LED calculator AT89C51 chip 74LS164

简易计算器的设计与实现

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

沈阳航空航天大学课程设计报告 目录 第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再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

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

目录 引言 (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年代末才有电子计算器的出现。

AT89C51单片机简易计算器的设计

AT89C51单片机简易计算器的设计 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除六位数范围内的基本四则运算,并在LCD上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入。显示采用字符LCD静态显示。软件方面使用C语言编程,并用PROTUES仿真。 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数

值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图: 二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

单片机简易计算器设计

单片机简易计算器设计 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

一、设计要求 1.设计4*4的键盘,其中10个数字键0~9,其余6个为“+”“-”“*”“/”“=”和“C” 2.设计2位LED接口电路 3.实现1位数的简单运算 二、硬件系统设计 1、LED接口电路 简易计算器需要2位8段码LED显示电路。用8031单片机经8255A扩展2位8段码LED显示器,用8255A的A口作为段码(字形代码)数据口,PB0和PB1作为位控制端口。在位控制口加集电极开路的反相高压驱动器74LS06以提供驱动LED显示器所需的足够大的电流,然后接至各数码显示器的共阴极端。同理,在段码数据口集电极开路的正相高压驱动器74LS07提供足够大的电流,然后接到数码显示器的各段。逻辑电路结构如下:

2、键盘接口电路 简易计算器需要4*4的行列式键盘。用8031单片机经8255A扩展4*4行列式键盘,8255A的B口和C口用于扩展键盘接口,B口高4位作为输出口,C口低4位作为输入口。逻辑电路结构如下: 3、计算器逻辑电路图 将LED接口电路和键盘接口电路结合到一起就是简易计算器的逻辑电路图,如下: 三、软件设计 1、LED显示程序设计 LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED显示器,器排列形状如下图所示:

为了显示数字或符号,要为LED显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字0~9的共阴极字形代码如下表: 0~9七段数码管共阴级字形代码 2位LED显示的程序框图如下: 2、读键输入程序设计 为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。为了得到被按键的键码,现使用行扫描法识别按键。其程序框图如下: 3、主程序设计 (1)数值送显示缓冲程序设计 简易计算器所显示的数值最大位两位。要显示数值,先判断数值正负,如果是负值,则符号位显示“-”,然后将数值除以10,余数送显最最低位,判断商是否为0,若为0则返回,若不为0,则将商除以10,将余数送显高位。程序框图如下: (2)运算主程序设计

VerilogHDL简单计算器设计

目录 第一章设计目的及任务要求..................................................................................... 错误!未定义书签。 设计目的................................................... 错误!未定义书签。 设计任务................................................... 错误!未定义书签。 课设要求................................................... 错误!未定义书签。第二章设计思路............................................... 错误!未定义书签。 设计总体框图............................................... 错误!未定义书签。 设计原理................................................... 错误!未定义书签。 计算其原理............................................. 错误!未定义书签。 数码显示原理........................................... 错误!未定义书签。 八位数码管扫描的原理................................... 错误!未定义书签。第三章设计源程序及分析....................................... 错误!未定义书签。 计算器模块................................................. 错误!未定义书签。 计算器源程序........................................... 错误!未定义书签。 计算器程序分析......................................... 错误!未定义书签。 数码管显示部分...................................................................................................... 错误!未定义书签。 数码管显示源程序.......................................................................................... 错误!未定义书签。 数码管显示程序分析..................................................................................... 错误!未定义书签。 循环扫描模块........................................................................................................... 错误!未定义书签。 循环扫描程序................................................................................................... 错误!未定义书签。 循环程序分析................................................................................................... 错误!未定义书签。 总程序及其分析...................................................................................................... 错误!未定义书签。第四章时序仿真和结果验证..................................................................................... 错误!未定义书签。

简单计算器设计报告

简单计算器设计报告 045 一、基本功能描述 通过文本编辑框实现基本整数的加减乘除运算 二、设计思路 如下图是整个程序进行的流程图,基本方法是在ItemText文本编辑框输入字符,程序对字符进行判断,若输入不是数字则提示错误。输入正常时,通过下拉框ComboBox_InsertString 选择相应运算符。点击等号IDC_OK,即可得出运算结果。操作简便,算法简单。 三、软件设计 1、设计步骤 打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名zhoutong及其所在位置,点击确定 1

将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成 MFC AppWizard就建立了一个基于对话窗口的程序框架

四、主要程序分析 1、字符判定函数 BOOL IsInt(TCHAR*str) { int i=atoi(str); TCHAR strtemp[256]; wsprintf(strtemp,"%i",i); if(strcmp(str,strtemp)!=0) { return FALSE; } Else { return TRUE; } } 该函数通过atoi把文本编辑框读取的字符转换为数字,再通过wsprintf把转换数字转换为字符,通过strcmp比较原字符和转换得来的字符。如相同返回true,不通则返回false. 3、运算符选择程序 BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { HWND hwndComboOP=GetDlgItem(hwnd,IDC_COMBOOP); ComboBox_InsertString(hwndComboOP,-1,TEXT("+")); ComboBox_InsertString(hwndComboOP,-1,TEXT("-")); ComboBox_InsertString(hwndComboOP,-1,TEXT("*")); ComboBox_InsertString(hwndComboOP,-1,TEXT("/")); return TRUE; } 3

基于LabVIEW的简易计算器设计

第1章绪论 1.1 虚拟仪器简介 虚拟仪器(virtual instrument)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。上面的框图反映了常见的虚拟仪器方案。 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是国NI公司的LabVIEW。 虚拟仪器的起源可以追溯到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在 Microsof t公司的 Windows 诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0 以前的版本。对虚拟仪器和 LabVIEW [2]长期、系统、有效的研究开发使得该公司成为业界公认的权威。目前LabVIEW 的最新版本为 LabVIEW2011,LabVIEW 2009 为多线程功能添加了更多特性,这种特性在1998 年的版本 5 中被初次引入。使用 LabVIEW 软件,用户可以借助于它提供的软件环境,该环境由于其数据流编程特性、LabVIEW Real-Time 工具对嵌入式平台开发的多核支持,以及自上而下的为多核而设计的软件层次,是进行并行编程的首选。 普通的 PC 有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定VXI 标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的 VXI 机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜PXI 标准仪器。 1.2 LabVIEW简介 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C 和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语

第02讲 简易计算器的设计

第02讲计算器 2.1 计算器简介 大家都知道,计算器是日常生活中不可缺少的一个工具,在Microsoft的Windows操作系统中,附带了一个计算器程序,有标准型和科学型两种模式。Windows XP下的标准型和科学型计算器程序分别如图2-1和图2-2所示。 图2-1 Windows XP下的标准型计算器 图2-2 Windows XP下的科学型计算器 Windows操作系统下附带的计算器程序功能相当的强大,本课我们将模仿Windows的计算器,使用Visual C# 2005开发平台开发一个功能相对简单的计算器应用程序,它能完成加、减、乘、除运算。 接下来详细的介绍简易计算器的设计方法和步骤。

2.2 界面设计及属性设置 用户界面设计是软件开发中非常重要的一个部分,用户界面的好坏直接影响软件的质量,本节将介绍如何设计简易计算器的用户界面以及界面上各控件的属性设置。 2.2.1 界面设计 打开Visual Studio 2005开发工具,新建一个Windows应用程序,然后在窗体上依次放置1个TextBox和17个Button控件,如图2-1所示(设置好属性后)。 图2-1 计算器用户界面 2.2.2 属性设置 窗体和各控件的属性设置如表2-1所示。 表2-1 窗体和各控件的属性

2.3 编写代码 本程序需要用到一些公共变量,例如用来接收操作数、运算结果,判断输入的是否为小数等,因此首先在代码的通用段声明以下变量: //****************************************************************** double num1, num2, result; // 操作数及运算结果 bool decimalFlag = false; // 判断输入的是否为小数 string myOperator; // 操作类型 //******************************************************************

(完整版)基于51单片机简易计算器的设计毕业设计

本科毕业论文 题目:基于51单片机简易计算器的设计 院(系):物理与电子工程学院 专业:应用物理学 学生姓名:王彬 指导教师:王强 职称:

2014年11月5日 目录 摘要 (1) 关键字 (1) 引言 (1) 1、单片机及其应用 (2) 1.1 单片机介绍 (2) 1.2 单片机应用 (2) 1.3 AT89C51单片机 (3) 2、LCD1602和74LS08的工作理 (7) 2.1 选取LCD1602 ……………………………………………………… 2.2 LCD1602的功能和指令现………………………………………………… 2.3 74LS08的功能………………………………………… 3、系统实现模块框 架…………………………………………………………… 3.1 硬件设计电路框 图……………………………………………………… 3.2 实现原理框

图…………………………………………………………… 4、硬件设计及仿真…………………………………………………………… 4.1 晶振、复位电路的设 计………………………………………………… 4.2 按键电路的设计……………………………………………… 4.3 LCD1602显示电路的设计………………………………………… 5、软件设计…………………………………………………………… 6、总结…………………………………………………………… 7、参考文献…………………………………………………………… 8、附件…………………………………………………………… 摘要:简易计算器在人们的生活中应用极为广泛,由于它主要进行一些简单的运算,适用性强,并且方便携带,所以在许多的地方都必不可缺,比如在办公,交易等等。本系统主要介绍计算器实现简易计算的这个详细的过程,它的电路是以AT89C51单片机作为核心器件的,并且它的功耗低,能再3V的低压下工作,有时也可按照要求提升一定的电压。它的硬件部分主要由AT89C51单片机、按键、LCD1602显示屏、指示灯系统等部分构成。软件部分,是在Keil平台用C语言编写程序,包括运算、复位、延时、计算等。其次电路的设计会再proteus上面进行仿真,以保障硬件电路的正确。 关键字:AT89C51单片机;LCD1602显示屏;74LS08;按键;C语言。引言:计算器是日常学习和生活中的好帮手,比如对工科的学生来说,常常要用到基本的 +,-,* ,/ 运算,备有一个科学计算器在手边,可以把繁琐的计算迅速解决,对学习事半功倍。单片机是一种集成的电路芯片,它是采用超大规模集成电路技术把具有数据处理能力的中央处理器

简易计算器设计实验报告

简易计算器设计实验报告 一.设计任务及要求 1.1实验任务: 根据计算器的原理设计一个具有加减乘除功能的简易计算器。如:5+3*4/8=4。 1.2 实验基本要求: (1)实现最大输入两位十进制数字的四则运算(加减乘除)。 (2)能够实现多次连算(无优先级,从左到右计算结果)。 如:12+34*56-78/90+9=36 (3)最大长度以数码管最大个数为限,溢出报警。 二.实验设计方案 (1)用QuartusII的原理图输入来完成系统的顶层设计。 (2)用VHDL编写以及直接拖模块来各功能模块。 (3)通过2个脉冲分别实现个位数和十位数的输入。 (4)通过选择每次的输出数值,将输出值反馈到运算输入端 (4)通过除法运算实现十六进制到十进制的转换输出。 其具体实现流程图如下:

三系统硬件设计 FPGA: EP2C5T144C8目标板及相应外围硬件电路。(从略) 四系统软件设计 1.数据输入模块 原理:用VHDL创建模块,通过两个脉冲分别对两个数码管进行输入控制,再通过相应运算模块将两个独立数据转化成两位十进制数字。 2.运算模块 原理:用VHDL创建模块,四种运算同步运行,通过按键加、减、乘、除选择输出对应的计算结果,当按键等号来时,将所得结果反馈给运算模块输入端。具体实现代码见附录二。 3.输出模块 原理:用VHDL创建模块,通过按键等号来控制显示运算对象还是运算结果,当等号按下时,输出计算结果,否则显示当前输入的数据,并且通过除法模块将十六进制转化为十进制。当输出结果溢出是LED0亮,同时数码管显示都为零。部分实现见附录二。 五实验调试 输入数据12,再按加法键,输入第二个数字25,按等号键,数码管显示37;按灭加法、等号键,输入第二个数据2,依次按等号键,减法键,数码管显示35;同上,按灭减法键、等号键,输入第三个数据7,依次按等号键,除法键,数码管显示5;按灭除法键、等号键,输入第四个数据99,依次按等号键,乘法键,数码管显示495,按灭乘法键、等号键,当前显示为99,依次按等号键、乘法键,数码管显示49005,同上进行若干次之后,结果溢出,LED0亮,同时数码管显示都为零。当输出为负数时,LED0灯变亮,同时数码管显示都为零。六实验结论 本实验基本实现了计算器的加减乘法运算功能,但是存在一个突出的缺陷,就是当输出结果时,必须先按等号键导通数据反馈,再按运算键选择输出结果。这与实际应用的计算器存在很大的差距。但是,本设计可以通过等号键实现运算对象和运算结果之间的切换。

简易计算器

辽宁工业大学 数字电子技术基础课程设计(论文)题目:简易计算器 院(系):电子与信息工程学院 专业班级: 学号: 学生姓名: 指导教师: 教师职称: 起止时间:2012.12.17---2012.12.28

课程设计(论文)任务及评语

摘要 这次的课程设计的任务是设计一个具备加减乘运算功能的电路,能够通过开关控制进行加减法计算和乘法计算,并利用LED灯显示计算结果。 本次设计通过开关的闭合和开通来代表电平的高地位继而代表0和1来输入所要计算的十进制数字。加减运算电路主要由74LS283的级联电路组成。通过异或门将原码全部转换为补码,然后采用个位和个位相加,十位和十位的相加的原则,将两个的个位的代码送入到一个加法器中,将进位依次传递。但是加法器只可以做加法运算,不满足我们的设计要求,于是我们将减法也变成加法进行运算,运算都为补码,最后再将结果在转换为原码,通过LED灯显示出来。乘法运算电路主要由移位寄存器74LS194和加法器74LS283组成。 显示电路主要由7段显示译码器构成,将加减和乘法运算电路计算所得的运算结果每4为输入到一块7448芯片中,按高低位排列就得到了我们所需要的十进制的运算结果了。 关键词:运算;反码;LED显示;移位寄存器

目录 第1章绪论 (1) 1.1简易计算器概况 (1) 1.2本文设计要求 (2) 1.3方案论证 (2) 1.4总体设计方案 (3) 第2章简易计算器各单元电路设计 (4) 2.1简易计算加法电路设计 (4) 2.2简易计算器减法电路设计 (5) 2.3乘法运算电路设计 (6) 2.4译码显示电路设计 (7) 第3章简易计算器整体电路设计 (8) 3.1系统原理图 (8) 3.2部分电路仿真 (9) 3.2.1 加法电路仿真 (9) 3.2.2 减法电路仿真 (10) 第4章设计总结 (11) 参考文献 (12) 附录 (13)

简易计算器课程设计报告

《C++程序设计》(MFC)课程设计报告 设计题目:简易计算器 班级: 姓名: 学号: 指导教师: 时间:2010年6月30日

目录 1.设计目标…………………………………………………………… 2.设计内容…………………………………………………………… 3.设计思想…………………………………………………………… 4.设计说明…………………………………………………………… 5.设计步骤…………………………………………………………… 6.主要成员函数关系图……………………………………………… 7.程序主要代码……………………………………………………… 8. 难点分析…………………………………………………………… 9. 总结…………………………………………………………………

简易计算器(MFC) 1.设计目标 了解Windows应用程序的结构与DOS程序的不同,掌握应用MFC类库编写Windows应用程序的基本模式。 2.设计内容 以简易计算器为例,通过对简单应用软件计算器的设计,编制、调试,实现简单的加,减,乘,除等运算,以学习应用MFC库类编写对话框的原理,加深对C++类的学习及应用。 3. 设计思想 基于MFC库类对对话框界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用消息函数完成数据的输入输出,实现计算功能。生成简单的应用软件。 4.设计说明 (1)包含的功能有:加、减、乘、除运算,开方、平方等功能。 (2)计算器上数字0—9为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。 (3)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。 (4)计算功能基本上是用系统内部函数。 (5)程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。 (6)“CE”按钮可以清除所有已输入的数据从头计算 5. 设计步骤 (1)选择FileNewlProject命令,选择MFC AppWizard(exe)创建Project名为Caa,按确定。在弹出界面选择创建对话框,单击Finish按钮 (2)在生成的设计界面中加入控件,得到计算器应用界面。如图:

简易计算器设计

自动化控制系统及装置综合实习 控制系统及装置综合实习 实 习 报 告 学院: XX学院 专业: XXX 姓名: XX 学号: XXXXXXX 指导教师: XXX 二〇一一年九月十六日

目录 1.实习课题任务 (3) 1.1课题:简易计算器的设计 (3) 1.2设计、实习要求 (3) 2.课题任务方案 (3) 3.硬件部分: (4) 3.1电路的整体设计 (4) 3.2单元电路设计 (5) 3.2.1 单片机部分 (5) 3.2.2输入单元 (8) 3.2.3显示单元 (9) 4.软件部分 (9) 4.1LED显示程序 (9) 4.2读键输入程序 (10) 4.3运算主程序的设计 (12) 5.实习中出现的问题 (13) 6.实习感想 (13)

1. 实习课题任务 1.1 课题:简易计算器的设计 1.2 设计要求: 根据功能和指标要求,本系统选用80C51单片机为主控机实现对计算器 的设计。可以进行两位数的加、减、乘、除,可连续运算。当键入值大于99时,将自动清零,可以重新输入。按“+”、“-”、“×”号可以进行操作数的相应运算,减法中运算结果为“-”时,“-”号要跟着结果。 2. 课题任务方案 本次设计使用单片机来完成两位数以内简易计算器。本设计以AT80C51为单片机,P2口作为输入端外接4*4键盘,通过键盘扫描确定输入数字。在P0口、P1口接驱动电路,用以保证LED 数码管工作正常。计算器将完成的功能有两位数以内加、减、乘、除功能。整体框图如下: 在设计过程中,先着手编写主程序,再根据需要设计从属程序和子程序,逐层细化最终完成一个复杂程序的设计。程序流图如下所示: 单 片 机 输入单元 运算单元 显 示 单 元

毕业论文设计-简易计算器的制作

存档编号XX水利水电大学毕业设计 题目简易计算器的制作 学院信息工程学院 专业通信工程 姓名XX 学号2XXXX 指导教师XX 完成时间2014.5.14 教务处制

独立完成与诚信声明 本人重声明:所提交的毕业设计(论文)是本人在指导教师的指导下,独立工作所取得的成果并撰写完成的,重确认没有剽窃、抄袭等违反学术道德、学术规的侵权行为。文中除已经标注引用的容外,不包含其他人或集体已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确的说明并表示了意。本人完全意识到本声明的法律后果由本人承担。 毕业设计(论文)作者签名:指导导师签名: 签字日期:签字日期:

毕业设计(论文)使用授权书 本人完全了解华北水利水电大学有关保管、使用毕业设计(论文)的规定。特授权华北水利水电大学可以将毕业设计(论文)的全部或部分容公开和编入有关数据库提供检索,并采用影印、缩印或扫描等复制手段复制、保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交毕业设计(论文)原件或复印件和电子文档(涉密的成果在解密后应遵守此规定)。 毕业设计(论文)作者签名:导师签名: 签字日期:签字日期: 目录

摘要 (1) Abstract (3) 第一章绪论 (4) 1.1 开发背景 (4) 1.2 设计目的 (5) 第二章方案论证与设计 (7) 2.1 设计指标 (7) 2.2 方案论证与设计 (7) 第三章硬件模块介绍 (11) 3.1 主控及运算模块 (11) 3.2 显示模块 (21) 3.3 输入模块 (27) 第四章软件设计 (30) 4.1 主程序的设计 (30) 4.2 键盘扫描的程序设计 (31) 4.3 显示模块程序设计 (34) 4.4 运算模块程序设计 (37) 第五章仿真及调试 (38) 结束语 (40) 致 (42) 参考文献 (44)

java课程设计报告_简单图形界面计算器的设计

Java 课程设计 简单图形界面计算器的设计 课程名称 Java程序设计 选题名称简单图形界面计算器的设计 专业 班级 姓名 学号 指导教师 简单图形界面计算器的设计

一、设计任务与目标 本次java程序设计我的设计任务是设计一个图形界面(GUI)的计算器应用程序并且能够完成简单的算术运算。本次任务的基本要求是这个计算器应用程序可以完成十进制的加、减、乘、除、求倒、取余、开方运算,且有小数点、正负号、退格和清零功能。而我要在此基础上添加一项千位符分隔符的功能,即以三位为一级,在输入的一串数字中每三位加入一个逗号,这项功能国际通用,并已经成为惯例,会计记账都用这种方法便于账目核算与管理。 GUI计算器设计的具体目标: 1.完成十进制的加、减、乘、除、求倒、取余和开方运算; 2.有小数点和正负号加入运算; 3.有退格、复位和清零的功能; 4.有千位符分隔符的功能,即在输入的一串数字中每三位加入一个逗号。 二、方案设计与论证 1.设计目标的总体分析 (1)设计目标的需求分析:计算器是现在一个普遍应用的工具,能够解决许多人工所无法计算的数据,节省大量宝贵的时间。 (2)设计目标的功能分析:实现计算器系统的功能,主要有两个功能模块:输入和输出。 (3)设计原则:基于计算器系统要具有适用性广、操作简便等特点,本系统预计要达到以下几个目标:①满足以上的基本功能要求;②能够在常见的计算机及其操作系统上运行。 2.设计的基本思路 利用GUI的界面设计,将整个大设计分为三块,分别是数据的输入,运算符

功能符的控制和数据的输入输出显示。利用Swing控件,数据的输入由0~9这10个按钮来表示,用“+”、“-”、“*”、“/”、“1/x”、“%”、“sqrt”这7个按钮来表示加、减、乘、除、求倒、取余、开方运算,用“.”和“±”这2个按钮来表示小数点和正负号,用“Back”、“CE”和“C”这3个按钮来表示退格、复位和清零的功能,数据的输入输出显示由文本字段来表示。将计算器的总体界面设计好后,再将代码分别写入不同的按钮的源程序中。 我要完成的一项改进,即添加一个拥有千位符分隔符功能的按钮,按下这个按钮能够在输入的一串数字中每三位加入一个逗号并且显示出来。我要在之前的界面设计的基础上多添加一个按钮“$”来表示千位符分隔符,并且将功能代码写入这个按钮的源程序中。 三、程序流程图,程序清单与调用关系 1. 程序流程图:

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

基于单片机的简易计算器设计 摘要 (2) 关键字:80C51 LCD1602 4*4矩阵键盘计算器 (2) 第一章绪论 (3) 1.1系统开发背景 (3) 1.2系统开发意义 (3) 1.3设计目的 (3) 1.4设计任务 (3) 第二章单片机发展现状 (4) 2.1目前单片机的发展状况 (4) 2.1.1单片机的应用场合 (4) 2.2计算器系统现状 (5) 2.3简易计算器系统介绍 (5) 第三章系统硬件设计及说明 (6) 3.1系统组成及总体框图 (7) 3.2AT89S52单片机介绍 (7) 3.3其它器件介绍及说明 (10) 3.3.1 LCD1602液晶显示 (10) 3.3.2 4*4矩阵扫描按键 (13) 第四章 PROTEUS模拟仿真 (14) 第五章系统硬件设计及说明 (16) 第六章软件设计 (17) 6.1汇编语言和C语言的特点及选择 (17) 6.2源程序代码 (17)

摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计主要以80C51单片机为控制芯片,用C语言进行编程实现,通过4*4矩阵键盘控制,输出用液晶屏LCD1602显示,该计算器可以实现一般的加减乘除四则混合运算。 关键字:80C51 LCD1602 4*4矩阵键盘计算器

单片机简易计算器毕业课程设计报告

(此文档为word格式,下载后您可任意编辑修改!) 中南林业科技大学 课程设计报告 设计名称:单片机计算器课程设计 姓名:汪琦学号:专业班级:电子信息工程一班 院(系):计算机与信息工程学院 设计时间:2010年12月28日星期二 设计地点:中南林业科技大学电子信息楼

目录 一、题 目…………………………………………………………………………… 二、任务与要求(老师完 成)………………………………………………… 三、课程设计摘要及整体方框 图………………………………………………… 1..总体设计思路简述···················································· 2.硬件设计简述························································ 3.软件设计简述························································ 4.程序主流程图························································

四、课程设计原理分析及相关知识概 述………………………………………… 五、结 论…………………………………………………………………………… 六、体会与收 获…………………………………………………………………… 附件: 1、源程序代码(根据需要选 择)…………………………………………… 2、整体电路原理图(根据需要选择)……………………………………… 2、元件表(根据需要选 择)………………………………………………… 3、PCB板制作(根据需要选 择)…………………………………………… 4、焊接与调试(根据需要选择)………………………………………………… 一、题目 利用单片机芯片STC12C54、四位八段共阴数码管,已制作好的电路板等器件设计制作一个计算器,用LED显示计算数值及结果。 二、任务与要求 要求计算器能实现加减乘除四种运算,具体如下: 1.加法:四位整数加法,计算结果若超过四位则显示计算错误 2.减法:四位整数减法,计算结果若小于零则显示计算错误 3.乘法:多位整数乘法,计算结果若超过四位则显示计算错误 4.除法:整数除法 5.有清除功能 三、课程设计简述及整体方框图 1.总体设计思路简述 按照系统设计的功能的要求,初步确定设计系统由主控模块、显示模块、键扫描接口电路共三个模块组成,电路系统构成框图如图1.1所示。主控芯片使用STC12C54单片机,比 80C51速度更快,功能更强,由先进工艺制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS微处理芯片,市场应用最多。

相关主题