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

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

河南##############学校

毕业设计(论文)

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

系部: 自动控制系

专业: 电气自动化

班级: 自083

姓名: 崔 # #

学号: 091415302

指导老师: 许 #

二零一二年五月八日

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

摘要

工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我以《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》课程中所学知识为基础,设计了简易计算器。本系统以MCS-51系列中的8051单片机为核心,能够实现多位数的四则运算。该系统通过检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。本系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。

关键词:MCS-51;8051单片机;计算器;加减乘除

Based on the simple calculator 51 SCM

Abstract

The engineering practice teaching is to students better to consolidate and practice have set up by the professional knowledge, in this engineering practice, I to the intelligent measurement control instrument principle and design ", "the MCS-51 series single chip computer and its application" course knowledge as the foundation, the design the simple calculator. This system to MCS-51 of the 8051 series single chip microcomputer as the core, can realize the connection arithmetic. The system through the test matrix keyboard scan, judge whether key, the data transfer the numerical into digital tube dynamic display. This system mainly introduced the design that the following aspects of content: based on single chip microcomputer simple calculator basic functions, and the matrix keyboard and a digital tube dynamic display of the principle of a simple expatiated; introduced the design of the whole system, the whole process of the system are discussed, and its function module partition and the components for a detailed explanation; the functional modules of the system hardware and software of the implementation of the detailed design instructions.

Key words: MCS-51;8051 single chip microcomputer;Calculator;Add, subtract, multiply and divide:

目录

目录

第1章绪论 (1)

1.1课题简介 (1)

1.2设计目的 (1)

1.3设计任务 (1)

1.4章节安排说明 (1)

第2章计算器系统简介 (2)

2.1 单片机发展现状 (2)

2.2计算机系统现状 (2)

2.3简易计算器系统简介 (3)

第3章计算机硬件系统简介 (4)

3.1计算机硬件需求 (4)

3.2MCS-51系列单片机简介 (4)

3.3外围电路设计 (8)

3.3.1振荡电路设计 (8)

3.3.2复位电路设计 (9)

3.3.3 键盘电路设计 (9)

3.3.4 数码管显示电路设计 (10)

3.4硬件原理图 (11)

第4章计算器软件系统设计 (12)

4.1系统模块图 (12)

4.2系统流程图 (12)

4.3 计算器主程序设计 (12)

4.3.1计算器主程序设计 (12)

4.3.2 存储单元分配 (13)

4.4 计算器子程序设计 (14)

4.4.1输入程序设计 (14)

4.4.2运算程序设计 (15)

4.4.3 显示程序设计 (16)

第5章结论与展望 (18)

5.1结论 (18)

5.2不足与展望 (18)

参考文献 (19)

附录程序源代码 (20)

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

第1章绪论

1.1课题简介

单片机由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。在工业生产中。单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

本系统就是充分利用了8051芯片的I/O引脚。系统统采用MSC-51系列单片机Intel8051为中心器件来设计计算器控制器,实现了能根据实际输入值显示并存储,计算程序则是参照教材。至于位数和功能,如果有需要可以设计扩充原系统来实现。

1.2设计目的

通过本次工程实践,运用《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》所学知识及查阅相关资料,完成简易计算器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。

通过本次设计训练,可以使我们在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。

1.3设计任务

在本次工程实践中,主要完成如下方面的设计任务:

(1) 简要综述单片机技术发展的国内外现状及数码管动态显示和矩阵键盘基本原理;

(2) 掌握MCS-51系列某种产品(例如8051)的最小电路及外围扩展电路的设计方法;

(3) 了解单片机数据转换功能及工作过程;

(4) 完成主要功能模块的硬件电路设计及必要的参数确定;

(5)用protues软件完成原理电路的绘制;

(6) 完成系统设计说明书。

1.4章节安排说明

整个设计总共分为四个章节,第一章是前言部分,主要介绍了设计基于单片机简易计算器的意义、目的及主要内容;第二章简要介绍了单片机发展的国内外现状及键盘扫描,数据转换,和动态显示原理进行了简要的说明。第三章是器件简介,这一部分主要介绍了系统的所用主要器件的选择。第四章是系统详细设计

