课程设计 简易计算器设计与实现

课程设计简易计算器设计与实现

长江职业学院工学院毕业实践报告

课题名称:简易计算器设计与实现

专业班级:计算机控制技术081班

学生姓名:黄杨

学号: 20082940

班级序号 6

实践性质:校内毕业实践

实践成绩:

指导老师:杜力

2011年2月25日

目录

一、绪论

1.1 计算器的历史 (5)

1.2 电子计算器的特殊键 (6)

1.3单片机概述 (6)

1.4设计要求 (6)

1.5我做简易模拟计算器的过程说明 (7)

1.6系统的基本功能 (7)

二、课题设计的分析与思路的确定 (7)

三、芯片简介 (8)

3.1MSC-51芯片简介 (8)

3.2 MCS-51的引脚说明 (10)

四、计算器程序设计 (12)

4.1存储单元分配 (12)

4.2主程序设计 (12)

4.3 数码管显示数据转换子程序CONV (13)

4.4 数码管动态显示子程序 (13)

五、连接知识 (13)

5.1键盘的连接 (13)

5.2、显示器的连接 (14)

六、仿真过程 (15)

八、参考文献 (18)

一、绪论

本课题拟定以MCS-51系列单片机为控制中心,采用模块化的设计方案,运用液晶显示器或LED显示数据/键盘输入数据,以实现能够完成加、减、乘、除、数据存储等运算的简易计算器。

系统的功能是:(1)模拟的计算器能显示10位数字,开机运行时,只显示最低位为“0”,其余不显示;(2)4×4键盘分别表示:0到9,+,-,×,/,=,CL;(3)第一次按下,显示“D1”,第二次按下,显示“D1D2”,第三次按下,显示“D1D2D3”…8个全显示完毕,再次按下按键时,给出“嘀”的提示音;(4)可以对计算结果小于256的两个无符号数进行加、减、乘、除运算。

单片机程序用汇编语言编写,经过Wave软件调试,生成HEX文件,再用Proteus软件进行计算机仿真。

程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。

动态显示程序,是先建立待显示缓冲区地址指针和共阴极数码管的段代码表;缓冲区内容通过查表得相应的段代码,再用位选信号动态扫描显示。

主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根据按键的次数进行保存和显示的处理,当按键次数超过八时,喇叭位置一;若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零,然后进入BCD码程序,将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。

1.1 计算器的历史

说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代

最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也

有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直

到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时

的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了

较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了

圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可

以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发

展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。

1.2 电子计算器的特殊键

在使用电子计算器进行四则运算的时候,一般要用到数字键,四则运算键和清除数据键。除了这些按键,还有一些特殊键,可以使计算更加简便迅速。

1.3单片机概述

单片机是现代电子设备中使用最广泛的电子元件。它的价格低廉,功能强大,条件小,性能稳定。目前在各类产品中都能看到单片机的身影,如门铃、报警器、玩具以及各类数据采集系统等。

单片机又称为微处理器,它是把中央处理器CPU、随机存取存储器RAM、只读存储器、I\O接口、定时器\计数器及其其他通信接口等全部集成在一块半导体芯片上,构成一个完整的微型计算机。但随着大规模集成电路和计算机的技术的迅速发展,现在有些单片机本身就带有A/D、D/A转换器和串行接口等功能部件,使其更符合多功能控制技术要求。

单片机在电路中作为一个控制器,在外部必然加一些硬件系统(如驱动电路、输入设备及执行机构等)和软件设计(流程图、程序),这样就是一个实用的控制系统,以满足各个应用领域的需要。

单片机厂商很多,但目前在我国使用最为广泛的单片机系列Intel公司生产的MCS-51系列单片机。

1.4设计要求

1.设计4*4的键盘,其中10个数字键0~9,其余6个为“+”“-”“*”“/”“=”和“C”

2.设计2位LED接口电路

3.实现1位数的简单运算

1.5我做简易模拟计算器的过程说明

计算器是数字电路系统中最基本的功能模块之一。设计十进制计算器,要求计算器有计数允许和复位输入及进位输出功能。计数时钟可以用2Hz信号,用LED显示计数值。

本设计要求用仿真和测试两种手段来验证计数器的功能。

1.6系统的基本功能

它具有计数允许,复位和预置数据功能。

二、课题设计的分析与思路的确定

首先本次课程设计的任务是设计一个简单的能进行六位无符号整数的加减乘除运算的计算器,首先考虑画原理图,所用CPU可以选择AT89C51或AT89C52,我选择了后者。显示设备,因为是六位数,所以可以选择一个六位LED液晶显示屏作显示器,显示屏有共阳极的和共阴极的两种,在这里我选择了共阳极显示屏,输入数据低电平有效。控制端高电平有效。

程序设计首先考虑键盘,程序要一直不断地扫描键盘,看是否有按键按下,当按键按下时就会执行相应的程序。键盘只需要八个接口就可以完全控制,因此使用AT89C52的一个并行口就可实现,用p1口控制键盘实现键盘的扫描。用p2口传送数据显示数字,用p3口的低六位控制六个数码管的显示。扫描到按键就要处理按键,显示0~9十个数字,用到按键数据显示函数,数据显示需要一个动态显示的过程,计算器要处理第一个数和运算符,因此还要编写运算符处理函数。加减乘除运算的结果不能在数码管上显示,需要将数据转换,让六个数码管分别显示各个位上的数据。这就需要编写LED显示函数。当按下加减乘除运算符处理完相应的运算后,要将数码显示管清零以便显示系一个数据,因此又需要编写清零函数。

整个程序采用函数思想,将整个程序化整为零。编写各个函数然后调用函数就可实现计算器功能。程序的整体流程为:1、主函数调用键盘扫描函数,2、如果有按键且是0~9十个数字则调用按键显示函数显示数字,3、如果是开关按键则调用清零函数。4、如果是加减乘除运算符,调用第一个数及运算符处理函数。5、如果是等号按键,则调用运算结果运算函数,运算结果函数再调用LED 显示函数显示结果。程序的整体设计思路就出来了,程序中还会用到延时程序,因此添加完延时程序后,整个程序就编写完了。

三、芯片简介

3.1MSC-51芯片简介

MCS-51单片机内部结构

8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。

8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:

中央处理器

中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。

数据存储器(RAM)

8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。

图1

程序存储器(ROM):

8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):

8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。

并行输入输出(I/O)口:

8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。

全双工串行口:

8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。

中断系统:

8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。

时钟电路:

8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用

普林斯顿结构。下图是MCS-51系列单片机的内部结构示意图5。

3.2 MCS-51的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:

MCS-51的引脚说明:

MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:

如图3

Pin9:RESET/V pd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H 地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。

8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/V pd还是一复用脚,V cc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。

如果单片机是EPROM,在编程其间,将用于输入编程脉冲。

Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16

位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,

由CPU读入并执行。

Pin31:EA/V

程序存储器的内外部选通线,8051和8751单片机,内置有4kB pp

的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器

指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址

大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA

端必须接地。

在编程时,EA/V

脚还需加上21V的编程电压。

pp

四、计算器程序设计

4.1存储单元分配

30H单元:数值个位显示单元;31H单元:数值十位显示单元;32H单元:数

值百位显示单元;33H单元:数值千位显示单元;23H单元:第一操作数存储单

元;24H单元:第二操作数存储单元;25H单元:键值暂存单元;27H单元:清

除键状态;34H-37H单元:结果数据转换暂存单元;38H-39H单元:结果高低8

位暂存单元;R5单元:操作数计数单元;R4单元:操作数数值位数计数单元;

R3单元:运算符号存储单元。

4.2主程序设计

主程序进行程序中用到的一些存储单元的初始化,数值显示和4*4键盘扫

描。首先,进行存储单元初始化,给数码管显示单元30H-33H赋予“0000”字

形数据,将数值计数单元,存储单元,23H-25H,34H-37H,38H,39H,3AH,3BH,3CH,

赋予初值零。之后,调用键盘扫描子程序,和数码管显示数据转换程序,数码

管动态显示子程序。主程序不断进行键盘扫描,数码管显示数据转换子程序和

动态显示子程序。

4.3 数码管显示数据转换子程序CONV

由于数值单元存放的是二进制数,而用户熟悉的是十进制数,所以应将数值单元中的二进制转换为十进制数,即BCD码。要通过数码管显示出当前数值,还必须将BCD码进一步转换为七段码,转换的最终结果数据存放于显示缓冲区30H-33H单元中,其中30H单元存放数值的个位七段码,31H单元存放数值的十位七段码,32H单元存放数值的百位七段码,33H单元存放数值的千位七段码。

4.4 数码管动态显示子程序

本任务由P1口输出字形码,P0口输出字位码。先将存放于30H单元的数值个位七段码由P1口输出,同时P0口输出使数值个位显示数码管点亮的字位码。由于采用的是共阳数码管,所以只有该位数码管对应的P0.0为1,其他位P0.1-P0.3位0,点亮延时10MS。然后P1口输出数值十位七段码,P0.1位1,数值十位数码管点亮,延时10MS。接着P1口输出数值百位七段码,P0.2为1,数值百位数码管点亮,延时10MS。最后P1口输出数值千位七段码,P0.3为1,数值千位数码管点亮,延时10MS。

五、连接知识

5.1键盘的连接

键盘由4*4共16个按键组成,10个数字键(由0-9组成)5个运算符号(加减乘除等于)组成,1个清除键(作用相当于整体复位)。键盘只需要八个接口就可以完全控制,因此使用AT89C52的一个并行口就可实现,用p1口控制键盘实现键盘的扫描。用p2口传送数据显示数字,用p3口的低六位控制六个数码管的显示。监测是否有键按下,有键按下时,在无硬件去抖的动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。键盘连接图如下。

5.2、显示器的连接

在本任务中用6位LED数码管显示当前数值的十万,万,千,百,十,个,由于数码管个数多,如采用静态显示方式,则占用单片机的I/O口线太多,如

果用定时器/计数器的串行移位寄存器工作方式及外接串入并出移位寄存器74LS164的方式,则电路复杂。所以,在数码管个数较多时,常采用动态显示方式。显示屏有共阳极的和共阴极的两种,这这里我们选择共阳极显示屏,输入数据低电平有效,控制端高电平有效。

6位数码管的相同段并联在一起,由一个8位I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口(P2口)输出的字位码控制,即数码管显示的字形是由单片机I/O口输出的字形码确定,而哪个数码管点亮是由单片机I/O口输出的字位码确定的。6个数码管分时轮流循环点亮,在同一时刻只有1个数码管点亮,

本此硬件连接的系统总框图如下:

六、仿真过程

程序编写完成后,编译、连接、运行程序,生成hex文件。如果程序有错进行调试,按f10进行单步调试,调试无误后会生成hex文件,右键单击cpu

后添加hex文件,将软件与硬件结合起来进行仿真,输入数据检测加减乘除运算。当然程序运行无误并不等于完成任务,如果硬件不能实现预设的功能,还需要检查源程序采用单步调试,选取变量,观察变量值是否符合。多次调试直到与预想功能符合时,仿真成功。

调试过程中最主要的难点就是程序运行正确,硬件却不能实现其功能,语法逻辑错误好检查,但功能错误却难检查,这需要认真检查程序的每一步,全局纵观程序。在功能上找出错误。当然在本程序中我采用了结构化的程序结构,以减轻工作复杂度和难度,在单步调试的过程中,可以每个函数分开调试,单个函数比较短小,调试起来就比整个程序调试简单的多。把一项复杂的工作分成多个简单工作去做会大大提高工作效率。

七、致谢

时光匆匆如流水,转眼便是大学毕业时节,春梦秋云,聚散真容易。离校日期已日趋临近,毕业论文的完成也随之进入尾声。从开始进入课题到论文的顺利完成,一直都离不开老师、同学、朋友给我的热情的帮助,在这里请接受我的诚挚的谢意!

通过这次毕业设计,我才明白学习是一个长期积累的过程,只有不断的的努力学习,才能在在以后的工作、生活中游刃有余,从中提高自己知识和综合素质。在这次毕业设计中也使我们的同学关系更进一步了,同学之间互相帮助,不懂的大家在一起相互讨论,从而使我们更好的理解知识,所以在这里非常感谢帮助我的同学。总之,在这次设计中遇到的困难的确比较多,真是万事开头难,不知道如何入手。最后终于完成了时,有种如释重负的感觉。此外,通过这次毕业设计还得出一个结论就是:知识必须通过应用才能实现其价值!有些东西以为学会了,但真正到用的时候才发现什么都不是看起来那么简单,所以我认为只有到真正会用的时候才是真的学会了。

在此我要感谢我的指导老师李老师对我悉心的指导,感谢老师给我的帮助。在设计过程中,我通过查阅大量有关资料,与同学交流经验和自学,并向老师请教等方式,使自己学到了不少知识,也经历了很多的困难,但收获同样很大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心。虽然这个设计做的也不太好,但是在设计过程中所学到的东西是这次毕业设计的最大收获和财富,使我终身受益。

八、参考文献

1 李全利、迟荣强.单片机原理及接口技术.高等教育出版社,2003

2张敏霞、孙丽凤.c语言程序设计教程 .北京电子工业出版社,2007 3李亚平 EDA应用技术中国劳动社会保障出版社 2007年8月

4李全利、迟荣强.单片机原理及接口技术.高等教育出版社,2003

java课程设计 计算器实际与实现

《面向对象程序设计》 课程设计报告 题目: 计算器设计与实现 专业: 班级: 姓名: 指导教师: 成绩: xx 201x 年 x 月xx 日 xxxxxx

目录 1 设计内容及要求 (1) 1.1设计内容 (1) 1.2设计任务及具体要求 (1) 2 概要设计 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 设计过程 (2) 3.2系统功能模块 (3) 4 设计结果与分析 (4) 4.1功能模块的划分 (4) 4.2功能模块的实现 (4) 小结 (10) 5 参考文献 (11)

1 设计内容及要求 1.1设计内容 该程序是一个图形界面的简单Java计算器,具有良好的界面,使用人员能快捷简单的进行操作。即时准确地获得需要的计算结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。可以进行简单的四则运算(加、减、乘、除,等) 1.2设计任务及具体要求 计算器的设计与实现,使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。在日常生活中经常需要用到计算器,比如科学计算、数字计算、会计业务甚至是日常生活中的一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。 2 概要设计 2.1 功能需求 在日常生活中人们总是难以避免的要进行一些运算,当运算比较复杂时没有计算器就会显得很麻烦。为了解决日常生活中的困难,特意设计了这个计算器系统。在该系统中不仅可以进行整数的加、减、乘、除等简单运算,也可以进行浮点数的加、减、乘、除等运算。除此之外还可以进行三角函数、指数、对数、平方等运算。人们应用它可以解决日常生活中的一些运算问题,比如做买卖时进行交易的过程中就可以利用该计算器进行数量、价格以及金额的统计计算。学生也可以利用该计算器进行数学运算,解决简单的三角函数运算。

简易计算器的设计与实现

科技学院 《单片机原理及应用》课程设计 题目基于单片机简易设计与实现 学生 专业班级 学号 院(系) 指导老师 完成时间年月日

目录 0.引言 (1) 1. 设计方案 (3) 1.1 方案论证 (3) 1.2 方案比较与选择 (4) 2. 系统设计 (4) 2.1系统组成及总体框图 (5) 2.2硬件原理 (5) 2.2.1.单片机最小系统 (6) 2.2.2键盘电路 (13) 2.2.3显示电路 (15) 2.3.软件流程 (17) 2.3.1主程序控制流程 (17) 2.3.2键盘扫描子程序 (18) 2.3.3LCD1602显示控制流程 (20) 2.4仿真与实物制作 (24) 3.结论 (26) 参考文献 (27)

附录一:总体电路原理图 (28) 附录二: 元器件 (28) 附录三:源程序 (29)

基于单片机简易设计与实现 0.引言 随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。电子产品的更新速度快就不足惊奇了。计算器在人们的日常中是比较的常见的电子产品之一。如何使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器,使其更好的为各个行业服务,成了如今电子领域重要的研究课题[1]。 今天,人们的日常生活中已经离不开计算器了,社会的各个角落都有它的身影,比如商店,办公室,学校……。因此设计一款简单实用的计算器会有很大的实际意义。 本设计对字符液晶显示模块的工作原理,如初始化、清屏、显示、调用及外特性有较清楚的认识,并会使用LCD(液晶显示模块)实现计算结果的显示;掌握液晶显示模块的驱动和编程,设计LCD和单片机的接口电路,以及利用单片机对液晶模块的驱动和操作;在充分分析部逻辑的概念,进行软件和调试,学会使用,并能够以其为平台设计出具有四则运算能力简易计算器的硬件电路和软件程序。 同时在进一步掌握单片机理论知识,理解嵌入式单片机系统的硬软件设计,加强对实际应用系统设计的能力。通过本设计的学习,使我掌

简易计算器的设计与实现

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

目录 第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单片机,输入采用4X 4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言 和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬 件电路。 1.2设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1) 提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1) 要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时 10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码查表可的键值。并且将键值送入缓冲区。

简易计算器的设计计算机硬件微机原理课程设计

计算机硬件技术实践报告 题目简易计算器的设计 姓名 专业自动化(电站方向) 班级 学号 上海电力学院自动化工程学院

一、设计题目及目的 本次课程设计的实验目的是:通过该实验掌握较复杂程序的设计;能独立完成用程序对8086、8255A控制键盘和LED显示的控制,完成计算器加减法的应用;独立编写程序,明白和掌握程序的原理和实现方式;学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用;进一步加强理论知识与应用相结合的实践和锻炼,为以后的设计提供经验。这次设计实践,加深了我对专业知识和理论知识学习的认识和理解,使我的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。我们的具体任务是用8086设计一个能实现0~9整数加减乘除法的运算器,并用2位LED数码显示,键盘包括0-9,+ ,-,×,÷,=,NO/C共16个按键。 二、小组成员分工及成果 在实验课程要求下,我们选择基于8086CPU的模拟计算器设计。要完成设计首先需要构建简单的微型计算机应用系统,其次是确定组成各部件的芯片,然后画原理图,根据相应的原理以及实现过程,编写出相应的汇编代码。再根据原理图连接硬件电路,电路连接完成后进行调试。设计过程中我们用到了8086CPU、可编程并行输入/输出芯片8255A、 74HC138、74HC373、矩阵式键盘、LED数码管。我们的模拟计算器能实现2位十进制数以内的加减乘除法运算。 首先,本组的三个成员一起讨论研究简易计算器设计的主要方案。 粗略设计程序流程图以确定简易计算器设计的大概框架。 明确目的后各自查询资料了解设计原理、逐步清晰设计思路。 以下为大体分工:主要负责:1、设计主要程序,编写; 2、查找资料验证修改; 主要负责:1、选择需要用的各个芯片; 2、设计硬件原理图; 主要负责:1、各个芯片功能的资料查找; 2、设计程序流程图 三、设计方案思路 用8086设计一个能实现0~9整数加减乘除法的运算器,并用2位LED数码显示,键盘包括0-9,+ ,-,×,÷,=,NO/C共16个按键。 1、通过小键盘做加减乘除运算。 2、数码管显示器作输入数据和结果数据的显示。 3、数字用小键盘0~9,“C、+、-、×、÷、= ”做功能键 4、运算顺序:a.首先输入一个原始数据(在0~9之间,否则无反应)显示器跟随显示 b.按“+、-、×、÷”显示器内容不变 c.再次输入一个数据(在0~9之间,否则无反应)显示器跟随显示 d.按“=”显示器显示结果数据 e.按C显示“00”数据清0,并重新开始运算 f.若输入一个数据后直接按“=”则数据不变 设计思路: 将整个程序划分为键盘扫描部分,显示部分,运算程序部分。首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序实现运算。运算完成后将运算的结果储存并显示到LED显示器上。 软件流程大致如下:开始,然后是系统的初始化,进行键盘扫描,对扫描的键值进行判断(分为数字键和功能键),若为数字键,则执行数字键处理程序,即显示数字并将数值存储;若为功能键,则先判断是否为清屏,如是清屏,则执行清屏子程序,如是加减乘除运算键则调用相应程序运算,如是等号键,则先判断上个符号位,调用相对应的运算子程序进行运算,如此就可以得到需要的结果了。

基于STM32的简易电子计算器设计与实现

四川师范大学成都学院通信工程学院 基于STM32的简易电子计算器设计与实现-——实验综合设计报告 学生姓名陶龑 学号2016301033 所在学院通信工程学院 专业名称嵌入式系统课程设计 班级2014级软件班 指导教师刘强 成绩 四川师范大学成都学院 二○一六年十一月

基于STM32的简易电子计算器设计与实现内容摘要:电子计算器即将传统意义上的计算器进行电子化和数字化,为其减少时间误差和体积,并提供更多的扩展实用功能,从而使电子计算器的应用更加广泛。在经过资料的查找与收集后,本论文以该理念设计了一款基于STM32芯片作为核心控制器,使用Keil5平台,以C语言为基础进行软件编程的简易电子计算器,其内在TFT-LCD液晶屏进行输出,以四个按键进行输入,从而实现显示输入数据以及加减乘除运算的基本功能. 通过软件程序的编写、硬件电路原理的实现、电子计算器正常工作的流程、原理图仿真实现、硬件实物的安装制作与硬件实物的调试过程,该简易电子计算器现可用于日常生活和工作中. 关键词:简易电子计算器STM32 C语言Keil5

Design and implementation of Multi Function Electronic Clock based on STM32 Abstract: The traditional electronic calculator calculator for electronic and digital, to reduce the time error and volume,and provide more extended utility function, so that the more extensive application of electronic calculators. After searching and collecting data,in this paper, the concept of a design based on STM32 chip as the core controller, using Keil5 platform,simple electronic calculator based on C language software programming,the TFT—LCD LCD screen for input and output,with four keys, so as to realize the display of input data and the basic the function of add,subtract, multiply and divide operations。 Through the software program,hardware circuit principle of the electronic calculator realization,normal work process and the principle of graph simulation,hardware installation and hardware debugging process, the simple electronic calculator is used in daily life and work。 Key words:Simple electronic calculator STM32 language C Keil5

基于c语言的简易计算器的设计与实现

课程名称:C语言程序设计 课题名称:简易计算器 班级: 学号: 姓名: 指导老师: 成绩: 一、课程设计目的 1.通过这次的课程设计,巩固以前所学的知识:

1)进一步熟悉了各种语句,如宏定义语句,语句的嵌套等等。 2)对顺序,选择,循环结构的综合运用. 3)进一步巩固了一些算法,如求四则混合运算,三角函数,指对数的算法. 2.在课程设计的过程中,拓展了自己的知识面,知道我们所学过的C语言知识不过是很少的一部分。还 有很多知识等待我们自己去学习。 3.为了完善自己的程序,通过上网,查阅图书等途径学到了一些新的知识,如对C语言中一些常用图 形函数的应用。 4.通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的 模块化结构。 5.通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。 二、设计内容 我设计的是一款简易计算器,界面清楚,操作方便,它能实现以下功能: 1.查询当时时间 2.简单的四则混合运算(支持小括号、优先级) 3.正弦、余弦函数计算 4.指对数计算 三、总体设计 简单计算器由六大模块组成,模块调用图如下: 1.主函数 void main() 功能:调用各个主要模块,实现简单计算器的整体功能。 2.主界面函数void ZhuJieMian() 功能:使用有关图形函数模拟出可视化的计算器外观界面,并提供用户输入窗口。

