多功能计算器课程设计

多功能计算器课程设计
多功能计算器课程设计

桂林航天工业学院

课程设计报告

系(部):电子信息与自动化学院专业班级20140410Z01

学生姓名:相伟烨学号20130410Z0101

课程:信息处理技术实践

设计题目:基于51单片机的计算器设计

完成日期:2016年12月1日

指导教师评语:

实验态度:□严谨认真□循规蹈矩□敷衍应付

文字表述:□简明通顺□重复冗长□没有实质内容实验结果:□一次成功□改进后成功□不成功

课堂评价:□优秀□良好□中等□及格□不及格

成绩(五级记分制):

指导教师(签字):____

摘要

[摘要] 过去很多电子产品采用纯电路设计,单片机的出现促进了电子产品的更新换代,用单片机进行产品开发更为方便。

本课程设计是以Atmel半导体公司的AT89S52单片机为计算核心的计算器模拟系统设计,输入采用5×8矩阵键盘,可以进行加、减、乘、除、正弦、余弦、正切、求N次方和求对数小数点后6位带正负号数字运算,在LCD1602上显示操作过程和运算结果。

科技的进步使我们从以前复杂的模拟电路中解放出来,一块小至几平方厘米的单片机,里面就集成多种不同功能的电路。现在应用较为广泛的普通计算器和手机应用里的计算器软件,大多都是只能实现加减乘除运算的简易计算器,而计算功能较多的科学计算器价格又会高出很多。本设计希望开发一款价格与普通计算器相近但功能更多的计算器,以填补市场空白。

[关键词] AT89C52;LCD1602;计算器;矩阵键盘

目录

第一章前言........................................................................................................................................ - 4 -

1.1 系统开发背景 ............................................................................................................................................. - 4 -

1.2 系统开发意义 ............................................................................................................................................. - 4 -

1.3 设计目的 ..................................................................................................................................................... - 4 -第二章方案论证................................................................................................................................ - 4 -

2.1 方案构思 ..................................................................................................................................................... - 4 -

2.2 方案比较与选择 ....................................................................................................................................... - 5 -第三章系统硬件设计及说明............................................................................................................ - 5 -

3.1系统组成及总体框图 .................................................................................................................................. - 5 -

3.2元件简介 ...................................................................................................................................................... - 6 -

3.2.1 STC89C52特点 ................................................................................................................................ - 6 -

3.2.2 LCD1602液晶显示屏 ................................................................................................................... - 10 -第四章设计原理分析...................................................................................................................... - 10 -

4.1 设计方案的确定 ..................................................................................................................................... - 10 -

4.2计算器硬件方案及硬件资源分配 ............................................................................................................ - 11 -

4.2.1 硬件资源分配 ................................................................................................................................ - 11 -

4.2.2 系统的硬件设计 ............................................................................................................................ - 11 -

4.2.3 显示电路的设计 .................................................................................................................................... - 12 -第五章计算器的软件设计.............................................................................................................. - 12 -

5.1计算器的软件规划 .................................................................................................................................... - 12 -

5.2 键盘扫描的程序设计 ............................................................................................................................... - 13 -

5.3 显示模块的程序设计 ............................................................................................................................... - 13 -

5.4 主程序的设计 ........................................................................................................................................... - 13 -总结.................................................................................................................................................... - 13 -参考文献............................................................................................................................................ - 14 -附录.................................................................................................................................................... - 15 -附录一:系统程序清单 .................................................................................................................................. - 15 -

第一章前言

1.1 系统开发背景

电子产品的不断推陈出新为我们的生活带来了极大的便利,尤其是计算机的出现更是如此。社会对计算器的需求十分大。然而常用的普通计算器和手机应用里的计算器软件都是只能实现加减乘除的简易计算器,并不能满足更高的需求。而科学计算器虽然功能强大,但价格颇高。

1.2 系统开发意义

计算器的应用十分广泛,在学校、商店、办公室等等。比如对于中学生,普通计算器价格一般为8至10元,虽然便宜,但只能实现加减乘除的简易计算器并不能满足他们的计算需求。而科学计算器价格至少为几十元,虽然功能强大,但很多功能学生也并未用上。本设计希望开发一款多功能计算器,功能介于简易和科学计算器之间,而价格控制在10元以内,以填补这方面的市场空白。

1.3 设计目的

本设计的目的在于使我们进一步掌握51单片机的理论知识,理解单片机系统的软件和硬件的设计,提高实践动手能力。通过完成本课程设计的项目,使我们对《单片机系统设计与Protues 仿真》这门课有更为深入的了解。

1、对字符液晶LCD的工作原理,比如使用初始化、清屏、显示有更为深入的认识,并会使用LCD 液晶显示计算过程和结果;掌握液晶模块的驱动方法和编程方法,了解LCD如何与51单片机连接并设计相应电路,利用51单片机对液LCD进行驱动和操作。

2、设计过程中充分研究计算器的内部逻辑,并进行软件设计和后期调试,学会操作方法。

第二章方案论证

2.1 方案构思

在进行设计之前,通过搜集资料,我筛选出两种方案,并计划通过多方面的比较最终确定一种方案来进行项目的设计。一种是以FPGA芯片为控制核心;另一种是以Atmel公司的AT89S52单片机为控制核心。

1、方案一:采用FPGA控制

FPGA是一种高密度的可编程逻辑器件,自从Xilinx公司1985年推出第一片FPGA以

来,FPGA的集成密度和性能提高很快,其集成密度最高达500万门/片以上,系统性能可达200MHz。由于FPGA器件集成度高,方便易用,开发和上市周期短,在数字设计和电子生产中得到迅速普及和应用,并一度在高密度的可编程逻辑器件领域中独占鳌头。

但是而基于 SRAM编程的FPGA,其编程信息需存放在外部存储器上 ,需外部存储器芯片 ,且使用方法复杂 ,保密性差,而其对于一个简单的计算器而言,实用FPGA有点大材小用,成本太高。

2、方案二:采用AT89C52

单片机是单片微型机的简称,故又称为微控制器MCU(Micro Control Unit)。通常由单块集成电路芯片组成,内部包含有计算机的基本功能部件:中央处理器CPU,存储器和I/O接口电路等。因此,单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机广泛用于智能产品,智能仪表,测控技术,智能接口等,具有操作简单,实用方便,价格便宜等优点,而其中AT89S52以MCS-51为内核,是单片机中最典型的代表,应用于各种控制领域。

2.2 方案比较与选择

通过以上两种方案的论证和比较,我们比较了性能和价格两个方面,最终选择了以AT89S52单片机作为控制部分进行多功能计算器项目的设计,51单片机足够可以实现加减乘除、正余弦、正切、求N次方和求对数的精密计算。

第三章系统硬件设计及说明

3.1系统组成及总体框图

