文档库 最新最全的文档下载
当前位置:文档库 › 四则运算计算器

四则运算计算器

四则运算计算器
四则运算计算器

基于单片机实现的四则运算计算器

姓名

学号:

班级:

专业名称:测控技术与仪器

指导教师:

东北大学

2016年1月

课程设计(论文)任务书课程设计(论文)题目:基于单片机实现的四则运算计算器

基本内容和设计要求:

1、主机的矩阵键盘输入数和运算符号,从机显示运算结果。

2、主从单片机串行通信系统,并在LCD上显示运算内容及结果。

3、计算结果超过十位数字则显示错误。

4、运算除法时,结果只取整数,不是四舍五入。

5、有清零功能。

目录

课程设计(论文)任务书................................................................................................ i i 摘要 (1)

第1章绪论 (2)

1.1计算器简介 (2)

1.2设计主要内容 (2)

第2章系统硬件设计 (4)

2.1硬件组成 (4)

2.2输入模块 (4)

2.3输出模块 (5)

2.4运算模块 (5)

第3章系统软件设计 (7)

3.1 主程序 (7)

3.1.1主程序框图及初始化 (7)

3.1.2LCD程序框图及初始化 (8)

3.1.3键盘程序框图及初始化 (9)

3.1.4运算程序框图 (10)

第4章调试测试与实验分析 (11)

4.1 计算器调试 (11)

参考文献 (12)

心得体会 (13)

附录硬件原理图及PCB图 (14)

附录程序清单 (15)

附录实物照片 (28)

摘要

单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于89C52RC单片机来进行的四则运算计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除的基本四则运算,并在LCD1602液晶显示屏上显示相应的结果。本电路采用89C52RC单片机为主要控制电路,利用4*4矩阵键盘作为计算器以及运算符的输入。显示采用字符LCD静态显示。软件用C语言编程,并用开发板进行演示。

关键词:计算器,89C52RC单片机,LCD,矩阵键盘

第1章绪论

1.1计算器简介

计算器是现代人们发明的可以进行数字运算的电子机器。现代的电子计算器能进行数学运算的手持电子机器,除显示计算结果外,还常有溢出指示、错误指示等,拥有集成电路芯片,但结构比电脑简单得多,可以说是第一代的电子计算机(电脑),且功能也较弱,但较为方便与廉价,可广泛运用于商业交易和学习计算中,是必备的学习和办公用品之一[1]。

1.2设计主要内容

1.2.1设计概述

本系统使用89C52RC单片机作为主控芯片,通过矩阵键盘输入,进行运算,并在LCD 上显示相应的数字和结果,主要功能如下:

(1) LCD第一行显示运算符号之前的数字,第二行显示运算符号和运算符号之后的数字,按下等号键得到结果。

(2)在任何时候按下清零键则清零。

(3)当运算完第一次完整的计算之后,可以在不按任何键的情况下,进行新的一轮计算。

1.2.2设计思路

本系统采用MCS-52系列单片机作为主控机,通过拓展必要的外围电路,实现对计算器的设计,具体设计如下:

(1)因为想显示运算符号,用数码管不能很好的显示出来,所以采用LCD1602液晶显示器作为显示模块。

(2)计算器一般包含数字键(0~9),符号键(+,—,*,/),等号键,清零键。故采用4*4矩阵键盘结合键盘扫描技术来达到要求。

(3)开机后1602显示‘0’,等待按键输入,当键入数字,在LCD上显示出来,计算器内部把数据储存起来,并等待下一按键输入,当键入运算符号时,计

算器内部步数加1,然后等待再次输入数值,按等于号就在LCD上显示结果。

(4)清零功能:在运算的任何时候键入清零键,则把数据清零,等待下一次运算。

1.2.3电路图设计

根据给的开发板的原理图在protel中设计并连接电路图,分析电路图的正确性,

输出PCB图。

1.2.4软件的编程

利用C语言编程,分模块测试板子的好坏,然后编写程序,在keil中进行调试。

第2章系统硬件设计

2.1硬件组成

硬件以89C52单片机为核心,外部扩展用LCD实现显示功能,用4*4矩阵键盘实现输入功能。

基本硬件结构图如图2.1所示。

4*4矩阵键盘

输入

C51

单片机

运算模块LCD显示

图2.1 四则运算计算器基本硬件结构图

2.2输入模块

计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会简单,但I/0口不够用,所以采用矩阵键盘形式,本次采用4*4矩阵键盘的形式,采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键,这样键盘上按键的个数就为4×4个。

图2-2输入模块电路图

矩阵键盘功能:预设16个键位,分别是0~9数字键,加减乘除,等于和清零功能。单片机不停扫描键盘当发现有按键按下时,若为数字键则在lcd上显示,功能键则实现对应的功能。例如,按下5时,lcd上显示数字5,按下加号,即实现加法功能也在lcd 上显示加号。

2.3输出模块

