基于单片机的可测温式电子万年历

发布者:zonheny最新更新时间:2015-04-29 来源: eechina关键字:单片机  可测温式  电子万年历 手机看文章 扫描二维码
随时随地手机看文章
        随着科技的发展,生活中电子万年历越来越普遍,功能也越来越多。根据人们的日常基本需求,设计一种电子万年历,可以实现测温、闹钟、秒表和语音报警等功能,为人们的日常生活提供舒适和便捷,具有重要的使用价值。
本文设计了一种基于单片机STC89C52 的可测温式电子万年历,能实时地将当前时间和周围的环境温度显示出来,并具有闹钟、秒表、语音报时的功能。万年历主要使用温度传感器DS18B20 采集温度信息,与单片机实现双向通信;时钟芯片DS1302 实现时钟,准确计时;并通过语音芯片完成整点报时和温度报警功能。该万年历电路结构简单,具有时间精确、抗干扰能力强、功耗低、可靠性高等优点。
该可测温式电子万年历主要由STC89C52、时钟芯片、温度采集、显示电路、语音报警等组成。按键可以实现显示内容的切换、时间的调整以及语音报警的设置。
1 硬件电路的设计
该可测温式电子万年历工作时,首先初始化时钟芯片,单片机从时钟芯片读取时间和日期等信息,同时又从温度传感器采集当前环境温度,经过驱动电路送给液晶显示屏,显示相关的信息。其中,按键可以对时间、日期、星期和温度进行调整,并控制闹钟和秒表的功能。万年历又加入了语音芯片,可以实现整点报时和温度报警的功能。
(1)时钟芯片DS1302
DS1302 在时间显示方面应用非常普遍,可以对年、月、日、周、时、分、秒进行计时,并且具有闰年补偿功能,工作电压为2.5V ~ 5.5V。采用三线接口与单片机进行同步通,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1302内部有一个用于临时性放数据的RAM 寄存器,具有主电源和后备电源两个引脚,并且具有对后备电源进行电流充电的能力。DS1302 与单片机之间采用串行数据传输,控制液晶屏显示时间信息。


图1 DS1302 引脚图


DS1302 的引脚图如图1 所示, 其中Vcc2 为主电源,Vcc1 为后备电源。在主电源关闭的情况下,也能保持时钟的连续运行。X1、X2 是振荡源,外接32.768kHz晶振。RST 是复位/ 片选线,通过把RST输入驱动置高电平来启动所有的数据传送。当RST 为高电平时,所有的数据传送被初始化,允许对DS1302 进行操作。如果在传送过程中RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在Vcc > 2.0V 之前,RST 必须保持低电平。只有在SCLK 为低电平时,才能将RST 置为高电平。I/O 为串行数据输入输出端( 双向) ;SCLK 为时钟输入端。
(2)温度传感器DS18B20
温度传感器DS18B20 直接与单片机连接,避免A/D 模数转换模块,降低硬件成本,简化系统电路。DS18B20 的电压范围为:3.0 ~ 5.5V,在寄生电源方式下可由数据线供电,采用独特的单线接口方式。DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。测量温度的范围为- 55℃~+ 125℃之间,测温精度可以达到0.5℃。测量结果直接输出数字温度信号,串行传送给单片机的CPU,同时可传送CRC 校验码,具有极强的抗干扰纠错能力。
DS18B20 与单片机的连接方式有两种:寄生电源连接方式和外部电源连接方式。该可测温式电子万年历采用外部电源连接方式。连接方法即DS18B20 的1 脚接地,2 脚(DQ 引脚) 与单片机的一根I/O口线连接(P3.2 脚),3 脚接电源+5V。在STC89C52 的I/O 口线与+5V 之间连接一4.7K 的上拉电阻,以保证数据采集的正常进行。
(3)LCD1602 温度显示的设计
该室温报警装置液晶显示屏采用LCD1602,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。
在单片机系统中应用晶液显示器作为输出器件有显示质量高、数字式接口体积小、重量轻、功耗低的优点。LCD1602 液晶模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,每一个字符都有一个固定的代码,与单片机连接后通过C 语言编程就可以工作。在正常工作状态下,电子万年历的设计连接图如图2 所示。