河南机电高等专科学校毕业论文

阶段,分为硬件设计和程序设计。按照程序设计的各部分实现的功能不同,将整个软件系统分成了三个块,并对每一个功能块所采用的元器件进行了详细介绍。此外还编写了主要功能模块的基本程序,详尽阐述了各模块的工作过程。还有总流程图,源代码,硬器件铺线图。

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

第2章计算器系统简介

2.1 单片机发展现状

单片机的发展趋势:低功耗CMOS化;微型单片化;主流与多品种共存;单片机从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。

纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:

(1) 低功耗CMOS化

MCS-51系列的8051推出时的功耗达630mW,而现在的单片机普遍都在100mW 左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。象80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗象电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。

(2)微型单片化

现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。

此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

(3) 主流与多品种共存

现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbond系列单片机。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时

河南机电高等专科学校毕业论文

期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。

2.2计算器系统现状

计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据。键盘是计算器的输入部件,一般采用接触式或传感式。为减小计算器的尺寸,一键常常有多种功能。显示器是计算器的输出部件,有发光二极管显示器或液晶显示器等。除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器或电池,电池可用交流转换器或太阳能转换器再充电。为节省电能,计算器都采用CMOS工艺制作的大规模集成电路(见互补金属-氧化物-半导体集成电路),并在内部装有定时不操作自动断电电路。计算器可选用的外围设备有微型打印机、盒式磁带机和磁卡机等。

2.3 简易计算器系统简介

本计算器是以MCS-51系列8051单片机为核心构成的简易计算器系统。该系统通过单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据存储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入数码管动态显示。整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据转换为了数码管显示;功能模块三,数码管动态显示。

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

第3三章计算机主要硬件简介

3.1计算器硬件需求

89C51单片机一片,按钮17个, 1K电阻17个,22pF电容两个,22uF一个,微型振荡器一个,3个74HC595,4位共阳极的七段数码管3个,组成12位显示屏,4个9012三极管控制3个数码管模块的第1、2、3、4位的显示,另外有连线和电阻若干,220V~5V电源适配器一个。89C51单片机的P1口和P3口作键盘口,16个端口分别接16个按钮,顺序是数字0-9,小数点,等号,“+-x/”四个运算符号,1个复位键接在单片机复位端,按下时给单片机复位信号,中断全部运算清楚全部内存和寄存器,回到单片机启动初始状态。12位数码管用于显示当前数值的10亿位到个位,运算中的最大值不能超过2的32次方,这是因为程序中的运算中间值采用long类型保存的缘故,

3.2MCS-51系列单片机简介

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

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

1.中央处理器

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

2.数据存储器(RAM)

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

3.程序存储器(ROM)

8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。

4.定时/计数器(ROM):

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

河南机电高等专科学校毕业论文

8051内部结构图3-1

5. 并行输入输出(I/O)口

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

6.全双工串行口

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

7. 中断系统

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

8. 时钟电路

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

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

MCS-51的引脚说明(如下页图3-3)

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

Pin9:RESET/V pd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET 引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄

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

下图是MCS-51系列单片机的内部结构示意图3-2。

MCS-51结构图3-2

下图是8951单片机引脚示意图3-3

双列直插式封装引脚图3-3

存器被清“0”。RESET 由高电平下降为低电平后,系统即从0000H 地址开始

执行程序。然而,初始复位不改变RAM (包括工作寄存器R0-R7)的状态,8051的

初始态。

8051的复位方式可以是自动复位,也可以是手动复位。此外,RESET/V pd 还是

一复用脚,V cc 掉电其间,此脚可接上备用电源,以保证单片机内部RAM 的数据不

丢失。见下图3-4为两种复位方式和两种时钟方式:

Pin30:AL

E/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的

河南机电高等专科学校毕业论文

低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,

这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一

个特点,当访问外部程序存储器,ALE会跳过一个脉冲。

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

图3-4

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

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

由CPU读入并执行。

·Pin31:EA/V

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

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

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

一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接

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

地。在编程时,EA/V

pp

3.3外围电路设计

本设计外围电路大致可分为四部分:

1.振荡电路。

2.复位电路。

3.键盘电路。

4.显示电路。

3.3.1 振荡电路设计

振荡电路如图3-5所示.

图中X1、X2分别接单片机的19和18号脚。时钟有内部电路产生,定时器件

为石英晶体和电容组成的并联谐振回路,电容C1、C2的取之为30p,Y1的取值为

12MHz。

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

振荡电路图3-5

3.3.2 复位电路设计

复位电路如图3-6所示.

复位电路图3-6

图中的RST接单片机的9号脚,当按键ac按下时单片机复位。其中电阻R2为1KΩ,电容C3为电解性电容取值为16V/22UF。Vcc接5V电压。

3.3.3 键盘电路设计

键盘电路如图3-7所示.

矩阵键盘工作原理是。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键。确定矩阵式键盘上何键被按下,用“行扫描法”。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法.判断键盘中有无键按下:将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交*的4个按键之中。若

河南机电高等专科学校毕业论文

键盘电路图3-7

所有列线均为高电平,则键盘中无键按下。判断闭合键所在的位置:在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交*处的按键就是闭合的按键。把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个位,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。

3.3.4 数码管显示电路设计

如图3-8三个四位数码管所示.

三个四位数码管图3-8

数码显示驱动电路该设计采用74HC595芯片作为驱动,以保证数码管显示的亮度。在本任务中用4位数码管显示当前数值的千,百,十,个,由于数码管个数多,如采用静态显示方式,则占用单片机的I/O口线太多,如果用定时器/计数器的串行移位寄存器工作方式及外接串入并出移位寄存器74LS164的方式,则电路复杂。所以,在数码管个数较多时,常采用动态显示方式。如图所示为单片机应用系统中的一种数码管动态显示电路图,4位数码管的相同段并联在一起,由一

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

个8位I/O(P1口)输出字形码控制显示某一字形,每个数码管的公共端由另外一个I/O口(P0口)输出的字位码控制,即数码管显示的字形是由单片机I/O口输出的字形码确定,而哪个数码管点亮是由单片机I/O口输出的字位码确定的8个数码管分时轮流循环点亮,在同一时刻只有1个数码管点亮,但由于数码管具有余辉特性及人眼具有视觉暂留特性,所以适当地选取循环扫描频率,看上去所有数码管是同时点亮的,察觉不出闪烁现象。动态显示方式所接数码管不能太多,否则会因每个数码管所分配的实际导通时间太少,使得数码管的亮度不足。在本任务中,为了简便,字形码和字位元码都没由加驱动电路,在实际应用中应加驱动电路。数码管有共阴极和共阳极两种,对于共阳数码管,字形驱动输出0有效,字位驱动输出1有效;而对于共阴数码管则相反,即:字形驱动输出1有效,字位驱动输出0有效。

3.4硬件原理图

硬件原理图如图3-9所示.

单片机的p0.0口接74HC595芯片的串行输入端DS端,74HC595的并行输出端接数码管的公共端。P2.0-p2.3接三极管控制数码管段选。P1接矩阵键盘。

硬件原理图3-9

河南机电高等专科学校毕业论文

第4章计算器软件系统设计

4.1系统模块图

本系统有四个模块构成:显示模块、输入模块、电源模块、运算模块。如下图4-1所示.

系统模块图4-1

4.2系统流程图

本任务由P1口输出字形码,P0口输出字位码。先将存放于30H单元的数值个位七段码由P1口输出,同时P0口输出使数值个位显示数码管点亮的字位码。由于采用的是共阳数码管,所以只有该位数码管对应的P0.0为1,其他位P0.1-P0.3位0,点亮延时10MS。如下页系统流程图4-2所示。

4.3 计算器主程序设计

4.3.1计算器主程序设计

主程序调用按键子程序,检查哪个键按下,用switch结构分数步来组成一个运算式,比如头一个按下数字,存入f1变量,如果按负号就存入fh1,否则fh1是正一,下面如果继续按数字,就按照F1=fh1xf1x10+数字,更新f1变量,然后如果按加减乘除符号,就存入yunsuan变量,可以继续按运算符号,就存入yunsuan1变量,之所以这样是因为按减号既可能确实是在按减号也可能是想按后面数字的负号,直到按下数字,才肯定是想输入第二个数字,其符号存入fh2,这个数字存入f2,继续按数字,就按照f2=f2x10+数字来更新f2。等到按等号或者运算符号时,就按y=fh1*f1(+-x/)fh2*f2来计算最后的值。

