综合技能实训报告基于单片机的家用温湿度测量播报系统的设计.doc

上传人:文库蛋蛋多 文档编号:4143508 上传时间:2023-04-07 格式:DOC 页数:38 大小:1.45MB
返回 下载 相关 举报
综合技能实训报告基于单片机的家用温湿度测量播报系统的设计.doc_第1页
第1页 / 共38页
综合技能实训报告基于单片机的家用温湿度测量播报系统的设计.doc_第2页
第2页 / 共38页
综合技能实训报告基于单片机的家用温湿度测量播报系统的设计.doc_第3页
第3页 / 共38页
综合技能实训报告基于单片机的家用温湿度测量播报系统的设计.doc_第4页
第4页 / 共38页
综合技能实训报告基于单片机的家用温湿度测量播报系统的设计.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《综合技能实训报告基于单片机的家用温湿度测量播报系统的设计.doc》由会员分享,可在线阅读,更多相关《综合技能实训报告基于单片机的家用温湿度测量播报系统的设计.doc(38页珍藏版)》请在三一办公上搜索。

1、学号:2009060321综合技能实训报告实训题目: 系 (部): 专 业: 班 级: 学生姓名: 指导教师: 起止时间: 海南软件职业技术学院摘 要在众多环境因子中温湿度因子是最重要和最难控制的环境因子,本文设计了一种基于单片机的温湿度测量系统,本系统具有一定通用性,每个测温节点可通过单总线采集多个温度传感器所测温度信号,而测湿节点通过一路湿度传感器采集所在温室湿度。本设计采用技术成熟的SHT11芯片作为测量温度和湿度的传感器,由于SHT11自带A/D转换,使电路大大简化。采用集成芯片IDS4004作为系统的抗干扰措施,看门狗电路可以对CPU进行实时检测,避免程序进入“死循环”。控制芯片采用

2、技术成熟、功能强大、价位低廉的AT89S52单片机。由本设计做成的温湿度检测系统结构简单、量程宽,具有较高的可靠性、安全性及实用性。关键词:传感器; 电路; 单片机; 程序; SHT11 芯片 目 录1绪 论11.1 选题意义11.2 国内外发展趋势21.3 系统的主要性能指标21.4 主要工作任务32系统设计综述43硬件电路设计43.1 数字式温湿度传感器5 3.1.1数字式温湿度传感器功能63.1.2 数字式温湿度传感器典型电路接口说明63.1.3 电源引脚73.1.4 串行接口73.1.5 发送命令10 3.2 ISD4002系列语音芯片113.2.1 芯片特点介绍143.2.2 工作原

3、理153.2.3引脚描述173.3 SPI(串行外设接口)183.3.1 SPI端口控制位203.3.2SPI控制寄存器21 3.3.3 SPI操作时序233.4温度采样电路283.5语音报警和键盘电路324系统软件设计33 5.1 软件流程355.2主要代码与注释355.3主程序37 5.4温湿度传感器操作程序385 结束语39致 谢40参考文献:41系统原理图 411绪 论1.1 选题意义随着“信息时代”的到来,作为获取信息的手段传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切,传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各

4、类传感器的基本结构、工作原理及特性是非常重要的。由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。因此,我们不仅要掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。另一方面,传感器的被测信号来自于各个应用领域,每个领域都

5、为了改革生产力、提高工效和时效尽力开发研制适合自己的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。温湿度感器就是其中很重要的一类,它发展速度快,应用领域也很广泛,并且还有很大发展潜力。为了提高对传感器的认识和了解,尤其是对温湿度传感器的深入研究,基于实用、准确和广泛的原则进行了本次设计。1.2 国内外发展趋势近年来,国内外在温度和湿度传感器研发领域取得了长足进步,温湿度传感器正从结构复杂化、功能简单化向集成化、智能化、多参数检测的方向迅速发展,为开发新一代温湿度测控系统创造了有利条件,也将温度、湿度测量技术提高到新的水平。国内数字温湿度检测仪测量温湿度采用的主要方法有:“温-阻”法和“

