电波钟范围

家用多功能电子钟的设计



SHANDONGUNIVERSITY OF TECHNOLOGY

毕业设计说明书

家用多功能电子钟的设计

学 院: 电气与电子工程学院

专 业:

电子信息工程

学生姓名:

李**
学 号: 12110403***

指导教师:


2016 年 6 月

摘要

本课题主要研究家用多功能电子钟的设计。研究了家用电子钟的自动对时功能,设计了接收时间码信号并进行对时的模块,解决了电子钟的走时误差问题。电子钟能够精确的显示当前的时间信息,同时具有测量室内温度、湿度、PM2.5的功能,可以实时显示室内的温湿度、空气污染指数等数据,对环境指数进行监测。电子钟具有语音报时功能,可以设置整点报时或者在按键按下时进行语音报时。主要应用环境是家庭,在设计中还加入了屏幕亮度减弱功能,在夜晚关灯后,可以将液晶显示屏的亮度调低或者关闭,降低睡眠干扰、减小电量消耗。设计中加入了对一氧化碳有毒气体和甲烷、丙烷、液化气等可燃气体的浓度检测报警设计,当检测到有毒、易燃气体浓度超出安全浓度后,可以触发报警提醒。

关键词:电子钟,自动对时,语音报时,室内环境监测

Abstract

This thesis mainly home-electronic clock design. Study module household electronic clock automatically when the function is designed to receive the time code signal and for time to solve the electronic clock to go error problem. Electronic clock can accurately display the current year, month, day, hour, minute, second and week time information, and has a measurement of indoor temperature, humidity, PM2.5 function, it can display the indoor temperature and humidity, air pollution index and other data in real time the environment index indoor real-time monitoring. Electronic clock with voice repeater function, you can set the whole point of time or a key timekeeping. The main application is the family environment, the design also joined the weakened function screen brightness, turn off the lights in the night, you can reduce the brightness of the LCD screen or off, reducing sleep disturbance, reducing power consumption. Design added to the toxic gas carbon monoxide and methane, propane, liquefied petroleum gas and other combustible gas concentration detection alarm design, when detecting toxic, flammable gas concentrations exceed safe after concentration, can trigger an alarm reminder.

Keywords: Electronic clock, the time automatically, voice broadcast, Indoor Environment Monitoring

目录

摘要    I

Abstract    II

目录    III

第二章
系统概述及方案选择
    2

2.1 系统概述    2

2.2 方案选择    3

2.2.1 控制芯片选择    3

2.2.2 时钟信号产生电路选择    4

2.2.3 显示屏的选择    5

2.2.4 温湿度传感器的选择    6

2.2.5 语音报时芯片的选择    7

第三章
系统硬件电路的设计
    9

3.1 系统核心电路    9

3.1.1 主要性能    9

3.1.2 电路设计    10

3.2 自动对时电路    12

3.2.1 电波钟介绍    12

3.2.2 自动对时电路设计    15

3.3 温湿度测量模块    16

3.3.1 数据通讯过程    17

3.3.2 温湿度测量模块硬件设计    19

3.4. PM2.5测量模块    20

3.4.1 GP2Y1010AU0F传感器介绍    20

3.4.2 PM2.5测量电路硬件设计    21

3.5 气体检测模块    22

3.5.1 MQ-9气体传感器介绍    23

3.5.2 气体检测传感器硬件连接    24

3.6 语音报时模块    25

3.6.1 ISD1760芯片介绍    25

3.6.2 语音报时电路连接    27

3.7显示模块    28

3.7.1 TFTLCD介绍    28

3.7.2 TFTLCD电路连接    29

3.8 报警提示模块    30

第四章
系统程序的设计
    31

4.1 主程序流程图    31

4.2 自动对时子程序    32

4.3 温湿度测量子程序    32

4.4 语音报时子程序    33

第五章
系统测试
    35

5.1 系统测试过程    35

5.2 系统测试结果    36

参考文献    – 37 –


    – 39 –

附录一
整机电路图
    – 40 –

第一章 引言

近些年来,集成电路得到了飞速发展,出现了大量智能化的产品,由原来的机械化产品转向了单片机控制的产品,解放了人们的生活,提高了产品的生产效率。用单片机作为控制芯片,可以简化电子产品的体积,提高了产品的集成度,使得产品可以做的更小,控制更加方便。

人们对时间的测量技术在不断的发展变化,由刚开始的日晷计时,到后来使用机械表来测量时间,都在追求时间测量的精确度、便利性,但是这种时间测量技术虽然能够获得当前的时间,但是都具有测量误差大的缺点,而且功能较少;集成电路的发展使得钟表向电子化方向发展,电子钟的出现,改善了时间测量误差大、功能少的缺点,可以将时间的误差降低到最小,而且增加了温度测量、湿度测量、万年历等功能,大大方便了人们的生活。

本课题设计了一种多功能家用电子钟,该电子钟能够精确的显示当前的时间信息,并且可以实现语音播报当前的时间,通过该电子钟,可以方便、直观的获得当前的时间。同时,电子钟实时获得家庭中温度、湿度、PM2.5等信息,可以直观的显示家庭的环境情况。另外,易燃、有毒气体检测、闹钟、屏幕关闭等实用功能方便了人们的生活,也使得家庭更加安全。

本课题研究了家用电子钟的时间显示、自动对时功能,设计了时间码接收电路来调整电子钟的时间;研究了家庭中温度、湿度、PM2.5等环境指数的测量功能,完成了测量电路的硬件设计;设计了易燃气体、有毒气体检测硬件电路,加入了安全提醒功能;研究了闹钟以及语音报时功能,增加电子钟的使用范围和场景。本课题完成了家用多功能电子钟的硬件电路设计,编写了系统软件,实现了设计要求。

第二章 系统概述及方案选择

2.1 系统概述