采用LCD1602来显示字符和数字,1602能够同事显示16*02即32个字符。1602液晶模块内部的字符发生储存器已经储存了160个不同的点阵字符图形,这些字符有:阿拉伯数字,英文字母大小写,常用的符号等,每一个字符有一个固定的代码。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的。每次输入指令前都要判断液晶模块是否处于忙的状态。

图2-3输出模块电路图

lcd1602能够同时显示16*2个字符,用它接收单片机送来的信号,然后在上边显示相应的数字或符号,实现显示功能。

2.4运算模块

单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过上网查找运算代码作参考,然后对单片机进行程序编写,

从而实现运算功能。

第3章系统软件设计3.1 主程序

3.1.1主程序框图及初始化

主程序框图如图3.1所示

开始

初始化参数

初始化LCD显示

有键输入?LCD显示

读取键值

分析键码

数字键清零键功能键

输入键值状态清零

根据上次功能键和输

入的数值计算结果

数值送显示

缓存

结果送显示

缓存

等待数值输

Y

N

图3.1 主程序框图

主程序说明:接通电源后,先让lcd显示屏初始化显示0,然后通过键盘扫描看是否有键按下,若有键按下,则分析按下键的性能,若为数字键或清零键则通过lcd显示,若为功能键,实现功能然后lcd显示。

3.1.2LCD程序框图及初始化

开始

初始化为0

是否有键按

下?

数字键?功能键?LCD显示0

显示键值

等号键?显示计算结果

等待输入

N

Y

Y N

Y N

Y

N

图3.2 LCD程序框图

Lcd初始化显示0,开始后判断是否有键按下,有键按下判断是否是数字键,若为数字键则显示键值,若不是,则为功能键,再判断功能键是否是等号,若为等号,则显示计算结果,若不是实现功能,等待输入。

3.1.3键盘程序框图及初始化

开始

扫描键盘

是否有键按

下?

是否为等号?

计算并显示最

终结果

结束

是否为计算符?

读进内存

计算是否有

计算符?

先计算显示暂

时结果

读进内存并显

示程序

N

Y

N Y

N

Y

Y

N 图3.3 键盘程序框图

开始后,扫描键盘,若没有键按下则继续扫描,有键按下,若为等号键则显示结果然后结束,若不是看是否是计算符,不是计算符则读入内存然后lcd显示,若是计算符读进内存,等待输入。

3.1.4运算程序框图

开始

运算符是?

加乘减除

运算结果溢出?

除数为0?

LCD 显示-1

数值送LCD 显示

Y

N

Y

N

图3.4 运算程序框图

运算程序:先判断运算符,若为加或乘则要判断运算结果是否溢出,若溢出,则lcd 显示-1表示运算错误,若为除号,判断除数是否为0,若为0,则lcd 显示-1表示运算错误,其他情况则可直接送至lcd 显示。

东北大学课程设计报告第4章调试测试与实验分析第4章调试测试与实验分析

4.1 计算器调试

(1)问题:将已编好的程序用烧录进开发板后,发现开发板上LCD显示屏只发光但是没有任何数字。

(2)分析:这种现象可能存在两个问题:

1)LCD显示屏有问题

2)程序存在错误

(3)解决方案:重新检查开发板元器件,将开发版资料已给的1602液晶显示程序烧录开发板中,发现LCD仍然只发光不显示任何东西,初步判定是LCD未调节好或者故障,经检测是LCD显示字符的亮度未调节合适,拿螺丝刀调节,LCD就能显示字符。

(4)再次检测:再次将已编好的程序烧录进开发板,打开开发板电源,LCD上先显示‘0’字符。矩阵键盘输入‘3*4’进行计算,发现显示屏上第一行显示‘3’,第二行显示‘4’和‘*’,然后在键盘上输入‘=’,显示屏上得出结果12。

东北大学课程设计报告参考文献

参考文献

[1]李小坚郝晓丽.protel DXP电路设计与制版实用教程[J].人民邮电出版社, 2015,

10.

[2]张秋菊刘继超. 单片机应用实训教程[J]. 化学工业出版社, 2015,10.

东北大学课程设计报告心得体会

心得体会

周二早上开始选课题的时候,感觉我们的能力不是很强,所以想选一个简单一点的题目,然后就选了一个四则运算计算器,这个题目硬件上的确不难,但是软件上却令我们很困扰,很头疼。周二下午写计划的时候,看到被老师打回来这么多份计划,我们就想自己好好的写一写,可是还是改了两遍,也用了一晚上的时间,但是这个计划却对我们之后几天的工作有一个很好的指导。

