通信与测控系统设计报告文档格式.docx

上传人:b****2 文档编号:15180884 上传时间:2022-10-28 格式:DOCX 页数:11 大小:38.62KB
下载 相关 举报
通信与测控系统设计报告文档格式.docx_第1页
第1页 / 共11页
通信与测控系统设计报告文档格式.docx_第2页
第2页 / 共11页
通信与测控系统设计报告文档格式.docx_第3页
第3页 / 共11页
通信与测控系统设计报告文档格式.docx_第4页
第4页 / 共11页
通信与测控系统设计报告文档格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

通信与测控系统设计报告文档格式.docx

《通信与测控系统设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《通信与测控系统设计报告文档格式.docx(11页珍藏版)》请在冰豆网上搜索。

通信与测控系统设计报告文档格式.docx

(1)采用单总线的接口方式与微处理器连接时仅需要一条连线即可实现微处理器与DS18B20的双向通信。

单总线具有经济性好,抗干扰能力强,使用方便等优点。

⑵DS18B20测量溫度范围宽,为-55°

C~+125°

C。

测量精度高,在-】0°

C~+85°

C范围内,精度为士0.5匸。

⑶测量参数可配査DS18B20的测量分辨率可通过程序设定9~12位。

⑷持多点组网功能,多个DS18B20可以并联在一根单线上,实现多点测温。

⑸供电方式灵活,DS18B20可以通过内部寄生电路从数据线上获取电源。

因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可霏性更咼。

DS18B20具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建经济的测温系统。

2.2IA4421

通用ISM频段FSK收发器:

IA4421

单片机与无线模块IA4421的连接

单片机与无线模块IA4421的连接标准是SPI,SPI的相关协议如下:

它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。

也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。

(1)SDO-主设备数据输出,从设备数据输入;

(2)SDI-主设备数据输入,从设备数据输出;

(3)SCLK-时钟信号,由主设备产生;

(4)CS-从设备使能信号,由主设备控制。

设计中通过两块IA4421模块对数据进行无线传输,使得数据能够进行相互对比,从而使得实验的准确性得到提高。

 

PI.I

P1.1

?

1:

(ADWI

P!

.!

PL?

脚.•

也軌

題1

仙刖

MI

[m

(A1胆

般邓

eo

••

teoxotoM&

OQOUO-S

系统原理图

3.原理框图

四位数码管

P2.0-2.3

P3.3

74LS573

DS18B20

CPU

AT89S52

上位机

无线收发模块

无线连接

4.程序流程图

1dsl8b20工作流程图

2IA4421流程图

DS18B20和CPU之间的连接采用一总线协议。

IA4421和CPU之间的连接采用SPI总线协议。

3系统流程图

5附录主程序

主程序代码:

#include<

reg52.h>

IA4421.h>

absacc.h>

intrins.h>

math.h>

xianshi.h>

#defineuintunsignedint

#defineucharunsignedcharunsignedcharm;

unsignedcharn;

voidzhuanhucin();

voiddelayjed(uintz)

{

uintx,y;

for(x=z;

x>

0;

x-)

for(y=l10;

y>

y-);

}

uintaa;

ucharweLl.wei_2,wei_3Mwei_4,wei_5,wei_6;

uintshuju;

//得到的温度值

uchartemp[2]={0,0};

〃存放DS18B20的温度寄存器值

uintvalue=0;

sbitDQ=P3A3;

〃数据线

voidReadSerialNumber(void);

ucharsnlzsn2zsn3/sn4/sn5zsn6zsn7/sn8;

〃存放DS18B20的64位序列号vvoidow.reset(void);

voidtmstart(void);

voidRead_Temperature(void);

voidwrite_byte(char);

uintread^bytefvoid);

voiddelay_18B20(uint);

//voidbaojing();

/車**車**扌主函数***)♦(車*****/

voidmain))

{m=0;

tmstart();

delay_18B20(50);

/*等待转换结束*/

while

(1)

{m++;

Read_Temperature();

tmstart));

广等待转换结束

zhuanhuan();

ia4421();

n二wei_4;

weL4«

=4;

txdata[4]=weL51wei_4;

if(m==50)

m=0;

UARTJnit();

Pl=Oxfc;

txdata[0]=0x2d;

txdata[1]=0xd4;

txdata[2]=0xfa;

txdata[3]=0x01;

ia442xinit();

spirevtwobyte();

spisendcommond(0x8288);

txregframe();

}

P2=0xff;

P0=table[n];

P2_4=0;

delayls();

P2_4=l;

P0=table[weL5];

P2_5二0;

P2_5二】;

PO二〜0x80;

P2_6二0;

delayls();

P2_6二1;

PO二〜0x39;

P2_7二0;

delaylsf);

P2_7二1;

voidzhuonhuan()

aa=shuju;

wei_l=aa/100000;

weL2=aa/l0000%】0;

weL3=aa/l000%100%】0;

wei_4二qq/100%1000%100%10;

weL5=aa/10%10000%l000%100%10;

weL6=aa/l%100000%10000%!

000%100%10;

〃二二二二二二二二18b20程序二二二二二二二二二二二二二二二二二

voiddelay_18B20(uintseconds)〃延时

for(;

seconds>

seconds-);

******18b20voidow.reset(void)

ucharpresenee;

DQ=0;

//pullDQlinelow

delay.l8B20(44);

〃至少480微秒tleaveitlowfor501usDQ二1;

//allowlinetoreturnhigh?

deloy_18B20(3);

//waitforpresencel8b2036us

presenee=DQ;

//getpresencesignaldelciy_18B20(12);

//waitforendoftimeslot}

〃二二二二二二二二二从总线上读取—个字节二=二二=二uintread^bytefvoid){

uchari;

for(i二8;

i>

i—)

value»

=l;

//pullDQlowtostarttimeslot_nop_();

_nop_();

_nop_()

』op」);

DQ二1;

//thenreturnhigh

if(DQ){

value|=0x80;

delay.l8B20(4);

//waitforrestoftimeslot

return(value);

//===========向18B20写一个字节二二二=======

voidwrite_byte(charval)

ucharij;

for(i=&

i>

i-)//writesbyte,onebitatatime

DQ二0;

//pullDQlowtostarttimeslot

j++;

/*延时4us*/

DQ=val&

OxOl;

delay_18B20(8);

//holdvalueforremainderoftimeslot

DQ=1;

val»

〃二二二二二二二二二二二二读取温度二二二二二二二二二二二二

voidRead_Temperature(void)

intk,i;

inttemple;

广存放读取的温度值将其除以16即为得到的值*/ow_reset();

k++;

〃延时4us

write_byte(OxCC);

//Sk_nop_();

ipROM

write_byte(OxBE);

//readregister

〃延时8us

temp[0]=read_byte();

〃读取低字节

temp[1]=read_byte();

〃读取高字节

//iff!

(temp[0]&

0x80))/*当低位寄存器第八位为0时*/i=temp[l];

i<

<

二&

/*把b放到高八位上去

i|=temp[0];

/*将。

放到底八位上去*/

i&

二0x07ff;

iff(temp[l]&

0x08))

temple二〜i

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

当前位置:首页 > 教学研究 > 教学计划

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

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