本文设计的家用多功能电子钟控制芯片采用STM32F103RCT6芯片,利用实时时钟模块产生时间信号,使用自动对时模块来接收准确的北京时间信号并且实现自动对时功能,使用温湿度测量模块来实时检测室内温度和湿度,使用PM2.5测量模块检测室内的PM2.5指数,使用气体检测模块检测有毒、易燃气体浓度,并且使用报警提醒模块来提醒有毒、有害气体超标,使用语音报时模块进行语音报时,使用LCD显示模块显示时间和测量到的各项数据。

设计总体方案如下:


图2-1 系统框图

2.2 方案选择

2.2.1 控制芯片选择

方案一 使用STC89C52单片机。

可以使用STC89C52单片机作为本次设计的家用多功能电子钟的控制芯片。该单片机是8位指令的单片机芯片,该单片机在启动电路中使用了12MHz的晶振来为系统提供工作周期,该单片机相比其他旧型号的单片机具有更高速的处理数据的能力,同时具有定时器、计数器功能,可以通过设置中断提高单片机的使用效率,单片机具有32个通用的数据输入输出通道,单片机内部还具有ADC、DAC功能,能够完成数字信号和模拟信号的转换,具有SPI接口,可以使用SPI操作模式来控制语音芯片录音、放音。使用STC89C52芯片可以实现本系统的设计要求。

方案二 使用STM32F103单片机。

STM32单片机是基于ARM Cortex-M3内核的高性能、低功耗单片机,该单片机工作频率最高可以达到72MHz,相比传统的51单片机,STM32F103RCT6芯片具有64个引脚,比51单片机的32个通用IO口更多,并且具有更快的运算速度、更多的外设、更高的性能以及更多的内部中断;STM32单片机引脚较多,可以连接比较多的外设,具有3个12位的ADC通道,模拟信号转数字信号的最短转换时间为1us,可以快速的获得模拟传感器测量得到的数据。具有多达8个定时器,方便在项目中使用。同时,该单片机具有多组中断可以设置,可以设置不同的终端优先级,实现更加复杂的系统控制功能,具有较快的中断处理能力。

由于STM32单片机具有多个定时器、ADC、DAC、IO口等外设,所以电子钟的设计中使用STM32单片机可以很方便的开发更多功能,可以使用更少的模块实现设计要求。

本项目需要LCD-TFT屏幕来显示电子钟测量到的多项数据,会占用较多的IO口,STM32由于具有51个通用IO口,相比51单片机的32个IO口,具有更大的优势,并且STM32单片机相比传统的51单片机,具有更低功耗、中断响应迅速等特点,可以及时处理电子钟的闹钟中断、报警中断等等信息,故在该设计中控制芯片选择STM32单片机作为系统的控制芯片。

2.2.2 时钟信号产生电路选择

方案一:使用DS1302时钟芯片。

DS1302是一款价格较低的时钟芯片,可以为单片机提供走时功能,其电路连接较为简单方便,可以为系统提供较为准确的北京时间,使用单片机读取DS1302芯片中的时间信号,显示到显示屏上,这样就能够显示基本的时钟功能。DS1302具有掉电走时的功能,当系统电源出现故障或者其他不能使用的情况下,DS1302芯片会自动选择备用电源进行供电,从而持续提供走时,防止时间信息丢失,备用电池一般选择一个纽扣电池,可以支持DS1302较长的走时时间。

DS1302时钟芯片具有较为精确的走时功能,可以通过I/O数据引脚输出当前的时、分、秒等时间信息,芯片具有万年历的功能。并且DS1302实时时钟芯片体积小,可以很方便的集成在设计产品中,因此在时钟中得到了比较大的应用。

使用DS1302芯片进行走时,可以简化时钟电路的设计,使得设计产品简单。芯片同时具有使用简单,走时误差较小,功耗较低的优点。

方案二:使用RTC实时时钟。

STM32内部带有一个实时时钟(RTC)模块,该模块实际上是一组定时器,通过定时器计数来实现系统走时的功能。STM32的RTC功能是通过一组32位的计数器来实现的,RTC时钟以1970年1月1日的第0秒为时间基准,计数器中保存了从时间基准截止到目前所经过的秒数,单片机通过一定的算法计算,可以获得当前的系统时间。

STM32的实时时钟模块具有掉电走时功能,即当系统的电源断电或者系统发生复位时,位于后备区域的实时时钟计数器不会停止运行,而是会通过备用电源维持走时,从而实现掉电走时功能,当系统复位或者系统的供电恢复后,系统的时间会维持不变,避免了上电后重新设置。

STM32实时时钟的时间误差比DS1302芯片的时间误差大,但是由于本设计带有自动校时模块,可以定期修正时钟的走时误差,所以我们在本次设计中选择STM32自带的RTC时钟模块产生时间信号。

2.2.3 显示屏的选择

方案一:使用LCD12864显示屏。

本设计中需要使用显示屏来显示当前时间以及测量到的温度、湿度、PM2.5等信息,同时还要显示家用多功能电子钟检测到的可燃气体的浓度、有毒气体的浓度,可以选择使用LCD12864液晶显示器。

LCD12864液晶显示器显示清晰,有多种接口方式,可以选择4位或者8位并行方式传输数据,也可以选择2线或3线的串行接口方式传输数据。LCD12864显示器可以显示128*64个字符,一般在显示器中内置了中文的字库,所以LCD12864显示器可以显示中文字符。

LCD12864显示屏具有显示字体清晰、传输接口多样以及支持显示中文的特点,能够实现多功能电子钟设计中要求的功能。

方案二:使用TFTLCD显示屏。

使用2.4寸TFTLCD液晶显示屏显示系统时间以及测量到的数据,具有显示字符多,可以选择显示多种颜色等特点,可以实现设计要求的功能。

TFT由于可以显示24bit颜色深度的图像、字符的特点,应用在了多个领域的产品中,比如在手机屏幕、笔记本电脑显示器屏幕等等都是有TFT构成的。TFT显示的每个字符都包含了若干个像素点,每个像素点是由4个薄膜晶体管来驱动的,本文中选用的2.4寸TFT显示屏可以显示24bit色深的真彩色。TFT显示屏的分辨率也可以很高,最大可以达到UXGA级别,即1600×1200像素。