第二天学习protel,老师没有怎么讲,我们一开始也不会用,只能是哪里不会哪里百度,但是有的元件还是没有找到,周四早上才知道原来资料里有单片机上的元件库,于是把那个元件库导入,画图便容易多了。我们硬件没有什么东西,于是第三天下午便开始编程了,可是我们对着程序看了一下午也没有什么头绪,反而整得自己要发疯了一样,对课设也失去了信心。后来老师来检查的时候告诉我们要一步一步的调试,不可能一口吃个大胖子,我们就把程序分开来调试,通过从图书馆借来的资料一步一步的来,程序中不懂的地方便查书或者通过网络解决。

这几天的确是蛮痛苦的,天天早晨起来到教室里,一坐一天,感觉比上课累多了,可也有了自己的收获,没有老师指导,需要的东西基本上要自己来查找,也锻炼了自己的能力。实物的焊接也锻炼了我们的动手能力,课程设计对于我们的益处是很大的。也希望自己通过知识与实际的结合不断的提高自己。

附录 硬件原理图及PCB 图

P1.0/T2

1P1.1/T2EX 2P1.2/ECI 3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48RST 9P3.0/RxD 10P3.1/TxD 11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR 16P3.7/RD

17XTAL2

18

XTAL119VSS

20

P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A15

28

PSEN

29ALE/PROG 30EA/VPP 31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC

40U1

P89C51RC2BN/01

C1Cap

C2Cap 1

2Y1XTAL

R1

Res2

VCC

123456789

RP1

MYRESPACK

P 10

P 11P 12P 13P 14P 15P 16P 17VCC

C3Cap

GND 1

VCC 2VEE 3RS 4R/W 5EN 6D07D18D29D310D411D512D613LED-A 15D714LED-K 16J13

LCD1602

VCC A 1

B 2

TAP

3VR2

RESISTOR TAPPED

P10

P11P12P00P01P02P03P04P05P06P07VCC

VCC

P20

P21

P22

P23

P24

P25

P26

1234

S13MYSW-PB 123

4

S11MYSW-PB 123

4

S12MYSW-PB 123

4

S21MYSW-PB 123

4

S8

MYSW-PB 1234

S9MYSW-PB 1234

S10MYSW-PB 1234

S18MYSW-PB 123

4

S5

MYSW-PB 1234

S6MYSW-PB 1234

S7MYSW-PB 1234

S16MYSW-PB 123

4

S2

MYSW-PB

1234

S3MYSW-PB

1234

S4MYSW-PB

1234

S14MYSW-PB

附录程序清单

LCD1602

#include

#define LCD1602_DB P0

sbit LCD1602_RS = P1^0;

sbit LCD1602_RW = P1^1;

sbit LCD1602_E = P1^2;

/* 等待液晶准备好*/

void LcdWaitReady()

{

unsigned char sta;

LCD1602_DB = 0xFF;

LCD1602_RS = 0;

LCD1602_RW = 1;

do {

LCD1602_E = 1;

sta = LCD1602_DB; //读取状态字

LCD1602_E = 0;

} while (sta & 0x80); //bit7等于1表示液晶正忙,重复检测直到其等于0为止}

/* 向LCD1602液晶写入一字节命令,cmd-待写入命令值*/

void LcdWriteCmd(unsigned char cmd)

{

LcdWaitReady();

LCD1602_RS = 0;

LCD1602_RW = 0;

LCD1602_DB = cmd;

LCD1602_E = 1;

LCD1602_E = 0;

}

/* 向LCD1602液晶写入一字节数据,dat-待写入数据值*/

void LcdWriteDat(unsigned char dat)

{

LcdWaitReady();

LCD1602_RS = 1;

LCD1602_RW = 0;

LCD1602_DB = dat;

LCD1602_E = 1;

LCD1602_E = 0;

}

/* 设置显示RAM起始地址,亦即光标位置,(x,y)-对应屏幕上的字符坐标*/ void LcdSetCursor(unsigned char x, unsigned char y)

{

unsigned char addr;

if (y == 0) //由输入的屏幕坐标计算显示RAM的地址

addr = 0x00 + x; //第一行字符地址从0x00起始

else

addr = 0x40 + x; //第二行字符地址从0x40起始

LcdWriteCmd(addr | 0x80); //设置RAM地址

}

/* 在液晶上显示字符串,(x,y)-对应屏幕上的起始坐标,str-字符串指针*/ void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str)

{

LcdSetCursor(x, y); //设置起始地址

while (*str != '\0') //连续写入字符串数据,直到检测到结束符

{

LcdWriteDat(*str++);

}

}

/* 区域清除,清除从(x,y)坐标起始的len个字符位*/

void LcdAreaClear(unsigned char x, unsigned char y, unsigned char len) {

LcdSetCursor(x, y); //设置起始地址

while (len--) //连续写入空格

{

LcdWriteDat(' ');

}

}

/* 整屏清除*/

void LcdFullClear()

{

LcdWriteCmd(0x01);

}

/* 初始化1602液晶*/

void InitLcd1602()

{

LcdWriteCmd(0x38); //16*2显示,5*7点阵,8位数据接口

LcdWriteCmd(0x0C); //显示器开,光标关闭

LcdWriteCmd(0x06); //文字不动,地址自动+1

LcdWriteCmd(0x01); //清屏

}

