摘要:提出了一种基于单片机的多功能电子时钟的设计方法,以 AT89C52单片机作为系统的主控芯片,采用DS1302作为时钟控制芯片,实现日期时钟显示并且提供精准定时的功能。此外,还可经由DHT22所构成的温湿度传感电路,将温湿度参数输入到单片机中进行处理,然后通过液晶显示电路将所有的结果显示出来。结果表明该电路能精确的显示时钟以及各种环境参数,并能实现闹钟、定时开关和温湿度阈值报警等功能,效果良好。
关键词:电子时钟;单片机;温湿度
随着社会经济的飞速发展,智能化的设备应用越来越广泛,对于传统的时钟,也有了新的要求。 为此,设计了一种基于单片机的多功能电子时钟,可实现日历时间实时显示、闹钟定时报警,以及环境温湿度的监测等功能,具有抗干扰能力强、使用方便,功能全,可靠性高等特点,可广泛应用于日常生活或者工业等领域。
1 硬件电路设计
设计的多功能电子时钟的电路框图如图 1 所示,主要包括以下7 个组成部分:键盘控制电路、温湿度传感电路、时钟日历控制电路、单片机主控电路、液晶显示电路、蜂鸣器闹钟电路和电源电路。
1.1 时钟日历控制电路
系统中采用 DS1302 作为时钟控制芯片, DS1302 是美国的Dallas公司推出的一种高性能、低功耗、带 RAM 的实时时钟芯片,被广泛地应用于各种数字时钟中,采用串行数据传输方式,可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能 。
时钟日历控制电路如图 2 所示,其中 VCC2 为主电源,VCC1为后备电源,由两个电源中电压较大者供电;X1 和 X2 为振荡源,在电路中外接32.769KHz 的晶振; RST 为复位 / 片选信号,RST为时钟输入端。
1.2 温湿度传感电路
系统中采用 DHT22 作为温湿度传感芯片, DHT22 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用专用的数字模块采集技术和温湿度传感技术,具有体积小、功耗低、相应速度快、传输距离远和抗干扰能力强能特点。
DHT22 采用单线串行接口,基于热敏电阻与感湿电阻进行工作,由于电阻的阻值会随着空气中的温湿度变化而变化,所以传感器可以通过电路中电流的变化来获取相应的温湿度数据,再送入到单片机中进行处理并进行显示 。温湿度传感电路如图3 所示,1管脚接VCC,4管脚接GND,2管脚为数据端,接单片机输出信号,3管脚悬空。
1.3 单片机主控电路
单片机主控电路采用 Atmel 公司开发的高性能的单片机AT89C52作为主控芯片。它是具有 4K 的可编程 Flash 、 256B 的RAM、 32 个 I/O 口、5个中断源、2个16 位定时器的高性能单片机 。单片机最小系统电路如图 4 所示,由 AT89C52 单片机,晶振电路和复位电路构成,复位采用上电复位的方式,时钟晶振为12M ,满足系统对数据处理的需求。
1.4 其他电路
采用 LCD12864 液晶显示器实现系统的人机交互功能,带中文字库的LCD12864 是一种具有 4 位 /8 位并行,2线或者2线串行多种数据传输方式,分辨率为128×64 ,内置 8192 个 16×16点汉字,和128 个 16×8 点 ASCLL 字符集的液晶显示器,此外还可完成各种符合和图形的显示,具有操作简单、接口灵活和低压低功耗等特点 。
液晶显示电路如图 5 所示,在系统中 LCD12864 的数据端与单片机的 P0.0- P0.7 相连,控制端与单片机的 P2.0- P2.4 相连。
2 软件设计
系统的软件设计采用 C 语言进行编程,软件开发环境采用兼容C 语言的开发系统 Keil C51 。
2.1 主程序
系统软件流程图如图 6 所示,单片机上电后,系统开始初始化,由单片机判断系统是否处于正常运行模式,若否,则运行在设置模式,由单片机记录用户的设置参数;若是,由主控芯片控制液晶显示电路显示各个信息,并将各个信息进行处理,处理完毕后由主控芯片判断是否满足闹钟条件或者是否超过预先设定的阈值;若超过阈值,则启动声光报警提示闹钟或者温湿度超过阈值。一次测量结束之后,程序不断循环,若数据发生变化,则LCD 显示器显示的结果也随之变化,从而达到动态监测各路环境参数的功能。基于AT89C52 单片机的程序设计可以参考文献 ,这里就不再赘述。
图 6 系统软件流程图
2.2 时钟日历控制电路软件设计
在主程序中启动时钟日历控制模块之后,若为设置模式,则提示用户分别设置时钟、设置日期和设置闹钟,用户设置完成之后,由单片机保存并记录用户的设置参数;若为正常运行模式,则由单片机控制时钟控制电路,分别显示时钟、显示日期和显示闹钟,显示完成成回主程序继续循环运行。
3 结束语
基于 AT89C52 单片机设计的多功能电子时钟,可实现日历时间实时显示、闹钟定时报警、以及环境温湿度的监测等功能,在实际中应用得非常广泛,可广泛应用于日常生活或者工业等领域。