基于51单片机的简易电子计算器——有温度显示和万年历等额外功能
设计实际所实现的功能
模式一可显示日期、时钟、温度,模式二可进行计算器的计算,且显示日期温度模式和计算器模式可随意切换,模式三可以滚动显示乘法口诀表。模式一与模式二可以自由切换,模式三滚动完之后自动回到模式一。
显示日期温度模式
显示日期与时钟
能够显示预设的年、月、日、时、分、秒及星期几的初始值,从初始值开始计时并每秒钟刷新时间;当从其他模式回到该模式时,时钟显示为累计结果而不会清零。
显示实时温度
能够将温度传感器感受到的温度实时显示,温度最小变化值为0.1℃。用手放在温度传感器上可以看到温度变化。
计算器模式
矩阵键盘输入模块
利用4*4键盘作为数据和命令的输入装置,可以输入整数和运算符号,并且有清零功能;设置按键消抖,使输入更准确。
计算功能
计算器可实现基本数据运算,包括:加、减、乘、除运算,但不能连续运算如连加。由于按键数量限制,没有添加更多函数功能。
乘法口诀表模式
能够以等式形式滚动显示1-9乘法口诀表,滚动显示完所有乘法口诀表内容后回到日期时钟模式。
系统原理框图及模块的作用
系统原理框图
各模块及作用
主控芯片IAP15F2K61S2
此芯片是宏晶公司最新STC15系列IAP15F2K61S2芯片,可系统编程或应用编程:
- 增强型8051CPU,1T,单时钟/机器周期,速度比普通8051快8~12倍;
- 61K字节片内Flash程序存储器,擦写次数10万次以上;
- 拥有片内大容量2048字节的SRAM;
- 共有8个通道的10位高速ADC,速度可达30万次/秒,3路PWM可用作D/A转换;
- 共有3通道捕获/比较单元(CCP/PWM/PCA);
- 内部高可靠复位,8级可选复位门槛电压,可省去外部复位电路;
- 内部高精度R/C时钟,时钟从5MHz~35MHz可选;
- 两组高速异步串行通信端口可同时使用,并且可在5组管脚之间进行转换;
- 一组高速异步串行通信端口SPI;
- 各种接口扩展齐全。
4*4矩阵键盘模块
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4*4个。通过矩阵键盘检测被按下的按键来向系统输入信息。
DS1302时钟控制模块
DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。其工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。
位7:为1,表示允许把数据写入DS1302;
位6:为1,表示存取RAM数据;为0表示存取日历时钟顺序;
位5~位1:指示操作单元地址;
位0:为1,表示进行读操作;为0表示进行写操作。
控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302。在8位控制字指令输入后的下一个SCLK时钟下降沿,读出DS1302中的数据。
数字温度传感器DS18B20模块
- 独特的单线接口仅需-一个端口引脚进行通讯
- 简单的多点分布应用
- 无需外部器件
- 可通过数据线供电
- 零待机功耗
- 测温范围-55到 +125C°,以0.5C°递增。华氏器件 -67到+257°F,以0.9°F递增
- 温度以9位数字量读出
- 温度数字量转换时间200ms(典型值)
- 用户可定义的非易失性温度报警设置
- 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
- 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统
LCD1602液晶显示模块
LCD1602是一种工业字符型液晶,能够同时显示16×2即32个字符。LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。LCD1602液晶显示模块有8为数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。LCD1602分辨率是每字5*8点阵,可以将显示ASCII码,使用方便。LCD1602的基本操作分为四种:
a. 读状态:输入RS=0,RW=1,E=高脉冲。输出:D0—D7为状态字。
b. 读数据:输入RS=1,RW=1,E=高脉冲。输出:D0—D7为数据。
c. 写命令:输入RS=0,RW=0,E=高脉冲。输出:无。
d. 写数据:输入RS=1,RW=0,E=高脉冲。输出:无。
程序流程图设计及程序模块功能描述
程序流程图设计
程序模块功能描述
主程序
主程序中包含初始化程序、按键扫描及计算器程序、获取日期时间及温度并将结果送至液晶显示屏显示的程序、乘法口诀表滚动显示程序。
DS1302时钟程序
时钟程序包含从DS1302读出一个字节数据,向DS1302写一个字节数据,读DS1302某地址的数据,向DS1302某个地址写入数据的程序。
LCD1602液晶显示程序
液晶显示程序包含对LCD1602判断忙或者空闲,写指令函数,写数据函数,初始化,向LCD1602发送数据,十六进制转ASCII的程序。
DS18B20温度程序
温度子程序包含DS18B20初始化,DS18B20读字节,DS18B20写字节,温度获取的程序。
系统操作说明或使用说明
按键:
RESET键用作切换日期模式和计算器模式;
开机启动后,LCD1602液晶显示屏显示日期时间以及温度,按下RESET键,切换到计算器模式,进行简单的加减乘除计算,再按下RESET可退出计算器模式,重新显示日期。
当显示日期时间以及温度时,按下S19按键可以滚动显示乘法口诀表,显示结束后,重新显示日期时间及温度。
具体的代码
需要的可以去百度网盘下载
链接:https://pan.baidu.com/s/1M-dfAGKG8uyDjQzwH0OL-Q
提取码:s2tn