基于单片机的多功能计算器的设计与实现
2016-08-31礼成都理工大学
袁 礼成都理工大学
基于单片机的多功能计算器的设计与实现
袁礼
成都理工大学
单片机是计算机制造技术高速发展下所诞生的产物,它是嵌入式系统的控制核心,如今,它已被广泛的应用于国民经济建设、军工产品及家用电器之中,而计算器作为一种方便快捷的计算工具在生活中得到了普遍使用。
单片机 计算器 矩阵键盘 LCD
1 设计要求
在本次设计中,主要完成以下几方面的设计要求:
(1)了解单片机最小系统的构成以及如何搭建单片机外围扩展电路的方法;
(2)实现计算器的加、减、乘、除基本四则运算;
(3)实现对温度的测量;
(4)实现时钟的显示和设定。
2 方案的论证和选择
2.1方案一 采用PLC控制
PLC是可编程逻辑控制器的简称,最早出现于60年代末期的美国,目的是用于取代继电器。可以执行计时、计数、算数运算和逻辑判断等操作指令,并通过模拟量和数字量的输入和输出,实现对各种类型机械和生产设备的控制。但PLC外围扩展模块的使用方法麻烦且体积相对较大,保密性不好,就本次设计的需求来说,使用PLC设计从经济性来说成本过高,从实用性来说不易于携带,因此不被采用。
2.2方案二 采用STC89C52控制
单片机是一种集成电路芯片,全称为单片微型计算机,它的制造采用的是超大规模集成电路工艺将中央处理器CPU、只读存储器ROM、随机存储器RAM、以及各种I/O接口电路集成到一块半导体芯片上。因此,单片机以重量轻、功耗小、价格低、体积小、可靠性高、易于扩展、计算速度快和控制功能强等优点在各个领域得到了广泛的应用。
2.3方案的比较和选择
通过对上述两种方案的比较,结合设计的实用性、便携性和成本考虑,选择以STC89C52作为主控芯片,通过添加外围电路来实现多功能计算器的设计更加符合实际需求。
3 Keil C51编程软件
美国Keil Software公司出品的Keil C51,是一款能够兼容51系列单片机的C语言软件开发系统,它使用的开发环境接近于C语言并且集编辑、编译、仿真等于一体,编程界面与VC++界相似,与汇编语言相比,C语言在其可读性、可维护性、可移植性上等方面都比汇编语言有着十分明显的优势,Keil C51凭借着其简单易学,而且能够缩短单片机项目的开发周期提高编程者的工作效率,还可以在程序编写的关键位置嵌入汇编程序,使得Keil C51编写的程序执行效率接近于汇编程序,因此得以推广。
4 Proteus仿真软件
由英国Labcenter electronics公司出品的软件Proteus,是一款实用性很好的EDA Proteus工具软件。它能对单片机及其外围电路构成的系统进行仿真,因此在单片机开发工作者和广大单片机爱好者中深受好评。Proteus集成了诸多功能与一身,在编译方面它支持MATLAB、Keil C51和IAR等多种编译。
5 STC_ISP_V6.82E程序烧录软件
STC_ISP_V6.82E是专门针对51系列单片机设计的一款用于程序烧录的软件,通过STC_ISP_V6.82E可以很容易的将编译好的HEX文件烧录进51单片机。通过选项窗口可以设置单片机型号、COM口、波特率、串口等参数,同时还可以作为串口调试工具,用于串口数据的收发调试。
6 硬件系统设计
6.1主控芯片STC89C52
STC89C52的特点是具有CMOS8位微处理器、低功耗、高性能,拥有8K采用DIP封装的Flash存储器,52系列的单片机可以全部兼容51系列单片机的引脚和指令,而它的制造工艺采用的是高密度非易失性存储器技术。
6.2矩阵键盘模块
本设计只是实现简单的四则运算,所以4×4的矩阵键盘就能够满足设计较要求。在实际电路的设计中为了有效地提高单片机I/O的利用率,往往都会采用这种行列式的矩阵键盘。
6.3蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器,分为电磁式蜂鸣器和电压式蜂鸣器两种类型,电路设计中用字母“H”或“HA”表示。
7 软件系统设计
7.1总体设计
本系统的软件设计思想是采用大小循环嵌套的方式,大循环一直不停的扫描按键,用以确定功能键的选择,小循环用来实现具体的功能,功能1实现时钟显示,功能2实现温度测量,功能3实现计算器的四则运算,并在LCD上显示各个功能的运行结果。
7.2子程序设计
7.2.11602液晶控制程序
1602液晶上电以后,需要对其内部芯片进行初始化后才能进行操作。在初始化时,应当参考芯片的时序图,先将命令写入芯片内部的寄存器设置其工作方式及状态。
7.2.2矩阵按键扫描程序
4×4的矩阵按键采用的是4行4列的结构,每行每列都有一个I/O口与之对应,因此需要编写程序对每个I/O口进行查询,当检测到某个按键被按下时,就根据读到的I/O口的总线数据进行确定是哪一列被按下,进而具体确定是哪个键被按下,并返回该按键对应的值到主程序。
[1] 孙淑霞等.C/C++程序设计教程(第3版)[M].北京:电子工业出版社,2007