09年电子设计竞赛 《无线环境监测装置本科组》.docx

上传人:b****6 文档编号:4279087 上传时间:2022-11-28 格式:DOCX 页数:37 大小:462.97KB
下载 相关 举报
09年电子设计竞赛 《无线环境监测装置本科组》.docx_第1页
第1页 / 共37页
09年电子设计竞赛 《无线环境监测装置本科组》.docx_第2页
第2页 / 共37页
09年电子设计竞赛 《无线环境监测装置本科组》.docx_第3页
第3页 / 共37页
09年电子设计竞赛 《无线环境监测装置本科组》.docx_第4页
第4页 / 共37页
09年电子设计竞赛 《无线环境监测装置本科组》.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

09年电子设计竞赛 《无线环境监测装置本科组》.docx

《09年电子设计竞赛 《无线环境监测装置本科组》.docx》由会员分享,可在线阅读,更多相关《09年电子设计竞赛 《无线环境监测装置本科组》.docx(37页珍藏版)》请在冰豆网上搜索。

09年电子设计竞赛 《无线环境监测装置本科组》.docx

09年电子设计竞赛《无线环境监测装置本科组》

无线环境监测模拟装置(本科组)

摘要:

本文介绍了一种用于对环境信息进行实时监测的无线环境监测模拟装置的设计方法,系统运用了传感器技术、通信技术和单片机技术,实现了对环境温度、光照度等数据的准确测量,温度分辨率达0.0625℃,能够实时地与单片机进行无线通信并可靠传输,产品成本低廉,监测灵敏度高,满足对环境参数实时监测的要求,经试验,该装置探测时延不大于5s的条件下,使探测距离D+D1超过50cm,体现了传感器系统数字化、智能化、无线化的优点。

关键词:

环境参数采集、无线传感器系统、温度、光照

1方案比较与设计

1.1控制电路方案比较与选择:

方案1:

采用通用的51单片机作为主控器,完成数据处理,键盘扫描,显示部分的控制等。

但51单片机没有AD转换,需外接AD芯片来转换采集到的电压信号,使电路的硬件、软件变得复杂。

方案2:

采用STC89C51RC单片机,该单片机在本设计方案中具有以下优点:

1、只需提供3.8~2V的电压;

2、工作频率范围:

0~40MHz,相当于普通8051的0~80Hz,实际工作频率

可达48MHz;

3、用户应用程序空间4K/8K/13K/16K/20K/32K/64K字节;

4、低功耗,宽电压范围,抗干扰能力强;

5、共有3个16位定时器/计数器,其中定时器0还可以当做2个8位定时

器使用;

比较上述2种方案,方案2电路简单、软件简洁、功能强,本课题中我们采用方案2。

1.2显示电路方案比较与选择:

方案1:

采用数码管显示,成本低、亮度高、醒目。

但在显示较多的项目时,硬件电路复杂,功耗大。

方案2:

采用1602LCD液晶屏显示,显示内容较多,方便组合,可视面积大,画面效果好,抗干扰能力强,调用方便简单,而且可以节省了软件中断资源。

课题中需要同时显示温度,光照等信息等,要求显示内容丰富。

比较上述2种方案,方案2电路简单、显示信息量大、能很好的满足题目要求,我们采用方案2。

1.3无线收发模块的选择

无线数据传输被广泛应用在车辆监控、遥控、遥测、小型无线网络、无线数据通信、机器人控制、数字音频、数字图像的传输等领域中。

方案1:

采用用DF无线数据收发模块。

DF无线发射模块通讯方式为调频AM,工作频率为315MHz,为ISM频段,发射频率<500mW。

DF超再生式接收模块通讯方式为调频AM,接收灵敏度高,用示波器观察输出波形干净,抗干扰能力强。

系统中为保证稳定,采用芯片PT2262,PT2272M4进行数据编解码,由于数据传输量较小,而且传输频率达315MHz,与题目要求不符合,因此我们放弃了此方案。

方案2:

TX-2/RX-2B是一对专用的发射接收大规模集成电路,工作电压为1.5~5.0V,CMOS结构保证了极低的功耗,外围元件少,发射接收能力强,适用于低频电路应用,符合本课题低功耗的要求,因此我们选择此方案。

1.4时钟模块的选择

方案1:

采用MCU的定时器进行软件编程实现。

考虑到MCU的资源很紧缺,而且大量的中断必然会影响定时的准确性,编程难到加大,因此放弃此方案。

方案2:

采用专用时钟芯片DS1302。

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