图1 系统组成及总体框图

3.2元件简介

3.2.1 STC89C52特点

1、主要性能:

(1) ? 8031 CPU与MCS-51 兼容

? 8K字节可编程FLASH存储器(寿命:1000写/擦循环)

?全静态工作:0Hz-33MHz

?三级加密程序存储器

? 128*8位内部RAM

? 32条可编程I/O线

?三个16位定时器/计数器

?八个中断源

?全双工UART串行通道

?低功耗的闲置和掉电模式

?掉电后中断可唤醒

?看门狗定时器

?双数据指针

?掉电标识符

?片内振荡器和时钟电路

(2) 管脚说明:

VCC:供电电压。

GND:接地。

2、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内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程 Flash。同时该芯片还具有PDIP、TQFP 和PLCC等三种封装形式,以适应不同产品的需求。

3、AT89S52引脚功能

AT89S52 单片机为40 引脚。

(1)口线:P0、P1、P2、P3 共四个八位口。

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL 逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

在flash编程和校验时,P1口接收低8位地址字节。

引脚号第二功能:

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5 MOSI(在系统编程用)

P1.6 MISO(在系统编程用)

P1.7 SCK(在系统编程用)

P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。

在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

P3口亦作为AT89S52特殊功能(第二功能)使用,如表3.2.1所示。

在flash编程和校验时,P3口也接收一些控制信号。

此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

(2)其他引脚说明:

RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。

ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。

对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。

FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

XTAL1,XTAL2接石英晶体振荡器。

图4 晶振外接结构引脚图

XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择,在本设计电路中选用了12MHz。电容取20PF左右。机器周期=12×时间周期,如12MHz的机器周期为1微秒。

(3)控制或复位引脚

RESET 此脚为高电平时(约2个机器周期)可将单片机复位。

RST/VPD——当出现两个机器周期高电平时,单片机复位。复位后,P0~P3输出高电平;SP 寄存器为07H;其它寄存器全部清0;不影响RAM状态。

AT89SXX系列单片机实现了ISP下载功能,故而取代了89CXX系列的下载方式,也是因为这样,ATMEL公司已经停止生产89CXX系列的单片机,现在市面上的AT89CXX多是停产前的库存产品。

4、AT89S52的编程方法

编程前,须按编程模式表设置好地址、数据及控制信号;顺序如下:

①在地址线上加上要编程单元的地址信号。

②在数据线上加上要写入的数据字节。

③激活相应的控制信号。

④将EA/Vpp端加上+12V编程电压。

⑤每对Flash存储阵列写入一个字节或每写入一个程序机密位,加上一个ALE/PROG编程脉冲。每个字节写入周期是自身定时的,大多数约为50us。改变编程单元的地址和写入的数据,重复①—⑤步骤,直到全部文件编程结束。

单片机的现状及发展方向:

单片机是为了工业控制需要满足而诞生的,是自动控制系统的核心部件,因而也主要用于工业控制、智能化仪器仪表、家用电器中。它具有体积小,功能多、价格低、使用方便、系统

设计灵活等优点,应用领域不断扩大,除了工业控制,智能化仪表,通讯,家用电器外,在智能化高档电子玩具产品中也大量采用单片机芯片作为核心控制部件。

由于单片机主要面向工业控制,工作环境比较恶劣,入高温,强电磁干扰,甚至含有腐蚀性气体,在太空中工作的单片机控制系统,还必须具有抗辐射能力,这决定了单片机CPU于通用微机CPU具有不同的技术特征和发展方向:

(1) 可靠性高;

(2) 控制功能往往很强,数值计算交叉;

(3) 指令系统比通用微处理器慢的多;

(4) X系列芯片取代;

(5) 抗干扰性强,工作温度范围宽。

3.2.2 LCD1602液晶显示屏

1、应用简介

模块内部自带字符发生存储器(CGROM),字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是(41H),显示时模块把代码41H发给液晶模块,我们就能在液晶上看到字母“A”。

1602液晶模块内部的控制器共有11条控制指令,丰富的指令可以完成液晶的时序控制、工作方式式设置和数据显示等。

2 、LCD的特点:

(1)低压微功耗;

(2)平板型结构;

(3)被动显示型(无眩光,不刺激人眼,不会引起眼睛疲劳);

(4)显示信息量大(因为像素可以做得很小);

(5)易于彩色化(在色谱上可以非常准确的复现);

(6)无电磁辐射(对人体安全,利于信息保密);

(7)长寿命(这种器件几乎没有什么劣化问题,因此寿命极长,但是液晶背光寿命有限,不过背光部分可以更换)。

第四章设计原理分析

4.1 设计方案的确定

本设计需要使用LCD液晶显示屏和编码键盘。故选择静态显示和用编码键盘。使用LCD液

晶显示屏显示运算结果。

主程序进行初始化,其他的程序选择模块式的方式。首先对每个模块进行调试, 当模块调试成功后,逐一的加入主程序中,最后完成整个软件部分的设计。

4.2计算器硬件方案及硬件资源分配

4.2.1 硬件资源分配

主要用到的硬件:AT89S52 LCD液晶显示屏编码键盘

硬件分配:

1、P0、P3口:做为输出口,控制LCD液晶显示屏显示数据的结果。

2、P1口:做为输入口,与键盘连接,实现数据的输入。

3、LCD液晶显示屏显示输出。

4.2.2 系统的硬件设计

为了更好的实现系统得功能,硬件电路的设计应该遵循以下原则:

1、优化硬件电路

采用软件设计与硬件设计相结合的方法;尽管采用软件来实现硬件系统的功能时,也许响应时间会比单纯使用硬件时长,而且还要占用微处理器(MCU)的时间;但是,用软件实现硬件的功能可以简化硬件结构,提高电路的可靠性。所以,在设计本系统得时候,在满足可靠性和实时性的前提下,尽可能的通过软件来实现硬件功能。

2、可靠性及抗干扰设计

根据可靠性设计理论,系统所用芯片数量越少,系统的平均无故障时间越长。而且,所用芯片数量越少,地址和数据总线在电路板上受干扰的可能性也就越小。因此,系统的设计思想是在满足功能的情况下力争使用较少数量的芯片。

3、灵活的功能扩展

功能扩展是否灵活是衡量一个系统优劣的重要指标。一次设计往往不能完全考虑到系统的各个方面,系统需要不断完善以及进行功能升级。进行功能扩展时,应该在原有设计的基础上,通过修改软件程序和少量硬件完成。对于本系统而言,就是要求在系统硬件不变的情况下,能够通过修改软件程序,完成功能的升级和扩展。

根据第提出的系统设计方案,结合以上三条原则,确定了系统硬件的设计。计算器主要由以下一些功能模块构成:非编码键盘模块、LCD液晶显示屏模块等。