6、湿-阻”法,即采用电阻型的温湿度传感器,利用其阻值随温湿度的变化测定空气的温度和相对湿度。受传感器灵敏度的限制,这类温湿度检测仪的精度不可能很高,一般条件下还可以满足需要,但是在实验室、电子设备房等对温湿度精度要求较高的场所就难以满足要求了。目前,国外对温湿度传感器技术的研究也有了较大的进展,特别是电阻式温湿传感器发展更快,人们不仅在电阻式陶瓷温湿度传感器特性方面做了大量研究,而且在高分子电阻式湿度传感器上取得了较为可喜的成果。1.3 系统的主要性能指标根据正常的生活环境,确定本次设计的主要性能指标为:(1)测温范围:-20+45;湿度测量范围为0100%Rh(2)温度测量精度:0.5(3)湿

7、度测量误差:4%Rh(4)可设置上、下限报警值,当温度湿度超限时,发出报警信号(5)电源工作范围:DC4.55.5V1.4 主要工作任务根据本毕业设计实际的任务要求,完成温湿度传感器芯片的选择,控制芯片的选择,并设计显示电路、电源电路、报警电路以及部分功能电路的程序。系统开始工作后,根据初始条件读取温度值和湿度值,测量数据经处理后,将其与设定的温湿度值比较,如果发现当前的温湿度超限,发出报警信号,未超限则显示正常的温湿度值。2系统设计综述随着人们生活水平的提高,对生活环境的要求也越来越高。针对目前家庭的实际需要,智能温湿度测量显示与语音播报系统比较方便实用,本章就通过51系列单片机来实现一种家

8、用温湿度测量播报系统的设计。根据本设计要求的性能指标,方案设计时不仅要考虑怎么样实现测量一定精度的温湿度信号值的基本功能,还要考虑温湿度超限时系统的报警功能。根据设计要实现的功能,还要考虑控制芯片AT89S52的端口分配方案,AT89S52单片机的P1.0口作为温湿度测量切换控制口,P1.1作为多路测量芯片选择切换控制口,T0、T1口为报警控制口,X1、X2口为时钟电路端口,RESET、AEL口作为复位电路接口,P2口的前四位作为LED的位选输出口,P1口作为LED字型码控制口。2.1 实例说明 本例中的家用温湿度播报测量系统能够及时反映当前系统工作区的温室等信息,温室等信息通过数码管直观地显

9、示给用户,用户可根据自己对温湿度的使用要求,通过键盘自行设置温度及湿度的报警值,当温度或湿度值超出用户设定的范围时,本系统可以自动执行语音报警。语音播报温湿度采集单片机因此,本系统共分为温湿度采集、数码管显示、语音播报、键盘信息输入4部分。如图15-1所示。键盘信息输入数码管显示 图 15-1 系统结构框图 本系统运行时实时采集温度及湿度信息,并实时显示当前温湿度信息,当采集到的温湿度信息超出用户通过键盘设定的报警区间时,系统自动启动语音播报系统发出声音告警,此刻数码管闪烁发出视觉告警。3 设计思路分析分析系统可知,系统需要设计的功能模块包括数据采集、控制、键盘输入、液晶显示、日历、数据存储等

10、,对于这些功能设计,选用51系列单片机来实现是比较合适的,采集、控制、键盘以及“屏显”都属于51系列单片机的典型应用范畴。在设计系统硬件时,主要有一下电路模块:系统硬件单片机采用AT89S52单片机;温度采集选用SHT10数字式温湿度传感器;语音播报采用ISD1420语音模块;按键电路模块;数码管显示电路模块;下面对相关的芯片进行具体介绍。3.数字式温度传感器SHT103.1.1数字式温湿度传感器功能(具体说明如图15-2所示)参数条件Min.Typ.Max.单位温度分辨率0.50.030.03%RH81212Bit重复性0.1%RH精度不确定性线性化参见图 1互换性可完全互换原始数据3%RH

