文档视界 最新最全的文档下载
当前位置:文档视界 › 简易计算器的设计

简易计算器的设计

简易计算器的设计
简易计算器的设计

课程设计

题目简易计算器的设计

学院自动化

专业电气工程及其自动化班级

姓名

指导教师

2014 年

1

9

课程设计任务书

学生姓名:专业班级:

指导教师:工作单位:自动化学院

题目: 简易计算器的设计

初始条件:

用8086CPU、8255A并行通信接口、七段LED数码管接口、小键盘控制电路接口、外围电路芯片及元器件实现一个简易计算器,完成相应的程序编写。

要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)可进行2位十进制的加减乘除法运算。

(2)键盘输入数据,同时LED数码管显示,模拟计算器的工作。

(3)键盘上要求有0~9数字键,+、-、×、÷、=功能键,清除键C。

(4)撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。

时间安排:

12月26日----- 12月 28 日查阅资料及方案设计

12月29日----- 1 月 2 日编程

1 月 3日----- 1 月 7日调试程序

1 月 8日----- 1 月 9日撰写课程设计报告

指导教师签名:年月日

系主任(或责任教师)签名:年月日

目录

摘要 (1)

1设计的任务及要求 (2)

2方案的设计 (3)

2.1方案设计论证 (3)

2.2方案概述与原理硬件电路图 (3)

3系统模块与功能 (5)

3.18086CPU芯片 (5)

3.2 8255A 并行通信接口芯片 (5)

3.3 译码电路 (6)

3.4 小键盘电路 (6)

3.5 四位七段 LED 数码管显示电路 (7)

4软件设计框图与程序 (8)

4.1计算器系统程序总体流程图 (8)

4.2 模块程序流程图与程序 (8)

4.2.1流程图 (8)

4.2.2键盘扫描流程图 (9)

4.3输入运算 (10)

4.3.1输入运算的流程图 (10)

4.3.2输入运算程序 (10)

4.4显示部分 (11)

4.4.1显示部分流程图 (11)

4.4.2显示部分程序 (12)

5系统仿真 (14)

6小结与体会 (15)

参考文献 (16)

附录:设计源程序 (17)

本科生课程设计成绩评定表

摘要

这次微机原理的课程设计的题目是简易计算器的设计,设计一个可以实现2位十进制加减乘除运算功能的电路,并用LED显示出来。硬件部分采用芯片8086CPU,74LS138译码器,并行接口芯片8255A,四位七段LED数码管,和小键盘组成。4×4小键盘作为输入,该小键盘上有0~9、+、-、*、/和清零C共16个按键构成的;四位七段LED数码管作为输出显示,数码管采用的是共阳极的数码管;8086CPU作为运算处理核心来完成计算器的主要功能,包括计算数据、数据保存、发出控制信号等;用8255A并行通行接口来完成本次计算器系统的接口电路,而74LS138译码器、或门电路以及导线是用来产生并行接口芯片8255的片选信号,产生接口电路的端口地址,其中8255的A0、A1分别接CPU 的A1、A2而使它的端口地址为偶地址。本次设计的软件部分是采用8086汇编语言来完成的,主要通过读写端口来实现键值的输入和显示数字的输出,依靠乘法运算指令来实现计算器的计算。硬件电路完成后,用protues进行方真,得到结果。

关键词:计算器小键盘数码显示键盘扫描protues仿真

简易计算器的设计

1 设计的任务及要求

初始条件:

用8086CPU、8255A并行通信接口、七段LED数码管接口、小键盘控制电路接口、外围电路芯片及元器件实现一个简易计算器,完成相应的程序编写。

要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)可进行2位十进制的加减乘除法运算。

(2)键盘输入数据,同时LED数码管显示,模拟计算器的工作。

(3)键盘上要求有0~9数字键,+、-、×、÷、=功能键,清除键C。

(4)撰写课程设计说明书。内容包括:摘要、目录、正文、参考文献、附录(程序清单)。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。

2 方案的设计

2.1 方案设计论证

如下是两种方案的原理方框图:

方案一:

图2.1 计算器的组成方框图方案一

方案二:

图2.2 计算器的组成方框图方案二

方案评估:

方案一:释放了系统数据总线,但是方案缺乏经济性,因为采用了两片8255,浪费资源,舍弃!

方案二:此种方案较为经济,方便,具有模块化的特点,因为将计算和显示电路全部集成在了8255上,应用时,直接挂接8255即可实现要求!

2.2 方案概述与原理硬件电路图

对上面框图2.2的方案二的概述:

本次设计的简易计算器系统是由8086CPU、8255A 并行通信接口芯片、四位七段

LED数码管、小键盘、74LS138 译码器芯片及部分门电路芯片组成,系统组成方框图如图2.2 所示。整个计算器系统通过4×4 小键盘控制接口输入需要计算的原始数据和运算符号,这些数据经过8255A 并行通信接口输入给8086CPU 并保存起来,CPU 接收数据后根据不同的运算符来处理数据,然后CPU 把运算处理后的数据经过8255A 并行通信接口输出给给四位七段LED 数码管,最后后数码管把接收到的数据显示在数码管屏幕上,而74LS138译码器和相应的或门是给8255 提供译码片选信号而设计的,只有CPU 输出8255 选通的地址才能使8255 处于正常工作模式,系统才能有效工作。

整个计算器系统的详细电路图如下图2.3

图2.3 简易计算器硬件电路图

3 系统模块与功能

3.1 8086CPU芯片

8086CPU 芯片是本次简易计算器系统的核心部件,其主要功能包括完成数据的加减乘除运算,把需要显示的十六进制数转换成与之对应在数码管上显示的十六进制代码,配合小键盘形成不同键值对应的特定十六进制代码。在该次计算器系统中,8086CPU 工作在最小模式,通过AD0~AD7 八位地址/数据总线接口与8255A 并向通信接口交换计算器系统中所有数据,而数据的交换方向是通过RD 和WR 输出的低电平有效控制信号来控制的,同时CPU 执行系统所有软件程序,控制着系统中其他部件的工作。由于只是简单操作,这次设计我们让8086工作在最小模式下,即MN/MX为高电平。8086cpu引脚图如图3.1所示:

图3.1 8086cpu引脚图

3.2 8255A 并行通信接口芯片

8255A 并行通信接口芯片,如图3.2 所示,是8255芯片的引脚图,其具有数据缓冲和锁存作用,可以让多个外设同时工作而又互不干扰,同时也解决了高速CPU 与低速外设的工作不同步问题。

图3.2 8255芯片引脚图

8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7~PA0、PB7~PB0、PC7~PC0。端口都是8位,都可以作为输入或输出。有三种工作方式:方式0,方式1,和方式2。其中方式0,工作在无条件传输方式下,A,B,C端口都适用,方式1,工作在异步或条件查询方式下,只有A,B端口适用,方式2,是双向传输方式,仅A端口适用。有两个控制端口,A组和B组,其中A组由A口与C高4位组成;B组由B端口和C口低4位组成。

在本次计算器系统中,8255A 工作在0 方式下,PA 口、PB 口和PC 口的低四位输出,PC 口高四位输入,其控制口输入的控制字为88H,PA 口接七段LED数码管的阴极,PB 口的低四位接数码管的四个阳极,PC 口接4×4 小键盘的八个接口。

工作方式0:8255A中各端口的基本输入/输出方式如图3.3:

图3.3 8255A工作方式控制

3.3 译码电路

译码电路由一片74LS138 译码器和一个或门电路组成,根据译码器及或门的接线知道8255 被选通的条件是AD0、AD3、AD4、AD5、AD7 低电平有效,AD6 高电平有效,而AD1 和AD2 分别接8255 的A0 和A1,故经过译码后8255 的控制口、PA 口、PB 口、PC 口端口地址分别是40H、42H、44H、46H。

3.4 小键盘电路