矩阵键盘

#include

sbit KEY_IN_1 = P2^4;

sbit KEY_IN_2 = P2^5;

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

目录 第一章引言 (3) 1.1 简述简易计算器 (3) 1.2 本设计主要任务 (3) 1.3 系统主要功能 (4) 第二章系统主要硬件电路设计 (4) 2.1 系统的硬件构成及功能 (4) 2.2 键盘电路设计 (5) 2.3 显示电路设计 (6) 第三章系统软件设计 (7) 3.1 计算器的软件规划 (7) 3.2 键盘扫描的程序设计 (7) 3.3 显示模块的程序设计 (8) 3.4 主程序的设计 (9) 3.5 软件的可靠性设计 (9) 第四章调试 (9) 第五章结束语 (10) 参考文献 (11) 附录源程序 (11)

第一章引言 1.1 简述简易计算器 近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。计算器是日常生活中比较的常见的电子产品之一。如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢? 本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用4×6矩阵键盘,可以进行加、减、乘、除9位带符号数字运算,并在LCD1602上显示操作过程。 科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数及存储等计算功能。计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器, 使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。 1.2 本设计主要任务 以下是初步设定的矩阵键盘简易计算器的功能: 1.扩展4*6键盘,其中10个数字,5个功能键,1个清零 2.强化对于电路的焊接 3.使用五位数码管接口电路 4. 完成十进制的四则运算(加、减、乘、除); 5. 实现结果低于五位的连续运算; 6. 使用keil 软件编写程序,使用汇编语言; 7. 最后用ptoteus模拟仿真; 8.学会对电路的调试

简单的四则运算计算器程序

简单的四则运算计算器程序

注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。 2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。

附件:程序源代码 // sizheyunsuan.cpp : Defines the entry point for the console application. #include #include const int MAX=100; class Operand{ private: double operS; public: Operand(){} Operand(double opers){ operS=opers; } void set(double opers){ operS=opers; } double get() { return operS;} }; class Operator{ private: char operF; int priority; public: Operator(){} Operator(char operf) { operF=operf; switch(operf) { case'(':priority=-1;break; case'+':priority=0;break; case'-':priority=0;break; case'*':priority=1;break; case'/':priority=1;break; case')':priority=2;break; } } void set(char operf){ operF=operf; } char get(){ return operF;} int getpriority(){ return priority; } };

简单的计算器

吉首大学课程设计 课程设计名称:简单的计算器 专业班级: 10 网络工程 学生姓名:胡申城唐茂林赖佳 学号:20104045049 20104045006 201040450 指导教师:鲁荣波老师 课程序设计时间:2011.12.18-2011.12.25

目录 一内容 (1) 二.设计要求 (2) 三.计算器的算法 (2) 四..流程图 (5) 五.源程序 (7) 六.执行结果 (8) 七.课程设计总结 (3) 八.参考书目 (3)

一、内容 编写一个功能基本完善的计算器程序,支持四则运算、乘方开方、指数对数等运算,支持带括号的表达式。 二、设计要求 1) 程序采用字符界面 2) 显示功能菜单,用户指定键即可进入相应功能 3) 每次计算完成后输出一个提示符,要计算的数字或表达式由用户在提示后面输入 4) 用户输入完按回车立即显示计算结果 三、计算器的算法 我们现在用的计算器多是一个数一个运算符的输入输出的。一个比较具有现实意义的计算器,应该具有如下功能: 1.能够实现整数的四则运算:如:1+6-9*4+4/3 2.能够实现小数的四则运算:如:0.2+7-4 这样的计算器基本可以使用在我们生活中。如果我们按照栈的使用来描述一下表达式的进栈出栈问题: 表达式例如:1+9*4/4-5。 假设有栈D和数组S;S中放运算数,D栈放入运算符,优先级高的现运算,四则运算中,*和/优先级最高。 第一步:扫描到‘1’,是运算数,放入S; 第二步:扫描到‘+‘进入D

第三步:扫描到9;进S 第四步:扫描‘*’,因为乘比加优先级高,所以9出栈实现:9*4,把结果入S, 第五步:扫描到/,同样计算S的栈顶元素出栈,实现36/4,把结果如S 第六步:扫描到—,进入D栈; 第七步:扫描到‘5’,进S 第八步:扫描到‘\0’,为结束符;把S栈顶元素栈S1,D顶元素出栈,然后S栈顶元素在出栈,实现减操作,接着S栈顶元素出栈,实现加操作。 具体进出栈如图: Next 为下一个字符或数字,run表示运行,空为不操作S[] D S[] D S[] D S[] D S[] D S[] top t top 9 top 36 top 4 - -1 top base 1 + 1 + 1 + 1 + 1 + 0 top top next + 9 * 4 / 4 - 5 = run 9*4 36/4 4-5 -1+1 表1-1 运算数运算符进栈、出栈