TFT显示屏的优点是显示速度很快,可以显示色彩度非常高的静态图像,所以可以快速的显示静态图像,如果用来显示字符,则显示的速度更快。由于TFT屏幕具有记忆显示内容的特点,有效提高了液晶显示屏显示动态图像的显示效果,在显示静态画面上也具有突出的优点。由于液晶显示屏具有很好的显示性能,近年来,越来越多的显示设备都采用了这种显示技术。

在工作时的功耗消耗上,TFT显示屏幕要比传统的LCD1602等字符型显示屏的功耗大。在显示屏的价格上,TFTLCD显示屏的价格比其他的显示器价格相对较高。

由于本次设计的电子钟中不仅需要显示当前的时、分、秒、年、月、日、星期等时间信息,而且要显示室内的温度值、湿度百分比、PM2.5指数、易燃、有毒气体的浓度信息,需要显示的信息较多,使用LCD12864显示则字符太小,故本次设计中选择使用2.4寸的TFTLCD液晶显示屏作为设计的显示器。

2.2.4 温湿度传感器的选择

方案一:使用SHT71温湿度传感器

SHT71是一种新型的综合型的温湿度传感器,同时具有温度测量功能和湿度测量功能。SHT71温湿度传感器内部带有一个测量温度的元件、一个湿度测量元件及进行数据转换的A/D转换器,从而将测量的数据转换为数字信号,以方便输出。在SHT71传感器输出数据时,需要单片机控制SHT71的SCK引脚,通过SHT71的DATA引脚传出温度和湿度数据,数据传输使用的方式为串行方式。

方案二:使用DHT11温湿度传感器

DHT11温湿度传感器可以较为准确的检测到室内的温度信息以及湿度信息,使用较为简单,可以很方便的与单片机进行连接。在该传感器内部带有校准参数,在测量室内温度和湿度的过程中,可以对传感器获得的测量值进行校准,输出比较经过校准后的数值,从而获得准确的温度和湿度信息。并且,传感器还具有体积小、工作稳定的特点,在工作时,传感器消耗的电流较小。

DHT11温湿度传感器使用4线制,但是实际使用中只使用了3个引脚,其中一个引脚为空。传感器输出数据使用DATA引脚即可输出温湿度信息,经过校验就可以获得温湿度信息,数据传输方式简单。

由于本设计的电子钟不需要获得精度很高的温湿度信息,使用DHT11温湿度传感器就可以满足设计要求,可以由于SHT71传感器必须要对检测到的数据进行相应的转换并且使用校准参数进行校准,所以不如使用DHT11温湿度传感器便利,故本设计中温湿度传感器选择DHT11传感器。

2.2.5 语音报时芯片的选择

方案一:使用ISD4004语音芯片

ISD4004语音芯片是一款高质量的语音录放芯片,芯片在高音质下可以录音8分钟,而在低音质下,最高可以支持16分钟的语音录放。ISD4004芯片与单片机的连接使用了SPI接口,单片机需要通过SPI协议向语音芯片发送控制命令,可以控制ISD4004语音芯片进行语音录音、放音、快进、删除等操作。

相比其他系列语音芯片,ISD4004语音芯片具有录音时间长、放音音质更好、失真度更小的特点。使用ISD4004可以完成本设计要求的语音功能。

方案二:使用ISD1760语音芯片

ISD1760语音芯片是一个广泛使用的芯片,芯片可以支持60秒的语音录放时间,最大可以支持处理255段的语音信息。该芯片与单片机的连接同样使用了SPI方式,可以通过SPI协议来控制ISD1760语音芯片。ISD1760语音芯片在录音操作、放音操作、信息处理中支持两种操作模式,分别为按键操作方式和SPI命令方式。

ISD1760芯片内部带有环形存储体式,该体系支持255段语音信息的存储,在存储时,芯片会自动完成存储地址的操作,而不用人为选定,方便了在项目中的使用。

ISD4004芯片支持存储的信息容量大,但是价格较高,同时该芯片的引脚多、体积大,不方便在电子钟中使用。而ISD1760虽然只支持60秒的语音录放,但是在本设计中使用完全足够。综合考虑,本设计选择ISD1760语音芯片完成语音功能。

第三章 系统硬件电路的设计

本次家用多功能电子钟的设计中采用STM32F103单片机作为系统的主控芯片,同时使用的模块电路有主动对时模块、温度湿度信息测量模块、PM2.5指数检测模块、一氧化碳有毒、甲烷、丙烷等有害气体检测模块、语音报时模块、TFT液晶显示模块。以下是各个模块电路的硬件设计。

3.1 系统核心电路

本次家用多功能电子钟设计的控制芯片选择STM32F103RCT6芯片,该芯片拥有48KB的SRAM以及256KB FLASH存储资源,具有多达8个定时器,还具有DMA、SPI、IIC以及串口资源,方便单片机扩展更多的外设。

STM32F103单片机是增强型的STM32系列单片机,带有更多的片内RAM和丰富的外设,工作频率为72MHz。使用STM32F103单片机可以完全满足本设计的要求,提供更快的运算速度,同时,能够以低功耗模式运行,可以节省更多的能源。

3.1.1 主要性能

STM32F103单片机的主要性能如下:

  1. STM32F103单片机是32位的单片机,其内核为Cortex-M3。
  2. 具有大容量的存储空间,根据单片机型号的不同,内部内存程序存储空间为32K至512K字节。
  3. 较低的电源电压,支持2.0-3.6V电压供电,具有多个通用I/O引脚。
  4. 单片机具有低功耗的特性。
  5. 具有ADC、DAC功能,可以将模拟信号转换为数字信号,也可以将数字信号转化为模拟信号,并且内部带有2个12位的AD转换器,可以支持18个通道,最快转换时间为1us。
  6. 支持多种外设,可以支持的外设包括:定时器、ADC、SPI、USB、IIC和UART。
  7. 多达8个定时器,其中系统时间定时器为24位自减型计数器,具有窗口看门狗和独立看门狗。
  8. 单片机具有多个与其他传感器、外设进行通信、通讯的接口,方便在项目中使用其他的模块。