4×4 小键盘是计算器系统的输入部件,其功能是输入计算器系统中的所有运算数据以及运算符号。小键盘上有16 个按键分为四行四列,相当于如下的电路图 3.4,每一个按键就相当于是一个开关,每当按键被按下,该开关就闭合了,于是位于该行与该列的两接线在键盘部闭合。本次计算器系统让小键盘的纵向接口从分别与PC 口低四位PC2、PC1、PC0、PC3相连,横向接口从左向右分别与PC 口高四位PC4、PC5、PC6、PC7相连,由于PC 口的高四位为输入而低四位为输出,CPU 可以向PC 口置数使得PC 口的高四位与低四位的状态不同,每当有按键按下,PC 口的高四位的状态就会通过接通的按键开关被PC 口的低四位改变,按下的键不同改变后的值就不同,从而就对应不同的键值,于是根据这种特定的对应关系就可以确定按下的键的值了。其中的键值映射图如图3-1和3-2:

图3.4 4*4计算器的原理等效电路

表3-1 键盘映射图 表3-2 键盘编码图

3.5 四位七段 LED 数码管显示电路

七段 LED 数码管是由 8 个发光二极管组成,分别是数字部分 a~g 和小数点部分 dp ,通过 LED 的不同亮灭组合就可以显示出不同的数。七段 LED 数码管分为两种,分别为共阳极和共阴极,两者极性接法相反,在这里具体介绍共阳极七段 LED 数码管,共阳极七段 LED 数码管是把 8 个发光二极管的阳极连在一起由一个公共端口 VCC 引出,阴极互不干扰分别引出 8 个端口 a~g 和 dp ,由 LED 的导通发光原理可知只有阳极输入为高电平时数码管才能正常显示,而显示的具体数字由 8 个阴极输入不同电平组合决定。本次计算器系统要求的是两位十进制数的运算,运算结果最多为四位,故在这里采用四位共阳极七段 LED 数码管来构成显示电路,显示电路让四位七段LED 数码管的公共阴极 a~g 和 dp 依次连接 8255 的 PA0~PA7,四个阳极 VCC 从低位到高位分别与 PB0~PB3 相连,故 PB0~PB3 的输出高电平有效,分别决定数码管低位到高位的显示;而 PA0~PA6 的输出决定显示的数字,PA7 输出控制小数点,低电平有效,具体数字显示对应的输出信号如表 3-3所示。

表 3-3不带小数点数字显示对应输出表

4 软件设计框图与程序

4.1 计算器系统程序总体流程图

如图4.1所示。

图 4.1计算器系统总体程序流程图

4.2模块程序流程图与程序

4.2.1 流程图

键值程序获取是通过键盘逐行扫描,扫描不同行时赋给 C 口的值不同,从上到下分别是0FEH、0FDH、0FBH、0F7H,按下不同的键在读 C 口时得到不同的数,然后根据这个数确定对应的键值,键值对应的 C 口读数关系如表3-1和3-2 所示,该段程序流程

图 4.2 计算器键盘扫描流程图4.2.2键盘扫描程序

MOV CX,4

MOV DH,0FEH

KEYSCAN:

ADD FLAGSHU,1

MOV AL,DH

OUT 44H,AL

IN AL,44H

MOV AH,AL

AND AH,0F0H

CMP AH,0F0H

JNE GETKEY

ROL DH,1

4.3输入运算

4.3.1输入运算的流程图

数据运算模块程序是通过判断运算符标志缓存内容来决定进行哪种运算的,清零运算是把运算符标志和数据缓存清零初始化,加减乘除运算是保存第一个输入运算数准备输入第二个运算数,等号运算是根据加减乘除运算标志符来进行相应的加减乘除运算并保存结果,该部分程序流程图如图 4.3 所示

图 4.3计算器系统运算程序流程图

4.3.2输入运算程序

DISPLAYSHU:

CMP FLAGSHU,1

MOV SUM,BH

MOV SUM1,BH

JMP DISPLAYSUM

DISPLAYSHU1:

MOV AL,SUM1

MOV BL,0AH

MUL BL

ADD AL,BH

MOV SUM1,AL

MOV SUM,AL

JMP DISPLAYSUM

DISPLAY:

CMP BH,0AH

JL DISPLAYSHU

MOV AL,0C0H

OUT 40H,AL

MOV AL,0FH

OUT 42H,AL

CALL DELAY