基于51单片机的计算器设计程序代码汇编

DBUF EQU 30H TEMP EQU 40H YJ EQU 50H ;结果存放 YJ1 EQU 51H ;中间结果存放GONG EQU 52H ;功能键存放 ORG 00H START: MOV R3,#0 ;初始化显示为空MOV GONG,#0 MOV 30H,#10H MOV 31H,#10H MOV 32H,#10H MOV 33H,#10H MOV 34H,#10H MLOOP: CALL DISP ;PAN调显示子程序WAIT: CALL TESTKEY ; 判断有无按键JZ WAIT CALL GETKEY ;读键 INC R3 ;按键个数 CJNE A,#0,NEXT1 ; 判断就是否数字键 LJMP E1 ; 转数字键处理NEXT1: CJNE A,#1,NEXT2 LJMP E1 NEXT2: CJNE A,#2,NEXT3 LJMP E1 NEXT3: CJNE A,#3,NEXT4 LJMP E1 NEXT4: CJNE A,#4,NEXT5 LJMP E1 NEXT5: CJNE A,#5,NEXT6 LJMP E1 NEXT6: CJNE A,#6,NEXT7 LJMP E1 NEXT7: CJNE A,#7,NEXT8 LJMP E1 NEXT8: CJNE A,#8,NEXT9 LJMP E1 NEXT9: CJNE A,#9,NEXT10 LJMP E1 NEXT10: CJNE A,#10,NEXT11 ;判断就是否功能键LJMP E2 ;转功能键处理NEXT11: CJNE A,#11,NEXT12 LJMP E2 NEXT12: CJNE A,#12, NEXT13 LJMP E2

四则运算计算器

基于单片机实现的四则运算计算器 姓名 学号: 班级: 专业名称:测控技术与仪器 指导教师: 东北大学 2016年1月

课程设计(论文)任务书课程设计(论文)题目:基于单片机实现的四则运算计算器 基本内容和设计要求: 1、主机的矩阵键盘输入数和运算符号,从机显示运算结果。 2、主从单片机串行通信系统,并在LCD上显示运算内容及结果。 3、计算结果超过十位数字则显示错误。 4、运算除法时,结果只取整数,不是四舍五入。 5、有清零功能。

目录 课程设计(论文)任务书................................................................................................ i i 摘要 (1) 第1章绪论 (2) 1.1计算器简介 (2) 1.2设计主要内容 (2) 第2章系统硬件设计 (4) 2.1硬件组成 (4) 2.2输入模块 (4) 2.3输出模块 (5) 2.4运算模块 (5) 第3章系统软件设计 (7) 3.1 主程序 (7) 3.1.1主程序框图及初始化 (7) 3.1.2LCD程序框图及初始化 (8) 3.1.3键盘程序框图及初始化 (9) 3.1.4运算程序框图 (10) 第4章调试测试与实验分析 (11) 4.1 计算器调试 (11) 参考文献 (12) 心得体会 (13) 附录硬件原理图及PCB图 (14) 附录程序清单 (15) 附录实物照片 (28)

摘要 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于89C52RC单片机来进行的四则运算计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除的基本四则运算,并在LCD1602液晶显示屏上显示相应的结果。本电路采用89C52RC单片机为主要控制电路,利用4*4矩阵键盘作为计算器以及运算符的输入。显示采用字符LCD静态显示。软件用C语言编程,并用开发板进行演示。 关键词:计算器,89C52RC单片机,LCD,矩阵键盘

HTML5+css+JavaScript进行四则运算简易计算器(用按钮实现)

HTML5+JavaScript: js简易计算器

/* 动画所用图片元素,可自行更换*/

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

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

第6章 四则运算计算器

第6章四则运算计算器 本章介绍的项目是大家十分熟悉的计算器,通过该项目的实践,我们将学习状态图的一些基本知识、C# 中方法的概念和应用以及键盘事件的运用,同时,训练编写一个略微复杂的Windows应用程序的设计思路。 为了使读者能够循序渐进地学习此类项目的设计,我们根据难度的不同,分为三个项目分别实现,首先完成项目一:整数的四则运算计算器,然后在此基础上完善,实现项目二:实数四则运算计算器,最后添加记忆功能,完成项目三:带记功能的实数四则运算计算器。 6.1 项目一:整数四则运算计算器设计 6.1.1 工作目标 终极目标:完成一个整数四则运算的计算器,界面如图6.1所示: 图6.1 整数四则运算计算器

