深圳市组创微电子有限公司
咨询电话
0755-8299 4126

个人消费类电子

LCD计算器控制板设计开发


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

一、电子计算器的意义分析

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

二、LCD计算器系统总体设计

2.1设计要求

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

(1)掌握单片机和外围扩展电路的设计方法;(2)可进行四则运算,采用LCD显示数据和结果;(3)可以完成浮点数之间的一些加减乘除运算;(4)支持括号运算,允许多层正确嵌套;(5)具备比较完善的报错系统;(6)显示界面友好,可实时显示输入数据;

2.2设计方案

系统的具体设计方案主要分为以下4步:(1)输入模块部分使用4*4的矩阵键盘和4个独立按键;电源采用LM7805的稳压电路;

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

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

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

三、电子计算器硬件系统设计

3.1主控芯片STC89C52单片机

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

3.2辅助模块设计

LCD液晶显示器用来显示数值的输出和输入。它的数据端与单片机的P0口相连接,控制端部分与P24~P26相连接。当所需要的键盘数量较多时,为避免占用更多I/O口,最有效的方法就是将按键以矩阵形式进行排列。需要注意的是,在行和列的交叉处不能直接进行连接,而是使用一个按键将两者连接。通过以上处理,一个I/O口就可以控制多个按键。蜂鸣器起到一个提示的作用,当有按键被按下时就会发出声音。本文中,驱动蜂鸣器采用的是三极管。由于单片机I/O的驱动能力不足,因此可以利用单片机的I/O口实现开关功能。如果想要打开蜂鸣器通道则显示屏显示为‘0’,这样蜂鸣器会发出声音。

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

四、LCB电子计算器软件系统设计

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

4.1总体设计

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

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

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

4.2子程序设计

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

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

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

五、电子计算器系统调试

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

总结

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

以上就是我们深圳市组创微电子有限公司为您介绍的LCD电子计算器开发示例。如果您有蓝牙耳机方案开发需求,可以放心交给我们。我们代理多种单片机、语音芯片、双模蓝牙IC、wifi芯片。品牌有松翰单片机、应广单片机、杰理蓝牙、安凯蓝牙、全志、瑞昱(realtek)。我们的技术服务范围有:PCB设计、单片机开发、蓝牙方案、软硬件定制开发、APP开发、小程序开发、微信公众号开发等。还可以承接智能电子产品方案设计、生活电器开发、美容仪器研发、物联网平台应用、智能家居控制系统、TWS耳机、蓝牙耳机音箱开发、儿童益智玩具方案开发、电子教育产品方案设计等。

  • 返回顶部