11、线性化1%RH量程范围0100%RH响应时间1e(63%)25,1ms空气6810s迟滞1%RH长期稳定性典型性0.5%RH/yt温度分辨率0.040.010.010.070.020.02121414Bit重复性0.10.2精度参见图 1量程范围40123.840254.9响应时间1e(63%)530s图 15-2 数字式温湿度传感器SHT10说明图 15-3为相对湿度、温度和露点的精度曲线图。3.1.2接口说明温湿度传感器典型电路如图15-4所示。3.1.3电源引脚SHTxx的供电电压为2.45.5V。传感器上电后,要等待11ms以越过“休眠”状态。在此期间无须发送任何指令。电源引脚(VDD

12、与GND)之间可增加一个100nF的电容,用以去耦滤波。3.1.4串行接口(两线双向)SHT10的串行接口在传感器信号的读取及电源损耗方面做了优化处理,但与I2C接口不兼容。串行时钟输入(SCK)用于微处理器与SHTxx之间的通信同步,由于接口包含了完全静态逻辑,因而不存在最小SCK频率。串行数据(DATA)三态门用于数据的读取。DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟的上升沿有效。数据传输期间,在SCK时钟高频时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平。需要一个外部的上拉电阻(例如:10K)将信号提升至高电平,上拉电阻通常以包含在微处理器的I/O

13、电路中。3.1.5发送命令用一组“启动传输”时序来表示数据传输的初始化。它包括:当SCK时钟为高电平时DATA翻转为低电平,紧接着SCK变为低电平,随后是在SCK时钟高电平时DATA翻转为高电平,如表15-1所示。 表 15-1 命令字命 令代 码预留0000x温度测量00011湿度测量00101读状态寄存器00111写状态寄存器00110预留0101x-1110x软复位,复位接口、清空状态寄存器,即情空默认值下一次命令前等待至少11ms111103.2ISD4002系列语音芯片3.2.1芯片特点介绍单片24分钟语音录放无须开发系统内置微控制器串行通信接口3V单电源工作多段信息处理工作电流25

14、30mA,维持电流1uA不耗电信息保存100年(典型值)高质量、自然的语音还原技术100 000次录音周期(典型值)自动静噪功能片内免调整时钟,可选用外部时钟3.2.2工作原理描述ISD4002 系列工作电压为3V,单片录放时间2至4分钟,音质好,适用于移动电话及其他便携式电子产品。芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存储陈列。芯片设计是基于所有操作必须由微控制器操作命令可通过串行通信接口(SPI或Microwire)送入。芯片采用多电平直接模拟存储技术,每个采样值直接存储在片内闪烁存储器中,因此能够非常真实、自然地再现语音、音乐、

15、音调和效果声,避免了一般固定录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率可为8.0/604/5.3/4.0kHz,频率越低,录放时间越长,但音质有所下降,片内信息存储在闪烁寄存器中,可在断电情况下保存100年(典型值),反复录音10万次。3.2.3引脚描述 ISD4002引脚图电源(VCCA、VCCD)为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量造近器件。地线(VSSA、V SSD)芯片内部的模拟和数字电路使用不同的地线。同相模拟输入(ANA IN+)这是录音信号的通向

16、输入端。输入放大器可用单端或差分驱动。单端驱动时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3k电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV(ISD3300系列相同)。反向模拟输入(ANA IN-)差分驱动时,这是录音信号的反向输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV,本端的标称输入阻抗为56k。单端驱动时,本端通过电容接地。在两种方式下,ANA IN+和ANA IN-端的耦合电容值应相同。音频输出(AUD OUT)提供音频输出,可驱动5k的负载。片选(SS)此端为低,即选中ISD4002系列。串行输入(MOSI)此端为串

17、行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。串行输出(MISO)ISD的穿行输出端。ISD未选中时,本端呈高阻态。串行时钟(SCLK)ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD.中断(INT)本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EMO或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。OVF标志指示ISD的录、放操作已到达存储器的末尾。EMO标志只在放音中检测到内部的EMO标志时,此状态才置1.行地址时钟(RAC

18、)漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行(ISD4002系列中的存储器共1200行)。该信号175ms保持高电平,低电平为25ms。快进模式下,RAC的218.75s是高电平,31.25s为低电平。该端可用于存储管理技术。外部时钟(XCLK)本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在+1%内。商业级芯片在整个温度和电压范围内,频率变化在-6%+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时,

19、此端必须接地。自动静噪(AM CAP)当录音信号电平下降到内部设定的某一阀值以下时,自动静噪功能使信号衰落,这样有助于养活无信号(静音)时的噪声。通常本端对地接1F的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阀值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1F的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。3.3.SPI(穿行外设接口)ISD4002工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作,因此对ISD4002而言,在时钟上升

