APP下载

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

2018-02-25赵续

电子技术与软件工程 2018年7期
关键词:单片机

赵续

摘要 随着社会发展,电子设备应用更加广泛,尤其是简易计算器得到了很多人的青睐,其可以很方便地实现一些简单运算。本文设计了一种新的计算器,设备采用STC89C52单片机为主控芯片,因为它具有功耗小的特点,电源部分选用5v电压供电。系统的硬件部分的输入和输出设备分别采用键盘和16 02LCD液晶显示屏,从而实现15位数以内的四则运算。系统的软件部分在keil环境下采用C语言编写,并通过Proteus仿真验证。

【关键词】单片机 矩阵键盘 液晶显示屏

单片机芯片上集成了大规模特定功能的器件。其中最主要的元器件就是中央处理CPU,其是单片机的大脑。单片机还集成了一些具有存储功能的设备,如:只读存储器ROM和随机存储器RAM;定时器/计时器也是常用到的单元;为了与其他设备进行信息传输,单片机还需有多种I/O口。本文研究的是单片机在日常生活中常见的应用一一简易计算器。由于它操作方便,因此应用较为广泛。该设备通常利用LCD液晶对数据进行显示,从而可以使运算结果更加直观而且不会浪费过多的电能。为了便于学习,本文对其功能进行了简化,可进行整数和浮点运算,运算位数也可扩展到15位。

1 电子计算器的意义分析

电子计算器是一种电子产品,是人们在生活和工作中必不可少的工具。电子技术的飞速发展,人们对电子产品的要求也不断提高,针对以上现状,本文设计了一款更加简便的计算器,该产品采用新方法来实现功能。由于采用传统的技术要实现比较完善的功能需要非常复杂的模拟电路设计,不仅会使设备显得笨重,同时也不利于操作。而一片集成度较高小体积的芯片就可以解决上述问题。本文设计的计算器就是采用单片机对系统进行控制,显示模块采用1602LCD显示器,数据的输入采用矩阵按键。该设备具有的优势是十分明显,不仅体积小、精度较高而且方便使用。当前对数据的运算不仅进停留在简单的四则运算上,还会经常需要进行乘方、开方、指数、对数、三角函数等计算,所以对计算器的研究和改进有较强的实际意义和价值。

2 系统总体设计

2.1 设计要求

本文采用STC89C52系列单片机作为主控制器,对外围电路进行一定的拓展完成实现对计算器的设计,设计要求主要包括以下六个方面:

(1)掌握单片机和外围扩展电路的设计方法:

(2)可进行四则运算,采用LCD显示数据和结果;

(3)可以完成浮点数之间的一些加减乘除运算;

(4)支持括号运算,允许多层正确嵌套;

(5)具备比较完善的报错系统;

(6)显示界面友好,可实时显示输入数据;

系统整体框图如图l所示。

2.2 设计方案

系统的具体设计方案主要分为以下5步:

(1)输入模块部分使用4*4的矩阵键盘和4个独立按键;

(2)电源采用LM7805的稳压电路;

(3)执行程序:应用液晶显示屏显示模块部分,开机时无数字显示,进入等待键入数值的状态;当有数字键入时,在液晶显示屏显示出数值;当键入运算符+、-、*、/时,计算器的内部将会进如数值的转换和存储状态,接着等待下一个数值被键入,之后键入的数值会被显示出来;最后通过按等号键输出运算结果就会在液晶显示屏上;

(4) AC清零功能:在运算结果输出之后通过按键键入AC键,把数据清零,接着等待下一步计算。

(5)错误提示:如果单片机在执行程序过程中出现错误,相应的错误提示信息则将会在液晶显示器上显示出来。

3 硬件系统设计

3.1 主控芯片STC89C52单片机

考虑到系统的功耗和性能等因素,选用的STC89C52控制芯片具有32个I/O口,内部FLASH程序存储器8KB,内部RAM12字节,内部EEPROM2KB,双DPTR指针,3个定时器/计数器,自带看门狗WatchDog。

3.2 辅助模块设计

LCD液晶显示器用来显示数值的输出和输入。它的数据端与单片机的PO口相连接,控制端部分与P24-P26相连接。当所需要的键盘数量较多时,为避免占用更多I/O口,最有效的方法就是将按键以矩阵形式进行排列。需要注意的是,在行和列的交叉处不能直接进行连接,而是使用一个按键将两者连接。通过以上处理,一个I/O口就可以控制多个按键。