3.时钟函数 int Time() 功能:在模拟的可视化计算器中显示当时的时间。 4.四则混合运算函数void SiZeHunHeYunSuan() 功能:实现简单的加减乘除混合运算,并支持优先级和带括号的运算。 5.三角运算函数void SanJiaoYunSuan() 功能:实现基本的三角函数运算:sin(x)和cos(x)。 6.指对数函数void ZhiDuiShuYunSuan() 功能:实现基本的指数和对数运算。 四、详细设计 a)数据结构设计: int priority(char left,char right) {char option[]={’+’,'—’,’*’,'/','(’,')',’=’}; int i,le,ri; int l[]={4,4,6,6,2,10,0}; int r[]={3,3,5,5,9,3,0}; for(i=0;i〈=7;i++) {if(option[i]==left) le=l[i]; if(option[i]==right) ri=r[i]; } return(ri—le); } 用两个数组模拟数据结构栈,其特点是数据先进后出。用两个数组分别保存操作数和运算符.从字符串中依次分离出操作数与运算符,分别存入对应数组。当操作符串为空时,直接存入(相当与栈元素的压入)。当不为空时,与数组最后一个元素(相当于栈顶)比较优先级,若大于直接存入,否则弹出操作数最后两位进行运算,直到操作符栈顶元素优先级小于当前运算符,并将其存入。 b)模块接口设计: 1.时钟函数:int Time() 包括的子函数的函数原型:void TimeJieMian();用于制作界面 2.四则混合运算:void SiZeHunHeYunSuan() 包括的子函数的函数原型: void SiZehunheYunSuanJieMian();用于制作界面

简易计算器完整课程设计

一、设计要求 1.设计4*4的键盘,其中10个数字键0~9,第十三个键为”+“,第十五个键为”=“ 2 ,实现1位数的简单加运算 二、硬件系统设计 1、LED接口电路 简易计算器需要2位8段码LED显示电路。用LED显示器,用8255A的A口作为段码(字形代码)数据口,PB0和PB1作为位控制端口。然后接至各数码显示器的共阴极端。 2、键盘接口电路 简易计算器需要4*4的行列式键盘。8255A的B口作为输出端,C口作为输出端。采用的是方式0。 3、计算器逻辑电路图 将LED接口电路和键盘接口电路结合到一起就是简易计算器的逻辑电路图逻辑电路结构如下:

Cpu 8255 键盘 三、软件设计 1、LED 显示程序设计 LED 显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED 显示器,器排列形状如下图所示: 为了显示数字或符号,要为LED 显示器提供代码,即字形代码。七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。简易计算器用到的数字0~9的共阴极字形代码如下表: 0~9七段数码管共阴级字形代码 显示字型 g f e d c b a 段码 Pb0-Pb7 Pa0-Pa4 Pc0-Pc4 D0-D7 wr rd A0-A1 cs Xd0-Xd7 Iow# Ior# Xa1Xa2 Ioy3 A0-Dp x0-x3 m1-m4

001111113fh 1000011006h 210110115bh 310011114fh 4110011066h 511011016dh 611111017dh 7000011107h 811111117fh 911011116fh 2位LED显示的程序框图如下: 2、读键输入程序设计

单片机的简易计算器的设计与实现

单片机的简易计算器的设计与实现 单片机是一种集成电路芯片,具有微处理器、存储器和输入输出接口等功能,适合用于嵌入式系统中。设计和实现单片机的简易计算器是一种常见的练习项目,可以帮助我们理解单片机的基本原理和编程技巧。在实现过程中,我们需要考虑的关键方面包括:输入输出接口设计、数值输入方式、算法选择和显示输出等。 首先,我们需要设计单片机的输入输出接口。对于简易计算器来说,输入接口通常包括数字按键和运算符按键,输出接口则需要显示器来显示计算结果。为了简化设计,我们可以使用4x4矩阵键盘作为输入接口,并使用数码管或液晶显示屏作为输出接口。 接下来,我们需要决定数值的输入方式。一种常见的方式是使用连续输入的方式,即输入一个数字按键后,直接将数字显示在输出接口上;而另一种方式是使用逆波兰表示法,即输入完所有数字和运算符后,再根据运算符的优先级进行计算。前者相对简单,但后者更贴近计算器的实际使用方式,可以提高用户体验。 在算法选择方面,我们可以使用堆栈和循环结构来实现一个逆波兰计算器。具体来说,我们可以使用一个堆栈来存储数字和运算符,然后根据优先级和计算规则对堆栈进行操作,最后得到计算结果。这样的实现方式简单高效,并且易于扩展其他功能。 最后,我们需要确定显示和输出的方式。对于数值的显示,我们可以使用7段数码管或液晶显示屏来显示结果。数码管的显示方式是通过控制不同段的亮灭来显示不同数字和符号,而液晶显示屏则通过控制像素的亮

灭来显示相应的信息。对于运算符和其他提示信息的输出,我们可以使用LED灯、蜂鸣器或液晶显示屏上的额外控制位来实现。 在实际实现单片机的简易计算器时,我们需要进行以下几个步骤: 1.设计硬件电路,包括输入输出接口和显示方式。 2.根据输入接口的设计,编写程序读取按键输入,并根据按键对计算器进行相应的操作。 3.设计堆栈结构,并编写程序实现逆波兰计算器的算法逻辑。 4.将计算结果存储在适合的变量中,并编写程序将结果显示在输出接口上。 5.根据需要,添加额外的功能,如清零、退格和小数点等。 6.运行程序,进行调试和测试,确保计算器的正常工作。 总结起来,设计和实现单片机的简易计算器是一项较为复杂的任务,需要我们充分理解单片机的原理和编程技巧,同时也需要有一定的硬件设计和电路调试经验。通过完成这个项目,我们可以更加深入地了解单片机的应用和计算器的工作原理,同时也提升了我们的电路设计和编程能力。