促成目标: 1.完成整数四则运算计算器整体设计——状态机分析; 2.完成整数四则运算模块设计——流程分析; 3.完成整数四则运算计算器的程序界面设计及属性设置; 4.完成整数四则运算器的程序编码; 5.对整数四则运算计算器进行必要的运行测试,如有错误进行调试修改。 6.1.2 工作任务 工作任务一:构建计算器的状态图; 工作任务二:设计程序模块的流程图; 工作任务三:设计界面完成窗体及控件的属性设置; 工作任务四:编写程序代码; 工作任务五:测试软件,对错误进行调试修改。 6.1.3 工作任务一:构建计算器的状态图 1、知识准备——状态图 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作。状态机由状态组成,各状态由转移链接在一起。状态是对象执行某项活动或等待某个事件时的条件。转移是两个状态之间的关系,它由某个事件触发,然后执行特定的操作或评估并导致特定的结束状态。图6.2描绘了状态机的各种元素。

简单计算器c++课程设计

简单计算器 1 基本功能描述 简单计算器包括双目运算符和单目运算符。双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦、阶乘、对数、开方、倒数等运算。可对输入任意操作数包含小数和整数及正数和负数进行以上的所有运算并能连续运算。出现错误会给出提示,同时包含清除、退格、退出功能以及有与所有按钮相对应的菜单项。 2 设计思路 如图1,是输入数据子函数的流程图。打开计算器程序,输入数据,判断此次输入之前是否有数字输入,如果有,则在之前输入的数字字符后加上现有的数字字符;如果没有,则直接使编辑框显示所输入的数字字符。判断是否继续键入数字,如果是,则继续进行前面的判断,如果否,则用UpdateData(FALSE)刷新显示。 如图2,是整个计算器的流程图。对于输入的算式,判断运算符是双目运算符还是单目运算符。如果是双目运算符,则把操作数存入数组a[z+2]中,把运算符存入b[z+1]中;如果是单目运算符,则把字符串转化为可计算的数字,再进行计算。下面判断运算符是否合法,如果合法,则将结果存入a[0],不合法,则弹出对话框,提示错误。结束程序。

输入一个数字 在之前输入的数字字符后面加上现在的数字字符。 Eg :m_str+=”9”。 直接使编辑框显示所输入的数字字符。 Eg :m_str=”9”。 pass3=1表示已有数字输入 开始 之前是否有数字输入? pass3==1? 继续键入数字? 用UpdateData(FALSE)刷新显示 图1 输入数据子函数流程图 Y N Y N

输入开始 双目运算符 是否每一个操作数都存入a[]数组? 把操作数存入a[z+2],把运算符存入b[z+1]。 单目运算符 将字符串转换 为可计算的数进行运算 运算是否合法? 将结果存入a[0] 弹出对话框提示错误 结束Y Y N N 图2 简单计算器总流程图

基于51单片机的数字计算器的设计

《单片机技术及其应用》课程设计报告 专业:通信工程 班级:09312班 姓名:某某某 学号:09031069 指导教师: 二0一二年六月十八日

目录 1设计目的 (1) 2 设计题目描述与要求 (1) 3 设计过程 (2) 4硬件总体方案及说明 (6) 5 软件总体方案及设计流程 (9) 6 调试与仿真 (13) 7 心得体会 (14) 8 指导老师意见 (15) 9 参考文献 (16) 附录一 (16) 附录二 (21)

基于51单片机的数字计算器的设计 1设计目的 简易计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用和单片机完整程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。单片机课程设计既巩固了课本学到的理论,还学到了单片机硬件电路和程序设计,简易计算器课程设计通过自己动手用计算机电路设计软件,编写和调试,最后仿真,来加深对单片机的认识,充分发挥我们的个人创新和动手能力,并提高我们对单片机的兴趣,同时学习查阅资料、参考资料的方法。 本设计是基于51系列的单片机进行的简易计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED 上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件选择AT89C51单片机和74ls164,输入用4×4矩阵键盘。显示用5位7段共阴极LED静态显示。软件从分析计算器功能、流程图设计,再到程序的编写进行系统设计。选用编译效率最高的Keil软件进行编程,并用proteus仿真。 2 设计题目描述与要求 基于AT89C51数字计算器设计的基本要求与基本思路: (1)扩展4*4键盘,其中10个数字,5个功能键,1个清零 (2)使用五位数码管接口电路

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

实现加减乘除四则运算的计算器 目录 1 概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (2) 3 系统概要设计 (2) 3.1 系统的功能模块划分 (2) 3.2 系统流程图 (3) 4系统详细设计 (4) 5 测试 (5) 5.1 正确输出 (5) 5.2 实际输出 (6) 6 小结 (7) 参考文献 (8) 附录 (9) 附录1 源程序清单 (9)

汇编语言课程设计报告(2011) 实现加减乘除四则运算计算器的设计 1 概述 1.1 课程设计目的 运用汇编语言,实现简单计算器的一般功能.通过该程序设计,让我们熟悉并掌握DOS系统功能调方法用及BIOS系统功能调用方法,同时在程序设计过程中熟悉并掌握各种指令的应用,知道编程的具体流程,以及掌握DEBUG的一系列的功能执行命令,及用它进行调试,运行功能。 汇编语言是计算机能够提供给用户使用的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。由于汇编语言如此的接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。由此可见汇编语言的重要性,学好这门课程,同样可为相关的专业打下基础。 汇编语言程序设计课程设计是在教学实践基础上进行的一次试验,也是对该课程所学理论知识的深化和提高。因此,要求学生能综合应用所学知识,设计和制造出具有具有一定功能的应用系统,并且在实验的基本技能方面进行了一次全面的训练。 此外,它还可以培养学生综合运用所学知识独立完成汇编程序课题的能力,使学生能够较全面的巩固和应用课堂上所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。它同样可以提高学生运用理论去处理实际问题的能力和独立思考的能力,使学生的编程思想和编程能力有所提高,最终达到熟练地掌握编写汇编源程序的基本方法的目的。 1.2 课程设计内容 设计一个能实现加减乘除取余计算的程序。将键盘输入的表达式预放入一缓冲区中,然后从该缓冲区的第一个字符开始读取判断,当读到一个有效的表达式时对表达式进行相应的运算后,输出用十六进制数表示的运算结果。 2 系统需求分析 2.1 系统目标 1.熟悉汇编指令、宏汇编语言的编程方法 2. BIOS中断调用、系统功能中断调用方法 3.磁盘文件、及文件内容操作 目标:要求该程序接受从键盘输入的十六进制数,执行相应的计算后,计算结 1

基于单片机的计算器设计(DOC)

专业:电子信息工程1111班

指导老师: 姓名: 学号: 摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。 计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89S51单片机、LCD显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及C语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握Microsoft Visual C++ 6.0应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法。 关键字:AT89C51 LCD 控制按键 第一章简介 1.1 课题简介 当今社会,随着人们物质生活的不断提高,电子产品已经走进了家家户户,无论是生活或学习,还是娱乐和消遣几乎样样都

离不开电子产品,大型复杂的计算能力是人脑所不能胜任的,而且比较容易出错。计算器作为一种快速通用的计算工具方便了用户的使用。计算器可谓是我们最亲密的电子伙伴之一。本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。 单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中。单片微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 本系统就是充分利用了8051芯片的I/O引脚。系统以采用MCS-51系列单片机Intel8051为中心器件来设计计算器控制器,实现了能根据实际输入值显示并存储的功能,计算程序则是参照教材。至于位数和功能,如果有需要可以通过设计扩充原系统来实现。 1.2 设计目的 通过本次课题设计,应用《单片机应用基础》、《计算机应用基础》等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。 通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。

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

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

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

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

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

2013 - 2014 学年_一_学期 山东科技大学电工电子实验教学中心 创新性实验研究报告 实验项目名称__基于51单片机的简易计算器设计_ 2013 年12 月27 日

四、实验内容