蜂鸣器起到一个提示的作用,当有按键被按下时就会发出声音。本文中,驱动蜂鸣器采用的是三极管。由于单片机I/O的驱动能力不足,因此可以利用单片机的I/O口实现开关功能。如果想要打开蜂鸣器通道则显示屏显示为‘O,这样蜂鸣器会发出声音。

本文设计的计算器系统的电源模块采用LM7805作为稳压芯片。由于STC89C52和LCD1602都采用5V电压供電,经过初级和次级的电容滤波,最终可以得到5V的电压供给使用。

4 软件系统设计

软件编程平台选用最常用的keil软件,仿真平台选择常见的Proteus软件。因为这些程序并没有牵涉到底层的驱动问题,所以选用方便简捷的C语言编程。通常把编程过程共分为四个模块部分:主函数模块部分、延时模块部分、1602显示模块部分、用于处理计算表达式的对战模块部分。采用模块化设计,便于系统的调试与了解。重点介绍软件核心的表达式解决程序算法部分。

4.1 总体设计

在显示数据传输的进程中,应经过程序控制的实时处理信息,显示出输入数据信息,差错控制信息,运算结果信息,实时解决自定义的控制键功能,并且实现控制功能。系统的具体流程设计步骤如下所示:

(1)开始后程序应该先初始化参数,这时1602无数字显示。

(2)然后开始扫描键盘看是否有输入,如果有输入则读取键盘的编码。如果是数字键则输入数值;如果是清零键则状态就为清零;如果是功能键则判别输入的是‘+键‘.键‘*键‘/键还是‘=键;如果是‘=键,则输出运算结果并且在LCD上显示出运算结果;如果是其他键则保存其相对运算程序的首地址并且在LCD上输出显示出来。

4.2 子程序设计

矩阵键盘扫描程序如下,首先初始化地址参数,依次读出低四位数据和高四位。然后再确定键的ASCII码值送给LCD显示并且与表达式相对应的堆栈进行处理。读键过程利用的是反转方法,无论矩阵规模大小都分为两次来完成读键。第一次所有行线都输出高电平,读入行信息;第二次所有列线都输出高电平,读入列信息。

根据对系统的要求和硬件本身的特性的分析,系统的复位功能只需要将AC按键与单片机的外部中断O连接,就可以利用单片机的中断对数据进行清理。具体过程为:程序运行期间通过不断查询标志位,若为O,则启动清零功能,清零结束后将标志位置为l后返回主程序。

1602在上电以后,在进行具体化操作时应先对其内部芯片做初始化处理。并且具体操作时其时序图的参考也是非常有必要的,必须参考其时序图,再把命令写入它的内部寄存器,然后再将工作方式及工作状态进行设置。

5 系统调试

本文以整数运算为例子来测试电子计算器的可行性。首先需要打开电源,能够看到LCD打开显示,说明能够正常运行,如果我们输入一个比较完整的表达式:12*(34+56-78)/9,其正确结果应该为16。当所有的数值都被输入以后,再按“=”键,其运算结果就会在第二行的位置显示出来。在使用过程中,按键音的打开和关闭还可以通过声音开关按钮来控制,通过在LCD上显示出来以判断是否打开按键声音,如果有声音被打开,则在第二行的第一个位置就有显示。如果声音还没有被打开,那么在第二行的第一个位置就没有显示,它们都能够通过按钮打开或关闭声音。如圖2所示。

6 结束语

本设计以STC89C52作为主控芯片,采用LCD1602液晶显示数据,软件部分是用C语言来编写,利用键盘和液晶设计的一个简便计算器,能够实现数据的简单四则运算,并且在液晶屏上显示运算结果。另外单片机的程序能够可靠运行和修改,尤其是能够实现一些独特的功能特性。通过利用单片机来编写程序以便于完成高智能、高效率和更高的可靠性。

参考文献

[1]彭棣,基于单片机的多功能计算器的设计与实现电气工程自动化[J],山东工业技术,2017 (04):189.

[2]刘巧平,李平,周斌,基于STC89C51单片机的实用计算器设计[J].信息技术,2016 (11):121-123+126.

[3]夏鲲,陈国平,单片机理论实验课程设计协同教学方法探讨[J].课程教育研究,2016 (31):243.

[4]吴洋,许建明,陈炯明,基于单片机的电子计算器的设计[J].电子世界,2016 (08):18.

猜你喜欢

单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
MSP430单片机在仿真中要注意的几点问题
基于单片机的平衡控制系统设计
基于单片机的三维LED点阵设计
Microchip推出两个全新PIC单片机系列
基于Proteus的单片机控制系统的仿真设计