课程设计 简易计算器设计与实现

课程设计简易计算器设计与实现

长江职业学院工学院毕业实践报告 课题名称:简易计算器设计与实现 专业班级:计算机控制技术081班 学生姓名:黄杨 学号: 20082940 班级序号 6 实践性质:校内毕业实践 实践成绩: 指导老师:杜力 2011年2月25日

目录 一、绪论 1.1 计算器的历史 (5) 1.2 电子计算器的特殊键 (6) 1.3单片机概述 (6) 1.4设计要求 (6) 1.5我做简易模拟计算器的过程说明 (7) 1.6系统的基本功能 (7) 二、课题设计的分析与思路的确定 (7) 三、芯片简介 (8) 3.1MSC-51芯片简介 (8) 3.2 MCS-51的引脚说明 (10) 四、计算器程序设计 (12) 4.1存储单元分配 (12) 4.2主程序设计 (12) 4.3 数码管显示数据转换子程序CONV (13) 4.4 数码管动态显示子程序 (13) 五、连接知识 (13)

5.1键盘的连接 (13) 5.2、显示器的连接 (14) 六、仿真过程 (15) 八、参考文献 (18)

一、绪论 本课题拟定以MCS-51系列单片机为控制中心,采用模块化的设计方案,运用液晶显示器或LED显示数据/键盘输入数据,以实现能够完成加、减、乘、除、数据存储等运算的简易计算器。 系统的功能是:(1)模拟的计算器能显示10位数字,开机运行时,只显示最低位为“0”,其余不显示;(2)4×4键盘分别表示:0到9,+,-,×,/,=,CL;(3)第一次按下,显示“D1”,第二次按下,显示“D1D2”,第三次按下,显示“D1D2D3”…8个全显示完毕,再次按下按键时,给出“嘀”的提示音;(4)可以对计算结果小于256的两个无符号数进行加、减、乘、除运算。 单片机程序用汇编语言编写,经过Wave软件调试,生成HEX文件,再用Proteus软件进行计算机仿真。 程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。 动态显示程序,是先建立待显示缓冲区地址指针和共阴极数码管的段代码表;缓冲区内容通过查表得相应的段代码,再用位选信号动态扫描显示。 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根据按键的次数进行保存和显示的处理,当按键次数超过八时,喇叭位置一;若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零,然后进入BCD码程序,将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 1.1 计算器的历史 说起计算器,值得我们骄傲的是,最早的计算工具诞生在中国。中国古代 最早采用的一种计算工具叫筹策,又被叫做算筹。这种算筹多用竹子制成,也 有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可随身携带。直 到今天仍在使用的珠算盘,是中国古代计算工具领域中的另一项发明,明代时 的珠算盘已经与现代的珠算盘几乎相同。17世纪初,西方国家的计算工具有了 较大的发展,英国数学家纳皮尔发明的"纳皮尔算筹",英国牧师奥却德发明了 圆柱型对数计算尺,这种计算尺不仅能做加减乘除、乘方、开方运算,甚至可 以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发

C语言课程设计报告【简易计算器设计】

C语言课程设计报告【简易计算器设计】1000字 一、设计目的 本设计旨在通过设计一个简易计算器,使初学者通过该计算器,了 解C语言基本语法并且巩固数学运算知识。 二、设计内容 (一)需求分析 本计算器,要求能够完成一般的数学运算(加、减、乘、除),以 及开平方、自然对数、正弦等常用函数的计算。 (二)功能设计 1. 实现加、减、乘、除基本运算符的计算功能,实现数值运算。 2. 实现开平方、自然对数、正弦等常用函数的计算功能。 3. 提供菜单界面,使用户可以选择所需要的计算功能。 4. 能够对输入的数字进行异常处理,如输入非数字字符等。 (三)技术实现 本计算器的实现基于C语言,主要涉及基本输入输出和函数的应用。 1. 输入输出功能:本计算器通过scanf函数实现用户输入,通过printf函数将结果输出。 2. 函数应用:本计算器通过调用数学库函数实现对开平方、自然对数、正弦等常用函数的计算。 (四)算法设计 本计算器的算法主要基于基本的数学运算原理以及数学库函数的应用。 1. 加法运算: \t输入要加的两个数a和b \t输出a+b的结果

2. 减法运算: \t输入要减的两个数a和b \t输出a-b的结果 3. 乘法运算: \t输入要乘的两个数a和b \t输出a*b的结果 4. 除法运算: \t输入要除的两个数a和b \t如果b=0,输出错误信息\t否则,输出a/b的结果 \t5. 开平方: \t输入要开平方的数a \t如果a<0,输出错误信息\t否则,输出a的平方根 \t6. 自然对数: \t输入要求自然对数的数a \t如果a≤0,输出错误信息\t否则,输出a的自然对数\t7. 正弦: \t输入要求正弦的角度a \t输出a的正弦值 (五)程序设计 以下是本计算器的主体代码:

简易计算器的设计与制作

浙江工商职业技术学院电子与信息工程学院毕业设计 电信学院毕业设计(说明书)毕业设计(说明书)题目 专业:应用电子技术 班级: 学号: 学生姓名: 校外指导教师:俞海云 校内指导教师:李翠凤 二零一五年四月