该系统的硬件设计采用了模块化的设计方法。AT89S52 单片机与LCD液晶显示屏显示电路是整个电路的核心,它们实现系统的功能要求。

前面叙述了该系统的设计说明,系统采用了比较简单的设计方案,所以该系统的硬件设计的总外围电路不会产生过多的干扰。在下面的阐述中,对系统的外围电路分别予以介绍。键盘部分采用编码键盘,显示部分采用LCD液晶显示屏完全能够很好的实现显示方面的要求。

4.2.3 显示电路的设计

当系统需要显示少量数据时,采用LCD液晶显示屏进行显示是一种经济实用的方法。P0口作为液晶显示的数据端口,P3.5-P3.7口作为其控制端口,控制LCD液晶显示屏显示输出数据。

第五章计算器的软件设计

5.1计算器的软件规划

简易计算器的程序主要包括以下功能模块:

1、键盘扫描和计算功能部分的程序;

2、基于LCD液晶显示屏的显示程序;

3、主模块,为系统的初始化。

5.2 键盘扫描的程序设计

键盘扫描子程序,首先读出P1的低四位,然后读出P1口的高四位。然后键值并显示缓存。然后将键如的值转换为ASCII 码然后就可以软件来设置硬件按键各个键代表的内容。

读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有行线均输出低电平,从所有读入键盘信息(列信息);第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。

数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。

5.3 显示模块的程序设计

显示模块程序首先要对显示模块进行初始化;然后控制光标的位置;定义液晶显示的控制端口,用SBIT 指令完成;然后设置清屏、关闭显示、归位、开显示、显示位置的首地址等等。

5.4 主程序的设计

主程序主要是用来对LCD 液晶显示屏进行初始化的。

总结

在硬件的设计过程中我走了好多的弯路,主要是对各个部分还没有完全了解时就开始开始动手仿真了。后来发现与设计的要求还有偏差,反复的改过了几次,浪费了大量的时间和体力。感受到设计人员要有耐心,要认真的从要求开始研究。软件的编写过程中费了很大的力气,因为软件的编写要求很高,要很细心,一不小心就会调用错误,很深刻的体会到作为软件编程人员是绝不能粗心大意的。一个程序的完成的速度和质量高低与细心与否有着很大联系。编程时,我充分使用了结构化的思想。这样因为语句较少,程序调试比较方便,功能模块可以逐一的调试,充分体现了结构化编程的优势。当每个模块都完成时,将其功能加到一起就完成了整体的设计。

图9 模块的流

参考文献

【1】张靖武,周灵杉.单片机系统的PROTEUS设计与仿真[M].北京:北京电子工业出版社【2】靳达.求是科技.单片机应用系统开发实例导航[M].:人民邮电出版社,2006

【3】刘守义. 单片机应用技术[M].:西安电子科技大学出版社,2001

【4】林志琦.基于PROTEUS的单片机可视化软硬件仿真[M].北京:北京航空航天大学出版社,2006

【5】胡汉才.单片机原理及接口技术.清华大学出版社,1996

【6】徐江海.单片机实用教程[M].北京:机械工业出版社,2007.

【7】肖洪兵. 跟我学用单片机. 北京:北京航空航天大学出版社,2002.8

【8】夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001

【9】谭浩强. C语言程序设计[M].北京:清华大学出版社,2000.

【10】刘福基. C语言程序设计与实训教程[M].北京:科学出版社,2004.

【11】张磊. C语言程序设计[M].北京:高等教育出版社,2005.

【12】严桂兰. C语言程序设计[M].厦门:厦门大学出版社,2006

附录

附录一:系统程序清单

#include //头文件

#define uint unsigned int

#define uchar unsigned char

sbit lcden=P2^6; //LCD1602控制引脚

sbit rs=P2^4;

sbit rw=P2^5;

sbit busy=P0^7;//LCD忙

char i,j,temp,num,num_1;

long a,b,c; //a,第一个数b,第二个数c,得数

float a_c,b_c;

uchar flag,fuhao;//flag表示是否有运算符键按下,fuhao表征按下的是哪个运算符//flag=1表示运算符键按下,flag=0表示运算符键没有按下;

//fuhao=1为加法,fuhao=2为减法,fuhao=3为乘法,fuhao=4为除法。

uchar code table[]={7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0};//运算数字输入数组

uchar code table1[]={ //经处理后进行键输入显示准备的数组

7,8,9,0x2f-0x30, //7,8,9,÷

4,5,6,0x2a-0x30, //4, 5, 6,×

1,2,3,0x2d-0x30, //1, 2, 3,-

0x01-0x30,0,0x3d-0x30,0x2b-0x30//C,0,=,+

};

void delay(uchar z) // 延迟函数

{uchar y;

for(z;z>0;z--)

for(y=0;y<110;y++);}

void write_com(uchar com) // 写指令函数

{ rs=0;

P0=com; //com指令付给P0口

delay(5);lcden=1;delay(5); lcden=0;}

void write_date(uchar date) // 写数据函数

{ rs=1; P0=date; delay(5);

lcden=1; delay(5); lcden=0;}

void init() //初始化