图2 LCD1620 与单片机的连线图[page]
        
2 软件系统设计方案
该万年历的程序流程图如图3 所示,具体流程如下:首先,接通电源,上电工作,DS1302、DS18B20、LCD1602 进行初始化,通过单片机控制液晶屏显示“时分秒”、“温度”、“年月日”、“星期”,并伴随整点报时的功能;然后,进入功能设置,第一次按下按键K4 可以调整“时分秒”和“年月日”,此时K1、K2 和K3 分别对应时间和日期“加”、“减”和“移位选择”的功能,日期发生变化相应的“星期”也会跟着变化;第二次按下按键K4 可以设置闹钟的功能,此时K1、K2 和K3 分别对应时间和日期“关闭”、“开启”和“移位选择”的功能;第三次按下按键K4 可以设置秒表的功能,此时K1、K2 和K3 分别对应时间和日期“复位”、“暂停”和“计时”的功能;第四次按下按键K4 可以退出设置功能,因为该万年历加入了语音芯片,此时按下K2 键具有语音报时的功能。
由于DS18B20 具有温度采集检测的功能,所以液晶屏显示的温度会随着周围环境温度的变化而变化。该万年历设置有复位电路,连接一个按键K 可以自动实现复位功能。


图3 可测温式电子万年历程序流程图




        

3 调试和分析
待该可测温式电子万年历焊接和软件编程完成后,进入调试环节,将keil4 中C 语言程序生成的hex 文件烧入到STC89C52 芯片中,连接电源后将万年历放入模拟环境中进行系统调试,调试结果如图4 所示。液晶显示屏显示“时间”、“温度”、“日期”和“星期”信息,同时可以整点报时,如图4 中A 图所示。


图4 可测温式电子万年历调试结果图


第一次按下K4 进入时间和日期的设置,调试结果如图4 中B 图所示;第二次按下K4 进入闹钟的设置,“Y”为开启闹钟,“N”为关闭闹钟,调试结构如图4 中C图所示;第三次按下K4 进入秒表的设置,调试结构如图4 中D 图所示;第四次按下K4 退出功能设置,此时按下K2 具有语音报时功能。
4 总结
电子万年历在生活中日益普遍,该设计主要利用时钟芯片DSl302、温度传感器DS18B20 和液晶屏LCD1602 构建了一个可测温式万年历装置,电路结构简单,具有语音报时功能,适用于家庭生活,使用价值高,具有较好的应用前景。 
关键字:单片机  可测温式  电子万年历 引用地址:基于单片机的可测温式电子万年历

上一篇:51单片机矩阵键盘检测源代码(按键数码管显示0-F)
下一篇:单片机定时器0实现信号交通灯程序

推荐阅读最新更新时间:2024-03-16 14:00