无论输入什么数字都要存进一个缓冲区,主程序最后有一些专门代码把这个缓冲区的内容翻译成将要输往74HC595的数据放在显示缓冲区中,最后的运算值也有一个子程序翻译成将要输往74HC595的数据放在显示缓冲区中。

在程序开始时,初始化程序设定了T1中断开始执行,每0.5毫秒中断程序执

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

行一次,中断程序的内容就是把显示缓冲区的内容送到第一个74HC595的SER端子,同时发送脉冲到每一个74HC595的SCK端子,用上面提到的串入并出的方法把内容显示出来。

系统流程图4-2

4.3.2 存储单元分配

数码管采用动态显示方式,P2口的0,1,2.3端口接4个三级管按从高到低的顺序分别让数码管单元的4位分别导通,比如第一次三个数码管模块的第4位导通,

河南机电高等专科学校毕业论文

第二次关第4位让第3位导通,第三次关第3位,让第2位导通,最后一次关第2位让第1位导通,然后循环往复,扫描周期1毫秒。

那么每次就有三个字亮,比如三个数码管模块的第四位亮,这三个数码管各有内容显示,怎么决定这个显示值呢,是这样:每个数码管的内容由一个字节决定,三个数码管由三个字节决定,数码管单元是接在74HC595移位寄存器上的,三个数码管单元接三个74HC595,第一个74HC595的SER端子接P0第一个端口,然后第一个74HC595的H’端子接第2个74HC595的SER端子,第2个74HC595的H’端子接第3个74HC595的SER端子,每个74HC595的脉冲端口SCK都接在P0的第2个端口,这个端口不停的发出移位脉冲,第一批8个脉冲会把第一个74HC595的SER的数据移动到第一个74HC595的缓冲区,第2批8个脉冲把第二批新数据移动到第一个74HC595的缓冲区,同时把第一个74HC595的缓冲区数据移动到第二个74HC595的缓冲区,第三批8个脉冲把SER新数据移动到第一个74HC595的缓冲区,同时把第一个74HC595缓冲区的数据移动到第二个74HC595的缓冲区,而第二个74HC595缓冲区的数据被移动到了第三个74HC595缓冲区。这样不停循环,需要显示的数据由单片机送往第一个74HC595的SER端子,每24个脉冲后这个要显示的数据出现在74HC595的缓冲区,然后24个数据从三个74HC595同时输出到数码管,这样串行输入并行输出来完成数字显示。

4.4计算器子程序设计

4.4.1 输入程序设计

该模块利用17的小按键,提供0-9,+、-、*、/、=、小数点、清零键。再利用数码管,对于即时按下的键和结果进行显示。向列扫描码逐列输出低电平,然后从行码地址读回。如果有键按下,则相应的行值应为低,如果无键按下,由于上拉电阻的作用,行码为高。这样可以通过输出的列码和读取的行码判断按下的是什么键,在判断有键按下后,要有一定的延时,防止键盘抖动矩阵按键扫描程序是一种节省IO口的方法,按键数目越多节省IO口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是那一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。

本键盘扫描程序的优点在于:不用专门的按键延时程序,提高了CPU效率,也不用中断来扫描键盘,节省了硬件资源。另外,本键盘扫描程序,每次扫描占用CPU时最短,不论有键按下或者无键按下都可以在很短的时间完成一次扫描。

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

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