MOV FLAGSHU,0

CMP FLAGCLR,1

JE CLRFA

CMP FLAGDENG,1

JE DENGFA

CMP FLAGMUL,1

JE CHENGFA

4.4显示部分

4.4.1显示部分流程图

四位七段LED 数码管的显示并非同时显示的,而是从高位到地位逐位显示的,但指令的执行周期是非常短的且人眼的观察存在视觉停留不能差别先后,而人眼所能观察到的最短时间是相对比较长的,因而程序中每次显示都设计有时间延迟程序。同时先要设计程序把要显示的数分解成个、十、百、千分别保存起来,然后逐位显示,整个显示部分的模块程序流程图如图4.4 所示

图 4.4计算器键盘扫描流程图4.4.2显示部分程序

DISPLAYSUM:

MOV AX, SUM

MOV DX,0

MOV BX,3E8H

DIV BX

MOV QIAN,AL

MOV AX,DX

MOV BL,64H

DIV BL

MOV BAI,AL

MOV AL,AH

MOV AH,0

MOV BL,0AH

DIV BL

MOV GE,AH

MOV AL,QIAN

MOV BL,OFFSET TAB XLAT

OUT 40H,AL

OUT 42H,8H

CALL DELAY

MOV AL,BAI

XLAT

OUT 40H,AL

OUT 42H,4H

CALL DELAY

MOV AL,SHI

XLAT

OUT 40H,AL

OUT 42H,2H

CALL DELAY

MOV AL,GE

XLAT

OUT 40H,AL

OUT 42H,1H

CALL DELAY

JMP KEYCHECK

5系统仿真

本次实验是基于protues里面的仿真,我们将硬件电路图,在protues器件库里面找到相应的芯片,并按照电路图连接如图5.1,连接好电路图,将编好的程序转化成hex格式,导入到8086cpu里面,然后点击仿真,运行。

图5.1 protues连线图

图5.1 protues仿真图

小结与体会

通过本次微机原理与接口技术课程设计,我更深入的掌握了在《微机原理与接口技术》理论课上学习到的各种基本控制理论,了解学习了很多课堂上没有涉及的知识,锻炼了我多方面的能力,以下是我本次设计的具体体会。

(1)通过理论联系实际的真实设计,我更加深入的了解了汇编语言的编程思想,学会了用汇编语言编写一些不太复杂的应用程序。通过本次设计,我深深的体会到汇编语言是一门接近硬件的语言,它与 C 语言等其他高级语言有很大不同,往往在高级语言很容易实现的功能通过汇编来实现很复杂,比如说 C 语言编写加减乘除运算只需要简单的一两条语句,而汇编语言编写需要很复杂的程序段来实现;但汇编语言有它的长处,汇编语言的运行速度比其他高级语言更快,对于实现硬件功能有着极大的优越性。

(2)本次课程设计由于所设计的知识涉及很广,许多设计中的硬件工作方式以及功能的实现方法都是我以往并不知道的,这迫使我去查阅许多相关资料文献,学习相关知识,这些不但使我学习了许多新的知识,而且锻炼了我独立学习新知识的能力。

(3)我还通过本次设计锻炼了我独立思考和动手解决控制系统实际问题的能力,由于我们的设计是以小组为单位,如果一个小组不能很好的配合工作学习是不能把设计做好的,这些都锻炼了我与其他同学互相配合、互相帮助的团队协作能力。

参考文献

[1] 彭虎, 周佩玲, 傅忠谦编著. 微机原理与接口技术(第2 版). 北京: 电子工业出版社, 2008

[2] 沈美明, 温东婵编著. IBM-PC 汇编语言程序设计(第2 版). 北京: 清华大学出版社, 2001

[3] 潘新民, 王燕芳编著. 微型计算机控制技术. 北京: 高等教育出版社, 2001

[4] 段承先编著. 微型计算机原理及接口技术. 北京: 兵器工业出版社, 2000

[5] 黄国建, 虞平良, 曾芬芳编著. 微型机算机应用技术. 上海: 上海交通大学出版社, 1995

附录

附录一

程序代码:

DA TA SEGMENT

