PAGE 15

十进制加减法计算器单片机设计

一、设计目的

通过课程设计使学生更进一步掌握单片机原理与应用课程的有关知识,提高用汇编语言编程的能力,并将所学的内容加以综合。通过查阅资料,了解所学知识的应用情况。

二、课程设计要求

设计十进制加减法计算器。要求能(不同时)显示3位输入和4位输出。

要求程序实现功能

(1)十进制加减法计算:输入范围为(1~999),该程序输入两个定点数,每个3位,输出4位;A为加,B为减,C为等于,输出为四位计算结果。数据输入采用规范化输入,即必须输入3个数才算完成一个运算数的输入,两个运算数之间输入运算符A或者B,输入完成按C显示计算结果。

(2)计算器复位功能:DEL均为清零重启,任何时候按下DEL中一个将重新开始。

三、硬件设计

现实生活中人们熟知的计算器,其功能主要如下:(1)键盘输入;(2)数值显示;(3)加、减运算(此次只要求加减);(4)对错误的控制及提示。

此次计算器设计的最终结果是使其工作流程为:开机不显示,等待键入数值,键入三个数字,通过LCD显示出来,当键入+、-运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入三个数字将显示键入的数值,按等号就会在LCD上输出运算结果。同时考虑到操作中可能出现的错误时,计算器会进行自动控制。

根据设计要求,选用8098 单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。此次设计的系统模块图如下,

输入模块 单片机

输入模块

单片机

运算模块

运算模块

显示模块

显示模块

具体设计考虑如下:

1、单片机工作时电源引脚外接电源,工作电压为5V,同时本次设计通过内部振荡器和时钟发生器产生时钟信号。

2、8098单片机可寻址的存储器空间为64K空间,其内部仅带有只能用作寄存器的256个字节容量的RAM,所以在此设计过程中,需要外接存储器芯片,我们选用容量足够大的62128存储器芯片。

本次设计的接口电路采用8255可编程并行I/O芯片,8255A具有通常意义的接口所需要的基本功能,有着很强的适应性,此次设计中它起的作用是将显示器和键盘与单片机连接,通过向其控制寄存器送入控制字,以规定8255的工作方式和实现确定的功能,如本次设计的电路图,8255的A口、C口均工作于输出方式,而B口工作于输入方式。

存储器芯片和8255芯片各都需要通过一个锁存器74LS373芯片和单片机连接,锁存器的作用是锁存单片机P3口送出的低8位地址码。

5、由于要设计的是简单的计算器,可以进行加减运算,对数字的大小范围要求不高,故我们采用可以进行三位数字的运算,选用4片七段共阴极LED显示数据和结果。

6、键盘共设置16个键,为4×4分布,其中数字键从第四排左起0~9共十个,接着是加号键、减号键、等号键和三个清除键,所对应的键值分别是A(+)、B(—)、C(=)、和D、E、F(清除键)。

键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,若无硬件去抖动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。

本次设计读取键值采用按键扫描程序的方法,思路是对键盘上的某一行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描下一行。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多数需要,又能节省大量的CPU时间。

本次的电路设计在附图上。

软件设计

汇编语言 本次设计是由硬件电路和软件编程相结合,虽然我们以前学过C语言,而且觉得这次设计用C语言会更加方便,灵活,但是汇编语言特别适合于实时控制系统这样的应用场合,作为学电气工程及其自动化专业的学生,我们学习单片机的主要目的是将单片机用于检测和控制领域,所以,选择用汇编语言进行本次设计将有助于提高我们的专业知识。

软件设计思路主要从以下几个方面考虑:

在主程序中先设置8255的工作方式,初始化对需要存数值和标志位的存储单元清零,并且位选不选中任何数码管,段选为#00H,即使4个数码管初始状态无显示。

进入键盘扫描程序,先对最低行送低电平,其他行为高电平,然后读取列值。若列值中有一位是低,则表明该行与低电平对应列的键被按下;否则,扫描上一行。当扫描到有键按下,可以通过行首键值和列编号值之和来读取此按键的键值,不管有没有按键,扫描一次返回主程序,进入键值处理程序中。

若没有按键,则进入键值处理程序中,相当于执行了一条空指令,同样进入显示程序中由于没有按键也相当于执行了一条空指令,所以在没有按键的情况下,主程序的循环相当于扫描程序的不停循环,一直等到有按键出现。

若在扫描程序中查到按键,则可以读出键值,在键值处理程序中

更多推荐

单片机加减法计算器_课程设计--十进制加减法计算器单片机设计.doc