简易计算器设计说明书
迷你计算器设计说明书教材

*******************实践教学*******************兰州理工大学计算机与通信学院2013年秋季学期Java 课程设计题目:迷你计算器设计专业班级:姓名:学号:指导教师:成绩:摘要目前计算器应用很广泛,本程序利用面向对象分析方法设计的思想,结合面向对象语言JAVA设计迷你计算器,划分模块,模块的逐一实现,定义和使用类,并掌握内部类的使用,JAVA接口的实现。
此程序可以进行加、减、乘、除、阶乘、正弦、余弦和指数等运算,并且有删除和归零等功能。
关键词:JAVA;面向对象设计;迷你计算器序言计算器作为日常生活中常用工具,它已经深入到生活中的每一个地方及场合。
此次通过Java语言来实现,该程序是一个图形界面的简单的java 计算器,使用人员能快捷简单地进行操作。
及时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
可以进行简单的四则运算(加,减,乘,除,以及求倒数,求相反数等),有删除等功能,归零表示初始化。
Java是由Sun 公司开发的新一代纯面向对象的网络编程语言。
其目标是建立一种在任意种机器, 任一种操作系统的网络环境中运行的软件, 实行所谓的“程序写一次,到处运行”的目标。
正因为如此,Java 已成为当今Internet 上最流行,最受欢迎的一种程序开发语言。
Java 程序设计是一门应用性很强的专业课,在学习时必须注意理论与实践相结合,为此开设了本课程设计,其目的是通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。
目录摘要 (Ⅰ)序言 (Ⅱ)一.系统分析与设计 (1)二.详细设计 (3)三.系统测试 (8)四.软件使用说明书 (13)设计总结 (14)参考文献 (15)致谢 (16)源代码 (17)一.系统分析与设计(一)系统分析日常生活中经常需要用到计算器,比如科学计算,数值计算,会计业务等等,在Applet中实现一个精巧的计算器,可以让用户的操作也更方便和快捷。
计算器说明书

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

计算器说明书1 设计课题任务、功能要求说明及总体⽅案介绍1.1 设计课题任务课题:简易计算器任务:设计⼀个具有特定功能的计算器。
该计算器上电或按键复位后能⾃动显⽰系统提⽰界⾯,进⼊准备⼯作状态。
能实现基本的加、减、乘、除四则运算。
1.2 功能要求说明在本次⼯程实践中,主要完成如下⽅⾯的设计任务:(1)计算器上电或按键复位后能显⽰初始化界⾯(2)2秒后进⼊计算器界⾯(3)按键能进⾏加、减、乘、除运算并显⽰结果(4)按清零键后能进⾏下⼀次计算1.3 设计课题总体⽅案介绍及⼯作原理说明计算器的总体功能原理是以AT89S52单⽚机为主要控制核⼼,通过外接4*4⾏列式键盘作为控制信号输⼊源,⼀块12864液晶作为显⽰器件,通过按键控制,单⽚机实时地去执⾏,在12864液晶上显⽰界⾯。
系统控制原理图如图1所⽰。
液晶显⽰电路AT89S52电源电路复位电路下载电路键盘电路图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级中断结构,全双⼯串⾏⼝,⽚内晶振及时钟电路。
课设简易计算器设计说明

摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。
本任务是个简易的两位数的四则运算,程序都是根据教材和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。
本任务重在设计构思,使得我用专业知识、专业技能分析和解决问题全面系统的锻炼。
本系统的设计说明重点介绍了如下几方面的容:1)简易计算器的基本功能,同时对计算器设计的原理也进行了简要的阐述;2)介绍了系统的总体设计、给出了系统的整体结构框图,并对其进行了功能模块划分与所采用的元器件进行了详细说明;3)对系统各功能模块的软、硬件实现进行了详细的设计说明。
关键词:MCS-51 8051单片机计算器围加减乘除目录第一章绪论21.1课题简介21.2设计目的31.3设计任务3第二章简易计算器系统简介32.1 单片机发展现状32.2 计算器的历史42.3 单片机概述5第三章系统总体设计与主要器件简介53.1 MSC-51芯片简介53.2 中断系统63.3 时钟电路73.4 MCS-51系列单片机简介7外部引脚说明:113.5 相关知识12第四章简易计算器的设计134.1 计算器硬件电路设计134.2 计算器程序设计144.3 系统硬件设计15参考文献17第一章绪论1.1课题简介单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。
本设计是采用8051单片机,该单片机具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于温湿度等过程控制。
鉴于这样的重要性,我们打算设计一种基于单片机的多路温度巡检系统,实现对不同场合温度时时变化的控制与监测。
1.2设计目的通过本次工程实践,运用微机原理与接口技术所学知识与查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。
简易计算器课程设计