3.1.2 电路设计

系统使用的电源电压经过降压电路稳压到3.3V,作为核心电路的电源。在核心电路中,还加入了备用电源的设计,使用一个纽扣电池作为系统的备用电源,当系统主电源出现故障时,备用电源可以支持RTC时钟的走时,避免系统的时间信息丢失。系统的核心电路连接如图4-1所示:

本设计的系统核心电路主要包括STM32单片机核心控制电路设计和单片机外部的晶振电路设计,为整个系统的控制核心,是本设计的基础。

3-1 系统核心电路

3.2 自动对时电路

现在广泛使用的电子钟,一般都需要手动调整时间,这样不仅会增加操作的复杂性,而且在调整时,需要使用时钟源进行参考。电子钟具有走时误差,如果不经常进行调整,则时间误差会发生较大的积累,造成时间的不准确,所以多功能电子钟的设计中加入了自动对时的功能,让电子钟每天自己去校正系统时间,每天和标准的北京时间进行对比,从而调整系统时间。

本设计中自动对时使用的是低频时码授时技术,不使用GPS进行对时的原因有以下几点:一、GPS模块价格高,而BPC模块价格很低。二、GPS在室内时信号较差,可能会发生授时失败的现象。所以本设计自动对时模块使用的是较为新颖的低频时码授时技术,使用了电波钟接受芯片接收国家授时中心发出的时间信号,经过CME6005芯片解码,可以获得精确的北京时间,从而调整电子钟的时间,与北京时间同步,完成自动对时。

使用电波钟进行自动对时,电子钟走时非常精确,并且可以每天进行自动对时,保持电子钟的走时精确。自动对时功能的加入,可以大大减小电子钟的走时误差。

3.2.1 电波钟介绍

本设计中自动对时功能是通过接收时间码信号来完成的,使用的授时技术为低频时间码授时技术。低频时码授时技术可以稳定可靠的进行授时,它工作在低频频段,能够提供标准的时间信号,通常使用数字模式进行传输信号,当然也支持使用模拟方式进行传输数据。电波钟能够提供精确的时间服务,同时,使用电波钟进行自动对时的设备具有体积小、消耗电流少,产品稳定可靠的特点,从而被广泛使用在多个领域。应用电波钟的领域主要为对时间要求比较高的领域,比如在军事导弹发控、股票证券领域、电子商务、钟表领域。

在美国、日本等国内已经建成了发射功率较大的时间信号发射台,为本国的使用者提供准确的时间服务。我国也比较重视这项授时技术,目前已经建成了我们国家自己的发射台,发射台的发播呼号”BPC”,时间码发射信号使用的频率为68.5KHz。

我国的BPC时间码信号发射台建在河南省商丘市。BPC发射台的发射功率高达90KW,每天从8:00—5:00开始发射信号,每天发播21小时,在凌晨的5:00——8:00发射台会进行停机检修,在发射台停机检修期间不会发射BPC信号,因此使用电波钟进行自动对时的时要避开这个停机检修的时间段。BPC授时精度非常准确,授时精度最高可以达到0.1ms的授时精度,足以满足绝大部分对时间精度有要求的领域使用。发射台的发射半径为天波可以发射3000公里,地波可以在最大1000公里的地方接收到授时信号。授时台发射的BPC信号范围如图3-2所示。


3-2 电波钟信号接收范围

BPC信号受电磁干扰和气象状况影响较大,一般情况下,白天由于工业生产和电磁信号干扰较大,比晚上较难接收信号,在高楼林立的都市,BPC信号强度也比乡村弱。但是在晚上信号比较强,大部分地区都可以正常接收时间码信号进行自动对时。

电波钟发射的时间码信号具有专有的编码格式,在接受到时间码信号后,需要在微处理器上进行相应的解码,才能获得当前的时间。时间码采用4进制传送数据,一帧的周期为20秒,一帧发射20个脉冲,每一个脉冲持续的时长为1秒,这样在1分钟内就可以接收到3个时间码。

时间码的编码格式如如图3-3所示:

3-3 BPC码编码格式

在BPC信号编码中P0为帧间隔标志,每一帧与每一帧之间以P0最为分隔,P1表示当前发送的是第几帧信号;P1为保留脉冲,供以后的扩展使用;P2只能为0、1、2三个值中的一个,0表示当前传送的数据为第一帧,1表示当前传送的为第二帧,2表示为第三帧;P3、P4为校验脉冲,用来校验传送的数据是否正确。

BPC码的编码格式特点有:

  1. 时间信号在传输过程中为了利用信号脉冲,没有采用二进制进行传输,而是利用了四进制的编码格式来编码当前的年、月、日、星期、时、分、秒等时间信息,用发射的脉冲高电平的持续时长来表示4进制的0,1,2,3,即脉冲的高电平持续时间为100ms表示传送的数据为0,200ms表示传送的数据为1,300ms的高电平时间表示传输的数据为2,400ms的高电平持续时间表示传输的数据为3;
  2. 1分钟内包含3帧时间码,以缺少一个秒脉冲作为时间码每一帧之间的分隔符,同时作为每一帧的开始标志;
  3. 采用了码位复用技术,可以用脉冲传送数据,同时这个位也作为校验位,校验数据是否正确。

3.2.2 自动对时电路设计

自动对时电路采用了CME6005芯片作为解码芯片,该芯片可以解码接受到的BPC信号,将数据传出。自动对时电路采用的电源电压为3.3V,使用了接收天线接收BPC信号。本文设计的电子钟自动对时电路的硬件电路连接图如图3-4所示。

3-4 自动对时电路

3.3 温湿度测量模块