{num=-1;

lcden=1; //使能信号为高电平

rw=0;

write_com(0x38); //8位,2行

delay(5); write_com(0x38); //8位,2行

delay(5); write_com(0x0c); //显示开,光标关,不闪烁*/

delay(1); write_com(0x06); //增量方式不移位显竟獗暌贫柚?

delay(1); write_com(0x80); //检测忙信号

delay(1); write_com(0x01); //显示开,光标关,不闪烁

num_1=0;

i=0; j=0;

a=0; //第一个参与运算的数

b=0; //第二个参与运算的数

c=0;

flag=0; //flag表示是否有符号键按下,

fuhao=0; // fuhao表征按下的是哪个符号}

void keyscan() // 键盘扫描程序

{ P3=0xfe;

if(P3!=0xfe)

{ delay(20);// 延迟20ms

if(P3!=0xfe) { temp=P3&0xf0;

switch(temp)

{case 0xe0:num=0; break; //7

case 0xd0:num=1; break; //8

case 0xb0:num=2; break; //9

case 0x70:num=3; break; //÷

}

} while(P3!=0xfe);

if(num==0||num==1||num==2)//如果按下的是'7','8'或'9

{ if(j!=0){write_com(0x01); j=0; }

if(flag==0)//没有按过运算符键

{ a=a*10+table[num]; } //按下数字存储到a

else//如果按过运算符键

{ b=b*10+table[num]; }//按下数字存储到b }

else//如果按下的是'/' 除法

{flag=1; //按下运算符

fuhao=4;//4表示除号已按

}

i=table1[num]; //数据显示做准备

write_date(0x30+i);//显示数据或操作符号

}

P3=0xfd;

if(P3!=0xfd)

{ delay(20);

if(P3!=0xfd){ temp=P3&0xf0;

switch(temp)

{case 0xe0:num=4; break; //4

case 0xd0:num=5; break; //5

case 0xb0:num=6; break; //6

case 0x70:num=7; break; //×

}

} while(P3!=0xfd);//等待按键释放

if(num==4||num==5||num==6&&num!=7)//如果按下的是'4','5'或'6' { if(j!=0){ write_com(0x01); j=0; }

if(flag==0)//没有按过运算符键

{ a=a*10+table[num]; }

else//如果按过运算符键

{ b=b*10+table[num]; } }

else//如果按下的是'×'

{ flag=1;

fuhao=3;//3表示乘号已按

}

i=table1[num]; //数据显示做准备

write_date(0x30+i);//显示数据或操作符号

}

P3=0xfb;

if(P3!=0xfb){ delay(20);

if(P3!=0xfb) { temp=P3&0xf0;

switch(temp)

{case 0xe0:num=8; break; //1

case 0xd0:num=9; break; //2

case 0xb0:num=10; break; //3

case 0x70:num=11; break; //-

}

} while(P3!=0xfb);

if(num==8||num==9||num==10)//如果按下的是'1','2'或'3'

{ if(j!=0){ write_com(0x01); j=0; }

if(flag==0)//没有按过运算符键

{ a=a*10+table[num]; }

else//如果按过运算符键

{ b=b*10+table[num]; }

}

else if(num==11)//如果按下的是'-'

{flag=1;

fuhao=2;//2表示减号已按

}

i=table1[num]; //数据显示做准备

write_date(0x30+i);//显示数据或操作符号

}

P3=0xf7;

if(P3!=0xf7){ delay(20);

if(P3!=0xf7){ temp=P3&0xf0;

switch(temp)

{case 0xe0:num=12; break; //清0键

case 0xd0:num=13; break; //数字0

case 0xb0:num=14; break; //等于键

case 0x70:num=15; break; //加

}} while(P3!=0xf7);

switch(num)

{case 12:{write_com(0x01);a=0;b=0;flag=0;fuhao=0;}//按下的是"清零"

break;

case 13:{ //按下的是"0"

if(flag==0)//没有按过运算符键

{ a=a*10; write_date(0x30); P2=0; }

else if(flag>=1)//如果按过运算符键

{ b=b*10; write_date(0x30); }

} break;

case 14:{j=1; //按下等于键,根据运算符号进行不同的算术处理

if(fuhao==1) //加法运算

{ write_com(0x80+0x4f);//按下等于键,光标前进至第二行最后一个显示处

write_com(0x04); //设置从后住前写数据,每写完一个数据,光标后退一格

c=a+b;

while(c!=0){write_date(0x30+c%10); c=c/10; }

write_date(0x3d); //再写"="

a=0;b=0;flag=0;fuhao=0; }

else if(fuhao==2) //减法运算

{ write_com(0x80+0x4f);//光标前进至第二行最后一个显示处

write_com(0x04); //设置从后住前写数据,每写完一个数据,光标后退一格

if(a-b>0) c=a-b;

else c=b-a;

while(c!=0) { write_date(0x30+c%10);c=c/10; }

if(a-b<0) write_date(0x2d);

write_date(0x3d); //再写"="

a=0;b=0;flag=0;fuhao=0;}

else if(fuhao==3) //乘法运算

{write_com(0x80+0x4f); write_com(0x04);

c=a*b;

while(c!=0) {write_date(0x30+c%10); c=c/10; }

write_date(0x3d); a=0;b=0;flag=0;fuhao=0;}

else if(fuhao==4)//除法运算

{write_com(0x80+0x4f);

write_com(0x04);

i=0;

if(b!=0)

{ c=(long)(((float)a/b)*1000);

while(c!=0)

{ write_date(0x30+c%10);

c=c/10;

i++; if(i==3) write_date(0x2e); }

if(a/b<=0)

{ if(i<=2)

{ if(i==1) write_date(0x30);

write_date(0x2e); // .

write_date(0x30);

} write_date(0x30);}

write_date(0x3d);

a=0;b=0;flag=0;fuhao=0;}

else

{ write_date('!');write_date('R');write_date('O');

write_date('R');write_date('R');write_date('E');}}

} break;

case 15:{write_date(0x30+table1[num]);flag=1;fuhao=1;} break; //加键设置加标志fuhao=1;

} }//P3!=0xf7

}main()

{ init(); //系统初始化

while(1)

{ keyscan();//键扫描

}}

计算器说明书

Java程序设计说明书 设计题目:Java计算器 学生姓名: 指导教师: 专业名称:计算机科学与技术所在院系:

目录 摘要2第1章计算器概述 1.1设计目的 4 1.2功能模块设计 4 1.3系统功能图 4 设计实现的详细步骤 2.2.1 计算器界面7 2.2.2 界面设计代码7 2.3程序运行效果9 第3章设计中遇到的重点及难点 (13) 3.1 设计中的重点 (13) 3.2 设计中的难点 (13) 3.2.1 设计难点1:布局 (13) 3.2.2 设计难点2:代码 (13) 3.2.3设计难点3:运行结果 (14) 3.3 本章总结 (14) 第4章本次设计中存在不足与改良方案 (15) 4.1设计不足 (15) 4.2改良方案 (15) 4.3本章总结 (18) 结论 (19) 参考文献 (20)

JAVA课程设计说明书 摘要 一、计算器概述 1、1设计计算器的目的: 该计算器是由Java语言编写的,可以进行十进制下的四则运算(加、减、乘、除)、开平方、百分号、求倒数,还可以实现其他按钮的功能。添加了一个编辑、查看、帮助的主菜单并能实现其功能。Backspace 表示逐个删除,CE 表示全部清除,C 表示一次运算完成后,单击“C”按钮即可清除当前的运算结果,再次输入时可开始新的运算,MC 表示清除储存数据,MR 表示读取储存的数据,MS 表示将所显示的数存入存储器中,存储器中原有的数据被冲走,M+ 表示计算结果并加上已经储存的数。界面类似Windows 自带的计算器。 该计算器围绕Java编程语言在编程方面的具体应用,论述了使用面向对象方法,对计算器程序进行需求分析、概要设计、详细设计,最后使用Java编程实现的全过程。在编程使用Java语言,是目前比较流行的编程语言。在当今这个网络的时代,java语言在网络编程方面的优势使得网络编程有了更好的选择。Java语言最大的特点是具有跨平台性,使其不受平台不同的影响,得到了广泛的应用。 关键词:Java语言、标准、计算器

计算器课程设计报告

课设报告 福建工程学院软件学院 题目:汇编计算器 班级: 1301 姓名 学号: 指导老师: 日期:

目录 1、设计目的 (3) 2、概要设计 (3) 2.1 系统总体分析 (3) 2.2 主模块框图及说明 (3) 3、详细设计 (4) 3.1 主模块及子模块概述 (4) 3.2各模块详运算 (4) 4、程序调试 (7) 4.1 运行界面分析 (7) 算法分析 (7) 4.2 调试过程与分析 (9) 5、心得体会 (11) 5.1 设计体会 (11) 5.2 系统改进 (11) 附录: (11)

1、设计目的 本课程设计是一次程序设计方法及技能的基本训练,通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用,达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平。 2、概要设计 用8086汇编语言编写一个能实现四则混合运算、带括号功能的整数计算器程序。程序能实现键盘十进制运算表达式的输入和显示(例如输入:“1+2*(3-4)”),按“=”后输出十进制表示的运算结果。 2.1 系统总体分析 在8086的操作环境下,该计算器分成输入,数据存储,运算功能,输出几个大模块,实现了使用者使用该计算器时输入一个算式,能让系统进行计算。此计算器的实现功能是基本的数学的四则运算,结果范围在0~65535。 2.2 主模块框图及说明 此流程图简要的表现出了所要实现的功能以及一些功能的大概算法,同时也是我编写的一个总体的框架。 程序流程图说明:通过流程图,可以看出程序运行时,首先输出提示语气,当用户输入后,程序根据所输入内容进行判断,通过判断的结果来决定调用哪个功能模块,首要先要要判断的是否为0-9,“+”“-”“*”“/”这些字符,若不是就会报错,实则根据运算符号调用其功能模块完成运算。最后将运算的结果显示在主频幕上,返回主程序,使用户可以重新输入。

设计60进制计数器 数电课程设计

电子技术基础实验 课程设计 用74LS161设计六十进制计数器 学院:班级:姓名:学号:电气工程学院电自1418 刘科 20

用74LS161设计六十进制计数器 摘要 计数器是一个用以实现计数功能的时序部件,它不仅可用来及脉冲数,还常用作数子系统的定时、分频和执行数字运算以及其它特定的逻辑功能。目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能和工作波形图以及引出端的排列,就能正确运用这些器件。计数器在现代社会中用途中十分广泛,在工业生产、各种和记数有关电子产品。如定时器,报警器、时钟电路中都有广泛用途。在配合各种显示器件的情况下实现实时监控,扩展更多功能。 利用两片74LS161分别作为六十进制计数器的高位和低位,分别与数码管连接。把其中的一个通过一个与门器件构成一个十进制计数器,另一个芯片构成六进制计数器。十进制计数器(个位)和六进制计数器(十位)均采用反馈清零法利用两个74LS161构成。当个位计数器从1001计数到0000时,十位计数器要计数一次,可通过两芯片之间级联实现。使用200HZ时钟信号作为计数器的时钟脉冲。根据设计基理可知,计数器初值为00,按递增方式计数,增到59时,再自动返回到00。 关键字:60进制,计数器,74LS161,级联 目录 第1章概述 (1) 计数器设计目的 (1) 计数器设计组成 (1) 第2章六十进制计数器设计描述 (2) 74LS161的功能 (2)

方案框架 (3) 第3章六十进制计数器的设计与仿真 (4) 基本电路分析设计 (4) 计数器电路的仿真 (6) 第4章总结 (8)

单片机课程设计计算器

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:四位数加法计算器的设计学院名称:电气信息学院 专业班级: 学生学号:

学生姓名: 学生成绩: 指导教师: 课程设计时间:至

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 系统通过4x4的矩阵键盘输入数字及运算符。 2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。 3. 可以进行加法以外的计算(乘、除、减)。 4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。

数电课程设计38进制计数器

1.课程设计的目的 数字电子技术课程是电类专业的主要技术基础课。通过本课程的学习,能够使学生掌握近代数电理论的基础知识、电路分析与计算的基本方法,具备进行试验的初步技能,并为后续课程的学习打下必要的基础。 数字电子技术基础课程设计是学习数字电子技术基础课程之后的实践教学环节,是对课程理论和课程实验的综合和补充,其目的是训练学生综合运用学过的数字电子技术的基础知识。学会并利用一种电路分析软件,对电路进行分析、计算和仿真,通过查找资料,选择方案,设计电路,撰写报告,完成一个较完整的设计过程,将抽象的理论知识与实际电路设计联系在一起,使学生在掌握电路基本设计方法的同时,加深对数字电子技术课程知识的理解和综合应用,培养学生综合运用基础理论知识和专业知识解决实际工程设计问题的能力,以及工程意识和创新能力。 2.设计方案论证 2.1 Multisim软件介绍 Multisim是加拿大Interactive Image Technologies (Electronics Workbench)公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。可以使用Multisim交互式地搭建电路原理图,并对电路行为进行仿真。Multisim提炼了SPICE仿真的复杂内容,这样无需懂得深入的SPICE技术就可以很快地进行捕获、仿真和分析新的设计,这也使其更适合电子学教育。通过Multisim和虚拟仪器技术,可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。 功能: (1).直观的图形界面 整个操作界面就像一个电子实验室工作台,绘制电路所需的元器件和仿真所需的测试仪器均可直接拖放屏幕上,轻点鼠标可用导线将它们连接起来,软件仪器的控制面板和操作方式都与实物相似,测量数据、波形和特性曲线如何在真实一起上看到的。 (2).丰富的元器件

2位数计算器程序-汇编语言课程设计

信息学院课程设计题目:2位数计算器程序设计 __ 姓名: __ _____ 学号: ____ ___ 班级: 课程:汇编语言 ________ 任课教师:侯艳艳 ____ 2011年12月

课程设计任务书及成绩评定

目录 摘要 (2) 1.设计目的………………………………………………………………………………………………?2 2.概要设计………………………………………………………………………………………………?3 2.1系统总体分析…………………………………………………………………………?3 2.2程序流程图 (3) 3.详细设计......................................................................................................? (4) 3.1主程序及子程序说明 (4) 3.2程序代码编写 (4) 4.程序调试 (6) 4.1运行界面分析 (6) 4.2算法的分析 (6) 4.3调试过程及分析 (6) 5.心得体会 (7) 5.1设计体会...................................................................................................? (7) 5.2系统改进...................................................................................................? (7) 参考文献 (8)

单片机计算器的课程设计报告

目录 一、设计任务和性能指标 (1) 1.1设计任务 (2) 1.2性能指标 (2) 二、设计方案 (2) 3 3 4 5 5 6 6 7 7 20 20 20 20 21 参考文献 (21) 附录1、系统硬件电路图 (22) 附录2、硬件实物图 (23) 附录3、器件清单 (24)

一、设计任务和性能指标 1.1设计任务 自制一个单片机最小系统,包括复位电路,采用外部小键盘输入数据,能够实现加法、乘法及一个科学计算,计算结果显示在四位一体的数码管上。 要求用Protel 画出系统的电路原理图(要求以最少组件,实现系统设计所要 显 位 监测模块采用二极管和扬声器(实验室用二极管代替)组成电路。 键盘电路采用4*4矩阵键盘电路。 显示模块采用4枚共阳极数码管和74ls273锁存芯片构成等器件构成。 整个单片机的接口电路: P0用于显示输出; P1用于键扫描输入; P2用于数码管位选控制; P3用于键盘扩展(部分运算符输入);

三.系统硬件设计 3.1单片机最小系统 单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。 主控芯片选取STC89C52RC芯片,因其具有良好的性能及稳定性,价格便宜应用方便。 扩展键:“log”,“ln”,“x^2”“小数点”,“开方” 共计25个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0~P1.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口德扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。 以下为键盘接口电路的硬件电路图

数电脉搏计数器电路课程设计

烟台南山学院 数字电子技术课程设计题目脉搏计数电路设计 姓名:___ XXXXXX ___ 所在学院:_工学院电气与电子工程系 所学专业:_ 自动化 班级:___电气工程XXXX 学号:___XXXXXXXXXXXXXX 指导教师:_____ XXXXXXXX ___ 完成时间:____ XXXXXXXXXXXXX

数电课程设计任务书 一、基本情况 学时:40学时学分:1学分适应班级:12电气工程 二、进度安排 本设计共安排1周,合计40学时,具体分配如下: 实习动员及准备工作:2学时 总体方案设计:4学时 查阅资料,讨论设计:24学时 撰写设计报告:8学时 总结:2学时 教师辅导:随时 三、基本要求 1、课程设计的基本要求 数字电子技术课程设计是在学习完数字电子课程之后,按照课程教学要求,对学生进行综合性训练的一个实践教学环节。主要是培养学生综合运用理论知识的能力,分析问题和解决问题的能力,以及根据实际要求进行独立设计的能力。初步掌握数字电子线路的安装、布线、焊接、调试等基本技能;熟练掌握电子电路基本元器件的使用方法,训练、提高读图能力;掌握组装调试方法。其中理论设计包括总体方案选择,具体电路设计,选择元器件及计算参数等,课程设计的最后要求是写出设计总结报告,把设计内容进行全面的总结,若有实践条件,把实践内容上升到理论高度。 2、课程设计的教学要求 数字电子技术课程设计的教学采用相对集中的方式进行,以班为单位全班学生集中到设计室进行。做到实训教学课堂化,严格考勤制度,在实训期间累计旷课达到6节以上,或者迟到、早退累计达到8次以上的学生,该课程考核按不及格处理。在实训期间需要外出查找资料,必须在指定的时间内方可外出。 课程设计的任务相对分散,每3名学生组成一个小组,完成一个课题的设计。小组成员既有分工、又要协作,同一小组的成员之间可以相互探讨、协商,可以互相借鉴或参考别人

Windows下的计算器设计说明书

课程设计说明书Windows环境下的计算器 学院名称:机械工程学院 专业班级:测控0901 学生姓名:李彧文 指导教师姓名:张世庆 指导教师职称:副教授 2011年6月

摘要

课程设计任务书 Windows环境下的计算器 一、课程设计题目:设计一个windows附件中所示的计算器 二、目的与要求: 1、目的: (1)要求学生达到熟练掌握C++语言的基本知识和C++调试技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)求利用面向对象的方法以及C++的编程思想来完成系统的设计; (2)要求在设计的过程中,对windows环境下的编程有一个基本的认识。 3、创新要求: 在基本要求达到后,可进行创新设计,如增加计算器的函数功能。 4、写出设计说明书 按照设计过程写出设计说明书。 三、设计方法和基本原理: 1、问题描述(功能要求): 要求所编写的计算器能够完成基本的加、减、乘、除运算,类似于Windows下附件中的计算器。 2、问题的解决方案(参考): 根据题目的要求,可以将问题解决分为以下步骤: (1)完成界面的设计,要求界面要美观实用; (2)添加成员变量和成员函数(消息映射函数); (3)利用结构化程序的设计思路完成按键的判断和数据的移位以及计算功能; (4)程序功能调试; (5)完成系统总结报告以及系统使用说明书。

四、程序设计和调试: 五、答辩与评分标准: 1、完成基本功能:40分; 2、设计报告及使用说明书:30分; 3、设置错误或者按照要求改变结果:15分; 4、回答问题:15分。

科学计算器课程设计报告C课程设计修订稿

科学计算器课程设计报告C课程设计 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

计算机科学与技术学部 C++课程设计 题目科学计算器 学部计算机科学与技术 班级计科1103 指导教师李军 姓名刘明 学号 2012年6月27日

摘要 计算器的产生和发展是建立在电子计算机基础之上的。硬件方面,自1946年第一台电子计算机诞生以来,计算机技术的发展可谓日新月异,从庞大的只能在实验室里供研究使用的计算机到如今能适应不同环境满足不同需求的各种各样的计算机;运算速度从每秒几千次到每秒几百亿次;处理器从焊有上百万个电子管的大的惊人的电子板到只有指甲大小的集成电路;现在计算机在硬件方面的发展已达到了每三个月更新换代一次的惊人速度。软件方面,也已从机器语言、汇编语言、高级语言发展到现如今的第四代语言——非结构化、面向对象、可视化的语言。 在这个计算器里面,我们实现了简单的四则运算以及更高功能的科学计算,它的外观简洁美观,使人们能快捷简单的操作。能准确的得到计算结果,大大减少了数字计算所需要的时间,为人们的生活带来便利。此系统在Windows 7环境下,使用VC++ 进行编写。 简单计算器包括双目运算和单目运算功能,双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,对数,开方,阶乘,倒数,进制转换等运算。可对其输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。并且包含清除,退格功能等。我们所做的计算器其功能较Windows 7下的计算器还是很不够多,没有其菜单的实现功能项,没有其小巧的标准计算器。 关键词:计算器;运算;VC++等

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

对外部脉冲计数系统的设计计数器课程设计(单片机)

湖南工业大学 课程设计 资料袋 理学学院(系、部)2012 ~ 2013 学年第 1 学期 课程名称单片机应用系统指导教师周玉职称副教授学生姓名张思远专业班级电子科学102 学号10411400223 题目对外部脉冲计数系统的设计 成绩起止日期2013 年01 月06 日~2013 年01 月10 日 目录清单

湖南工业大学 课程设计任务书 2012 —2013 学年第1 学期 理学院学院(系、部)电子科学专业102 班级 课程名称:单片机应用系统 设计题目:对外部脉冲计数系统的设计 完成期限:自2013 年01 月06 日至2013 年01 月10 日共 1 周

指导教师(签字):年月日系(教研室)主任(签字):年月日

附件三 (单片机应用系统) 设计说明书 (题目) 对外部脉冲计数系统的设计 起止日期:2013 年01 月06 日至2013 年01 月10 日 学生姓名张思远 班级电子科学102 学号10411400223 成绩 指导教师(签字) 电气与信息工程学院 2012年12 月10 日

一、设计任务: 1.1 外部脉冲自动计数,自动显示。 1.1.1设计一个255计数器:0-255计数,计满后自动清0,重 新计数(在数码管中显示)。 1.1.2设计一个50000计数器:0-50000计数,计满后自动清0, 重新计数(在数码管中显示)。 注:要求首先采用PROTEUS完成单片机最小系统的硬件电路 设计及仿真;程序仿真测试通过后,再下载到单片机实训 板上执行。 二、硬件设计介绍: ※STC89C52单片机; ※6位共阴或者共阴极数码管; ※外部晶振电路; ※ISP下载接口(In system program,在系统编程); ※DC+5V电源试配器(选配); ※ISP下载线(选配) ※6个PNP(NPN)三极管 ※12个碳膜电阻 三、硬件设计思路 方案一:五个1位7段数码管,无译码器 方案二:五个1位7段数码管,译码器 方案三:1个6位7段数码管,译码器 方案四:1个6位7段数码管,无译码器 考虑实际中外围设备、资金、单片机资源利用率、节省端口数量,可实行性以及连接方便等问题,采用6为数码管(共阳或者共阴极)由于实际中没买到6位的,采用2个三位数码管并接组合一个6位数码管形式;由于实际P口驱动能力有限,故采用6位三极管增大驱动能力,已便足以使得6位数码管亮度明显正常工作,增加6个电阻限流保护数码管不被烧坏。让数码管a-g7段分别接P1.6—P1.0,6位位选分别接P2.5—P2.0。 方法一:共阴极数码管 硬件图1.0所示:通过npn管放大后,段选高电平有效,位选低电平有效

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

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

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

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

计算器课程设计报告

高级语言程序(JAVA)课程设计报告 系部名称:商学系专业班级:营销*** 学生姓名:墨璇 墨兰学号: ********** ********** 指导教师:王芬教师职称:讲师 2014年06月26日

目录 一、课程设计目的及意义 .................................... 错误!未定义书签。 二、课程设计任务 .......................................... 错误!未定义书签。 2.1程序设计要求....................................... 错误!未定义书签。 三、课程设计时间 .......................................... 错误!未定义书签。 四、课程设计地点 .......................................... 错误!未定义书签。 五、课程设计内容 .......................................... 错误!未定义书签。 5.1开发工具与平台..................................... 错误!未定义书签。 (1).开发工具 ...................................... 错误!未定义书签。 (2).开发平台 ...................................... 错误!未定义书签。 5.2设计思路........................................... 错误!未定义书签。 5.3 程序测试 .......................................... 错误!未定义书签。 5.4实验总结........................................... 错误!未定义书签。 六、课程设计感想 .......................................... 错误!未定义书签。 七、附录(程序代码) ...................................... 错误!未定义书签。

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

基于单片机的光电计数器课程设计

计控学院 College of computer and control engineering Qiqihar university 电气工程课程设计报告题目:基于单片机的光电计数器 系别电气工程系 专业班级电气123班 学生姓名宋恺 学号2012024073 指导教师李艳东 提交日期 2015年6月 24日 成绩

电气工程课程设计报告 摘要 光电计数器是利用光电元件制成的自动计数装置。其工作原理是从光源发出的一束平行光照射在光电元件(如光电管、光敏电阻等)上,每当这束光被遮挡一次时,光电元件的工作状态就改变一次,通过放大器可使计数器记下被遮挡的次数。光电计数器的应用范围非常广泛,常用于记录成品数量,例如绕线机线圈匝数的检测、点钞机纸币张数的检测、复印机纸张数量的检测,或展览会参观者人数。 光电计数器与机械计数器相比,具有可靠性高、体积小、技术频率高、能和计算机链接实现自动控制等优点。本文即介绍基于MCS-51单片机的光电技术器。 关键词:单片机;光电计数器;数码显示;自动报警

齐齐哈尔大学计控学院电气工程系课程设计报告 目录 1 设计目的及意义 (1) 2 设计内容 (1) 2.1 系统整体设计 (1) 2.1.1 实验方案 (1) 2.1.2 光电计数器结构框图 (2) 图1 光电计数器结构框图 (2) 2.2系统硬件设计 (2) 2.2.1稳压直流电源电路 (2) 2.2.2发射接收电路 (3) 2.2.3显示电路 (3) 2.2.4报警电路 (4) 2.2.5硬件系统 (4) 2.3系统软件设计 (6) 3 结论7 4 参考文献 (8)

计算机课程设计说明书(C++,包括代码)

数学与计算机学院 课程设计说明书 课程名称: 面向对象程序设计-课程设计课程代码: 题目: 计算器 年级/专业/班: 学生姓名: 学号: 开始时间:2011 年 5 月28日 完成时间:2011 年6月 27 日 课程设计成绩: 学习态度及平时成绩(30)技术水平与实际 能力(20) 创新(5)说明书撰写质量(45) 总分 (100) 指导教师签名:年月日 目录 1 引言 (1) 1.1问题的提出 (1) 1.2任务与分析 (1)

2.1加法功能 (2) 2.2减法功能 (2) 2.3乘法功能 (2) 2.4除法功能 (2) 2.5开平方功能 (2) 2.6四则混合运算功能 (2) 2.7显示功能 (2) 3 程序运行平台 (3) 4 总体设计 (3) 5 程序类的说明 (4) 6 模块分析 (6) 6.1加法模块 (6) 6.2减法模块 (7) 6.3乘法模块 (8) 6.4除法模块 (10) 6.5开方模块 (11) 6.6求余模块 (13) 6.7四则混合运算模块 (14) 7 系统测试 (22) 8 结论 (27)

参考文献 (28) 摘要 本课程设计是为了实现一个简单计算器,该计算器类似于windows附件中自 带的计算器。分析了现在人们对数据的处理需求,利用系统平台Windows 2000XP, 程序设计语言采用面向对象程序设计语言C++,利用Visual C++编程实现了该系 统。该系统具有数据录入,数据修改,数据处理,数据显示等功能。用户根据系

统界面提示,输入需要处理的数据,系统根据要求实现加、减、乘、除以及开方等功能。 关键词:计算器;程序设计;C++

计算机技术综合课程设计报告

计算机技术综合课程设计 设计题目锅炉液位控制系统学生姓名史婷艳 专业班级自动化1302班学号20134460203 指导老师洪镇南 2017年1 月3日

目录 前言 (2) 1 锅炉汽包水位控制对象与控制指标 (4) 1.1锅炉汽包水位的特征 (4) 1.2汽包水位动态特性 (4) 1.2.1汽包水位在给水流量W作用下的动态特性 (4) 1.2.2汽包水位在蒸汽流量D扰动下的动态特性 (5) 1.2.3燃料量B扰动下汽包水位的动态特性 (6) 2. 汽包水位控制方案 (7) 2.1单冲量控制方式 (7) 2.2 双冲量控制方式 (8) 2.3 三冲量控制方式 (9) 3. 三冲量串级PID控制 (11) 3.1 串级PID控制 (11) 3.2 智能整定PID控制 (12) 4 汽包水位模糊控制器设计及仿真 (12) 4.1 输入输出变量 (12) 4.2 隶属度函数 (15) 4.3基于MATLAB/Simulink 环境建立的系统仿真分析 (16) 4.3.1 基于MATLAB/Simulink 的系统模型 (16)

4.3.2 仿真结果分析 (18) 总结与体会 (18) 参考文献 (20) 前言 锅炉是典型的复杂热工系统,目前,中国各种类型的锅炉有几十万台,由于设备分散、管理不善或技术原因,使大多数锅炉难以处于良好工况,增加了锅炉的燃料消耗,降低了效率。同时,锅炉工作过程中各项指标的调节难以建立数学模型,具有非线性、不稳定性、时滞等特点,所以如何改善对锅炉的控制,保证其正常工作,提高效率一直是人们关注的焦点。而汽包液位是锅炉安全、稳定运行的重要指标,保证液位在给定范围内,对于高蒸汽品质、减少设备损耗和运行损耗、确保整个网络安全运行具有要意义。 现代锅炉的特点之一就是蒸发量显著提高,汽包容积相对变小,水位变化速度很快,稍不注意就容易造成汽包满水或者烧成干锅,这都对汽包液位控制系统提出了更高的要求。汽包液位过高,会影响汽包内汽液分离效果,使汽包出口的饱和蒸汽带水增多,蒸汽带水会使汽轮机产生水冲击,引起轴封破损、叶片断裂等事故。同时会使饱和蒸汽中含盐量增高,降低过热蒸汽品质,增加在过热器管壁和汽轮机叶片上的结垢。水位过低,则可能破坏自然循环锅炉汽水循环系统中某些薄弱环节,以致局部水冷管壁被烧坏,严重时会造成爆炸事故。 目前,对汽包液位位控制大多采用常规PID控制方式,从控制方式来看,它们要么系统结构简单成本低,不能有效的控制锅炉汽包“虚假水位”现象,要么能够在一定程度上控制“虚假现象”,系统却过于复杂,成本投入过大。常用的蒸汽锅炉液位调节系统有三种基本结构:单冲量调节系统结构、双冲量调节系统结构、串级三冲量调节系统结

电子计算器课程设计

目录 1 设计任务和性能指标 (1) 1.1 设计任务 (1) 1.2 性能指标 (1) 2 设计方案 (1) 2.1 需求分析 (1) 2.2 方案论证 (1) 3 系统硬件设计 (2) 3.1 总体框图设计 (2) 3.2 单片机选型 (2) 3.3 单片机附属电路设计 (3) 3.4 LCD液晶显示 (4) 4 系统软件设计 (5) 4.1 设计思路 (5) 4.2 总体流程图 (5) 4.3 子程序设计 (5) 4.4 总程序清单 (6) 5 仿真与调试 (6) 5.1 调试步骤 (6) 5.2 仿真结果及性能分析 (8) 6 总结 (8) 参考文献 (8) 附录1 系统硬件电路图 (10) 附录2 程序清单 (11)

1 设计任务和性能指标 1.1 设计任务 电子计算器设计 1、能实现4位整数的加减法和2位整数的乘法; 2、结果通过5个LED数码管显示(4位整数加法会有进位)或通过液晶显示屏显示。 1.2 性能指标 1.用数字键盘输入4位整数,通过LED数码显示管或液晶显示屏显示。 2.完成四位数的加减法应算。当四位数想加时产生的进位时,显示进位。 3.显示2位,并进行2位整数的乘法。 4.设计4*4矩阵键盘输入线的连接。 2 设计方案 2.1 需求分析 我们日常生活的开支,大额数字或是多倍小数的计算都需要计算器的帮助,处理数字的开方、正余弦都离不开计算器。虽然现在的计算器价格比较低廉,但是功能过于简单的不能满足个人需求,功能多的价格较贵,操作不便不说,很多功能根本用不到。所以,我们想到可不可以用自己所学为自己设计开发一个属于自己的简单计算器来完成日常生活的需求。 2.2 方案论证 使用单片机为ATMEL公司生产AT89C51,AT89C51提供以下标准功能:4K字节FLASH 闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个向量两级中断结构,一个全双工串行通讯口,内置一个精密比较器,片内振荡器及时钟电路,同时AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的工作模式,空闲方式停止CPU 的工作,但允许RAM,定时计数器,串行通信及中断系统继续工作。 显示用LCD液晶显示屏,减少线路连接。 用C言编写程序,易进行调试修改。 采用4*4矩阵键盘作为输入。

计算器——概要设计说明书

计算器 概要设计说明书 1、引言 1.1编写目的 在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,作为JAVA程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。 1.2项目背景 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用JAVA 的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。 在课程设计中,系统开发平台为Windows 7,程序设计设计语言采用JAVA,在程序设计中,采用了结构化与面向对象两种解决问题的方法。 1.3定义

事务流:数据进入模块后可能有多种路径进行处理。 系统:若未特别指出,统指本系统。 1.4参考资料 [1]钱银中,眭碧霞.Java程序设计案例教程 [2]道客巴巴:https://www.360docs.net/doc/e37974264.html,/p-642874533756.html 2、运行环境 操作系统:Windows 2000﹑Windows XP Professional、Windows 2000 Server或者window 7.0操作系统. 3、总体设计 3.1 系统设计流程 系统设计主要有五部分组成:需求分析、概要设计、详细设计、编写代码和系统测试。如下图所示: ⑴需求分析 这次课程设计的题目是实现简单计算器的功能。实现功能:加,减,乘,除,可加其它运算功能;还要实现数据的输入,输出,计算,显示及清除等功能。 ⑵概要设计 计算器包含的功能有:加、减、乘、除、清除。计算器的屏显为JFrame控件,左侧的数字、操作符按键、右侧的功能为BUTTON控件。输入的原始数据、运算中间数据和结果在顶部的TEXTBOX 控件显示。每种计算功能均为独立设计算法。 ⑶详细设计 详细设计部分则是在概要设计的基础上对计算器的功能实现作出更为详细

相关文档
最新文档