具有主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力,长时间保证时钟正常,因此采用此方案。

1.5温度模块

方案1:

采用AD590。

AD590是美国模拟器件公司生产的单片集成两端感温电流源,精度很高,但需要辅助的AD转换电路以及进行软件的校正,增加了线路的复杂程度,此方案不可行。

方案2:

采用DS18B20作为测温电路的温度传感器。

DS18B20的数字温度输出通过1-Wire总线,又称为“一线”总线(1-Wire是一种独特的数字信号总线协议,它将独特的电源线和信号线复合在一起,仅使用一条口线;每个芯片唯一编码,支持联网寻址、零功耗等待等,是所需硬件连线最少的一种总线),这种独特的方式,可以使多个DS18B20方便地组建成传感器网络,为整个测量系统的建立和组合提供了更大可能性。

它在测温精度、转换时间、传输距离、分辨率等方面比其他温度传感器有了很大的进步,给用户带来了更方便的使用和更令人满意的效果。

DS18B20直接输出数字温度值,不需要校正,因此选择此方案。

1.6方案设计与论证

1.6.1整体电路组成

电路部分主要有:

温度检测电路,光检测电路,控制电路,显示电路,无线传输检测电路,创新部分电路等模块组成。

1.6.2总体电路组成框图

图1总体电路组成框图

2电路设计、理论分析与计算

2.1主要电路模块的分析计算与设计

根据要求设计制作无线传输载波频率低于30MHz,调制方式自定。

监测终端和探测节点不使用除规定天线外的其他耦合方式。

无线收发电路需自制,不得采用无线收、发成品模块。

光照有无的变化,采用遮挡光电传感器的方法实现。

2.1.1无线发射接收电路

这部分电路是整个电路的核心部分,主要由发射电路,接收电路组成,经计算接发收频率为27MHz,具体设计电路如图2、图3所示。

图2发射电路原理图

图3接收电路原理图

采用TX一2/RX一2系配套专用遥控集成芯片作为编解码芯片。

它能组成具有五路红外遥控或无线电遥控等功能的独立控制电路,可对遥控玩具汽车进行遥控。

小车驱动结构采用H桥电路驱动电机控制方式。

TX-5B/RX-5是专用的CMOS专用集成电路,有五根数据线。

特点:

有较宽的工作电压范围,较低的待机电流,外围元件少,内置3.6V稳压管。

2.1.2温度检测电路

温度检测主要采用DS18B20组成,DS18B20是一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

2.1.3光照测量模块

光照测量模块主要由光敏电阻和电压比较器LM324组成。

1)光敏电阻及其原理

光敏电阻器又叫光感电阻,是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。

光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。

通常,光敏电阻器都制成薄片结构,以便吸收更多的光能。

当它受到光的照射时,半导体片(光敏层)内就激发出电子—空穴对,参与导电,使电路中电流增强。

一般光敏电阻器的结构如图6所示,光照二极管照度—电阻特性,如图7所示。

图7光照二极管照度—电阻特性图8电压比较器LM324内部结构

2)电压比较器LM324

LM324是四运放集成电路,它采用14脚双列直插塑料封装,它的内部结构及引脚排列如图8所示,内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。

每一组运算放大器可如图8所示的符号来表示,它有5个引出脚,其中“+”、“-”为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。

两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端Vo的信号与该输入端的位相反;Vi+(+)为同相输入端,表示运放输出端Vo的信号与该输入端的相位相同。

由于LM324四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。

本实验中,通过单片机和光敏电阻的结合实现对光线强弱的检测和判断,并把检测结果用数码管显示。

图9

在光的照射下,光敏电阻阻值变小,输入比较器同相端得电压变小,输入电压与比较器参考电压比较,如果输入电压比参考电压大,则输出高电平,如果输入电压比参考电压小,则输入低电平,单片机通过高低电平来确定光照的有无,电路如图9所示。

2.1.4液晶显示电路

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,1602采用标准的16脚接口,如图10所示。

图101602液晶模块接口

2.1.5电源供电模块

监测终端单片机采用5V稳压电源供电,每个探测点均采用3V(2节干电池)供电。

2.1.6最小应用系统设计

STC89C51RC是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单、可靠。

用AT单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。

1)时钟电路

AT89S51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。

AT89S52单片机的时钟产生方法有两种。

内部时钟方式和外部时钟方式。

本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。

本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。

振荡晶体可在1.2MHZ到12MHZ之间选择。

电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高的频率稳定性。

所以本设计中,振荡晶体选择6MHZ,电容选择65pF。

2)复位电路

复位电路通常有上电自动复位和按钮复位两种方式。

最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。

只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

时钟频率用6MHZ时C取22uF,R取1KΩ。

除了上电复位外,有时还需要按键手动复位。

本设计就是用的按键手动复位。

按键手动复位有电平方式和脉冲方式两种。

其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。

按键手动复位电路见图11。

时钟频率选用6MHZ时,C取22uF,Rs取200Ω,RK取1KΩ。

图11AT89S52最小系统图12主机流程图

图13从机A流程图图14从机B流程图

2.2软件设计

2.2.1程序流程图,如图12、图13、图14所示。

2.2.2主要程序清单(见附录2)

控制电路

温度检测电路

显示电路

光照检测电路

无线发射接收电路

3测试数据与结果分析

本题目制作完成后,对整体电路的主要指标进行了实际测试。

实现了对环境温度、光照度等数据的准确测量,温度分辨率达0.0625℃。

该装置探测时延不大于5s的条件下,使探测距离D+D1超过50cm,体现了传感器系统数字化、智能化、无线化的优点。

3.1题目要求的测试

根据题目基本要求和发挥部分的要求,我们按要求条件反复作了多次测试,记录了测试结果,并对测试结果做了分析、对比。

3.1.1温度的测试

温度分辨率达0.0625℃

3.1.2光照的测试

能有效的检测到了光照的有无

3.1.3无线通信测试

探测节点有编号预置功能,编码预置范围为00000001B~11111111B。

探测节点能够探测其环境温度和光照信息。

温度测量范围为0℃~100℃,绝对误差小于2℃;光照信息也有效的检测到了光的有无。

3.2创新部分测试

探测节点B的探测信息,能自动通过探测节点A转发,以增加监测终端与节点B之间的探测距离D+D1。

在监测终端电源供给功率≤1W,无线环境监测模拟装置探测时延不大于5s的条件下,使探测距离D+D1达到50cm。

3.3结果分析

总结

在本次设计的过程中,我们遇到了各种困难和许多没有预想到情况,但通过团队的协作和努力,我们终于克服了困难、解决了问题。

系统运用了传感器技术、通信技术和单片机技术,实现了对环境温度、光照度等数据的准确测量,温度分辨率达0.0625℃,能够实时地与单片机进行无线通信并可靠传输,产品成本低廉,监测灵敏度高,满足对环境参数实时监测的要求,经试验,该装置探测时延不大于5s的条件下,使探测距离D+D1超过50cm,体现了传感器系统数字化、智能化、无线化的优点。

但毕竟我们自身水平有限和时间紧张等因素,本作品在设计上还存在许多值得改进的地方。

经过此次电子设计竞赛,我们在电路的设计、调试方面得到了很好锻炼,能力也有了很大的提高,同时也深刻的体会到:

实践是理论运用的最好检验,懂得了共同协作和团队精神的重要性,提高了我们分析问题、解决问题的能力。

参考资料:

[1]刘守义.单片机应用技术.西安:

西安电子科技大学出版社,2002

[2]王福瑞.单片微机测控系统设计大全.北京:

北京航空航天大学出版社,

1998

[3]李朝青.单片机原理及接口技术.北京:

北京航空航天大学出版社,

1994

[4]全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品汇编:

第一届~第五届.北京:

北京理工大学出版社,2004.8

附录A:

附录B(无线发射程序)

#include

#include

#include

