预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共15页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于红外通信的声光报警系统设计要求1)包括电信号转化成数字信号系统数字显示系统报警系统等2)测量系统的性能特点等3)利用光电传感器进行信号的采集及控制。二.方案介绍本设计方案是通过温度传感器12b20采集温度数据单片机a接收到温度数据后通过红外发射管发送出去单片机b通过红外接受管hs0038b接收数据经过单片机处理后得到温度信息最终来实现声光报警系统的功能。各模块功能介绍1.红外发送模块在实际的通信领域发出来的信号一般有较宽的频谱而且都是在比较低的频率段分布大量的能量所以称之为基带信号这种信号是不适合直接在信道中传输的。为便于传输、提高抗干扰能力和有效的利用带宽通常需要将信号调制到适合信道和噪声特性的频率范围内进行传输这就叫做信号调制。在通信系统的接收端要对接收到的信号进行解调恢复出原来的基带信号。本方案参考普通电视遥控器38k载波来对信号进行调制。38k载波通过单片机定时来实现。2.红外接收模块hs0038b正常的通信来讲接收端要首先对信号通过监测、放大、滤波、解调等等一系列电路处理然后输出基带信号。但是红外通信的一体化接收头HS0038B已经把这些电路全部集成到一起了我们只需要把这个电路接上去就可以直接输出我们所要的基带信号及温度数据。3.温度传感器18b20单片机可以通过1-Wire协议与DS18B20进行通信最终将温度读出。1-Wire总线的硬件接口很简单只需要把DS18B20的数据引脚和单片机的一个IO口接上就可以。通过查看该芯片时序图用编程方式读取温度。4.数码管本方案采用的是八段共阳极数码管通过动态扫描方式显示数据。5.蜂鸣器采用无源蜂鸣器给输入引脚接上不同频率的方波可以产生不同音阶的声音。本实验采用1000hz。方案设计过程红外发送编码参考了nec协议并稍作修改。定义了起始码为9ms低电平和4ms的高电平。低电平‘0’定义为1ms的低电平和1ms的高电平高电平‘1’定义为1ms的低电平和3ms的高电平。38k载波采用定时器0的8位自动重装模式初值0xf4。在设计过程中使用示波器测量发送接收的波形基本一样没有误差。收发有效距离为1米超过1米数据显示错误本方案还有很大的提高空间实验源程序发送main.c#include<reg52.h>sbitCarryWave=P1^7;sbitir_send=P1^6;voidTransData(unsignedchar_data);voidCarrierWaveInit(void);voiddelay_ms(unsignedintt);voidConfigTimer0(unsignedintms);voidTransData2(unsignedchar_data2);externbitStart18B20();externbitGet18B20Temp(int*temp);bitflag1s=0;bitres=0;inttemp;//读取到的当前温度值unsignedcharT0RH=0;//T0重载值的高字节unsignedcharT0RL=0;//T0重载值的低字节unsignedcharintTdecT;voidmain(){EA=1;PT1=1;ConfigTimer0(1);CarrierWaveInit();Start18B20();//启动DS18B20while(1){TransData(intT);TransData2(decT);if(flag1s)//每秒更新一次温度{flag1s=0;res=Get18B20Temp(&temp);//读取当前温度if(res)//读取成功时刷新当前温度显示{intT=temp>>4;//intT=intT/16+intT%16;//分离出温度值整数部分decT=temp&0xF;//分离出温度值小数部分decT=decT*10/16;//a=intT/10;//整数部分数据处理//b=intT%10;}Start18B20();//重新启动下一次转换}