8051汇编语言计算器设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8051汇编语言计算器设计

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

关键字:AT89C51 单片机按键控制 LED显示

第一章引言

计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。高档计算器由微处理器和只读存储器实现各种复杂的运算程序,有较多的随机存储单元以存放输入程序和数据。

本计算器整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据转换成显示器显示;功能模块三,显示器动态显示.具体设计如下:

1、由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用LCD显示数据和结果。

2、另外键盘包括数字键(0-9)、符号键(+、-、*、/)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算机键盘。

3、执行程序:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。

4、错误提示:当单片机执行程序中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算器得到的结果大于计算器的显示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD上提示错误。

第二章系统硬件结构设计

硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机

应用系统。本设计选用以AT89C51单片机为主控单元。显示部分:采用LCD静态显示。按键部分,采用4*4键盘。硬件电路如下:

2.1 键盘接口电路

计算机输入数字和其他功能按键时要用到很多按键,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这样的方式,而是采用矩阵键盘的方式。矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的数量就为4*4个。这样行列式键盘结构能有效的提高单片机系统中I/O口的利用率。

计算器的键盘布局所示:一般有16个键组成,在单片机中正好有一个端口实现16个按键功能,这种形式在单片机系统中最常用。矩阵键盘内部电路如下:

2.11 LCD显示模块

本设计采用LCD液晶显示器来显示输出数据。LCD的特性有:1、+5V电压,对比可调度;2、内含复位电路;3、提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;4、有80字节显示数据存储器DDRAM;5、内建有160个5X7点阵的字型的字符发生器CGROM;6、8个可由用户自定义的5X7的字符发生器CGRAM。

本设计通过D0-D7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应的数据。接口电路如下:

2.111 运算模块

MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等计算机所需要的基本功能部件。如果按功能划分,它由以下功能部件组成,即微处理器(CPU),数据存储器(RAM),程序存储器(ROM/EPROM),并行

I/O口,串行口,定时器/计数器,中断系统及特殊功能寄存器(SFR)。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的一些功能,通过使用单片机编写的程序可以实现高智能、高效率以及高可靠性,因此采用单片机作为计算器的主要功能部件,可以很快的实现运算功能。

运算模块由键盘和显示屏组成。单片机通过按键来实现输入数据和操作方式的控制,在运算过程中,对所设的数据进行四则运算时,要先确定选用的是哪一个运算符,若是+或*,则要判断结果是否会溢出,溢出则显示错误提示,没有溢出则显示运算结果,若是/,则要判断除数是否为零,为零时显示错误提示,不为零显示运算结果。

第三章系统软件设计

3.1 键扫程序设计

键扫程序的过程为:开始时,先判断是否有键闭合,无键闭合时,返回继续判断,有键闭合时,先去抖动,

然后确定是否有键按下,若无键

按下,则返回继续判断是否有键

闭合,若有键按下,则判断键号,

然后释放,若释放按键完毕,则

返回,若没有释放按键,则返回

继续释放。流程图如下:

Y N

开始

有键闭合

否?

去抖动

确有键按下

判断键号

释放

返回返回

Y

N

Y

N

3.11 算术运算程序设计

算术运算程序的过程为:先判断输入的运算符是+、-、*、/ 中的哪一个,若是+或-,则要判断运算结果是否溢出,溢出则显示错误信息,没溢出就显示运算结果,若是/,则要先判断除数是否为零,为零就显示错误信息,不为零则显示运算结果,若是-,则直接显示运算结果,流程图:

3.111 显示程序设计

显示程序的过程为:显示开始时,先进行LCD 的初始化,判断是否显示,若不显示,则返回,若有显示则进行相应功能的设置,然后送地址和数据,再判断是否显示完,显示完则返回,没有显示完则继续送地址.流程图:

开始

运算符

是?

加 乘

运算结溢

出?

除数为

0?

错误信息送显示

缓冲

显示结果

Y Y

N

N

3.1111 C 程序的图片

显示开始

LCD 初始化

显示

相应功能设置

送地址

是否显示完

返回

送数据

Y

N

第四章系统软件结构设计要求

1、由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用LCD显示数据和结果。

2、另外键盘包括数字键(0-9)、符号键(+、-、*、/)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算机键盘。

3、执行程序:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。

4、错误提示:当单片机执行程序中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算器得到的结果大于计算器的显示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD上提示错误。

第五章实验结果分析

调试一般分为以下四个阶段:1、编写程序并查错;2、在C语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误; 5 、仿真

在本次调试中出现的问题有:

1、在程序中有的函数名未定义;

2、在抄录程序时,少录入一些字符,如:“;”、“{”、“-”等符号,而出现错误;

3、有一些函数名录入时少写一个字母或顺序颠倒;

4、没有注意函数名的调用及定义;

参考文献

1.谭浩强C语言第二版

2.王静霞单片机应用技术

3.龚运新单片机C语言开发技术

仿真图仿真图1:

仿真图2:

相关文档
最新文档