本文设计的家用电子钟还具有测量室内温度和湿度的功能设计,在本设计,室内的温度和湿度测量是通过使用DHT11温湿度传感器来测量的。DHT11是一款性能优秀的数字式的传感器,可以同时测量温度和湿度,测量出的信息精度较高,可以很好的应用在实际项目设计中。DHT11温湿度传感器对湿度的测量范围广泛,对温度的测量范围较为小。湿度可以测量的范围为20%到90%,测量到的精度为5%。温度的测量范围小,但对于家用电子钟来说这个传感器完全够用,其温度测量范围为0摄氏度到50摄氏度,精度为2摄氏度。DHT11温湿度传感器的引脚总共有四个。

DHT11数字温湿度传感器的测量到的精度信息较高,在传感器内部,具有测温元件和感湿元件,感湿元件用来测量室内的温度,测温元件使用的是NTC式测温元件。传感器采用了单线制串行接口和单片机进行通信,通过简单的电路连接就可以将传感器连接到单片机上。由于DHT11的体积较小,功耗较低,并且可以很方便的和微处理器进行连接,所以获得了广泛的应用。

DHT11数字式温湿度传感器一次传输的数据为40个位,其中40位数据当中有2位数据为整数部分,2位数据为小数部分,这40位数据具有特定的格式。在数据传输时首先将数据的高位从DHT11中传出,40位数据的格式为:8位获得的湿度整数数值,接着为8位湿度的小数部分,接着是8位的温度整数数值,然后是8位的温度小数部分,最后是8位的校验和。校验位可以校验传送的8位数据,可以有效的检测传送的数据是否出错,出错后要重新传输。

3.3.1 数据通讯过程

在DHT11的通讯过程中,主机首先发送起始信号,将总线拉低,如果DHT11检测到这个单片机发送的起始信号,则DHT11传感器会向单片机发送响应信号。单片机接收到DHT11发送的响应信号,会将总线拉高,然后等待DHT11传送数据,这样就完成了一次通讯。可以看到,完整的通讯过程在单片机发送起始信号开始,在单片机接收到响应信号后,既可以认为完成了通讯过程,接下来的是数据传输过程。

DHT11温湿度传感器在数据传输时使用的是单总线结构进行传输,这种数据传输时,首先STM32单片机要发送一个开始传输数据的起始信号,标志着数据传输的开始,如果DHT11接收到这个起始信号,则会进行回复,即发送响应信号,这样才能开始下一步数据传输。如果在STM32单片机发送起始信号后,DHT11没有响应,则需要检查传感器是否处于损坏状态,必须更换传感器重新进行测试。

在单片机接收到响应信号后,会将数据总线的状态拉成高电平状态,这样才能开始数据的传输。单片机与DHT11的通讯过程如图3-5所示。

3-5 DHT11数字温湿度传感器通讯过程

DHT11数字温湿度传感器数据传送有特定的数据格式,每一位的数据以五十微秒的低电平时持续时间结束后才发送每一位数据,数据总线上的高电平的持续时间长短决定了发送的数据位是”0″还是”1″。

DHT11数据总线发送的数据,在发送1位数据开始后,如果检测到高电平的持续时间在二十六微秒至二十八微秒之间,则发送的数据为”0″,DHT11数字温湿度传感器向STM32单片机发送的数据为”0″时的波形图图3-6所示。


图3-6 数字0信号表示方法

在DHT11发送1位数据开始后,如果检测到数据总线高电平的持续时间大于七十微秒,则可以认定DHT11传感器发送的数据为”1″,DHT11数字温湿度综合传感器向STM32单片机发送的数据为”1″时的波形图如图3-7所示:


3-7 数字1信号表示方法

3.3.2 温湿度测量模块硬件设计

DHT11数字温湿度综合传感器共有4个引脚,其中的1号引脚为VCC引脚、2号引脚为GND引脚、3号引脚为DATA数据引脚以及4号引脚为空引脚,空引脚在连接电路时不需要连接。在将DHT11连接到单片机时,需要连接一个4.7K欧姆的电阻,以拉高数据引脚。DHT11数字式温湿度综合传感器与STM32F103单片机的连接电路如图3-8所示:


3-8 温湿度测量模块硬件连接

3.4. PM2.5测量模块

PM2.5测量模块使用灰尘传感器GP2Y1010AU0F。GP2Y1010AU0F传感器是一款使用极其广泛的灰尘传感器,主要用来检测空气中灰尘的含量,也可以用来检测空气中颗粒物的浓度,包括烟雾、粉尘等,可以检测空气中PM2.5的含量,所以本设计中采用了这个模块来测量室内的PM2.5指数,显示环境清洁度,传感器的工作温度在-10到65之间。

3.4.1 GP2Y1010AU0F传感器介绍

GP2Y1010AU0F灰尘传感器能够测量空气中PM2.5含量,检测时需要等到传感器稳定后才能读取传感器测量到的数据。该PM2.5传感器主要包含一个红外发光二极管以及包含一个光电晶体管,这样当发光二极管发射出红外光束时,光电晶体管可以检测到经过折射后的红外光束,通过检测经过折射的光束就可以检测到空气中PM2.5颗粒的含量,从而输出测量到的PM2.5数据。

该传感器具有极低的电流消耗,典型消耗为11mA,GP2Y1010AU0F工作时的最大电流消耗约为20mA,最高可以使用高达7V的电源给传感器供电。传感器输出的是一个模拟电压,该模拟电压和空气中的PM2.5颗粒物的浓度正相关。在正常使用的情况中,需要使用STM32F103单片机的ADC模块,将输出的模拟电压转化为粉尘的浓度,即可获得PM2.5的含量,传感器的敏感性为0.5V/0.1mg/m3。

GP2Y1010AU0F输出为模拟电压,单片机根据模拟电压无法直接显示PM2.5的浓度,必须首先需要使用STM32F103单片机的ADC功能进行转换,将模拟电压转换为一个电压值,并根据模拟电压与粉尘浓度的关系,从而可以获得粉尘的浓度数据,即可以测得空气中PM2.5的数值,传感器的输出模拟电压的大小与PM2.5的浓度特性如图3-9所示:

3-9 GP2Y1010AU0F粉尘浓度特性