山东大学控制科学与工程学院课程设计报告书课程设计名称:简易计算器班级:测控一班学号:201000171202姓名:魏凯峰一、电路工作原理该电路主要由以下几部分组成,1、51系列单片机最小系统板,由AT89C51单片机,复位电路,晶振电路(晶振频率是11.0592MHZ),这部分是控制中心,晶振电路可产生程序运行所需要的时钟频率。
2、显示部分,由8位共阴数码管和两个74HC573锁存器、排阻(1K)组成,74HC573锁存器用于动态显示数据,也有驱动显示作用,排阻是限流作用。
3、按键部分,由20位独立键盘组成,按矩阵形式连接,用到9个IO口。
原理:键盘作为数字输入,矩阵键盘的工作原理是当某个键按下时,其两端的IO口电平变化,程序中通过相应位的与或运算,就可以判断出是哪个按键被按下,单片机中的程序不断读取键盘的输入并实时显示在数码管上,数码管用段位选不断切换显示,如当位选为高电平时即为点亮,然后再输入相应的数字段码(该电路中用的是共阴极数码管的字码),这样数码管上便可以显示相应数字。
锁存器中的LE口就是段位选口,高电平有效,数码管中的A、B......G、DP是数码管中的每一段,只要某个字母为高电平,则该段二极管就会被点亮(共阴极)。
在同时显示多个数字时要利用到动态显示,视觉动态显示主要就是利用人眼的视觉感来设计的,一般来说如果显示的频率过慢,则会有断断续续的显示;如果显示的频率加快,则人眼就分辨不出这种视觉残余!二、程序简要说明从主函数开始,先是定义一些变量,然后是调用显示函数displaypro(0),先显示0,然后进入一个大循环while(1),在循环里面先检测键盘keyscan(),并把检测值赋给K,然后是段位选循环8次检测,然后用switch(k)函数来执行键盘操作,k的值从0到9表示输入数字0到9,10到13表示加减乘除,17、15分别表示十六进制和二进制,16表示小数点,14表示正负号,18表示清除,19是等于号。
基于51单片机简易计算器的设计

No:毕业设计说明书题目:基于51单片机简易计算器的设计系别:自动化工程系专业:机电一体化技术*名:***学号: ************指导老师:***职称:副教授2013年6月简易计算器是一种非常广泛日常工具,对现代社会越来越流行。
它可以进行一些简易的计算。
本系统提供详细的时、分、秒、年、月、日的时间信息,同时还可进行简易的计算信息,还具有时间校准等功能。
该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本系统硬件部分由AT89S52单片机、LCD1602液晶屏、键盘、指示灯系统等部分构成。
软件部分在keil环境下用C51语言编写,包括时间设置、时间显示、简易计算显示等。
关键字:AT89S52;液晶屏LCD1602;键盘Simple calculator is a very broad everyday tool for modern society is more and more popular. It can carry on some simple calculation. This system provides detailed, minutes and seconds, year, month, day time information, and at the same time but also for simple calculation information, but also has time calibration etc. Function. This circuit AT89S52 SCM as the core, power consumption is small, can be in 3 V of low-pressure work, voltage can choose 3 ~ 5 V voltage power supply. This system hardware part AT89S52 SCM by LCD1602 LCD screen, keyboard, indicator system, part. Software in under the environment of keil with C51 language, including time set, time display, simple calculation shows, etc. In the programming process found on existing knowledge to finish writing task difficult, the teachers and students of help to finish the program part of the code.Keyword:AT89S52;AT89S52 devices; LCD1602 LCD screen; keyboard引言众所周知单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
数码管显示简易计算器说明书

目录一、原理图设计说明 (1)1.1数码管硬件电路设计 (1)1.2矩阵键盘电路设计: (2)二、程序设计说明 (3)2.1键盘扫描程序设计 (3)2.2算术运算程序设计 (4)2.3显示程序设计 (5)三、工作原理图及程序流程图 (6)四、程序清单 (9)五、参考文献 (15)一、原理图设计说明1.1数码管硬件电路设计数码管数据显示的硬件电路由单片机、4 位共阳极数码管、位驱动电路、限流电阻等组成。
实验板中用杜邦线将P7 与单片机IO 口相连(这里以P0 口为例)。
用跳线将P8 与单片机P2 低四位相连,P0 口送出数码管段选码,P2 送出位选码。
图1-1 数码管硬件电路原理图1.2矩阵键盘电路设计:4*4 矩阵键盘行输入接单片机P1.0-P1.3,列输入接单片机P1.4-P1.7,通过扫描方式检测是否有键按下,并确定键值,使用矩阵键盘时注意给P10 矩阵键盘选择端使能。
对键盘进行编号,S3-S18,按下相应按键,在数码管上显示相应键值(0-F)。
例如按下S10 键,显示A,按下S0 键,显示0。
图1-2 矩阵键盘电路原理图二、程序设计说明2.1键盘扫描程序设计键盘扫描程序的过程为:开始时,先判断是否有键闭合,无键闭合时,返回继续判断,有键闭合时,先去抖动,然后确定是否有键按下,若无键按下,则返回继续判断是否有键闭合,若有键按下,则判断键号,然后释放,若释放按键完毕,则返回,若没有释放按键,则返回继续释放。
其流程图如图2-1所示。
图2-1 键盘扫描程序流程图算术运算程序的过程为:先判断输入的运算符是+、-、*、/ 中的哪一个,若是+或-,则要判断运算结果是否溢出,溢出则显示错误信息,没溢出就显示运算结果,若是/,则要先判断除数是否为零,为零就显示错误信息,不为零则显示运算结果,若是-,则直接显示运算结果。
其流程图如图2.2所示。
图2-2 算术运算程序设计流程图先是程序的过程为:显示开始时,先进行LED的初始化,判断是否显示,若不显示,则返回,若显示,则进行相应功能的设置,然后送地址和数据,再判断是否显示完,显示完则返回,没有显示完则继续送地址。
vb课设计程简易计算器说明书