TAB DB 0C0H,0F9H,0B4H,0B0H,99H,92H,82H,0F8H,80H,90H

FLAGSHU DB 0

FLAGMUL DB 0

FLAGCLR DB 0

FLAGDENG DB 0

SUM DW 0

SUM1 DB 0

SUM2 DB 0

QIAN DB 0

BAI DB 0

SHI DB 0

GE DB 0

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV AL,88H ;8255初始化10001000

OUT 46H,AL ;46H,44H,42H,40H分别为8255控制口,PC,PB,PA XOR BH,BH

KEYCHECK:

MOV AL,0F0H

OUT 44H,AL

IN AL,44H

CMP AL,0F0H

JE DISPLAY

CALL DELAY ;去抖动

CMP AL,0F0H

JE DISPLAY

MOV CX,4 ;循环4次

MOV DH,0FEH

KEYSCAN:

ADD FLAGSHU,1

MOV AL,DH

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;成 绩: 指导教师(签名):

简易计算器的设计与实现

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

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

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,读取输入的键值。 总体设计效果如下图:

简单计算器设计报告

简单计算器设计报告 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

简易计算器设计说明书

摘要 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心。如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。计算器的出现给我们的生活带来了巨大的便利,计算器在我们的生活中随处可见,也是我们日常生活中不可缺少的工具。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除简单的基本四则运算,并在LCD上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,利用按键作为计算器的键盘的输入。显示采用字符LCD 静态显示。软件方面使用C语言编程,并用PROTUES仿真。 单片微型计算机简称单片机。它是在一块芯片上集成中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口电路等部件,构成一个完整的微型计算机。它的特点是:高性能,高速度,体积小,价格低廉,稳定可靠,应用广泛。单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。本文介绍了单片机的产生发展、功能特点、应用开发等内容。 【关键词】简单计算器单片机 LCD 应用发展

背景 近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 本设计采用80c51 芯片,实现了利用单片机进行了一个简单计算器设计。允许对输入数据进行加减乘除运算及LCD 显示.如果设计对象是更为复杂的计算器系统,其实际原理与方法与本设计基本相同。LCD液晶显示器是Liquid Crystal Display 的简称,LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。 现在LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分的普及。故采用LCD.设计的关键所在,必须非常熟悉单片机的原理与结构,同时还要对整个设计流程有很好的把握,将单片机和其他模块完整的衔接。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除基本四则运算,并在LCD上显示相应的结果;设计电路采用AT89C51单片机为主要控制电路,显示采用字符LCD静态显示;软件方面使用C 语言编程,并用PROTUES仿真i。

基于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与其他计算机语言的显著区别是:其他计算机语

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

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

简易计算器系统设计

(此文档为word格式,下载后您可任意编辑修改!) 湖南文理学院芙蓉学院嵌入式系统课程设计报告 题目简易计算器系统设计 学生姓名刘胜凯 专业班级计算机科学与技术 指导老师娄小平 组员李阳、杨帆、曾家俊

目录 一、摘要 (3) 二、原理与总体方案 (3) 三、硬件设计 (6) 四、调试 (10) 五、测试与分析 (12) 六、心得体会 (14) 七、参考文献 (15) 八、附录 (15) 一、摘要 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 二、原理与总体方案 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根

据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。 程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而让ARM芯片接收。 2.1 系统整体流程图 2.2 程序运行流程图

第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; // 操作类型 //******************************************************************

单片机设计简易计算器

简易计算器 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口。 首先我们初始化液晶显示器,然后显示出第一个被按下的数,并且使光标右移,如果有第二个数按下,则据继续显示,以此类推,然后把所有显示出来的数换算成一个数,如果按下“+”号,则显示出“+”,并且同理显示出“+”号后面按下的数字,然后调用加子程序,运算出结果,如果按下的是“-”,则调用减子程序,如果按下“*”,则调用乘子程序,如果按下“/”,则调用除子程序。然后再调用显示结果子程序,显示出结果。

简易计算器设计实验报告

简易计算器设计实验报告 一.设计任务及要求 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灯变亮,同时数码管显示都为零。六实验结论 本实验基本实现了计算器的加减乘法运算功能,但是存在一个突出的缺陷,就是当输出结果时,必须先按等号键导通数据反馈,再按运算键选择输出结果。这与实际应用的计算器存在很大的差距。但是,本设计可以通过等号键实现运算对象和运算结果之间的切换。

简易计算器的设计

一、功能实现:利用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;

简易计算器课程设计报告

《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)在生成的设计界面中加入控件,得到计算器应用界面。如图:

简易计算器课程设计

评阅教师评语:课程设计成绩 考勤成绩 实做成绩 报告成绩 总评成绩指导教师签名: 课程设计报告 论文题目基于ARM的简易计算器设计 学院(系):电子信息与自动化学院 班级:测控技术与仪器 学生姓名:同组同学: 学号:学号: 指导教师:杨泽林王先全杨继森鲁进时间:从2013年 6 月10 日到2013年 6 月28 日 1

目录 1、封面—————————————————————P1 2、目录—————————————————————P2 3、前言—————————————————————P3 4、关键字————————————————————P3 5、原理与总体方案————————————————P3 6、硬件设计———————————————————P6 7、调试—————————————————————P10 8、测试与分析——————————————————P11 9、总结—————————————————————P13

10、附件—————————————————————P14 前言 近几年,随着大规模集成电路的发展,各种便携式嵌入式设备,具有十分广阔的市场前景。嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑。在嵌入式系统中,数据和命令通过网络接口或串行口经过ARM程序处理后,或显示在LCD上,或传输到远端PC上。 本文通过周立功的LPC2106芯片完成的简易计算器,正是对嵌入式应用的学习和探索。 一、摘要: 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 关键字:中断,扫描,仿真,计算 二、原理与总体方案: 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。 而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而

设计一个简单计算器的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 {

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. 程序流程图:

微机课设简易计算器

微机课程设计报告 题目简易计算器仿真 学院(部)信息学院 专业通信工程 班级2011240401 学生姓名张静 学号33 12 月14 日至12 月27 日共2 周 指导教师(签字)吴向东宋蓓蓓

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C52芯片、汇编语言、数码管、加减乘除

单片机简易计算器设计(汇编语言)

KEYBUF EQU 40H ;键号存放单元 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV KEYBUF,#0 ;初始键号设位0,也可以为任意值 MOV R0,#30H ;显示首地址 MOV R2,#0CH ;计算数据存放单元个数 CLR A QING: MOV @R0,A;将数据存放单元清零 INC R0 DJNZ R2,QING MOV P0,#8FH ;关闭显示 MOV R1,#30H ;将显示首地址存放R1里 ;=============================================== ;五位无符号显示子程序 DIS1: MOV R0,#30H ;把显示数据第一位放在R0里 MOV R2,#04H ;把显示的位码放在R2里 MOV R3,#05H ;把显示的长度放在R3里 DIS2: MOV A,@R0 ANL A,#0FH ;屏蔽显示数据的高四位 MOV B,A MOV A,R2 ANL A,#0FH ;屏蔽位码的高四位 SW AP A ORL A,B MOV P0,A;送总显示数据到P0显示 LCALL DELY4ms ;调用延时4ms INC R0 ;取下一个显示数据 DEC R2 DJNZ R3,DIS2 ;四位显示晚后重新开始显示 ;=================================================== ;键盘扫描子程序 WAIT: MOV P1,#0FFH ;P1口送高电平 CLR P1.0 ;第一行清零 MOV A,P1 ;读P1口 ANL A,#0F0H ;低位屏蔽 XRL A,#0F0H ;判断低位是否有低电平,即判断是否有按键按下 JZ NOKEY1 ;地位有低电平继续扫描,否者跳到第而行去扫描 LCALL DELY10ms ;延时10ms去抖在进行判断是否有按键按下 MOV A,P1 ;继续读P1口 ANL A,#0F0H ;判断低位是否有低电平 CJNE A,#0E0H,NK1 ;如果扫描数据不为0E0H就转到NK1 MOV KEYBUF,#0 ;否者判断为0号键 AJMP DK ;转DK1查表程序

相关文档