3.4.2 PM2.5测量电路硬件设计

GP2Y1010AU0F灰尘传感器共有6个引脚,其中的3号引脚为脉冲信号输入引脚,5号引脚为测得的模拟电压输出通道,可以通过这个引脚获得PM2.5的浓度数据。GP2Y1010AU0F灰尘传感器与STM32的连接电路如图3-10所示:

3-10 GP2Y1010AU0F灰尘传感器连接

灰尘传感器使用的电源电压为5V,单片机的PB1口发射脉冲信号,使用了一个二极管来增加单片机的驱动能力,脉冲信号驱动传感器内的LED发光,传感器检测到PM2.5的浓度后,单片机通过测量5号引脚上的模拟电压值,可以获得PM2.5的浓度。

3.5 气体检测模块

许多家庭中使用天然气作为燃料,当天然气发生泄露时,可能会发生较大的事故,造成人员的伤亡。故在家用电子钟的设计中加入了对一氧化碳有毒气体、甲烷、丙烷等可燃气体的检测,当室内一氧化碳或者可燃气体浓度超过安全浓度后,电子钟会发出报警信号,提醒人们报警或者检查是否发生泄漏情况,从而避免安全事故的发生。

家用多功能电子钟中气体检测模块通过使用MQ-9气体传感器来实现,该传感器可检测一氧化碳有毒气体及甲烷、丙烷等可燃性气体,是一款性价比较高的传感器,广泛使用在气体检测中,所以本设计采用MQ-9气体传感器。

3.5.1 MQ-9气体传感器介绍

本次设计中的气体检测模块使用了MQ-9气体检测传感器来检测易燃、有毒气体的浓度,使用的气敏元件是二氧化锡,二氧化锡在洁净的环境中的导电率低,但是随着空气中一氧化碳以及甲烷的气体浓度增加时,二氧化锡的导电率会大大提高,这样就能检测到空气中一氧化碳和甲烷的浓度变化了。在+5V时检测周围环境中甲烷和丙烷的浓度,在1.5V时检测环境中一氧化碳的浓度,检测是轮回检测的,即可以同时检测到空气中一氧化碳和甲烷、丙烷的浓度。气体检测模块使用还使用了LM393芯片,当空气中一氧化碳、甲烷、丙烷的浓度超过安全浓度后,就可以触发报警操作。

MQ-9 气体传感器检测浓度范围为比较宽,能够检测到一氧化碳的浓度的最小浓度为10ppm,一氧化碳的最大检测浓度为500ppm,能够检测到甲烷等可燃气体的浓度为300~10000ppm,在使用MQ-9传感器时为保证车辆的数据准确性必须首先进行预热操作,高温检测甲烷和丙烷等易燃气体时需要的加热时间至少为60S,低温时检测一氧化碳有毒气体时需要的加热时间至少为90S。

MQ-9 气体传感器对一氧化碳以及甲烷等可燃气体有较高的灵敏度,可以以较高的灵敏度检测甲烷、丙烷、一氧化碳的浓度,可以使用的较长的时间,同时传感器的价格很低,性价比较高,另外传感器只需要使用简单的驱动电路即可工作。

MQ-9 气体传感器对空气中一氧化碳浓度的敏感度特征曲线如下图3-11所示:

3-11 敏感度特性曲线

3.5.2 气体检测传感器硬件连接

MQ-9易燃气体、有毒气体检测传感器使用5V电源供电,引脚4作为数据输出端,在使用中可以选择使用模拟电压或者数字电压进行操作,具体的电路连接如下图3-12所示:

3-12 气体检测模块电路

3.6 语音报时模块

本设计中的语音报时模块采用ISD1760芯片来实现设计要求的语音功能。该芯片大大较小了实现语音报时功能的难度,使用简单,并且在使用时不需要使用编程器、下载器,使用普通的咪头既可以实现录音的功能,同时芯片能够支持处理超多255段的语音信息,最长可以支持120秒的录音时间。使用该芯片可以很好的实现语音报时的功能。

3.6.1 ISD1760芯片介绍

ISD1760芯片工作电压较为宽泛,可以支持电压范围在2.4伏到5.5伏之间,最高的供电电源电压为6伏,超过6伏可能会损坏语音芯片。该语音芯片静态时的电流为0.5–1微安,工作时的电流消耗为20毫安,芯片的录音采样率可以调节,调节采样率时,只需要调节尾部震荡电阻就可以实现采样率的改变,可以选择的采样率和录音时间的关系如表3-1所示。

3-1 ISD1760参数表

采样率 录放时间
12kHz 40秒
8kHz 60秒
6.4kHz 75秒
5.3kHz 90秒
4kHz 120秒

ISD1760语音录放芯片的特点为:

  1. 录音、放音次数长,最高可以达到十万次的录音放音;芯片的录音数据存储保留时间长,一般情况下,芯片内部保存的语音数据在断电状态下最多保留一百年。
  2. 可处理多段录音信息,最高可以处理255 段以上的语音信息
  3. 可以选择4kHz—12kHz之间的6种采样频率,每个采样频率对应不同的录放时间,采样率越低,录音时间越长。
  4. 放音音质好、不失真
  5. 工作电压范围宽,可以支持电压范围在2.4伏到5.5伏之间
  6. 芯片价格不超过10元,性价比很高,同时连接方式也比较简单。

ISD1760具有独立按键操作模式和SPI操作模式两种模式,在独立按键操作模式下,不仅可以操作ISD1760芯片进行录音、放音操作。在SPI操作模式下,和按键操作模式具有一样的功能,但是在录音和放音模式中,SPI模式必须要指定录音、放音的语音段,即必须指定录音、放音的起始地址和结束地址。