交通与汽车工程学院课程设计说明书课程名称: 程序设计基础课程设计课程代码: 8234580 ______________题目: 简易计算器程序设计年级/专业/班:2009级/热能与动力工程(汽车发动机)/ 3 班学生姓名: 魏学行学号:312009********* __________开始时间:2010 年______ 月26 日完成时间:2010 年______ 月21 日课程设计成绩:指导教师签名:年—月—日摘要....................................................................... -2 -1引言 ..................................................................... -3 -1.1选题背景................................................................ -3 -1.2任务与分析............................................................. -3 -2方案设计.................................................................. -4 -3界面设计.................................................................. -4 -4代码设计及程序调试....................................................... -5 -5软件使用说明.............................................................. -6 -总结与体会................................................................. -12 -致谢....................................................................... -14 -参考文献............................... -15 -随着计算机的不断更新发展,计算器扮演着极为重要的角色,Win dows环境下的Visual Basic 提供了丰富的图形功能。
简易计算器系统设计

简易计算器系统设计郑州航空工业管理学院微机原理课程设计说明书班级题目姓名学号指导教师摘要随着经济的发展,不断推动着科技的发展,而科技的发展又带动了电子行业,各种各样的电子产品纷纷涌出。
计算器作为日常生活中常使用的电子产品之一,它的功能化、小型化、轻便化已成为未来智能化计算器的发展方向。
【关键词】AT89S52、4*4矩阵式键盘、LCD1602 、计算器1目录摘要 02 系统分析 (3)2.1硬件部分 (3)2.1.1 8279A (4)2.2软件部分 (15)3设计方案 (16)4 硬件电路设计 (17)5 软件设计 (19)5.1 控制程序设计思路 (19)5.2程序流程图 (19)6 系统调试 (24)6.1 硬件调试 (24)6.2 软件调试 (24)6.3 联机调试 (25)6.4 调试结果及问题的提出 (25)6.4.1 调试中出现的问题 (25)6.4.2调试结果 (25)设计总结 (26)附录 (27)参考文献 (36)22 系统分析2.1硬件部分单片机工作在单任务状态,时间充裕,速度不是主要矛盾,所以用软件实现数字和符号的输入以及计算功能,以减少硬件开销。
接口用硬件实现。
具体器件的名称和特点如下表所示:表2-1 硬件选择比较通过以上分析,本次设计所选用的芯片为:8279A芯片、LED发光二极管、十六进制小键盘。
由于8279A的输出电流与LED不匹配的问题,需要驱动电流,本实验中选择74LS240。
32.1.1 8279A2.1.1.1 8279A在本设计中的作用在本设计中用8279A芯片控制键盘输入和LED显示。
2.1.1.2 8279A的功能分析1、8279A主要特性8279A芯片是一种通用的可编程序的键盘/显示接口器件,单个芯片就能完成键盘输入和LED显示控制两种功能。
可与任何8位机接口。
8279A芯片包括键盘输入和显示输出两个部分。
若采用8279作为键盘/显示器接口,则可以实现对键盘、显示器自动扫描,8279主要是管理键盘输入和显示器输出的。
课程设计说明书-计算器

C#程序设计及课程设计课程设计说明书设计题目:计算器目录1 引言 (2)1.1课程设计的目的 (2)1.2本选题的内容要求 (2)1.3 软件开发运行环境 (2)2 总体设计 (3)2.1设计思路 (3)2.2软件总体结构图 (3)2.3主要功能模块的设计 (3)3 详细设计与实现 (4)3.1 主界面模块 (4)3.1.1主界面功能设计 (4)3.1.2主界面设计 (4)3.1.3主界面主要代码 (4)3.2 计算过程演示 (10)3.2.1乘法运算过程演示 (10)3.2.2求根以及连续操作的演示 (11)4 小结和展望 (13)参考文献 (13)1引言1.1课程设计的目的本课程设计将实现一个简单计算器。
其类似于Windows附件中自带的计算器。
但这个计算器实现了更复杂的功能,具有简洁大方的图文外观。
即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。
在课程设计中,系统开发平台为Windows 2000XP.程序设计设计语言采用Visual C#。
1.2本选题的内容要求1)可以显示计算数字2)可以进行加减乘除四则运算3)可以实现进制转换,求根4)可以进行清零运算5)可以进行连续计算1.3 软件开发运行环境本软件开发平台:Visual Studio本软件运行环境:Windows 7或以上版本2总体设计2.1设计思路先新建窗体应用程序创建数字与运算符的按钮,再完善相关的代码部分。
点击按钮中的数字键和运算符键就能进行简单的加、减、乘、除四则运算;还能通过用户自己在文本框中输入数字,进行简单运算。
计算流程:首先点击数字按钮时,将按钮数值添加到文本框当中,并将该数值保存到一个字符串中,再次点击数字按钮时,将之前保存的字符串与新的数值拼接起来,再添加到文本框当中,直到点击运算符按钮时,将文本框当中的字符串保存在一个字符串变量中,然后重置文本框内容,随后输入第二个计算数据时,用同样的办法保存数据,最后通过控制运算符先将字符串数据转化成单精度类型,然后计算出结果并显示到文本框当中。
迷你计算器设计说明书