20、沿锁存MOSI引脚的数据,在下降沿将数据送至MISO引脚。协议的具体内容说明如下。l 所有串行数据传输开始于SS下降沿。l SS在传输期间必须保持低电平,在两条指令之间则保持为高电平。l 数据在时钟上升沿移入,在下降沿移出。l SS变低,输入指令和地址后,ISD才能开始录放操作。l 指令格式是(8位控制码)加(16位地址码)。l ISD的任何操作(含快进)如果遇到EMO或OVF,则产生一个中断,该中断状态在下一个SPI周期开始时被清除。使用“读”指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一

21、个SPI周期里同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)所有操作在运行位(RUN)置1时开始,置0时结束。所有指令都在SS端上升沿开始执行。(1) 信息快进用户不必知道信息的确定地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正常的1600倍,遇到EOM后停止,然后内部地址计数器加1,指向下条信息的开始处。(1) 上电顺序 器件延时TPUD(8kHz)采样时,约为25毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出一条操作指令。例如:从00处发音,应遵循如下时序:发POWER UP命令;等待TPUD(上电延时);发地址值为0

22、0的SETPLAY命令;发PLAY命令。器件会从00地址开始放音,当出现EOM时,立即中断,停止放音。如果从00处发音,则按以下时序:发POWER UP命令;等待TPUD(上电延时);发POWER UP命令;等待2倍TPUD;发地址值为00的SETREC命令;发REC命令。器件便从00地址开始录音,一直到出现OVF(存储器末尾)时,录音停止。具体指令说明如表15-2所示。 表15-2 指令表说明指令5位控制码11位地址操作摘要POWER UP0010上电:等待TPUD后器件可以工作SET PLAY11100从指定地址开始放音。必须后跟PLAY指令使放音继续PLAY11110从当前地址开始放音(

23、直至EOM或OVF)SET REC10100从指定地址开始录音。必须后跟REC指令录音继续REC10110从当前地址开始放音(直至OVF或停止)SET MC11101从指令地址开始快进。必须后跟MC指令快进继续MC11111执行快进,直到EOM。若再无信息,则进入OVF状态STOP0X110停止当前操作STOP WRDN0X01X停止当前操作并掉电RINT0X110读状态:OVF和EOM注:1.快进只能在放音操作开始时选择。2.发码时先发低位再发高位。l 3.3.1SPI端口的控制位SPI端口的控制位如图15-6所示。 MISO MOSI OVFEOM P0P1P2P3P4P5P6P7P8P9

24、P10000C4 C3 C2C1C0A10AA8A7A6A5A4A3A2A1A0 Message Cueing(MC) I gnore Address Bit(IAB) Power UP(PU) Play/Record(P/R) RUN 图15-6 SPI端口的控制位3.3.2SPI控制寄存器SPI控制寄存器的功能包括录放音、信息检索(快进)、上电/掉电、开始和停止操作、忽略地址指针等,见表15-3表15-3 SPI控制寄存器的功能位值功能位值功能RUN=10允许/禁止操作开始停止PU=10电源控制上电掉电Pi-R=10录/放模式放取录IAB=10操作是否使用指令地址忽略输入地址寄存的内容使用

25、输入地址寄存的内容MC=10快进模式允许快进禁止P9-P0A9-A0行指针寄存器输出输入地址寄存器 Input Shift RegisterIPA置0时,录放操作从A9-A0地址开始。为了能连贯地录放到后续的存储空间,在操作到达该行末尾之前,应发出第二个SPI指令将IAB置1,否则器件在同一地址反复循环。这个特点对语音提示功能很有用。RAC脚和IAB位可用于信息管理。SPI端口简单框图15-7所示。 C4-D0 MOSI Select Loogic A10-A0Row Counter Output Shift Register OVF EOM P10-P0 MISO图15-7 SPI端口简单框