在SPI操作模式下,STM32单片机通过四线(SCLK,MOSI,MISO,/SS)SPI协议对ISD1760芯片进行串行通信。ISD1700系列的SPI串行接口操作遵照以下协议:

  1. 要向ISD1760语音芯片发送一个命令,则首先要将/SS引脚拉低,然后才能开始SPI处理。
  2. 在发送指令期间,要求/SS管脚保持低电平状态。
  3. 数据在SCLK的上升沿从STM32F103单片机传输到ISD1760芯片,在SCLK的下降沿从STM32F103单片机输出,在进行输出操作时首先移出数据的低位字节。
  4. 根据命令的不同,SPI指令操作码通常传输的数据也不同,包括命令字节、数据字节以及地址字节。
  5. 在数据传输时必须保证/SS处于低电平状态,在传输完成后,/SS变成高电平状态。语音芯片的SPI处理在/SS变高后启动。

在SPI模式下,STM32单片机发送给ISD1760芯片的指令数据以数据队列的形式从MOSI送入ISD1760芯片,第一个移入地字节是ISD1760语音芯片的命令字节,命令字节后面搭配着不同数量的字节。同时,SPI操作成功后,会将ISD1760芯片状态以及当前行信息被返回给STM32单片机,从而知道语音芯片的当前状态。

SPI模式控制ISD1760的时序图如图3-13所示。


3-13 SPI时序图

ISD1760的SPI处理开始于/SS管脚的下降沿,/SS管脚拉低时,开始数据处理,直到一个SPI结束,/SS管脚才拉高。

3.6.2 语音报时电路连接

语音报时芯片使用SPI连接方式和单片机相连,在语音报时电路中,包括了按键和扬声器电路,按键可以对语音芯片进行控制,而扬声器负责放音。本设计中ISD1700语音报时模块的硬件连接电路图如图3-14所示:

 

 

 

3-14 语音报时模块电路

3.7显示模块

本设计的家用多功能电子钟需要使用显示屏来显示当前系统时间、温度、湿度、PM2.5浓度、一氧化碳浓度、可燃气体浓度等信息,在本多功能电子钟的设计中,我们选择了使用2.8寸的TFT-LCD显示屏来显示电子钟的信息。

3.7.1 TFTLCD介绍

TFT-LCD 即薄膜晶体管液晶显示器。TFTLCD显示屏显示每个字符都是通过薄膜晶体来实现的,每个字符就是一个显示像素,因此提高了显示性能,使得刷新速度大大提高。显示静态图像的性能很好,可以显示清晰、色彩良好的图像。

本设计中选用的2.8寸TFTLCD显示屏,分辨率为320*240,具有16位真彩显示,可以显示及其精细的颜色,显示器支持显示图像,并且该显示屏带有触摸屏,可以用来作为控制输入。

3.7.2 TFTLCD电路连接

本设计选用的2.8寸TFT-LCD显示屏采用5V电源进行供电,有16个数据引脚,数据引脚与STM32F103单片机的PB引脚相连接,LCD显示屏的硬件电路连接如图3-15所示。

3-15 TFTLCD显示屏的电路连接

TFTLCD显示屏采用16位并行方式与外部连接,相比使用8位连接方式,显示屏的刷新速度提高了一倍,可以较小刷新时间,极大的提高了显示性能,使得显示更加流畅,尤其是在显示图像时,刷新速度快可以减少图像的加载时间。

3.8 报警提示模块

当检测到一氧化碳、可燃气体超过安全浓度后,报警提示模块开始工作,通过发出连续的报警声音、闪烁红灯来提示。报警提示模块使用的硬件为扬声器和LED灯。

报警提示模块的设计电路比较简单,扬声器使用了语音报时电路中的扬声器,LED灯为一个红色的LED灯。通过简单的电路可以将一氧化碳、易燃气体浓度超过安全浓度的危险信号进行提示。

第四章 系统程序的设计

由于本设计中模块较多,功能较为复杂,所以在设计中必须对程序进行模块化设计。多功能电子钟的主程序只需要负责显示各子程序测量到的数据即可,各个模块的子程序则负责进行对模块进行初始化、温度湿度信息等数据的测量操作。

4.1 主程序流程图

主程序负责初始化各个硬件电路,同时显示时间信息以及各个子程序测量到的数据,程序流程图如下。



图4-1 主程序流程图

4.2 自动对时子程序

自动对时程序主要负责对接收到的时间码进行处理,对接收到的包含着当前北京时间的BPC编码数据进行校验,如果数据的校验全部正确,则STM32单片机会对数据进行解码,否则要重新接受BPC电波码。程序需要按照电波钟时间码的编码格式进行转换,最后进行显示。程序分为接收BPC时间码、校验、解码、更新系统时间等过程,自动对时程序流程图如下图。

     校验失败

校验通过

4-2 自动对时子程序流程图

4.3 温湿度测量子程序

湿度测量子程序主要对DHT11温湿度传感器进行初始化,在初始化成功后发送读取湿度信号,并且等待DHT11传感器的响应,如果获取到数据,则和自动对时子程序一样,首先对数据进行校验,只有校验通过后才能对测量到的数据进行显示。温湿度测量子程序流程图如下:

        校验失败

     校验成功

4-3 温湿度子程序流程图

4.4 语音报时子程序

语音报时主程序负责语音报时数字钟的语音播报,当整点到达或者当下语音报时的按键时,就会运行语音报时子程序,播报当前的系统时间以及温度信息,播报的内容为”北京时间 20XX年X月X日 X时X分X秒 温度 X.X摄氏度”,语音报时可以选择关闭,也可以选择开启整点报时或者仅仅按键报时。

        


4-4 语音报时子程序流程图

第五章 系统测试

在完成多功能电子钟的设计实物制作后,需要进行系统功能测试,检测设计实物是否完成预计的功能。

5.1 系统测试过程

完成实物制作后,需要进行一系列的测试,来检测完成的实物是否完成了设计要求的功能,主要检测的内容为检查系统能否正常上电,STM32单片机能否正常工作,DHT11温湿度传感器的测量数据是否准确,检测电子钟的时间能否正常走时,检测能否自动接收国家授时中心发出的时间码信号,以及在接受到时间码信号后能否完成自动对时。需要检测PM2.5测量功能、有毒气体、易燃气体检测报警能否正常工作。