*******************实践教学*******************兰州理工大学计算机与通信学院2014年秋季学期Java 课程设计题目:迷你计算器设计专业班级:计算机3班姓名:刘忠雄学号:12240304指导教师:年福忠成绩:前言当今社会是信息社会,科技经济高速发展的社会!为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。
由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品!随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小!电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成!电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延!下面我们将用我们学习的Java语言编写一个简易的计算器程序!实现简单的初步的计算功能!本程序的编写基础是Java汉化平台,它在Java的原有基础上实现了多汉字的支持方便了我们的使用。
生成的程序可移植性强兼容性好稳定!现在只实现了加、减、乘、除。
这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。
但是,每次只能运算一个表达式。
不能运算多个表达式。
在程序里面在添加一组选择函数即可。
前言 (1)目录 (2)摘要 (3)1.1程序流程图 (4)1.2设计思路 (5)第二章详细设计 (6)2.1系统总体框架的设计 (6)2.2加减乘除基本运算 (8)2.3各运算符的事件处理 (8)2.4数据的事件处理 (10)第三章系统测试 (12)3.1各运算符结果测试 (12)3.1.1加减乘除四则运算举例 (12)3.1.2正余弦为例: (13)3.1.3n!为例: (14)3.1.4以指数pow()举例 (15)3.2软件可靠性分析。
(15)第四章软件使用说明书 (16)4.1件运行界面 (16)4.2软件功能说明 (16)4.3软件运行环境 (16)设计总结 (17)参考文献 (18)致谢 (19)本次设计是通过java编程技术来设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算,该计算器可以实现加法、减法、乘法、除法的简单运算,也可以实现一些简单的扩展运算如:阶乘,指数,正弦,余弦,正切。
简易计算器课程设计 报告

信息与电气工程学院课程设计说明书(2011/2012学年第二学期)课程名称:单片机课程设计题目:简易计算器的设计专业班级:学生姓名:学号:指导教师:设计周数:2周设计成绩:2012年6 月21 日目录一、课程设计目的 (3)二、课程设计正文 (3)2.1、设计所需器材 (3)2.2、设计任务和要求 (3)2.3、设计方案 (4)2.3.1、硬件设计 (4)1.STC90C52AD说明 (4)2.数码管说明 (5)3.晶体振荡电路设计 (6)4.数码管和位选设计 (6)5. 复位设计 (7)6.蜂鸣器电路设计 (8)7.矩阵键盘的设计 (8)2.3.2、软件设计 (9)2.4、软硬件调试 (19)三、课程设计总结 (19)四、参考文献 (20)附录一、系统原理图 (21)附录二、PCB图 (22)课程设计评语及成绩 (23)一、课程设计目的1.熟悉和掌握单片机的结构及工作原理。
2.掌握单片机的接口技术及相关外围芯片的外特性及控制方法。
3.通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。
5.通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。
二、课程设计正文2.1 设计所需器材电阻: 1K (8个) 0.330k(8个) 10k(1个) 按键开关:17个极性电容(1个 10uf)非极性电容:30pf(5个)晶振:6MHZ(1个)三极管:PNP(1个) NPN(2个)共阴极数码管:2个蜂鸣器:1个底座:DIP40(1个)DIP16(1个)万能电路板:1个芯片:STC90C52AD(1片) MAX232(1片) ,74HC573(片)发光二极管:3个接线端子:1个2.2 设计任务和要求课程设计任务要求做一个简易数字计算器。
设计的主要内容是采用STC90C51AD作为控制单元,实现简易计算器功能。
简单计算器课程设计(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是用来设置在不一样进制下同意输入的最多半字位数,默以为十进制char mark='n';//设置运算符号为没有即为‘ n’,它的值是‘ +’‘ - ’‘ * ’‘ / ’public double data=0;//设置运算数据为零public char ch;//用到暂时寄存所按按钮的第一个字符public boolean Refresh=false;//设置 lab 能否要在输入数据的时候刷新,初始为否4.主要方法说明://用来办理按了运算符后的计算 -public void js() throws This_number_too_big //指定由method抛出异常{if (mark=='n') //没有运算符{mark=ch; //,则设置运算符为刚才输入的字符,data=Double.parseDouble(lab.getText());//则设置运算数据为lab 的值Refresh=true;// 则设置下一次输入的时候要刷新lab}else //假如采纳的是连续运算(即没有使用‘=’号)则运转下边的语句{switch (mark) //依据运算符计算结果,并把结果保留到data{ case '+': data+=Double.parseDouble(lab.getText()); break;case '-': data-=Double.parseDouble(lab.getText()); break;case '*': data*=Double.parseDouble(lab.getText()); break;case '/': data/=Double.parseDouble(lab.getText()); break;}lab.setText(Double.toString(data)); //显示运算结果mark=ch;// 设置运算符为刚才按下的运算符Refresh=true;// 则设置下一次输入的时候要刷新 labnumber=lab.getText().length();//设置输入的字符个数// System.out.println(lab.getText());//用来调试用的if (data>Double.MAX_VALUE)//假如 data 超出 double 种类的最大值则抛出自定义的一个异样类{throw new This_number_too_big(); }}}//end js() methodpublic void enter()//办理输入字符{if(Refresh==true)//假如已经设置了运算符则在下一次输入数据的时候要把从前 lab 的内容消除去{lab.setText("0"); number=0; Refresh=false;}if(lab.getText().charAt(0)=='0'&& lab.getText().length()==1)//假如 lab 的内容为 0 则, lab 的内容将被所输入的字符取代,//不然直接在 lab 的内容后边加上所输入的字符{lab.setText(Character.toString(ch)); number++;}elseif(number<length){number++;lab.setText(lab.getText()+ch);}}//end enter() method//八进制或十六进制变换成十进制I public String goto_10(String s,long l)//参数 s:是要变换的字符串,因为输入的控制,保证了字符串的合法性;//参数 l :使用来设置是将 8 进制仍是 16 进制变换成 10 进制,它的有效值为8或 16;{ String str=s; //用来变换的字符串long j=l; //表示进制long lg=0,jing=1;//lg用来记录权乘和,jing用来记录位权char cha;//暂时记录要变换的字符for(int i=1;i<=str.length();i++){ cha=str.charAt(str.length()-i);switch(cha){ case '1': lg=lg+1*jing;break;case '2': lg=lg+2*jing;break;case '3': lg=lg+3*jing;break;case '4': lg=lg+4*jing;break;case '5': lg=lg+5*jing;break;case '6': lg=lg+6*jing;break;case '7': lg=lg+7*jing;break;case '8': lg=lg+8*jing;break;case '9': lg=lg+9*jing;break;case 'A': lg=lg+10*jing;break;case 'B': lg=lg+11*jing;break;case 'C': lg=lg+12*jing;break;case 'D': lg=lg+13*jing;break;case 'E': lg=lg+14*jing;break;case 'F': lg=lg+15*jing;break;}jing*=j; //位权升一级,为下次使用做好准备}return Long.toString(lg);}//end String goto_10() method}3.系统流程图开始初始化数据Double result=0; //储存结果Boolean newnum=true; //能否新数String lastop=” =”; /储存操作符按下数字按钮按下操作符( +-* 、 =)按钮判断把目前文本框的内容转为double 后传给calc 方法calc(double.parsedouble(txt.gettext()))newnumTrue false文本框显示新数;文本框接着显示Lastop=”操作txt.settext(“数txt.settext(txtgettext()+ ”符”newnum=true 字”)newnum=false 数字”)4.详尽设计第一剖析这个说要达成的任务,它的主要任务是达成十六进制、十进制、八进制和二进制之间的互相转变,需要包括负数,但不用考虑小数。
c语言简单计算器的设计说明书

尼玛大学课程设计说明书学院、系:尼玛学院专业:尼玛工程学生姓名:李尼玛学号:1xxx438 设计题目:简单计算器的设计起迄日期: 2013年10月11日~2013年11月16日指导教师:王尼玛日期: 2013年11月16日1 设计目的●通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固C语言课程学习过的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!●通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
2 任务概述设计程序代码使其能够:接受一个字符串,然后由左至右对其进行判断,如若是没有括号的四则运算,则直接计算并输出其值;若是带有括号,则对其括号进行判断,划分,并得出运算优先级,进行先后计算,最终得出其值。
3 模块划分程序主要由void SplitK(char *str);、void SplitPrem(char *str);、void Combine(float f1,char Operate,float f2);、void StringBracket(char *str);四个函数模块组成。
分别实现:字符判断,优先级判断,运算实现等的功能。
4 主要函数说明及其N-S图5 程序运行数据及其结果图5.1 加法运算1+1=2图5.2 减法运算 1-1=0图5.3 组合运算1:(1+3)*2=8图5.4 组合运算2:(12-2)/3=3.336 课程设计心得这次“简单计算器制作”的课程设计不仅让我对C语言的熟悉程度上升到了另一个高度。
它是我在编程路途上的一次小的跳跃。
而且在处理非常规数据类型的运算的锻炼下,使我对编程语言有了一个新的认识。
当看着一个具有界面的计算器的模型成品出现在自己面前时,心中有着无限感慨,原来编程也不是非常遥不可及的,原来在编程的趣味性中能让我学到更多有意思的知识。
简易计算器说明书

(7)其他基本函数,例如求平方根或百分比键 (%)
更高级的模块也许会有一个单数值记忆按键(M+,M-),可在需要时叫回。
高级电子计算器
较高级的科学计算器或工程型计算器支持三角函数、统计与其他函数。而最先进的现代计算器甚至可显示图型,并且包含计算机代数系统。这种计算器可以编写程序,且内含了代数方程式求解程序、经济模型甚至游戏程序。这类计算器可显示填满显示屏的单一数值。并可将数字以科学记数法表现至9.999999999*10。如果用户试图输入一过大的数值或运算产生过大数值的算式(例如输入100!,即100阶乘),则计算器仅显示错误一词。因为存储器如此有限的计算器无法存储如此巨大的输入(>=10^160)。
1)在程序之中加入足够的操作提醒环节,使得使用者能够清楚的掌握操作流程和界面。
2)程序中分类完成+、-、*、/、x^y、求余、x为底y的对数、求平均,sin、cos、tan、exp、ln、以10为底的对数、取整、平方、立方、绝对值,进制之间的转换;使用者可以根据个人的需要在提示后输入相应的代码,然后进行相应的运算,最后在运算结果中查找自己需要的即可;如需做多步骤运算,只要在上一次运算结束后按照提示输入相应代码即可选择是继续进行运算还是退出程序,操作简便。
3.2算法说明10
4调试分析14
4.1调试目的14
4.2测试要求14
4.3测试方法14
4.4调试与测试结果17
5总结19
参考文献21
致谢22
附录23
1概述
通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!通过C语言课程设计,使自己了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。
计算器说明书

汇编语言实训任务书题目:计算器学生姓名学号:杜政毅,惠攀龙12730108,郭益婷13730104班级:13软件工程1班题目类型:软件工程(R)指导教师:刘树群一、设计目的用汇编语言编程设计一个简单的计算器,实现四则运算数的交互式输入,并显示运算结果。
通过设计,掌握键盘和鼠标控制、显示输出和基本算术运算指令的应用,进一步提高综合运用知识的能力。
二、设计内容(包括原始数据、技术参数、条件、设计要求等):使用按键式操作,对任意给定的正确四则运算序列,能按照意图分部计算出其计算的有效结果数值并输出。
三、设计要求题目的选择是根据汇编语言的特点主要针对系统内部的一些中断调用、系统功能调用、系统数据处理、文件数据处理、以及相关的API而设计的,是对所学课程知识较为系统的应用。
由于汇编语言编程相对其他语言编程比较复杂,因此,在设计上应把重点放在程序的功能实现上,不要太在意程序的结构和显示界面的设计。
不要局限于题目所规定的要求,可以灵活裁减,设计出功能更完善程序。
另外,也可以自己设计题目,同时,提出详细的功能描述,经指导老师审查同意后也可作为课程设计的题目。
四、提交的成果1. 设计说明书一份,内容包括:包含任务书一份1) 中文摘要100字,关键词3-5个。
2) 实训题目、内容、要求。
3)总体设计(包含几大功能模块)。
4)详细设计(各功能模块的具体实现算法——流程图)5)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。
6)调试分析(包含各模块的测试用例,及测试结果。
)7)总结(实训完成了哪些功能,还有哪些地方需要改进,及通过实训有何收获,调试程序的体会等)8) 参考文献、致谢等。
五、主要参考资料[1]李敬兆等编.《汇编语言程序设计》.合肥:中国科学技术大学出版社,2008.9?[2]李敬兆等编.《汇编语言程序设计实验教程及习题解答》.合肥:中国科学技术大学出版社,2008.9?[3]王爽等编.《汇编语言》.北京:清华大学出版社,2003.5?[4]曹加恒等编.《新一代汇编语言课程设计》.北京:高等教育出版社,2003.6?[5]杨路明等编.《汇编语言程序设计》.长沙:中南大学出版社,2005.8[6]詹仕华等编.《汇编语言程序设计》.北京:中国电力出版社,2008.2[7]詹仕华等编.《汇编语言程序设计习题解答及课程设计、设计辅导》.北京:中国电力出版社,2008.2[8]宋彩莉等编.《汇编语言程序设计学习指导》.西安:西安交通大学出版社,2008.2?六、各阶段时间安排(共1周)摘要本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。
简易计算器设计报告