26、图3.3.3 SPI时序SPI操作时序如图15-8所示。 Tssh SS Tssmin TSSS Tsckni SCLK TDIS TDIH TSCKIOWMOSI (TRISTATE) TPD TPD TPD MISO MSB图15-8 SPI操作时序图4硬件电路设计 本系统电路由单片、电源电路、数码管显示电路、温湿度采集电路、报警电路、按键电路构成。4.1 温湿度采集电路4.2 语音报警和按键电路语音报警和按键电路如图5 软件设计本系统的功能决定了系统软件设计思路。设计思路主要说明如下。(2) 实现流程中的具体子模块。(3) 设计模块间的接口,从而构成整个系统软件。5.1软件流程 本例由于

27、系统的功能需求直接明了,所以软件流程也相应清晰,易于设计。软件流程如图15-11所示。单片机初始化 语音芯片初始化 更新数码管温湿度值 数码管初始化点亮 判断温湿度 温湿度超出范围 执行语音报警LED报警读温湿度传感器值 按键检测输入信息 图15-11 家用温湿度测量播报系统软件流程如图5.2主要代码与注释 读者可根据前面所提供流程图,完成整个家用温湿度测量播报系统软件的设计,包括单片机初始化、语音芯片的初始化、点亮数码管、进入主程序循环读温湿度传感器、刷新数码管显示温度值湿度值、根据条件判断是否启动报警、按键检测、程序返回主循环开始出,进行下列任务执行操作。下列对主要代码进行分析5.3主程序

28、 #include unsigned char Tem,Hum; unsigned char Set_Tem,Set_Hum; void main() initia1(); /单片机初始化,完成单片机配置 initial_voice(); /完成语音芯片的初始化,置入工作状态 show_led(); /点亮数码管 while(1) /进入程序主循环 read_sensor(); /读温湿度传感器,得到温度值Ten及湿度值Hum write_led(); /数码管显示温度值,刷新湿度值 if(TemSet_Tem & HumSet_Hum) /设置报警区间 warning(); /执行警告,启动

29、报警 check_key(); /执行按键检测,设置报警范围set_Tem,Set_Hum 以上所示为系统的主程序结构,其中子程序可根据整个系统的具体要求添加代码,刷新LED显示子程序write_led();硬件采用译码器;按键检测子程序check_key();的执行通过读单片机I/O口高低电平识别按键。5.4温湿度传感器操作程序 以下所示代码为读温湿度传感器子程序read_sensor()的程序内容: /*工程名: SHTxx demo program (V2.1)文件名: SHTxx_Sample_Code.cMCU: 80C51 family编译器: Keil Version 6.14*

30、#include#include /Keil library(is used for_nop()_operation)#include /Keil library#include /Keil librarytypedef union unsigned int i; float f; value;/-/ modul-var/-enum , EMP, HUMI;#define DATA p1_1#define SCK p1_0#define noACK 0#define ACK 1#define STATUS_REG_W 0X06 /000 0011 0#define STATUS_REG_R 0

31、x07 /000 0011 1#define MEASURE_TEMP 0x03 /000 0001 1#define MEASURE_HUMI 0x05 /000 0010 1#define RESET 0xle /000 1111 0/-char s_write_byte(unsigned char value)/-写一个字节,检查应答信号 unsigned ch, r i, error=0; for (i=0x80;i0;i/=2) if (i & value) DATA=1; else DATA=0; sCK=1; _nop_();_nop_();_nop_(); /时钟脉冲宽度5us

32、SCK=0;DATA=1; /释放DATASCK=1; /9个CLK后应答error=DATA; /检查应答信号(DATA被拉低)SCK=0;return error; /如果没有应答则error=1 /-char s_read_byte(unsigned char ack)/-/ 读一个字节,检查应答信号 unsigned ch, r i, val=0; DATA=1; /释放DATA信号 for (i=0x80;i0;i/=2) SCK=1;if (DATA) val=(val 丨 i);SCK=0; DATA=!ack; /如果ack= =1,拉低DATASCK=1; /clk #9 for ack_nop_();_nop_();_nop_(); /延时5微秒SCK=0;DATA=1; /释放DATAreturn val; void s_transstart(void) DATA=1; SCK=0; /初始状态_nop_();SCK=1;_nop_();DATA=0;_nop_();SCK=0;_nop_();_nop_();_nop_();SCK=1;_nop_();DATA=1;_nop_();SCK=0; /-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号