基于单片机的数字万年历系统设计

最新更新时间:2022-04-20来源: eefocus关键字:单片机  温度采集模块 手机看文章 扫描二维码
随时随地手机看文章

本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。


系统的核心采用的是STC89C52单片机;数据显示模块采用的是LCD液晶显示;温度采集模块用的是DS18B20温度传感器,该传感器所采用的是单总线传输,内部带有A/D转换,用起来非常方便;时间处理模块用的是DS1302时钟芯片,可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能;调整设置模块共包括四个按键:模式选择键、功能选择键、调整加按键、调整减按键。

本课题的电子万年历是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:


1)选用电子万年历芯片时,应重点考虑使用方便、单片存储、低功耗、抗断电的器件。


2)根据选用的电子万年历芯片设计外围电路和单片机的接口电路。


3)在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。


4)根据电路图,在开发板上完成器件的焊接。


5)根据设计的硬件电路,编写控制STC89C52芯片的单片机程序。


6)通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。


7)在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。

单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。


按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、键盘接口模块、温度测量模块和闹钟模块共六个模块组成,电路系统构成框图如图1所示。 


1 DS1302接口电路设计


时钟芯片DS1302的接口电路及工作原理:其中Vcc1为后备电源,Vcc2为主电源。


VCC1在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。VCC2在双电源系统中提供主电源,在这种运用方式中VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。

2 DS18B20接口电路设计

 

该系统中采用数字式温度传感器DS18B20,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,用P3.7与DS18B20的DQ口连接,Vcc接电源,GND接地。


DS18B20的工作电流约为1mA,VCC一般为5V,则电阻R=5V/1mA=5KΩ,目前用的电阻一般不是可调电阻,只是固定阻值,市场上有的就那么几个型号。


其中DS18B20接有电源,则需要一个上拉即可稳定的工作。这个电阻通常比较大,我们选择10K电阻的来起到上拉作用,使之为高电平,使后续电路保护。

3 LCD1602与MCU接口电路设计

 

LCD的D0~D7分别接单片机的的P0口,作为数据线,因为P0口内部没有上拉电阻,所以外部另外加上4.7K的上拉电阻;P2.5—P2.7分别接LCD的RS、RW、E三个控制管脚;RV1用来调节LCD的显示灰度;BLK、BLA为背光的阴极和阳极,接上相应电平即点亮背光灯。

其中1602的第3脚接10K与1.5K的串联电阻起到分压作用,能够调节第一行与第二行亮度对比。第16接个三极管的作用放大,是为了能够让液晶显示器的背光灯亮起,从而在夜间也能观看万年历。


4 按键模块电路设计

 

本系统用到了4个按键,其中一个用作系统手动复位,另外4个采用独立按键,该种接法查询简单,程序处理简单,可节省CPU资源,按键电路如图19所示,4个独立按键分别与STC89C52的P3.0、P3.1、P3.2、P3.3接口相连。

对以上4个按键作简要说明:K1——SET 键,K2——UP键,K3——DOWN键,K4——OUT/STOP键。


SET键:按下SET键进入时间校准状态,按一下进入秒调整,两下分调整,依此类推可进行各年月日,时分秒以及星期的校准;


UP键:当SET键按下时,UP进行SET选定项(如:小时)的加操作;


DOWN键:当SET键按下时,DOWN进行SET选定项(如:小时)的减操作;


OUT键:当OUT键按下时,此键功能为退出校准功能,进入下一模式,显示温度值和上下限的温度值。



5 主程序流程图的设计

 

6 DS1302读写程序设计

 

本系统的时间读取主要来源于单片机对DS1302的操作,在硬件上时钟芯片DS1302与单片机的连接需要三条线,即SCLK(7)、I/O(6)、RST(5),具体连接图见系统硬件设计原理图。


DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑 1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出) 。


关键字:单片机  温度采集模块 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic567325.html

上一篇:基于单片机的温度监控报警系统设计
下一篇:基于单片机的交通信号灯控制系统设计

推荐阅读