简易计算器总体设计说明书编制单位:侏罗纪工作室作者:zhangmangui版本:V0.2发布日期:2011-2-6审核人:批准人:1.1背景前面刚采用单片机设计完,感觉只会熟练使用定时器和中断,为了更好的能够掌握单片机的一些外围设备,当然这些设备都将在后面的一些器件中用到,所以我必须设计一些小的系统去熟悉这些外围设备,这些设备有矩阵键盘,液晶显示,A/D D/A转换,点阵、DS1302时钟芯片,热、光、温度采集,红外采集,串行通信等。
此次设计是为了联系矩阵键盘而设计的,再设计中所采用的键盘扫描我自认为是比较独特的,没有采用中断后扫描,但有中断扫描的效果。
关于计算器的功能方面,将在下面介绍。
2、总体设计2.1电路图如下数码管及对应的编号k8 k7 k6 k5 k4 k3 k2 k12、软件模块的设计源程序如下:/************************************************文件名:简易计算器.c*描述:本次设计一个计算器,能够进行+-* /运算创建人:zhangmangui时间:2011-02-20***********************************************/#include<reg52.H>#include <INTRINS.H>#include<stdio.h>#include<math.h>#define uchar unsigned char#define uint unsigned intsbit p14=P1^4; //矩阵键盘输入sbit p15=P1^5;sbit p16=P1^6;sbit p17=P1^7;sbit s0=P2^0; 、、//8位数码管位选sbit s1=P2^1;sbit s2=P2^2;static int k1,k2,k3,k4,k5,k6,k7,k8; //8位数码管相应显示的数static int key,jkey; // 当前按键值和保存+-*/键值static int flag=0,flag1=0;long int end1,end2,end3; //被加数、加数、和的存储单元uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00 }; //0~9及全灭的对应段显数void delay(){ uint i,j;for(i=0; i<3; i++)for(j=0; j<500; j++) ;}void delay1(void){ uint n;for(n=100;n>0;n--);}void delay20ms(){ uint i,j;for(i=0; i<10; i++)for(j=0; j<1500; j++) ;}void lcdshaom(void) //数码管扫描{while(s0==0 && s1==0 && s2==0){P0=table[k8];delay1();P0=0x00;s0=1;s1=0;s2=0;}while(s0==1 && s1==0 && s2==0){P0=table[k7];delay1();P0=0x00;s0=0;s1=1;s2=0;}while(s0==0 && s1==1 && s2==0){P0=table[k6];delay1();P0=0x00;s0=1;s1=1;s2=0;}while(s0==1 && s1==1 && s2==0){P0=table[k5];delay1();P0=0x00;s0=0;s1=0;s2=1;}while(s0==0 && s1==0 && s2==1){P0=table[k4];delay1();P0=0x00;s0=1;s1=0;s2=1;}while(s0==1 && s1==0 && s2==1){P0=table[k3];delay1();P0=0x00;s0=0;s1=1;s2=1;}while(s0==0 && s1==1 && s2==1){P0=table[k2];delay1();P0=0x00;s0=1;s1=1;s2=1;}while(s0==1 && s1==1 && s2==1){P0=table[k1];delay1();P0=0x00;s0=0;s1=0;s2=0;}}jzsaomiao() //扫描键盘返回键值{uint col=0;uint row=0;P1=0xfe;_nop_();_nop_();if(P1!=0xfe){ col=0;if(p14==0)row=0;if(p15==0)row=1;if(p16==0)row=2;if(p17==0)row=3;}P1=0xfd;_nop_();_nop_();if(P1!=0xfd){ col=1;if(p14==0)row=0;if(p15==0)row=1;if(p16==0)row=2;if(p17==0)row=3;}P1=0xfb;_nop_();_nop_();if(P1!=0xfb){ col=2;if(p14==0)row=0;if(p15==0)row=1;if(p16==0)row=2;if(p17==0)row=3;}P1=0xf7;_nop_();_nop_();if(P1!=0xf7){ col=3;if(p14==0)row=0;if(p15==0)row=1;if(p16==0)row=2;if(p17==0)row=3;}return (col*4+row);}void runhig(void) //输入被加数和加数时的移位显示{if(k1==0 && k2==10)k1=key;else{k8=k7;k7=k6;k6=k5;k5=k4;k4=k3;k3=k2;k2=k1;k1=key;}}/*void runlow(void){if(k1==0 && k2==10)k1=key;else{k8=k7;k7=k6;k6=k5;k5=k4;k4=k3;k3=k2;k2=k1;k1=key;}} */void jisuan(void) //计算器的核心,判断操作及计算结果{ long int i;if(key!=3 && key!=7 && key!=11 && key!=15 && key!=12 && key!=14) //判断是否按+-*/ 清零和= 按键{flag=0;switch(key){case 0 :key=1;break;case 1 :key=2;break;case 2 :key=3;break;case 8 :key=7;break;case 9 :key=8;break;case 10:key=9;break;case 13:key=0;break;default: ;}if(flag==0 && flag1==0) //flag==0则输入被加数{runhig();lcdshaom();}if(flag==0 && flag1==1) //flag1==1则输入加数{runhig();lcdshaom();}}else{if(flag==0 && flag==0){if(k8==10) //当k~==10时说明数码管全灭,为了计算相应的值,需将其改为0k8=0;if(k7==10)k7=0;if(k6==10)k6=0;if(k5==10)k5=0;if(k4==10)k4=0;if(k3==10)k3=0;if(k2==10)k2=0;end1=k8*10000000+k7*1000000+k6*100000+k5*10000+k4*1000+k3*100+k2*10 +k1; //不是数字键按下则计算被加数并保存_nop_();_nop_();}flag1=1;if(key==14) //按下=按键{flag=0;flag1=0;if(k8==10)k8=0;if(k7==10)k7=0;if(k6==10)k6=0;if(k5==10)k5=0;if(k4==10)k4=0;if(k3==10)k3=0;if(k2==10)k2=0;end2=k8*10000000+k7*1000000+k6*100000+k5*10000+k4*1000+k3*100+k2*10 +k1; //计算加数_nop_();_nop_();switch (jkey){case 3 :end3=end1+end2;break; ?、//计算结果case 7 :end3=end1-end2;break;case 11:end3=end1*end2;break;case 15:end3=end1/end2;break;default:;}k8=end3/10000000; i=end3%10000000; //转换显示k7=i/1000000; i=i%1000000;k6=i/100000; i=i%100000;k5=i/10000; i=i%10000;k4=i/1000; i=i%1000;k3=i/100; i=i%100;k2=i/10; i=i%10;k1=i;end1=0;end2=0;end3=0;lcdshaom();}if(flag==0 && flag1==1) //如果按下+-*/则数码管只显示0{k1=0; k2=10;k3=10;k4=10;k5=10;k6=10;k7=10;k8=10;//runhig();lcdshaom();}if(key==12) //清零按键{flag=0;flag1=0;end1=0;end2=0;end3=0;jkey=0;k1=0; k2=10;k3=10;k4=10;k5=10;k6=10;k7=10;k8=10;lcdshaom();}if(key==3|| key==7 || key==11 || key==15) //按下+-*/则保存键值{jkey=key;lcdshaom();}}// lcdshaom();}//void EX0_time() interrupt 0//{jisuan(); }void main(void){P0=0x00;k1=0; k2=10;k3=10;k4=10;k5=10;k6=10;k7=10;k8=10;//EX0=1;//IT0=1;//EA=1;while(1){ P1=0xf0;delay();lcdshaom();if(P1!=0xf0){delay20ms();if(P1!=0xf0) //条件成立则说明有按键按下这样就可以不用中断key=jzsaomiao();delay20ms();jisuan(); //按键一次判断并计算一次delay20ms();lcdshaom();}}}3、演示结果112 + 112 =224 的过程4、总结程序中存在问题,希望您能指教。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心。
如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。
计算器的出现给我们的生活带来了巨大的便利,计算器在我们的生活中随处可见,也是我们日常生活中不可缺少的工具。
本设计是基于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。
目录摘要 ......................................................................... 背景 .........................................................................1.绪论 .......................................................错误!未定义书签。
设计的目的意义............................................错误!未定义书签。
.设计的任务和要求.........................................错误!未定义书签。
计算器设计所用的方法.....................................错误!未定义书签。
2. 方案设计...................................................错误!未定义书签。
方案论述................................................错误!未定义书签。
方案论证................................................错误!未定义书签。
3.整体设计....................................................错误!未定义书签。
4.硬件系统框架................................................错误!未定义书签。
Lcd1602显示器..........................................错误!未定义书签。
单片机....................................................错误!未定义书签。
复位电路..................................................错误!未定义书签。
按键电路.................................................错误!未定义书签。
5. 软件设计程序框图...........................................错误!未定义书签。
程序流程图................................................错误!未定义书签。
程序模块化编写...........................................错误!未定义书签。
主函数程序设计........................................错误!未定义书签。
6软件仿真与调试..............................................错误!未定义书签。
Proteus 仿真软件的介绍..................................错误!未定义书签。
Proteus 电路仿真图......................................错误!未定义书签。
软件调试................................................错误!未定义书签。
测试分析................................................错误!未定义书签。
总结 .........................................................错误!未定义书签。
【参考文献】.................................................................. 附录 .........................................................................1.绪论设计的目的意义随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。
电子产品的更新速度快就不足惊奇了, 单片机的应用已经越来越贴近生活,电子计算器在我们的生活中随处可见,给我们的生活带来了巨大的便利,随着技术的不断更新,用单片机来实现一些电子设计也变得容易起来。
通过本次项目设计,应用所学相关知识资料,来完成简易计算器的设计,以达到理论与实际更好相结合进一步提高综合运用所学知识和设计能力的目的。
通过本次设计的训练,可以使我在基本思路和基本方法上对基于51 单片机的嵌入式系统有一个比较感性的认识,并具备一定程度的设计能力。
.设计的任务和要求为了满足计算器的基本要求,可以基本的运算(加减乘除),数据归零和出错警告提示,我们采用基于单片机设计计算器,并用LCD字符液晶显示器显示数据,4*4 的矩阵键盘实现数据输入.分别对键盘输入检测模块;LCD显示模块;算术运算模块;按键处理及提示模块进行设计,并用设计了系统方框图,同时使用了KeiluVision4与Proteus软件进行了仿真分析其设计结果计算器设计所用的方法①以单片机为控制器件,采用c语言进行程序设计,采用单片机智能控制,结合外围电子电路,可以进行“加、减、乘、除”四则运算。
②使用单片机最小系统设计计算器系统,系统以单片机为主控单元,③借助Proteus软件,进行仿真,对设计原理、检测方法进行验证。
④借助了KeiluVision4软件对程序进行了调试和修改。
⑤在基于51单片机的开发板上进行了测试。
2.方案设计方案论述①方案一根据功能和指标要求,本系统选用MCS-51系列单片机AT89C51为主控机。
通过扩展必要的外围接口电路,实现对计算器的设计。
计算器电路包括三个部分:显示电路、4*4键扫描电路、单片机微控制电路。
用七段数码管作为显示电路,矩阵键盘作为输入电路。
模块图如图所示。
图方案一模块图②方案二根据计算器的功能要求,选择AT89C51为主控机,通过扩展必要的外围接口电路,实现对计算器的设计。
外部主要由4*4按键键盘和一个液晶显示屏构成,内部由一块AT89C51单片机构成。
计算器电路包括四个部分:选用LCD作为显示部分,键盘作为输入部分,运算模块,单片机控制部分。
模块图如图所示。
图方案二模块图方案论证方案一:这种方案功能简单,在生活中使用较少,缺乏实际于运用价值,用数码管显示,不能显示字符,所以不能显示运算过程。
方案二:此种方案较为经济,方便,具有模块化的特点,因为将计算运算电路全部集成在了51单片机上,具有高效率,运算功能强大。
lcd1602字符液晶显示器可以显示运算过程,便于计算,随着价格的下降,已经成为了生活中计算器的主流配置。
综上所述:所以我们小组采用方案二,采用89c51单片机为运算处理模块,使用lcd1602字符液晶显示器来做显示模块,矩阵键盘为输入模块,这种设计便于观看,大大提升了我们使用计算器的便利度。
3.整体设计根据简易计算器的功能和指标要求,本设计系统选用MCS-51系列单片机AT89C51为主控机。
通过扩展必要的外围接口电路,实现对简易计算器的设计。
计算器电路包括三个部分:显示电路、4*4按键电路、单片机微控制电路。
具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用lcd1602字符液晶显示器,显示数据和结果。
(2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、.和等号键,故只需要16 只按键即可。
(3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。