2、实验内容 (一)、总体硬件设计 本设计选用AT89C52单片机为主控单元。显示部分:采用六位LED动态数码管显示。按键部分:采用2*8键盘;利用2*8的键盘扫描子程序,读取输入的键值。 (二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用两条I/O 线作为行线,八条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为2×8个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口和另一个P口的两个管脚实现16个按键功能,这种形式在单片机系统中也最常用。 矩阵键盘布局图: 矩阵键盘内部电路图如下图所示:

(三)、LED显示模块 本设计采用LED数码显示来显示输出数据。通过D0-D7引脚向LED写指令字或写数据以使LED实现不同的功能或显示相应数据。 (四)运算模块(单片机控制) MCS-51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。 单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。

四则运算计算器

前言 本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用。本次课程设计以实现一个基本功能完善,界面友好,操作简便易行的计算器为最终目的。通过对具有加减乘除基本功能的计算器的设计实现,学会使用汇编语言实现输入输出模块的设计,模块合理调用的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,熟悉并加深对各种指令的用法。学会使用汇编语言设计各个功能模块。当实现各个程序模块后,学会通过程序的调用最终实现一个具有基本计算功能的简单计算器。 1

中文摘要 实现一个简单计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。 设计当用户根据提示信息输入一个算式后,按下enter键或是‘=’符号键时,程序依据输入的算式进行计算,并将结果显示在屏幕上。如果用户输入错误,则返回,提示信息让用户重新输入算式,当用户按下Q或q键时退出程序。在各个子功能模块设计好的情况下,通过主题模块的合理调用,最终实现一个具有简单运算功能的计算 关键字:计算器、四则运算、进位、错位、清屏

目录 1系统分析 -------------------------------------------------2系统总体设计----------------------------------------------3详细设计-------------------------------------------------- 4统测试 ---------------------------------------------------5软件使用说明书 ------------------------------------------- 设计总结----------------------------------------------------参考文献----------------------------------------------------致谢——————————————————————————————————— 3

基于51单片机的数码管简易计算器

基于51/52单片机的简易计算器制作 11级自动化2班 王栎斐宋为为闫巨东 一、题目利用单片机芯片STC89C52、四位八段共阳数码管及已制作好的电路板等器件设计制作一个计算器。 二、任务与要求要求计算器能实现加减乘除四种运算 具体如下 1. 加法:四位整数加法计算结果若超过八位则显示计算错误 2. 减法:四位整数减法计算结果若超过八位则显示计算错误 3. 乘法:多位整数乘法计算结果若超过四位则显示计算错误 4. 除法:整数除法 5. 有清除功能 三、课程设计简述 总体设计思路简述 1.按照系统设计的功能的要求 初步确定设计系统由主控模块、显示模块、键扫描接口 电路共三个模块组成。主控芯片使用STC89C52单片机。 2.键盘电路采用4*4矩阵键盘电路。 3.显示模块采用共阳极数码管构成。 四、硬件电路 五、软件编程部份 #include

#define uchar unsigned char #define uint unsigned int //uchar code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; //共阴极 // 0 1 2 3 4 5 6 7 8 9 熄灭- //uchar code loc[]={0xff,0xfe,0xfd,0xfb,0xf7}; //uchar code ero[]={0x79,0x50,0x5c}; uchar code num[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x40}; //共阳极 uchar code loc[]={0x00,0x80,0x40,0x20,0x10}; uchar code ero[]={~0x79,~0x50,~0x5c}; uint n=0,n1=0,n2=0; //赋初值 uchar flag=0; //计算类型选择关键字 void delay(int t); void display(int n); void error(); main() { while(1) { uchar temp; //第一行检测 P3=0xfe; temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); temp=P3; temp=temp&0xfe; if(temp!=0xfe) { temp=P3; switch(temp) { case 0xee:n1=0;n2=0;n=0;flag=0;break;

简单WINDOWS小程序设计——四则运算计算器

实验一:简单WINDOWS小程序——四则运算计算器 题目基本要求:创建一个Windows程序,在文本框中输入两个整数,按“计算”按钮后输出这两个整数的和、差、积、商。程序运行范例参见所提供的范例。 程序设计的具体要求如下: (1)用户在两个文本框中输入2个整数后单击“计算”按钮,可在标签框中显示计算结果。 (2)要求计算结果标签框中的内容分行显示 (3)当除数输入为0以及输入的是非数值时,观察程序的运行状态,为什么? 程序提示: (1)每个一在窗体中的控件都应该是一个对象,其中name属性为该控件在程序中的名字。(不能使用汉字) (2)文本框控件为:Textbox,其中text属性即为用户输入的文本,其类型为字符串类型(3)字符串String 为系统已经定义的一个类,其中有很多可以直接使用的方法,如:字符串连接、字符串复制等等。 (4)通过文本框输入的数据类型是字符串,并不能直接用于数值计算,同理,计算之后的结果也不能直接显示在文本框或者标签中,需要转换! 相关代码和使用到的方法如下: int.Parse(txtNumber1.Text) //将字符串txtNumber1.Text转换为相应的整数,不考虑字符串输入错误,不能转换为整数的情况。 int x = 5; txtNumber1.Text =x.ToString(); //将整数转换成字符串并赋值给文本框的text属性。 (5)和C语言一样,在C#/C++中,整数和整数相除仍然得整数。 (6)要分行显示,可以使用回车,但它是转义字符,为\n,比如: string s1=”abc”+”\n”+”efg”,可以实现字母的分行显示 (7)所谓文本框清空,也就是文本框的text属性值为空串。也可以使用clear()事件 (8)在Windows窗体程序中,经常使用label控件(标签)完成显示和输出,属性text 用于显示,类型为字符串。 (9)C#中,类的全部属性和方法定义都是放在类中的。不允许类外定义方法。 思考: (1)什么是对象,什么是类,有什么关系,在上述程序中,哪些是类,哪些是对象。 (2)对象和对象之间是如何区分的。 (3)什么是属性,什么是方法,在上述代码中,哪些是属性,哪些是方法,在控件的使用过程中,对象和属性能否改变 (4)你认为面向对象的程序设计的关键应该在哪里?使用系统或者第三方软件公司已经定义好的类有什么好处,又有什么坏处? 需要在网络辅助教学平台上提交的作业: 简要回答上述四道思考题!

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

汇编语言课程设计报告 ( 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所示

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

目录 摘要....................................................................................... 第一章绪论......................................................................... 1.1课题简介.................................................................... 1.2设计目的.................................................................... 1.3简易计算器系统简介....................................................第二章总体电路设计..........................................................第三章主要模块介绍.......................................................... 3.1AT89C51....................................................................... 3.2LED数码管的结构及工作原理......................................... 3.3 矩阵按键.................................................................. 3.4 蜂鸣器模块...............................................................第四章计算器系统设计..................................................... 4.1计算器硬件............................................................... 4.2 系统框图.................................................................. 4.3 程序设计..................................................................结语.....................................................................................参考文献..............................................................................

相关文档 最新文档