51单片机流水灯控制(5种方法)
实现流程: 1. 新建一个工程(新项目) 2. 查看原理图确定需求(流水灯)对应LED引脚在单片机上的哪个引脚 3. 编写程序(通过查看原理图可以看到我们需要控制整个P2口以控制8个LED灯) 4. 编译程序,下载程序至开发板 5. 查看效果(调试)进制转换表(因为单片机首先处理的是十六进制的数据,所以我们需要将二进制控制需求转换成十六进制去写代码):控制代码:#include <REGX52.H> //头文件#include "Delay.h"#include "intrins.h"/* -----------------------------------------
发表于 2022-09-29
51<font color='red'>单片机</font>流水灯控制(5种方法)
单片机AT89C51--1.前期准备
本文所需要的资料都存放于网盘中,如有需要,自行下载。链接:https://pan.baidu.com/s/1eAvlj3hTU9971qYIp4f8XA提取码:1zpk1.Win10系统驱动安装安装驱动的原因:通俗的话来说,就像鼠标,看上去好像插上去就能用,其实淘宝店买的话都可以发现上面介绍里写着免驱等介绍,都需要靠驱动才能让笔记本控制鼠标,或者单片机,和他们之间通信,这属于硬件间的驱动,当然还有软件间的,说白了就是为了传输数据。找一根安卓线,一边USB接口一边安卓接口,连接笔记本和单片机。1.1 自动安装驱动若电脑出现自动安装界面,且打开计算机,管理,设备管理器的端口选项出现了CH340这个端口,恭喜省去接下来这几步,否则请跟我继
发表于 2022-09-29
<font color='red'>单片机</font>AT89C51--1.前期准备
单片机AT89C51--2.单片机与C语言简介
1. 单片机概述1.1 计算机的组成电脑主机基本上就靠,CPU,内存条,还有你的总线控制器(主板)组成,主板通过自己的硬件接口,连接鼠标键盘等,连接外部这些硬件设备,Modem是网络常用MCU表示单片机。在一块集成电路芯片上集成中央处理器CPU和存储器,IO接口,构成了单片机ROM:相当于硬盘RAM:相当于内存条1.2 单片机的内部结构中间的线是数据总线可编程的IO口:input口:单片机会连接一些外部的传感器,比如温度传感器。会输入温度数据。通过IO口的Input功能将数据输入到单片机中去。Output口:输出指令,给LED灯,液晶屏显示等。。。判断是不是51单片机:不是看AT89C51,52。。。这些后面的数字,后面的数字只是表
发表于 2022-09-29
<font color='red'>单片机</font>AT89C51--2.<font color='red'>单片机</font>与C语言简介
单片机AT89C51--4.LED的闪烁
1. 循环语句(1)while(2)for2. 变量的定义数据类型 变量名全局变量:函数外定义的变量,作用范围:从定义开始的整个程序局部变量:函数内定义的变量,作用范围:函数体内3. 软件延时(1) 软件延时(2)定时器延时4. IO口与1个字节位的数据对应关系数据的最高位对应IO口最高位,数据的最低位对应IO口最低位5. 程序文件所有灯,闪烁,用的是软件延时#include <reg52.h>//sbit LED1 = P1^0;unsigned int i;void main() { P1 = 0; //全部亮 i = 65535; while(i--); P1 = 0xff; //全部暗 while(i--);}
发表于 2022-09-29
<font color='red'>单片机</font>AT89C51--4.LED的闪烁
单片机AT89C51--5.流水灯
1. 宏定义勇define进行宏定义#define uchar unsigned char //宏定义,不能加;是预处理指令不是语句uchar i;2. 函数的定义函数类型 函数名(形式参数表){局部变量定义函数体语句}3. 标准库中的循环移位函数标准库函数:intrins.h内部函数:左移:_crol_右移:_cror_#include <reg52.h>#include <intrins.h>#define uchar unsigned char //宏定义,不能加;是预处理指令不是语句uchar i=0XFE; // 1111 1110uchar j;void delay(unsigned ch
发表于 2022-09-29
<font color='red'>单片机</font>AT89C51--5.流水灯
单片机AT89C51--6.蜂鸣器
1. 蜂鸣器工作原理有源蜂鸣器:指的是震荡源,内部带震荡一通电就会叫无源蜂鸣器:要给方波,不断的接通断开,接通断开2. 三极管工作原理三极管PNP和NPN的介绍E:Emitter发射级B:Base基级C:Collector集电极PNPIeb电流>1mA 导通NPNIbe电流>1mA 导通3. 原理图分析一开始P23默认电压是5VVeb=0不导通P23为0,导通,蜂鸣器叫疑问:为什么不直接P23接蜂鸣器的1口,中间带电阻单片机不是功率器件,适合做控制,不适合驱动器件。主要是,P23是靠上拉电阻成为的5V,里面带有电阻,电流很小,即使驱动了电流也不够4. 编程#include <reg52.h>#define u
发表于 2022-09-29
<font color='red'>单片机</font>AT89C51--6.蜂鸣器

推荐帖子

使用spi协议,接收来自slave的数据之前写0xff的原因
今天一个1君问我为什么使用spiIP接收数据的时候要先写一个0xff到发送移位寄存器中。我一听傻愣了一下,然后就呆了。其实我也不知道为什么,只知道要是接收时不写0xff的话接收到的数据就会出错。之前才使用spiIP核写一个flash芯片的时候就遇到这个问题,我那时看spiIP和的代码的时候并不觉得在读的时候要先写一个0xff进移位寄存器。可是我老是接收不到正确的数据,这时另一个2君和我说再读之前先写0xff进入移位寄存器。我按照此2君的说法做,结果就是读写都正确了,于是我也没有深究之前的问题。
wall_e FPGA/CPLD
ccs 6的安装
请问各位有免安装的吗?我都被搞败了,装了好几次,什么方法都试过了,就是装不上去,杀毒软件也退了,每个版本每次到差不多的进度都会出现错误 ccs6的安装
zhahan1990 微控制器 MCU
xmc4800测评申请明天最后一天
XMC4800RelaxEtherCATKit测评申请通道明天关闭,想要申请的抓紧了!http://bbs.eeworld.com.cn/elecplay/content/100xmc4800测评申请明天最后一天
okhxyyo 工控电子
开发WINCE5下DSHOW的FILTER的问题
我想用platformbuilder5开发一个WINCE5的directshow的filter。 我做了一个CE系统,之后在该系统下建立了一个DLL工程,并且把PB下的FILTER的例子文件加入了工程,并且按照MSDN的文档,配置链接了Strmbase.lib,Strmiids.lib,Ole32.lib,Ole32auth.lib,Uuid.lib 但是编译的时候,会出现DEF中的链接错误 BUILD:[01:0000000033:ERRORE]dump.def:error
tigerhaha WindowsCE
16F74是几位单片机 求它的编程
16F74是几位单片机求它的编程16F74是几位单片机求它的编程
黑圣手 单片机
CC4021------8位移位寄存器
CC4021是8位并行或串行输入。串行输出寄存器,具有公共时钟CP和P/S输入端,一个串行数据输入端DS,每个寄存器位均有一个并行输入端且为D型主从触发器,寄存器的5-7位有Q输出端CC4021------8位移位寄存器
rain 模拟电子
小广播
设计资源 培训 开发板 精华推荐

何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved