基于51单片机的科学计算器的设计开发

时间:2022-06-19 07:38:52

基于51单片机的科学计算器的设计开发

【摘 要】计算器可谓是一种简单而易用的计算工具。通常,计算器由主控、显示、键盘输入、电源四部分组成。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除8位数范围内的基本四则运算,以及乘方、开方、正余弦函数等一般常用运算,主控部分以AT89S52为核心,用C语言编程,并在LCD上显示相应的结果。

【关键词】AT89S52单片机;LCD;计算器

文章编号:ISSN1006―656X(2014)05-0153-01

一、前言

计算器是与我们日常生活中最为常用的计算工具,虽说现在智能化手机都以集成了部分计算器的功能,但对于某些财务工作者而言,计算器仍然是其不可替代的便携工具。较比简单的普通计算器而言,科学计算器除了能进行加减乘除四则运算之外,还可以进行乘方、开方运算、具有指数、对数、三角函数、反三角函数及存储等计算功能。为此,开发设计更加具有小型化、功能化、精度化的多功能科学计算器具有一定的社会价值及推广价值。

本设计使用AT89S52单片机作为主控制芯片,通过计算机的8×8矩阵键盘进行数据输入,进行相应的加、减、乘、除的运算,以及乘方、开方、正余弦函数等一般常用运算,并在LCD1602上显示相应的结果。AT89S52单片机是一种低功耗、高性能COMS 8位微控制器,具有8K在系统可编程Flash储存器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash容许程序存储器在系统可编程,亦适用于常规编程器。在芯片上,拥有灵巧的8位CPU和在系统可编程FLash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

二、核心芯片概述

(一)AT89S52单片机

AT89S52 是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

(二) 8*8矩阵键盘

键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘。在智能仪器中,使用并行接口芯片8279或串行接口芯片HD7279均可以组成编码键盘,同时还可以兼顾数码管的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。非编码键盘成本低廉。从成本角度出发,本设计选用的是非编码矩阵键盘。计算器的键盘布局如图所示:一般有64个键组成,在单片机中正好可以用4个P口实现16个按键功能,这种形式在单片机系统中也是最常见的。如图1所示:

三、软件系统设计方案

主程序设计主要针对51单片机进行数字计算器系统设计开发,利用C语言编程,并用开发板制作并显示。核心子程序设计包括LCD1602显示模块程序设计,以及矩阵键盘的驱动设计。

(一)液晶显示程序设计

显示模块程序首先要对显示模块进行初始化;然后控制光标的位置;定义液晶显示的控制端口,用SBIT指令完成;然后设置清屏、关闭显示、归位、开显示、显示位置的首地址等等。

LCD1602在上电以后,应该先等待50毫秒左右,让其内部芯片初始化后再对其进行操作。在对其操作时,应参考其时序图,先把命令写入其内部寄存器设置它的工作方式和状态。要显示数据的时候,先设置好显示坐标,在往里写入要显示的ASCII码,LCD则通过刷新和替换新的数据。

(二)矩阵键盘扫描程序设计

键盘扫描子程序,首先读出P1的低四位,然后读出P1口的高四位。然后键值并显示缓存。然后将键值转换为ASCII码然后就可以软件来设置硬件按键各个键代表的内容。读键程序使用的是反转法读键,不管键盘矩阵的规模大小,均进行两次读键。第一次所有行线均输出低电平,从所有读入键盘信息(列信息);第二次所有列线均输出低电平,从所有行线读入键盘信息(行信息)。数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。

经过多次测量与调试,本计算器基本能实现设计要求中的功能。由于本设计功能相对简单,计划在后续的功能中,不断增添新功能,进而完善计算器的功能。

参考文献:

[1]李建中.单片机原理及应用[M].西安:西安电子科技大学出版社,2011:(15-17).

[2]肖洪兵. 跟我学用单片机[M]. 北京:北京航空航天大学出版社,2002.8:(3-20).

[3]谭浩强. C语言程序设计[M].北京:清华大学出版社,2000:(22-23).

[4]刘福基. C语言程序设计与实训教程[M].北京:科学出版社,2004:(11-15).

上一篇:关于企业人力资源管理“三定”工作的研究 下一篇:基于企业价值提升的内部控制建设的思考