基于51单片机的简易计算器制作专业:电气信息班级:11级电类一班 姓名:王康胡松勇 时间:2012年7月12日 一:设计任务 本系统选用AT89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下: (1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LED 显示数据和结果。 (2)采用键盘输入方式,键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键(on\c)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上提示八个0;当除数为0时,计算器会在LED上会提示八个负号。 设计要求:分别对键盘输入检测模块;LED显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真 分析其设计结果。 二.硬件设计 单片机最小系统 CPU:A T89C52 显示模块:两个4位7段共阴极数码管 输入模块:4*4矩阵键盘 1.电路图

电路图说明 本电路图采用AT89C52作为中处理器,以4*4矩阵键盘扫描输入,用两个74HC573(锁存器)控制分别控制数码管的位于段,并以动态显示的方式显示键盘输入结果及运算结果。为编程方便,以一个一位共阴极数码管显示负号。 三,程序设计 #include #define Lint long int #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; //锁存器段选sbit wela=P2^7; sbit display_g=P2^0; //负号段选 sbit display_w=P2^1; //负号位选uchar code table[]={0x3f,0x06,0x5b,0x4f, //0,1,2,3

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

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

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

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

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

51单片机简易计算器程序

#include <reg51.h>#include <intrins.h> #include <ctype.h> #include <stdlib.h> #define uchar unsigned char #define uint unsigned int uchar operand1[9], operand2[9]; uchar operator; void delay(uint); uchar keyscan(); void disp(void); void buf(uint value); uint compute(uint va1,uint va2,uchar optor); uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xff}; uchar dbuf[8] = {10,10,10,10,10,10,10,10}; void delay(uint z) { uint x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--); } uchar keyscan() { uchar skey; P1 = 0xfe; while((P1 & 0xf0) != 0xf0) { delay(3); while((P1 & 0xf0) != 0xf0) { switch(P1) { case 0xee: skey = '7'; break; case 0xde: skey = '8'; break; case 0xbe: skey = '9'; break; case 0x7e: skey = '/'; break; default: skey = '#'; }

AT89C51单片机C实现简易计算器

AT89C51单片机简易计算器的设计 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图:

二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

(二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。 图 2 矩阵键盘布局图 矩阵键盘内部电路图如图3所示:

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

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

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

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

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

河南##############学校 毕业设计(论文) 基于51单片机的简易计算器 系部: 自动控制系 专业: 电气自动化 班级: 自083 姓名: 崔 # # 学号: 091415302 指导老师: 许 # 二零一二年五月八日

基于51单片机的简易计算器 摘要 工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我以《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》课程中所学知识为基础,设计了简易计算器。本系统以MCS-51系列中的8051单片机为核心,能够实现多位数的四则运算。该系统通过检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。本系统的设计说明重点介绍了如下几方面的内容:基于单片机简易计算器的基本功能,同时对矩阵键盘及数码管动态显示原理进行了简单的阐述;介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明;对系统各功能模块的软、硬件实现进行了详细的设计说明。 关键词:MCS-51;8051单片机;计算器;加减乘除

Based on the simple calculator 51 SCM Abstract The engineering practice teaching is to students better to consolidate and practice have set up by the professional knowledge, in this engineering practice, I to the intelligent measurement control instrument principle and design ", "the MCS-51 series single chip computer and its application" course knowledge as the foundation, the design the simple calculator. This system to MCS-51 of the 8051 series single chip microcomputer as the core, can realize the connection arithmetic. The system through the test matrix keyboard scan, judge whether key, the data transfer the numerical into digital tube dynamic display. This system mainly introduced the design that the following aspects of content: based on single chip microcomputer simple calculator basic functions, and the matrix keyboard and a digital tube dynamic display of the principle of a simple expatiated; introduced the design of the whole system, the whole process of the system are discussed, and its function module partition and the components for a detailed explanation; the functional modules of the system hardware and software of the implementation of the detailed design instructions. Key words: MCS-51;8051 single chip microcomputer;Calculator;Add, subtract, multiply and divide:

51单片机简易计算器代码

#include"reg52.h" #define uchar unsigned char #define uint unsigned int sbit busy=P0^7; void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } char i,j,temp,num; long a,b,c; //a,第一个数b,第二个数c,得数 uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号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,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0 x2b-0x30}; //按键显示编码表 sbit lcden=P2^2; sbit lcdwrite=P2^1; sbit lcdrs=P2^0; //lcd的写指令 void write_com(uchar com) { lcdrs=0; lcden=0; P0=com; delay(1); lcden=1; delay(1); lcden=0; } //lcd的写数据 void write_date(uchar da) { lcdrs=1; lcden=0; P0=da; delay(1); lcden=1; delay(1); lcden=0; } //初始化

void init() //初始化 { uchar num; num=-1; lcdwrite=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); delay(500);//延时0.5s write_com(0x01); i=0; j=0; a=0; //第一个参与运算的数 b=0; //第二个参与运算的数 c=0; flag=0; //flag表示是否有符号键按下, fuhao=0; // fuhao表征按下的是哪个符号 } void keyscan() // 键盘扫描程序 { P3=0xfe; if(P3!=0xfe) { delay(10); //延迟20ms if(P3!=0xfe) { temp=P3&0xf0; switch(temp) { case 0xe0:num=0; break; case 0xd0:num=1; break; case 0xb0:num=2; break; case 0x70:num=3; break; } } while(P3!=0xfe); if(num==0||num==1||num==2)//如果按下的是'7','8'或'9 { if(j==1)//确认一次计算完毕,清屏 { write_com(0x01);

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

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

四、实验内容

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

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

51单片机 实现计算器功能

51单片机多为计算器汇编程序 此程序并不仅仅局限于255以内操作 FIR0 EQU 30H FIR1 EQU 31H FIR2 EQU 32H FIR3 EQU 33H ;第一个操作数 SEC0 EQU 34H SEC1 EQU 35H SEC2 EQU 36H SEC3 EQU 37H ; 第二个操作数 LIN0 EQU 38H LIN1 EQU 39H LIN2 EQU 40H LIN3 EQU 41H ; 数据暂存 RES0 EQU 42H RES1 EQU 43H RES2 EQU 44H RES3 EQU 45H ;结果暂存区 XLINE EQU 46H YLINE EQU 47H ;记录按键按键位置 SYMBLE EQU 48H ;操作符存储 DDE0 EQU 49H DDE1 EQU 50H DDE2 EQU 51H ;用于延时 FLEL4 EQU 52H FLEL5 EQU 53H FLEL6 EQU 54H BEFOR EQU 55H HH BIT 01H ;比较大 EE BIT 02H ;比较相等 FIL BIT 03H ;溢出标记 FLAG BIT 04H ;有无按键标记 ERR BIT 05H ;错误标记 YESY BIT 06H ; 有无操作符按键标记

NUM BIT 07H ;按键个数标记 YESN BIT 08H ;有无数字按键标记 ORG 0000H LJMP MAIN ORG 0003H LJMP INTERUPT MAIN: MOV IE,#01H ;初始化 MOV SP,#6FH LCALL CLRI SETB IT0 SETB EA DISPLAY: ;数码管显示函数 CJNE R3,#00H,TT1 MOV R3,#0AH TT1: CJNE R3,#0AH,STARTD CJNE R2,#00H,TT2 MOV R2,#0AH TT2: CJNE R2,#0AH,STARTD CJNE R1,#00H,STARTD MOV R1,#0AH STARTD: MOV A,R0 LCALL TRANS ;将所要显示的值转化为数码管对应的数据 MOV P2,A MOV P1,#10H LCALL DELAY10ms MOV A,R1 LCALL TRANS MOV P2,A MOV P1,#20H LCALL DELAY10ms MOV A,R2 LCALL TRANS MOV P2,A MOV P1,#40H LCALL DELAY10ms

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

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

基于C51简易计算器综述

单片机课程设计 简 易 计 算 器 专 业 班 级 学生姓名 学 号 任课教师 提交日期 JINGCHU UNIVERSITY OF TECHNOLOGY

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阳极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

1.1 设计要求 本次课程设计,我选择的课题是单片机十进制加法计算器软硬件设计,设计任务为: 设计一键盘显示装置,键盘上除需定义10个十进制数字键外还要相应的功能键,其它键不定义无响应。利用此系统可分别可输入十进制被加数与加数,实现两数相加并将结果以十进制形式显示出来。(扩展:多位10进制数相加) 1.2 性能指标 本课程设计的十进制加法计算器的计算范围为0~255,计算结果全为整数,计算结果溢出结果不显示。 1、加法:三位加法,计算结果超过255溢出不显示 2、减法:三位减法,计算结果若小于零溢出不显示 3、乘法:三位数乘法 4、除法:整数除法 5、有清零功能 1.3 设计方案的确定 按照1.1的设计要求,本课题需要使用数码管显示和扩展4*4键盘,由于 AT89C51芯片的I口不够多,而且为了硬件电路设计的简单化,故选择串行动态显示和用P1口扩展4*4键盘,扩展的4*4键盘定义十个数字键,六个功能键,使用串行动态显示显示运算结果。 主程序进行初始化,采用行列扫描进行查表得出键值,每次按键后调用显示子程序。 二、单片机简要原理 在该课程设计中,主要用到一个AT89C51芯片和串接的共阴数码管。作为 该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 2.1 AT89C51的介绍:

51单片机计算器设计

1引言 当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间内将单片机技术融会贯通,才能跟上时代的步伐。 它所给人带来的方便也是不可否定的,它在一块芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 本设计是由单片机实现的模拟计算器,它不仅能实现数据的加减乘除运算,而且还能使数据及其计算结果在数码管上显示出来,能够实现0-256的数字四则运算。本设计是用单片机AT89C51来控制,采用共阳极数码显示,软件部分是由C语言来编写的。设计任务利用键盘和数码管设计一个简单的数学计算器,可以完成简单的如加,减,乘,除的四则运算,并将运算结果在数码管上显示出来。 2.方案论证与设计 根据功能和指标要求,本系统选用MCS 51 单片机为主控机。通过扩展必要的外围接口 电路,实现对计算器的设计。具体设计考虑如下: ①由于要设计的是简单的计算器,可以进行四则运算,对数字的大小范围要求不高,故 我们采用可以进行四位数字的运算,选用8 个LED 数码管显示数据和结果。 ②另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可。系统模块图: 2.1 输入模块: 键盘扫描计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式。为此,我们引入了矩阵键盘的应用,采用四条I/O

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

电子设计结课论文题目: 系别: 专业: 学生姓名: 学号: 实验研究工程设计工程技术研究 年月日

基于51单片机的简易计算器 摘要:工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置 的,在本次工程实践中,我以《智能化测量控制仪表原理与设计》、《MCS-51系列单片微型计算机及其应用》课程中所学知识为基础,设计了简易计算器。本系统以MCS-51系列中的8051单片机为核心,能够实现两位数的四则运算。该系统通过检测矩阵键盘扫描,判断是否按键,经数据转换把数值送入数码管动态显示。 本系统的设计说明重点介绍了如下几方面的内容: 1)基于单片机简易计算器的基本功能,同时对矩阵键盘及1602显示原理进行了简单的阐述; 2)介绍了系统的总体设计、给出了系统的整体流程框图,并对其进行了功能模块划分及所采用的元器件进行了详细说明; 3)对系统各功能模块的软、硬件实现进行了详细的设计说明。 关键词:MCS-51 8051单片机;计算器;加减乘除

