- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
无线温度测量设计报告完整源代码
摘要
本系统由两部分组成,温度采集端和温度显示端,通过温度传感器采集温度显示在液晶屏或者数码管上,并将温度通过红外发送到红外接收头,然后解调解码数据,将温度显示出来,实现温度的无线测量
关键字:STC89C52RC;红外;温度;调制;解调
1.方案论证与选择
1.1控制器的选择
方案一:采用MSP430来处理
Msp430是一种超低功耗的混合信号处理器,采用精简指令集,单个始终走起就可以执行一条指令,速度比51快得多。因此用430来处理比较器返回来的数据是比较快捷的,但价格相对较贵。430供电为3.3V,且操作起来较复杂。
方案二:采用51内核单片机
单片机操作方便快捷,成本低,开发资源丰富,位寻址方便等,来的数据不需要很大的数据处理过程,51已完全能够胜方便,所以该装置采用STC89c52型的单片机来进行处理,本单片机一个机器一个时钟周期执行一条指令,无法解密,低功耗,超低价,高速,高可靠性。
1.2温度显示方式的选择与比较
方案一:采用数码管显示
数码管是由多个发光二极管封装在一起组成的8字型的器件,引线已在内部连接完成,只需引出他们的各个笔画和公共电极。可以用来显示数字和字母。
方案二:采用LCD1602
一种专门用来显示字母,数字,符号等的点阵型液晶模块。它由若干个5X7或者5X11等的点阵字符位组成,每个点阵自字符位都可以显示一个字符,每位之间有一个点距的间隔,可以显示两行,每行16位数字或者字符。1602采用标准的16脚借口,相比数码管,同样引脚的情况下,显示的内容更多,焊接更加方便快捷,所以我们选用显示部分选用LCD1602.
1.3红外的编码和解码
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如下图所示。
上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射。编码数据,载波,发射,接收解码如下图所示
2.系统设计
温度传感器
控制器
温度显示
红外发射
红外接收
温度显示
控制器
本系统的温度传感器使用DS18b20,控制器选用stc89c51,温度显示模块用LCD1602。
(1)对温度采集电路采集的温度进行编码后,红外发射管发射数据。
(2)红外一体化接收头接收到红外信号后,对红外进行解调,因为红外接收头接收到信号后就对信号进行了解调,所以我们就不用设计解调电路。
3.电路设计
3.1单片机最小系统
上图是比较常用的单片机最小系统
3.2温度采集发射电路
红外发送模块
温度传感器模块
液晶显示模块
温度传感器DS18B20采集的温度,通过单片机处理显示在液晶上,然后对温度数据进行编码,通过红外发射电路将温度信息发射出去。
3.3温度接收显示电路
接收头
液晶模块
红外接收头对接收到的信号解调,然后送到单片机处理,判断高低电平的时间来解码,将温度数据显示在液晶上。
4.软件设计
4.1概述:
此次用的是DSl8B20作为温度传感器进行温度采集,然后将温度数据转化为电信号,通过红外线发射,再让接受端收到温度信息,并显示出来。因为是我们焊接的是单片机最小系统,所以,我们用的就是无线红外发射管和无线红外接收管来实现发送端与接收端数据的传输,基本可以实现五米以上距离的信息传输。
接收端主循环一直检测红外是否接收完成,如果完成清除完成标志,并进行数据校验,校验通过则对红外数据进行转换,temperature为全局,将在display.c由定时器扫描数码管进行显示。信号灯的闪烁则利用ledcount变量自减进行控制
发送端主循环以一定间隔进行18B20温度读取,再将温度数据转换为红外数据码,进行红外发射,伴随信号灯闪烁
定时器0进行38K载波的产生。红外数据存入IR_Code 数组,前两位为引导码 3——18为校验码 19——41数据具体编码0 和1 的表示参考NEC红外协议,对0 1的编码时间适当增大了,以避免其他红外遥控的干扰。
4.2 程序流程图
发射端
计算温度值并进行存储
显示在lcd显示器上
将温度值转化为电信号,用红外发射端发射出去
结束
接收端
是否有红外信号
初始化
开始
错误显示error
将信息以数字形式显示在数码管显示器上
否
是
温度是否高于x度
报警器报警
是
结束
否
4.3关键程序模块
(1)数据采集模块
#include18b20.h
void DelayUs2x(unsigned char t)
{ while(--t); }
void DelayMs(unsigned char t) //延时t
文档评论(0)