简易计算器的设计与制作 摘要:近十几年,单片机技术发展的很快,其中电子产品的更新速度迅猛。计算器是我们日常生活中比较常见的电子产品之一。在很多领域的数据处理中要用到数学运算,作为计算机自动处理系统更显得重要。此项目设计以单片机为核心部件的计算器,采用 4*4 矩阵式键盘, 16 个键依次对应 0— 9、“ +”、“ -”、 “ * ”、“ /”、“ =”和清除键。使用单片机最小应用系统 1 模块,简单方便。 采用 LCD1602A 作显示。本次设计是以 STC89C52 单片机为核心器件,外围辅助 器件为 LCD 显示器、控制按键来设计的计算器。利用此设计熟悉单片机微控 制器及 C 语言编程,对其片资源及各个 I/O 端口的功能和基本用途的了解。掌握Microsoft Visual C++ 6.0 应用程序开发环境,常用的 LCD 显示器的使用方法和一 般键盘的使用方法。本计算器系统简单,实用性强,成本低,使用维护方便,软 件功能强,运行稳定可靠等优点。 关键词: STC89C52;LCD1602 ;计算器;矩阵键盘

目录 1.绪论 (2) 1.1系统开发的背景和意义 (2) 1.2设计目的 (2) 1.3设计任务 (2) 2.方案论证与比较 (3) 2.1主机方案设计与选择 (3) 2.1.1方案一:采用 FPGA 控制 (3) 2.1.2 方案二:采用 STC9C52 单片机 (3) 2.2从机方案设计与选择 (4) 2.2.1方案一:采用 8255A芯片控制采集和数码管显示 (4) 2.2.2方案二:采用液晶 LCD1602 做为显示 (4) 3.系统设计及说明 (5) 3.1系统总框图 (5) 3.2元件介绍 (5) 4.系统硬件设计 (11) 4.1外接键盘电路设计 (11) 4.2显示电路设计 (11) 5.系统程序设计 (12) 5.1键盘扫描程序设计 (12) 5.2显示模块的程序设计 (13) 5.3运算程序设计 (14) 6.调试 (15) 6.1硬件调试 (15) 6.2软件的调试 (16) 结论 (17) 致谢 (18) 参考文献 (19) 附录 A 元件清单 (20) 21附录 B 原理图 ............................................................................................................. 22附录 C PCB图.............................................................................................................. 23附录 D 实物图 .............................................................................................................

基于51单片机简易计算器课程设计报告

基于51单片机简易计算器课程设计报告 引言: 计算器是现代社会中常见的电子设备之一,它能够帮助人们进行各种数学运算,提高计算效率。本文将介绍基于51单片机的简易计算器的设计过程及实现方法。 一、设计目标 本次设计的目标是实现一个简易计算器,能够进行基本的加减乘除运算,并能够显示计算结果。通过该设计,旨在加深学生对51单片机的理解,培养其实际操作能力。 二、硬件设计 1. 电源模块:采用稳压电源模块,提供稳定的电压给单片机及其他电路模块。 2. 单片机模块:采用51单片机,作为计算器的核心控制模块,负责接收按键输入、进行运算和显示结果。 3. 按键模块:设计合适的按键电路,用于输入数字和操作符。 4. 显示模块:采用数码管或液晶显示屏,显示计算结果。 5. 连接线:将各个模块连接起来,确保信号的传输畅通。 三、软件设计 1. 初始化:设置单片机的工作模式、端口方向和初始状态。 2. 按键扫描:通过轮询的方式检测按键是否被按下,若有按键按下

则进行相应的处理。 3. 输入处理:根据按键的顺序和操作符的位置进行输入的处理,将输入的数字和操作符分别存储在相应的变量中。 4. 运算处理:根据输入的操作符进行相应的运算,得出计算结果。 5. 结果显示:将计算结果通过数码管或液晶显示屏进行显示。 6. 清零处理:在计算结果显示完毕后,对相关的变量进行清零处理,以便进行下一次的计算。 四、功能实现 1. 加法运算:通过按下"+"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。 2. 减法运算:通过按下"-"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。 3. 乘法运算:通过按下"*"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。 4. 除法运算:通过按下"/"按键,输入第一个数字,再按下"="按键,输入第二个数字,最后按下"="按键,计算并显示结果。 五、实验结果与分析 经过实验,基于51单片机的简易计算器能够准确地进行加减乘除运算,并能够在数码管或液晶显示屏上显示计算结果。在按键输入和运算过程中,计算器的响应速度较快,用户操作起来比较流畅,具有一定的实用性。

数电课程设计简易计算器

数电课程设计简易计算器辽宁工业大学 数字电子技术基础课程设计(论文) 题目:简易计算器

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

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

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

简易计算器学生课程设计

目录 目录 ............................................................................................................................ I 摘要 ............................................................................................................................ I 1 绪论 ........................................................................................................................ II 1.1 课程设计背景................................................................................................................... I II 1.2 需求环境 .......................................................................................................................... I II 1.3 课程设计思路................................................................................................................... I II 2 课程设计概要 (2) 3 程序结构和各模块分析 (3) 3.1菜单操作模块 (3) 3.1.1 fun1函数功能 (3) 3.1.2 功能实现代码 (3) 3.2 加减乘除运算模块 (3) 3.2.1 fun2函数功能 (3) 3.2.2 功能实现代码 (4) 3.3 乘方和开方运算模块 (4) 3.3.1 fun3函数功能 (4) 3.3.2 功能实现代码 (4) 3.4 进制转换运算模块 (5) 3.4.1 convert函数功能 (5) 3.4.2 功能实现代码 (5) 3.5 求模运算模块 (5) 3.5.1 fun4函数功能 (5) 3.5.2 功能实现代码 (6) 3.6 退出模块 (6) 3.6.1代码功能 (6) 3.6.2 功能实现代码 (6) 4 程序调试 (7) 4.1 操作界面 (7) 4.2 加减乘除运算 (7) 4.3 乘方和开方运算 (9) 4.4 进制转换运算 (10) 4.5 求模运算 (11) 4.6 退出 (12) 5 课程设计总结 (12) 参考文献 (13) 附录:源代码 (14) 摘要

简单计算器课程设计(DOC)