目录 目录 第一章绪论 (1) 1.2设计目的 (1) 1.3设计任务 (1) 1.4章节安排说明 (1) 第二章计算器系统简介 (2) 2.1单片机发展现状 (2) 2.2计算器系统现状 (2) 2.3简易计算器系统简介 (3) 第三章主要器件简介 (4) 3.1MCS-51系列单片机简介 (4) 3.2其它器件简介 (7) 3.2.11602显示 (7) 3.2.2矩阵按键 (7) 第四章计算器系统设计 (8) 4.1计算器硬件电路设计 (8) 4.2.2主程序设计............................................................... 错误!未定义书签。结语. (17) 参考文献 (18)

51单片机计算器程序

#include #include #include #include"1602.h" #include"math.h" #define uchar unsigned char #define uint unsigned int uchar KeyV; uchar Y=0; //长度 uchar K=0; //错误标示uchar Z=0; //扫描位uchar S=0; //结束标志uchar A=0; uchar code show1[16]={ '1','2','3','+', //键位显示 '4','5','6','-', '7','8','9','*', '.','0','=','/' }; uchar code key1[16]={ //键位 1,2,3,'+', 4,5,6,'-', 7,8,9,'*', '.',0,'=','/' }; uchar code Key[16]= { 0x77,0x7b,0x7d,0x7e, 0xb7,0xbb,0xbd,0xbe, 0xd7,0xdb,0xdd,0xde, 0xe7,0xeb,0xed,0xee, }; uchar mode[17]; uchar show[16]; uint ch1[16]; /*void T0Server() interrupt 1 { EA=0; } void delay_50ms() { TMOD=0x01;//定时器0 方式1 TL0=0XAF;