基于51单片机的温度湿度采集系统
实现功能: 1、对温度、湿度进行采集 2、可以警报提示、修改温度、湿度上下限值 3、lcd显示相关信息 原理图: 部分程序: #include reg52.h #define uint unsigned int #define uchar unsigned char #include intrins.h typedef bit BOOL ; sbit io = P1^1 ;//(口线定义) sbit bee=P1^0; sbit rs = P2^5 ; sbit rw = P2^6 ; sbit ep = P2^7 ; bit flag_300ms ; sbit K1=P1^2; sbit K2=P1^3;
[单片机]
基于STM8L15xxx设计的超低功耗8位MCU开发方案
ST公司的STM8L15xxx是超低功耗8位MCU系列,采用先进的STM8内核,动态功耗为192 μA/MHZ,16MHz CPU时钟的性能高达16 MIPS, 工作电压从1.8 V 到3.6 V (低至1.65 V ),多达32KB嵌入闪存程序存储器,主要用在医疗和手提设备,PC外设,游戏机,GPS,告警系统,有线和无线传感器.本文介绍了STM8L15xxx主要特性,方框图, 时钟树框图和超低功耗STM8L15LPBOARD演示板主要特性,详细电路图. The STM8L15xxx devices are members of the STM8L Ultralow power 8-bit family. They are ref
[单片机]
基于STM8L15xxx设计的超低功耗8位<font color='red'>MCU</font>开发方案
AVR单片机串口操作程序
#include #include #include #include #include #define FOSC 8000000 //mcu工作时钟频率 typedef unsigned int uint16; typedef unsigned char uchar8; uchar8 DoubleIRData ={0x64,0x00,0x20,0x04,0x40,0x00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; //双红外发射数据 取PD2作为驱动远程红外发射 //uchar8 SingleIRData ={0x60,0x00,0x04,0x00,0x
[单片机]
基于单片机的数据采集设计
1、设计要求   利用实验仪上的0809做A/ D转换实验,实验仪上的W1电位器提供模拟量输入。编制程序,将模拟量转换成数字量,通过发光二极管L1—L8显示。   2、设计说明   A/ D转换器大致分有三类:一是双积分A/ D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/ D转换器,精度、速度、价格适中;三是并行A/ D转换器,速度快,价格也昂贵。 实验用ADC0809属第二类,是8位A/ D转换器。每采集一次一般需100μs。由于ADC0809 A/ D转换器转换结束后会自动产生EOC信号(高电平有效),取反后将其与8031的INT0相连,可以用中断方式读取A/ D转换结果。   3、数据采集
[单片机]
基于<font color='red'>单片机</font>的数据采集设计
51单片机测量脉冲周期
要求:测量脉冲的周期 思想:用定时器和外部中断(下降沿触发中断),当第一个下降沿时,触发外部中断,此时开始计时。当第二个下降沿时,此时停止计时,此时的时间就是脉冲的周期。 程序: #include reg51.h #include intrins.h #define uLint unsigned long int uLint cycle_t = 0 ;//脉冲周期时间 sbit in = P3^2 ; bit start = 0 ; void Int0 (void) interrupt 0 { if(start == 0)//第一次下降沿开始计时 { cycle_t = 0 ; TL0 = 0 ; }
[单片机]
51<font color='red'>单片机</font>测量脉冲周期
单片机数字密码锁
程序源代码: //************************************************************************************************************************************ //库调用.宏类型定义.位定义// //************************************************************************************************************************************ #include reg52.h
[单片机]
<font color='red'>单片机</font>数字密码锁
MSP430单片机按键中断程序
#include IRRemo te .h void main(void) { //初始化 Ini ti alize(); //死循环 while(1) { unsigned int transmit; //初始化变量 transmit = ENDTRANSMIT; //等待按键按下 SetForPress(); //进入LPM4模式 LPM4; Debounce(); //扫描键盘 KeyS CAN (); //键盘处理 KeyLookup(); if (Er
[单片机]
STM32单片机FSMC模块的应用
一、基本概念 1.与非总线复用的16位SRAM接口 FSMC配置 SRAM存储器和NOR闪存存储器共用相同的FSMC存储块,所用的协议依不同的存储器类型而有所不同。 控制SRAM存储器,FSMC应该具有下述功能: 使用或禁止地址/数据总线的复用功能。 选择所用的存储器类型:NOR闪存、SRAM或PSRAM。 定义外部存储器的数据总线宽度:8或16位。 使用或关闭扩展模式:扩展模式用于访问那些具有不同读写操作时序的存储器。 正如配置NOR闪存存储器一样,用户必须按照SRAM存储器的数据手册给出的时序数据,计算和设置下列参数: ADDSET:地址建立时间 ADDHOLD:地址保持时间 DATAST:数据建立时间 二、例程 1.
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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