基于52 单片机智能贴心时钟的研究与设计

2021-06-17 03:59谭铭明姚玲英通讯作者阮煜琴梁俊焱钟楚洪
电子制作 2021年9期
关键词:温湿度时钟按键

谭铭明,姚玲英(通讯作者),阮煜琴,梁俊焱,钟楚洪

(广东第二师范学院物理与信息工程系,广东广州,510303)

0 引言

在智能化信息时代的发展下,人们对于传统时钟的要求也逐渐增多。该智能贴心时钟以STC89C52 单片机为核心,利用DS1302 时钟模块将时间显示详细至年、月、日、星期、时、分、秒,并可通过按键来实现对时间的校准和闹钟的设置。同时,利用DHT11 温湿度传感器对温湿度进行采集,单片机通过温湿度变化产生不同的信号,以按键实现当前气候状态的温湿度播报、贴心提示。

1 电路总体设计方案

系统电路框图如图1 所示,根据功能之间的不同,可将该系统分为六个部分,分别为STC89C52 单片机、温湿度测量电路、时钟发生电路、LCD 显示电路、语音播报电路及按键电路。

图1 系统电路框图

2 硬件与软件设计

■2.1 硬件设计

2.1.1 主控制模块

该设计使用STC89C52 芯片作为贴心时钟的处理器,C52 系列芯片编程简单便捷,配合开发板与Keil 可以轻松地对芯片中的代码进行修改和测试。该电路作为贴心时钟的处理器,承担了信息处理和信息存储的功能。这部分电路包含主芯片STC89C52,11.0592MHz 晶振电路以及复位电路。

2.1.2 温湿度测量电路

该电路的主要部分为DHT11 温湿度传感模块,占用1个I/O 口。该模块可提供实时的温湿度数据,并通过一个数据端口输送给处理器,且该模块使用比较方便,模块上引出的3 个接线端口直接连接到单片机上便可使用,由于用于传输数据的只有一个端口,使用一个I/O 口便能收集温湿度数据,十分节省I/O口。该电路承担了提供温湿度数据的功能,并且在模块的VCC 与GND 之间连接了一个104 瓷片电容,用于滤除掉杂波成分,使其输出数据的时候电压更稳定。

2.1.3 时钟电路

时钟电路采用DS1302 模块,共占用3 个I/O 口。该模块可提供时分秒、年月日等信息,采用串行通信方式,节省I/O 口,且具有工作电压范围较宽,芯片功耗低的优点,其承担的主要功能为提供日期与时间信息。DS1302 采用双电源供电,在主电源非正常断电时,仍可利用备用电源继续工作。

2.1.4 LCD 时钟显示电路

该电路采用液晶显示屏LDC1604 作为贴心时钟的屏幕,共占用11个I/O口。该显示屏最多能同时显示16×4个字符,使用起来简单便捷,但该模块引脚较多,除VCC 与GND 外仍有12 个端口。显示屏采用并行通信方式,直接把八个数据传输口与单片机相连。其承担的主要功能为显示出当前的温湿度、日期与时间。虽然占用了8 个I/O 口作为通信端口,但是同时保证了数据的实时显示,减少延时。

2.1.5 语音播报电路

语音播报电路我们采用DFPlayer Mini 模块(以下简称其为语音模块),采用串口通信。此模块具有体积小巧,价格实惠,可直接接驳扬声器等优点。语音模块上已集成有MP3、WAV、WMA 的硬解码功能,无需进行复杂的编程,通过简单的串口指令即可控制其播放指定的音频。该模块上含有一个TF 卡槽,音频存储在TF 卡里,只要将其插入卡槽,便能使其读取到TF 卡内的音频信息。语音模块主要承担了存储音频信息及驱动扬声器播放音频的功能,按下外置的按钮即可播放当前温湿度信息、前后温湿度对比、以及对应的穿衣搭配和增减衣物建议。

2.1.6 键盘电路

键盘电路目前采用了各个功能配备独立按键的设计,按钮类型采用微动按钮,分别设有“返回主界面按钮”、“进入副界面按钮”、“UP 按钮”,“DOWN 按钮”,“确认按钮”,以及“语音播报按钮”这6 个按钮。这6 个按钮目前直接分配了6 个I/O 口,按钮的另一端接地,当有按键按下时,I/O 口的电平变为低电平,随即由芯片检测到,并执行对应的功能。

■2.2 软件设计

2.2.1 系统主程序设计

将主程序分成各个子程序模块,逐一实现各个模块功能,其整体思路如图2 所示。

图2 主程序流程图

2.2.2 语音模块软件实现

(1)从EEPROM 区读取存储的温湿度数据

内部EEPROM 读一字节:先写地址,再读数据。

读操作程序:

(2)温湿度以及穿衣小提示播报

播报温湿度:将从DHT11 芯片获取的温湿度进行播报,需要注意的是获取的温湿度为十六进制,而语音播报的对应值为十进制,此时,通过十进制与十六进制转换,完成语音播报。

播报穿衣小提示:将常出现的温湿度划分为多个范围,且将临界值设为设定值,将读取到的温湿度与设定值进行对比,播报对应的语音。

播报程序:

(3)将温湿度数据存入EEPROM 区

内部EEPROM 写一字节:先写地址,再写数据。需要注意的是,在EEPROM 写字节之前需要先将那一扇区的数据擦除。

擦除操作程序:

读操作程序:

由STC89C52 内部EEPROM 详细地址表可以编写。详细地址表如表1 所示。

表1 STC89C52内部EEPROM详细地址表

3 系统的仿真与调试

在完成硬件设计后,对系统进行仿真如图3 所示。系统设置的初始时间为2020 年7 月25 日星期六18 点17 分58 秒,初始闹钟时间为18 点18 分,可通过按下rep 按钮实现语音播报功能,系统还设有五个按键,利用加入副屏实现对当前时间的校准与闹钟的设置。仿真时将DHT11 温湿度调为27℃、75%,与LCD 液晶屏显示保持一致。由于Proteus 8 Professional 仿真软件元件库中,没有语音模块,在仿真时,采用示波器代替语音模块,通过观察波形的输出实现语音播报。

图3 系统仿真图

根据仿真电路图,进行对硬件实物的连接测试系统的可行性与稳定性,测试结果如图4 所示,由图可见,实际测试结果与仿真结果一致,时间显示与调节、实时温湿度显示、语音播报等基本功能均可稳定实现。

图4 液晶屏实物显示图

4 总结

该电子时钟设计通过Keil uVision4进行C语言编译设计,通过控制主控芯片STC89C52 实现温湿度监控显示、实时时间显示与设置、语音播报功能等基本功能。经过对系统的硬件测试,基本功能均可达到设计的预期效果。从测试中看出该系统稳定性好,操作简单,具有一定的实用性,更加贴近于人们日常生活中的使用习惯,使人们的生活更加便利。

猜你喜欢
温湿度时钟按键
蛋鸡育雏育成舍环境控制技术
基于有限状态机的按键检测程序设计
非触勿动 秒治键盘误触
这个时钟一根针
档案库房温湿度记录统计及调控
有趣的时钟
时钟会开“花”
变电站高压配电智能温湿度控制装置的研发与应用
其实真的很简单教你轻松关闭WP8.1手机按键灯
计算器