王丽琴史 航
(1.常州信息职业技术学院,常州 213164;2.江苏理工学院,常州 213001)
基于单片机的数字式计算器设计
王丽琴1史 航2
(1.常州信息职业技术学院,常州 213164;2.江苏理工学院,常州 213001)
该系统以单片机AT89S52为控制核心,矩阵键盘为输入及控制单位,数码管为动态显示系统组成,完成了具有基本计算功能的计算器设计。设计中的重点部分主要是系统完成算法、显示等一系列计算的电路设计和程序设计。系统的硬件部分主要包括键盘扫描、最小系统板、数据显示、蜂鸣器四大部分。软件部分应用单片机C语言实现全部设计的控制功能,包括基本的数码管动态显示、矩阵键盘的扫描、输入数字的记录、运算的各种实现。蜂鸣器具有报警的功能,在输入错误或无法计算时进行报警。整个系统设计成本较低,能对输入的数据及正常的运算结果进行实时显示。
单片机 矩阵键盘 数码管 蜂鸣器 稳压芯片
随着电子计算机的普及发展,人们曾经预言计算器将退出历史舞台。然而,电子技术的不断进步,也使计算器的功能越来越强大。由于计算器具有体积小、携带方便、易于掌握、节省工作时间等优点,它的应用不但没有缩小,而且在工程计算、商业和金融业务及中学数学、物理、化学教学中被广泛应用。
本次数字式计算器的设计要拥有以下几个功能,数据的输入、内部处理、结果显示、各种报错功能。键盘与数码显示器是单片机应用系统中常用的输入和输出的外部设备。单片机通过键盘接收数据和命令,显示器用来显示单片机的计算结果或运行状态。这里要解决的硬件内容有数据和符号输入键盘与处理器的连接,报警器的设计和实现,结果显示数码管的驱动控制与实现及各种元器件的选择,包括PCB布线的选择;软件部分包括对输入数据和符号的识别和处理,将结果输出到结果数码管显示,对输入和计算错误的输出报错警示等功能。设计中的重点部分主要是系统完成算法、显示等一系列计算的电路设计和程序设计。
本设计是基于51系列的单片机进行的计算器模拟系统设计,可以完成计算器的键盘输入,进行加、减、乘、除数字运算,并在LED上相应显示[1-2]。在输入错误或无法计算时,蜂鸣器具有报警功能。硬件方面,从功能考虑,首先选择内部存储资源丰富的AT89C52单片机,输入采用4×4矩阵键盘。显示采用8位7段共阴极LED动态显示,复位电路采用上电复位,时钟采用12MHz晶体振荡电路。由于AT89C52单片机内部有充足的程序存储单元和数据存储单元,因此不需要进行外围存储扩展[3-4]。软件方面,从分析计算器功能、流程图设计,再到程序的编写进行系统设计,针对计算器四则运算算法特别是乘法和除法运算的实现,完成程序编写。系统框图如图1所示。
图1 系统整体框图
1.1 系统硬件设计
系统的硬件设计主要有系统的供电电源设计、矩阵键盘设计、蜂鸣器电路设计、数码管动态显示电路设计四部分。
1.1.1 系统供电电源设计
该系统采用AT89S52单片机为核心控制器,因此,要使系统能稳定持久工作,必须要为系统提供5V的稳压电源输入,所以最终选择5V直流电源作为系统电源输入[3-6]。
1.1.2 矩阵键盘设计
当键盘中按键数量较多时,为了减少I/O口线的占用,通常将按键排列成矩阵形式。如图二所示在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样做一个并行口可以构成4*4=16个按键,比直接将端口线用于键盘多出了一倍,且线数越多区别就越明显。矩阵式结构的键盘显然比独立式键盘复杂一些,识别也要复杂一些,分为行扫描和列扫描。在按键识别过程中,同时加入键盘的消抖处理。
1.1.3 蜂鸣器电路设计
蜂鸣器只有通过电流达到一定程度时,才能听到响声,而单片机不能输出如此大的电流,所以要加一级蜂鸣器的驱动,本系统中采用一个三极管,放大驱动蜂鸣器的电流。
1.1.4 数码管动态显示电路设计
为了节约成本,本设计的显示部分采用由发光二极管组成的共阴极数码管动态显示。它的驱动级应为射极输出或源极输出电路,如图2所示。
1.2 系统软件设计
本系统采用模块化设计方法后,可依据设计的功能要求将软件的初始化模块、数码管显示模块、键盘输入模块、键功能处理模块、数值运算模块、延时模块,分别进行设计和调试,然后把它们连接起来,进行总调。系统主流程图如图3所示。主要模块的设计思路如下。
图3 主流程图
1.2.1 数码管显示模块
考虑到本设计的显示部分要求实现键盘输入数值显示及0~255以内整数四则运算结果的显示(其中显示数字要求精确到小数点后两位,并且实现对负值的显示),因此采用八位数码管动态显示完成。应用单片机来控制数码管动态显示数组各元素,首先要通过单片机的口控制来实现数码管的选通,即按时对各位数码管进行片选,然后轮流点亮各位数码管,最终完成动态显示。
1.2.2 键盘功能设置软件设计
根据系统4*4矩阵键盘的设计,主要完成计算数值输入、运算符输入、数值清零和运算错误报警等功能。
1.2.3 计算功能设置软件设计
当键盘扫描数值为0~9实数时,将数值存储作为运算操作数值并经数码管显示,再次进行键盘扫描。当键盘扫描数值为操作符时,保存该操作符,根据操作符调用相应的计算程序,将操作数进行相应运算,结束时首先将结果保存,调用数码管显示程序显示运算结果,同时将运算结果赋值给操作数,再次进行键盘扫描,以此实现四则运算功能。
该系统以单片机AT89S52为控制核心,4*4键盘输入,数码管由动态显示系统组成,完成了具有基本功能的数字式计算器的设计。在系统中运用单片机控制技术,数码管显示等,并实用了4*4键盘扫描法实现数据输入。通过不断的尝试和努力,使各个模块都能稳定工作,最终实现具有基本功能的计算器设计的各项要求。
[1]谢维成,杨加国.单片机原理与应用及C51程序设计[M].北京:清华大学出版社,2009.
[2]张义和,陈敌北.例说8051[M].北京:人民邮电出版社,2006.
[3]勒达.单片机应用系统开发实例导航[M].北京:人民邮电出版社,2003.
[4]陈宁,王文宁.单片机技术项目教程[M].南京:东南大学出版社,2008.
[5]张友亮,赵志英,涂时亮.单片机微型型机原理、应用与实验[M].上海:复旦大学出版社,2006.
[6]李诚人,高宏阳,刘淼,等.嵌入式系统及单片机应用[M].北京:清华大学出版社,2005.
The Design of Digital Calculator
WANG Liqin,SHI Hang
(1.Changzhou College of Information Technology,Changzho u 213164;2.Jiangsu Institute of science and technology, Changzhou 213001)
The s ystem uses s ingle-chip AT89S52 for the control of the core, matrix keyboard for input and control unit, digital control system for dynamic dis play of th e finish with the basic computing function calculator desi gn. Designed in the focus of s ome of the m ajor systems are algorithm s, s uch as a series of calculations show that the circuit design and program design .Sys tem hardware includes a keyboard s canning, the smallest system board, data show that the majority of four buzzer. Application software Si ngle-c hip C language implementation of all design control functions, including basic digital tube dynamic display, the keyboard matrix scanning, enter the number of records, a variety of com puting implementation. With a buz zer alarm function, the input error or can not be calculated when the alarm. Designed the entire s ystem cost is lower, be able to en ter data in real-time display and computing the results of a normal real-time display.
microcontroller,matrix ke yboards,digital tube,beeper,voltage regulator chip