基于52单片机智能贴心时钟的研究与设计
2021-06-17谭铭明姚玲英通讯作者阮煜琴梁俊焱钟楚洪
谭铭明,姚玲英(通讯作者),阮煜琴,梁俊焱,钟楚洪
(广东第二师范学院物理与信息工程系,广东广州,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 语音播报电路
图2 主程序流程图
语音播报电路我们采用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 语音模块软件实现
(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实现温湿度监控显示、实时时间显示与设置、语音播报功能等基本功能。经过对系统的硬件测试,基本功能均可达到设计的预期效果。从测试中看出该系统稳定性好,操作简单,具有一定的实用性,更加贴近于人们日常生活中的使用习惯,使人们的生活更加便利。