硬件检测:在焊接实物前,需要仔细检查所设计的原理图是否有错误,在检查过后,需要根据设计选用的元器件进行购买,并且开始焊接实物。焊接时注意按照原理图的设计进行焊接,要避免出现错焊的现象。在焊接时,要注意焊台的温度不能过高,焊接较小的元件要注意,防止将元器件烧坏。

软件调试:在本次家用多功能电子钟的设计中我选择了uVision 5软件进行程序的调试。该软件可以进行语法提示,大大减小了编写STM32单片机程序的难度,并且,在程序的编译中,如果出现错误,则可以定位到程序出错处,进行程序的修改,最终完成程序的设计。程序编写完成后,将编译生成的文件下载到单片机中运行。

软硬连调:确认原理图没有错误,焊接完成实物。然后编写多功能电子钟的程序,将程序下载到单片机中运行,检查设计中要求的各项功能是否正常完成,在确认各个模块正常工作后,将电子钟测量得到的数据进行记录,与使用其他测量设备测量得到的数据进行对比,查看数据是否正常,如果数据有较大的偏差,需要检查设计是否出现故障,以及查看程序是否出现错误,要进行调试,知道数据正常。

5.2 系统测试结果

实物焊接完成,并且下载到单片机,将系统上电进行测试,测试得到如下结论:

  1. 系统走时准确,能够正常显示当前的系统时间。
  2. 自动对时模块正常工作,系统能够接受到BPC信号,能够完成自动对时。
  3. 温湿度测量模块、PM2.5测量模块正常工作,可以获得较为准确的室内环境指数信息。
  4. 语音报时功能、有毒气体、易燃气体报警提醒功能完好,完成了设计的要求。

第六章 总结展望

本设计使用STM32单片机作为主控芯片,利用STM32单片机的RTC实时时钟产生时间信号,利用BPC接收模块接收时间信号并且自动对时,使用DHT11温湿度传感器测量室内温度和湿度,使用气体检测模块检测有毒、易燃气体浓度 ,使用ISD1760进行语音报时,使用LCD-TFT屏幕显示时间和测量的各项数据。设计硬件简介,具有低功耗的性能,实现了预计功能,能够稳定运行。

在对芯片的管脚功能和用法有充分的了解后,根据设计要求设计了硬件电路,包括单片机核心电路、自动对时电路、温湿度测量电路、PM2.5测量电路、一氧化碳、可燃气体检测电路、语音报时电路、液晶显示电路、报警提示电路等。然后通过软件编程,实现了对年、月、日、时、分、秒、星期、闰年的显示,并且实现了时间的自动调整。使用了DHT11温湿度传感器、粉尘传感器、MQ-9气体传感器等测量室内各项环境数据,用按键进行控制,用扬声器进行语音报时以及报警提醒,用液晶模块进行显示,并具有闹铃功能。

家用多功能电子钟可以方便的显示时间、室内环境数据,并进行报警提醒,基本完成了预期要实现的目标。

参考文献

[1] 沈庆阳. 8051单片机实践与应用[M]. 清华大学出版社, 2002.

[2] 曹会国, 吴顺伟. 基于SHT71传感器的温湿度测量[J]. 安徽农业科学, 2011, 39(19):11902-11903.

[3] 陈益飞. 单片机原理及应用技术[M]. 国防工业出版社, 2011.

[4] 何立民. 单片机高级教程应用与设计(2)[M]. 北航大学出版社, 2007.

[5] 王永虹, 徐炜, 郝立平. STM32系列ARM Cortex-M3微控制器原理与实践(内附光盘1)[M]. 北京航空航天大学出版社, 2008.

[6] 孙书鹰, 陈志佳, 寇超. 新一代嵌入式微处理器STM32F103开发与应用[J]. 网络新媒体技术, 2010, 31(12):59-63.

[7] 孙启富, 孙运强, 姚爱琴. 基于STM32的通用智能仪表设计与应用[J]. 仪表技术与传感器, 2010(10):34-36.

[8] 王伟.高性能、低功耗带RAM实时时钟芯片DS1302(上),电子世界:第一期,19952635

[9] 王伟.高性能、低功耗带RAM实时时钟芯片DS1302(下),电子世界:第四期,19953241

[10] 刘光潭.中外集成电路简明速察手册,上海:电子工业出版社,1991

[11] 黄巧, 章佑. 气象雷达机房温度短信报警系统的设计与实现[J]. 科技资讯, 2013(16):17-18.

[12] 武红玉. 基于AT89S51单片机的电子万年历的设计[J]. 科技传播, 2012(9).

[13]L.Svilainis.LED PWM dimming linearity investigation[J].Displays,2008

[14] Holm Paige Rhyne William,Two Dimensional LED Arrays for Virtua1 Display Image Sources[J],IEEE translations on electron devices.1999

[15] MAXIMNEW RELEASES DATA BOOK VOLUME V),AMERICA1996

致 谢

大学四年过得非常快,转眼就要毕业。在大学中学到了非常多的知识以及技能,毕业设计就是一个展示自己所学成果的平台。非常感谢我的导师陈文钢副教授帮助我完成毕业设计,导师给我非常多的指导,帮助了我顺利完成毕业设计和论文的写作,在此表示衷心的感谢。

还要感谢给我授课的老师们,是你们无私的教育我,给我知识,让我在大学里过的更加充实,再次感谢你们。

还要感谢在毕业论文写作过程中帮助过我的老师、同学,感谢你们的无私帮助,帮助了我完成了毕业论文的写作。我在毕业设计中学到了许多有用的知识,锻炼了自己的能力。

附录一 整机电路图

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 家用多功能电子钟的设计 (http://blog.lxx1.com/2364)

如果博客对您有帮助,请给我 打赏


科技爱好者

工科学生大四在读,专业嵌入式开发,喜欢计算机,喜欢单片机,喜欢各种各样美好的东西,相信科技正在改变世界!

这是我的 个人博客

发表评论

电子邮件地址不会被公开。 必填项已用*标注