简单计算器课程设计 一. 课程设计的目的 Java语言是此刻流行的网络编程语言,它拥有面向对象、跨平台、散布 应用等特色。面向对象的开发方法是此刻世界最流行的开发方法,它不单具 有更切近自然的语义,并且有益于软件的保护和继承。 为了进一步稳固讲堂上所学到的知识,深刻掌握Java语言的重要观点及其面向对象的特征,锻炼学生娴熟的应用面向对象的思想和设计方法解决实 际问题的能力,开设了Java 程序设计课程设计。 经过此次课程设计,稳固所学Java 语言基本知识,增进Java 语言编写基本功,掌握 JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生经过该教课环节与手段,把所学课程及有关知识加 以举一反三,全面掌握 Java 语言的编程思想及面向对象程序设计的方法,为此后从事实质工作打下坚固的基础。 二. 设计方案论证 1.开发环境: JAVA编程工具 JDK 1.5.0 ,操作系统WindowsXP. 2.功能描绘 : 本计算器能够进行简单的四则运算(加、减、乘、除)但仅限于十进 制下,还能够进行(八进制, 十进制, 十六进制)之间的互相变换, 八进制最多能够输入19 位数, 十进制最多能够输入18 位数,十六进制最多能够输入14 位数,backspace 表示退格,clear 表示初始化,在window 下直接运转(Jsp2003.bat )即可,界面为灰白对称。

3.纲要设计 : ********************************************************** 类名 : This_number_too_big 作用 :自定义的异样类,用来办理计算结果溢出 继承的父类 : Exception类 实现的接口 :没有 ********************************************************** class This_number_too_big extends Exception { }// 自定义的一个结果溢出异样类 ********************************************************** 类名 : Jsp2003 作用:主类 继承的父类 : Frame 类 实现的接口 : ItemListener类,ActionListener类********************************************************** class Jsp2003 extends Frame implements ItemListener,ActionListener { public int number=0,length=18; //number 是用来记录输入的数字个数, //length是用来设置在不一样进制下同意输入的最多半字位数,默以为十进制

计算器课程设计--简易计算器

1 设计课题任务、功能要求说明及总体方案介绍 1.1 设计课题任务 课题:简易计算器 任务:设计一个具有特定功能的计算器。该计算器上电或按键复位后能自动显示系统提示界面,进入准备工作状态。能实现基本的加、减、乘、除四则运算。 1.2 功能要求说明 在本次工程实践中,主要完成如下方面的设计任务: (1)计算器上电或按键复位后能显示初始化界面 (2)2秒后进入计算器界面 (3)按键能进行加、减、乘、除运算并显示结果 (4)按清零键后能进行下一次计算 1.3 设计课题总体方案介绍及工作原理说明 计算器的总体功能原理是以AT89S52单片机为主要控制核心,通过外接4*4行列式键盘作为控制信号输入源,一块12864液晶作为显示器件,通过按键控制,单片机实时地去执行,在12864液晶上显示界面。系统控制原理图如图1所示。 图1系统控制原理图

2 设计课题硬件系统的设计 2.1 设计课题硬件系统各模块功能简要介绍 2.1.1 AT89S52控制模块 考虑到设计功能需要,控制器的功能用于外部键盘信号的接收和识别、液晶模块的显示控制、复位电路等,我们选择了AT89S52系列单片机,具有反应速度极快,工作效率特高的特点。 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.1.2 12864液晶模块 FYD12864-0402B是一种具有4位/8位并行,2线或3线串行多种接口方式,内含国家一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128*64,内置8192个16*16点汉字,和128个16*8点ASCⅡ字符集。利用该模块灵活的接口和简单、方便的操作指令,可构成全中文人机交互图形界面。12864液晶的控制口线主要接在AT89S52单片机的P0和P3的部分口线上,可以显示8×4行,16×16点阵的汉字。低压低功耗是其又一显著特点。与同类液晶模块相比,无论硬件电路或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的液晶模块。

简易计算器课程设计

目录 一、运行环境 (5) 二、问题描述及要求 (5) 三、需求分析 (5) 四、设计思路 (5) 4.1工作原理图 (6) 4.2功能规划 (6) 五、程序的界面设计及代码实现 (7) 5.1声明的类 (7) 5.2引用的包 (7) 5.3界面设计 (7) 5.4计算功能实现 (15) 六、参考文献 (21) 七、总结 (21) 八、源代码 (22)

一、运行环境 (1).操作系统:Solaris、Windows xp、Windows 7等 (2). 应用软件:jdk1.5、Eclipse 二、问题描述及要求 制作一个计算器,要求仿Windows里的计算器,设计一个图形界面,其中基本组件包括0~9、+、-、*、/、.、=、+/-、Back、CE、C、sqrt、%、1/x、。其基本功能完成加减乘除、开方、求模、求倒,十进制与八进制、二进制、十六进制的转换等, 退格、清零等按钮的实现。 在我的计算器上实现了以上功能。在菜单栏有查看、编辑、帮助菜单,在“查看”菜单中有“标准型”菜单项,实现加减乘除等基本功能,“科学型”菜单项,实现进制间的转换。在“编辑”菜单中有“复制”、“粘贴”菜单项。“帮助”菜单中有“关于计算器”、“帮助主题”菜单项,并实现相关功能。 三、需求分析 日常生活中经常需要用到计算器,比如科学计算、数值计算、会计业务等,但简单的计算器已不能满足日常需要,因此有必要开发一些进制转换、开方等多种运算的计算器。 创建一个简单计算器,具有简单的人机交互界面,便于数据计算。我的计算器具有的功能如下: 1、实现基本的加、减、乘、除四则运算及开方、求倒、求模。 2、Back退格、CE返回上层运算符、C清零功能。 3、十进制与二进制、八进制、十六进制之间的转换。 4、菜单中包含的一些功能,如帮助文档。 四、设计思路 4.1 工作原理图

相关文档
最新文档