基于51单片机的简易电子计算器——有温度显示和万年历等额外功能

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能

设计实际所实现的功能

模式一可显示日期、时钟、温度,模式二可进行计算器的计算,且显示日期温度模式和计算器模式可随意切换,模式三可以滚动显示乘法口诀表。模式一与模式二可以自由切换,模式三滚动完之后自动回到模式一。

显示日期温度模式

显示日期与时钟

能够显示预设的年、月、日、时、分、秒及星期几的初始值,从初始值开始计时并每秒钟刷新时间;当从其他模式回到该模式时,时钟显示为累计结果而不会清零。

显示实时温度

能够将温度传感器感受到的温度实时显示,温度最小变化值为0.1℃。用手放在温度传感器上可以看到温度变化。

计算器模式

矩阵键盘输入模块

利用4*4键盘作为数据和命令的输入装置,可以输入整数和运算符号,并且有清零功能;设置按键消抖,使输入更准确。

计算功能

计算器可实现基本数据运算,包括:加、减、乘、除运算,但不能连续运算如连加。由于按键数量限制,没有添加更多函数功能。

乘法口诀表模式

能够以等式形式滚动显示1-9乘法口诀表,滚动显示完所有乘法口诀表内容后回到日期时钟模式。

系统原理框图及模块的作用

系统原理框图

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第1张图片

各模块及作用

主控芯片IAP15F2K61S2

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第2张图片

此芯片是宏晶公司最新STC15系列IAP15F2K61S2芯片,可系统编程或应用编程:

  1. 增强型8051CPU,1T,单时钟/机器周期,速度比普通8051快8~12倍;
  2. 61K字节片内Flash程序存储器,擦写次数10万次以上;
  3. 拥有片内大容量2048字节的SRAM;
  4. 共有8个通道的10位高速ADC,速度可达30万次/秒,3路PWM可用作D/A转换;
  5. 共有3通道捕获/比较单元(CCP/PWM/PCA);
  6. 内部高可靠复位,8级可选复位门槛电压,可省去外部复位电路;
  7. 内部高精度R/C时钟,时钟从5MHz~35MHz可选;
  8. 两组高速异步串行通信端口可同时使用,并且可在5组管脚之间进行转换;
  9. 一组高速异步串行通信端口SPI;
  10. 各种接口扩展齐全。

4*4矩阵键盘模块

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第3张图片

矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4*4个。通过矩阵键盘检测被按下的按键来向系统输入信息。

DS1302时钟控制模块

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第4张图片

DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。其工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第5张图片

位7:为1,表示允许把数据写入DS1302;
位6:为1,表示存取RAM数据;为0表示存取日历时钟顺序;
位5~位1:指示操作单元地址;
位0:为1,表示进行读操作;为0表示进行写操作。
控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302。在8位控制字指令输入后的下一个SCLK时钟下降沿,读出DS1302中的数据。

数字温度传感器DS18B20模块

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第6张图片
基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第7张图片

  1. 独特的单线接口仅需-一个端口引脚进行通讯
  2. 简单的多点分布应用
  3. 无需外部器件
  4. 可通过数据线供电
  5. 零待机功耗
  6. 测温范围-55到 +125C°,以0.5C°递增。华氏器件 -67到+257°F,以0.9°F递增
  7. 温度以9位数字量读出
  8. 温度数字量转换时间200ms(典型值)
  9. 用户可定义的非易失性温度报警设置
  10. 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件
  11. 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统

LCD1602液晶显示模块

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第8张图片

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第9张图片
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=高脉冲。输出:无。

程序流程图设计及程序模块功能描述

程序流程图设计

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第10张图片

程序模块功能描述

主程序

主程序中包含初始化程序、按键扫描及计算器程序、获取日期时间及温度并将结果送至液晶显示屏显示的程序、乘法口诀表滚动显示程序。

DS1302时钟程序

时钟程序包含从DS1302读出一个字节数据,向DS1302写一个字节数据,读DS1302某地址的数据,向DS1302某个地址写入数据的程序。

LCD1602液晶显示程序

液晶显示程序包含对LCD1602判断忙或者空闲,写指令函数,写数据函数,初始化,向LCD1602发送数据,十六进制转ASCII的程序。

DS18B20温度程序

温度子程序包含DS18B20初始化,DS18B20读字节,DS18B20写字节,温度获取的程序。

系统操作说明或使用说明

按键:

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第11张图片

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第12张图片

RESET键用作切换日期模式和计算器模式;
开机启动后,LCD1602液晶显示屏显示日期时间以及温度,按下RESET键,切换到计算器模式,进行简单的加减乘除计算,再按下RESET可退出计算器模式,重新显示日期。
当显示日期时间以及温度时,按下S19按键可以滚动显示乘法口诀表,显示结束后,重新显示日期时间及温度。

具体的代码

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第13张图片
需要的可以去百度网盘下载
链接:https://pan.baidu.com/s/1M-dfAGKG8uyDjQzwH0OL-Q
提取码:s2tn

成品图

基于51单片机的简易电子计算器——有温度显示和万年历等额外功能_第14张图片

你可能感兴趣的:(单片机,嵌入式,经验分享,其他)