unsignedcharcodestr1[]={"wendu0:

"};

unsignedcharcodestr2[]={"wendu1:

"};

unsignedchartemp;

unsignedchardataflag1;

unsignedintsnum=0;

unsignedintkey,time1,span1;

unsignedcharsend1[6],send2[16];

#defineuintunsignedint

#defineucharunsignedchar

sbitDQ=P1^7;//ds18b20端口

sbitRS=P3^0;

sbitRW=P3^1;

sbitEN=P3^2;

sbitbusy=P2^7;

sbitv1=P1^1;//传送数据口

sbitv2=P1^2;

sbitv3=P1^3;

sbitv4=P1^4;

sbitp33=P3^3;

#defineD_portP2//显示的数据口是P2

/***********************************************************************/

voiddelay1(ucharMS);

unsignedcharReadTemperature(void);

voidInit_DS18B20(void);

unsignedcharReadOneChar(void);

voidWriteOneChar(unsignedchardat);

voiddelay(unsignedinti);

/************************************************************************/

voiddelay1ms(unsignedintt)//延时

{unsignedinti,j;

for(i=0;i

for(j=0;j<50;j++);

}

Checkbusy()//液晶检测忙信号

{

////P0全部置1,可以查询判断P0口状态,读取液晶的命令

RS=0;

RW=1;

EN=1;

_nop_();//读液晶命令时各控制位的状态几时序

while

(1)//判断最高位状态,最高位是液晶忙的状态位

{

{

P2=0xff;

EN=1;//+++要不停地检测+++

_nop_();

_nop_();

_nop_();

if(!

busy)//LCD空闲则退出

{

EN=0;

break;

}

EN=0;

}

}//如果液晶忙,则循环查询

}

voidwr_com(unsignedcharcom)//写指令//

{delay1ms

(1);

Checkbusy();

RS=0;

RW=0;

EN=0;

P2=com;

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

EN=1;

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

EN=0;

}

voidwr_dat(unsignedchardat)//写数据//

{delay1ms

(1);

Checkbusy();

RS=1;

RW=0;

EN=0;

D_port=dat;

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

EN=1;

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

EN=0;

}

voidlcd_init()//初始化设置//

{delay1ms(15);

wr_com(0x3C);delay1ms(5);//8位数据,两行字符,5*10点阵字符体

wr_com(0x0F);delay1ms(5);//开显示,开光标,光标闪烁

}

voiddisplay(unsignedchar*p)//显示字符串//

{

while(*p!

='\0')

{

wr_dat(*p);

p++;

delay1ms

(1);

}

}

setpos(ucharposx,ucharposy)//显示位置

{

//posx=posx&0xf;//将显示在第几位置转为二十六进制,每行总共16个位置

//posy=posy&0x1;//设置显示在第几行

wr_com(posx+posy*0x40+0x80);//设置位置命令最高位必须为一,所以要加0x80,显示的位置

//wr_com(posx);

}

/***************显示一个字符子程序**********************/

displaychar(ucharx,uchary,uchara)//显示字符

{

//Checkbusy();//检查忙标志位

setpos(x,y);//设置显示位置

wr_dat(a);//将要显示的数据写到液晶

}

displaystring(ucharx,uchary,unsignedchar*string)//显示字符串

{

setpos(x,y);

while(*string)//字符串是以'\0'结束的,因此只要每结束就显示下一字符

{

wr_dat(*string);//显示一个字符子程序

string++;

//length++;//液晶显示的位置+1

}

}

unsignedcharread_dat()//dushuju//读数据字节

{

unsignedcharg1;

delay1ms

(1);

Checkbusy();

RS=1;

RW=1;

EN=0;

delay1ms

(1);

EN=1;

delay1ms

(1);

g1=D_port;

return(g1);

}

unsignedcharreadchar(ucharx,uchary)//读字符

{unsignedcharg2;

//Checkbusy();//检查忙标志位

setpos(x,y);//设置显示位置

g2=read_dat();//将要显示的数据写到液晶

}

/***********************************************************************/

wendu()

{

delay(100);

temp=ReadTemperature();

}

/***************温度程序**********************/

voiddelay(unsignedinti)//延时函数

{

while(i--);

}

/*************************************************************************/

//18b20初始化函数

voidInit_DS18B20(void)

{

unsignedchars=0;

DQ=1;//DQ复位

delay(8);//稍做延时

DQ=0;//单片机将DQ拉低

delay(80);//精确延时大于480us

DQ=1;//拉高总线

delay(10);

s=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败

delay(5);

}

//读一个字节

unsignedcharReadOneChar(void)

{

unsignedchari=0;

unsignedchardat=0;

for(i=8;i>0;i--)

{

DQ=0;//给脉冲信号

dat>>=1;

DQ=1;//给脉冲信号

if(DQ)

dat|=0x80;

delay(5);

}

return(dat);

}

//写一个字节

voidWriteOneChar(unsignedchardat)

{

unsignedchari=0;

for(i=8;i>0;i--)

{

DQ=0;

DQ=dat&0x01;

delay(5);

DQ=1;

dat>>=1;

}

delay(5);

}

//读取温度

unsignedcharReadTemperature(void)

{

unsignedchara=0;

unsignedcharb=0;

unsignedchart=0;

//floattt=0;

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0x44);//启动温度转换

delay(200);

Init_DS18B20();

WriteOneChar(0xCC);//跳过读序号列号的操作

WriteOneChar(0xBE);//读取温度寄存器等(共可读9个寄存器)前两

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

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1