TH0=0X3C;//50mS TR0=1;//启动定时 ET0=1;//启动中断 EA=1; } void delay_1s() { uchar h; for(h=0;h<20;h++) {delay_50ms();} }*/ void delay(uchar i) { uchar h,t; t=200; for(h=0;h15)S=1; show[Y]=show1[i]; mode[Y]=key1[i]; Display(0,0,show) ; Y++; break; } } }

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

基于单片机的简易计算器设计 摘要 (2) 关键字:80C51 LCD1602 4*4矩阵键盘计算器 (2) 第一章绪论 (3) 1、1系统开发背景 (3) 1、2系统开发意义 (3) 1、3设计目的 (3) 1、4设计任务 (3) 第二章单片机发展现状 (4) 2、1目前单片机的发展状况 (4) 2、1、1单片机的应用场合 (4) 2、2计算器系统现状 (5) 2、3简易计算器系统介绍 (5) 第三章系统硬件设计及说明 (6) 3、1系统组成及总体框图 (7) 3、2AT89S52单片机介绍 (7) 3、3其它器件介绍及说明 (10) 3、3、1 LCD1602液晶显示 (10) 3、3、2 4*4矩阵扫描按键 (13) 第四章 PROTEUS模拟仿真 (14) 第五章系统硬件设计及说明 (16) 第六章软件设计 (17) 6、1汇编语言与C语言的特点及选择 (17) 6、2源程序代码 (17)

摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测与自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识就是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。 计算机在人们的日常生活中就是比较常见的电子产品之一。可就是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计主要以80C51单片机为控制芯片,用C语言进行编程实现,通过4*4矩阵键盘控制,输出用液晶屏LCD1602显示,该计算器可以实现一般的加减乘除四则混合运算。 关键字:80C51 LCD1602 4*4矩阵键盘计算器

51单片机的简易计算器要点

华侨大学厦门工学院单片机控制系统课程设计报告 题目:基于51单片机的简易计算器 专业、班级: 学生姓名: 学号: 指导教师: 2014年 5 月20 日

目录 一、设计任务目的 (2) 二、计任务要求 (2) 三、设计方案选取与论证 (2) 四、电路设计 (3) 4.1总体电路图 (3) 4.2 硬件设计 (4) 4.2.1 矩阵按键 (4) 4.2.2 AT89C52主芯片 (4) 4.2.3 LCD显示 (7) 4.3软件设计 (7) 4.3.1 键盘模块 (8) 4.3.2 计算模块 (8) 4.3.3 显示模块 (9) 五.制作及调试过程 (10) 5.1 制作过程 (10) 5.2 软件调试 (10) 5.3 硬件调试 (11) 结论 (12) 致谢 (13) 参考文献 (13)

一、设计任务目的 设计一个计算器,可以进行简易的四则运算。 二、计任务要求 1、能够进行简单的四则运算,包括带负数的运算。用LCD显示数据和结果(6位即可) 2、采用键盘输入方式,键盘包括数字键(0~9)、符号(+、-、×、÷)、清除键(c)和等号键(=),故只需要16 个按键即可。 3、在执行过程中,开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 4、错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD 上提示OV;当除数为0时,计算器会在LCD上提示ERR。 三、设计方案选取与论证 1、单片机部分 单片机以AT89C51来做为核心元器件。 2、按键部分 设计思路:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键。但是这种方式采用了大量的I/O口线。 3、显示部分 在单片机应用系统中,使用的显示器主要有LED(发光二极管显示器)、LCD液晶显示器以及CRT接口。 思路:使用液晶显示器来显示。液晶是介于固态和液态间的有机化合物,将其加热会变成透明液态,冷却后变成结晶的混浊固态。在电的作用下,产生冷热变化,从而影响它的透光性,来达到显示的目的。LCD还具有以下几个优点(1)低压、微功耗(2)显示信息量大(3)长寿命(4)无辐射,无污染。 其系统结框图如下:

相关文档
最新文档