基于Labview串口通信Word文档下载推荐.docx

上传人:b****2 文档编号:5039415 上传时间:2023-05-04 格式:DOCX 页数:13 大小:144.89KB
下载 相关 举报
基于Labview串口通信Word文档下载推荐.docx_第1页
第1页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第2页
第2页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第3页
第3页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第4页
第4页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第5页
第5页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第6页
第6页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第7页
第7页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第8页
第8页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第9页
第9页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第10页
第10页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第11页
第11页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第12页
第12页 / 共13页
基于Labview串口通信Word文档下载推荐.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于Labview串口通信Word文档下载推荐.docx

《基于Labview串口通信Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于Labview串口通信Word文档下载推荐.docx(13页珍藏版)》请在冰点文库上搜索。

基于Labview串口通信Word文档下载推荐.docx

#include<

REG52.H>

#include<

math.h>

INTRINS.H>

#defineucharunsignedchar

#defineuintunsignedint;

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

sbitseg1=P2^0;

sbitseg2=P2^1;

sbitseg3=P2^2;

sbitDQ=P1^7;

//ds18b20端口

sfrdataled=0x80;

//显示数据端口

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

uchartemp,s_count=0;

ucharflag_get,count,num,minute,second;

ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//7段数码管段码表共阳

ucharstr[3];

unsignedcharsend_dat[4]={42,00,00,35};

//发送数据的格式

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

voiddelay1(ucharMS);

unsignedcharReadTemperature(void);

voidInit_DS18B20(void);

unsignedcharReadOneChar(void);

voidWriteOneChar(uchardat);

voiddelay(unsignedinti);

voiduart_init(void);

voidtime_init(void);

//voidsend_data(void);

voidlong_delay(intm);

//voiddelay_c(uinti);

/*主程序*/

main()

{

time_init();

uart_init();

while

(1)

str[2]=0x39;

//显示C符号

str[0]=tab[temp/10];

//十位温度

str[1]=tab[temp%10];

//个位温度

if(flag_get==1)//定时读取当前温度

{

temp=ReadTemperature();

flag_get=0;

}

s_count=0;

SBUF=send_dat[s_count++];

long_delay(200);

}

voidtim(void)interrupt1using1//中断,用于数码管扫描和温度检测间隔

TH0=0xef;

//定时器重装值

TL0=0xf0;

num++;

if(num==50)

{num=0;

flag_get=1;

//标志位有效

second++;

if(second>

=60)

{second=0;

minute++;

count++;

if(count==1)

{P2=0;

dataled=str[0];

}//数码管扫描

if(count==2)

{P2=1;

dataled=str[1];

if(count==3)

{P2=2;

dataled=str[2];

count=0;

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

voiddelay(unsignedinti)//延时函数

while(i--);

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

//18b20初始化函数

voidInit_DS18B20(void)

unsignedcharx=0;

DQ=1;

//DQ复位

delay(8);

//稍做延时

DQ=0;

//单片机将DQ拉低

delay(80);

//精确延时大于480us

//拉高总线

delay(10);

x=DQ;

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

delay(5);

//读一个字节

unsignedcharReadOneChar(void)

unsignedchari=0;

unsignedchardat=0;

for(i=8;

i>

0;

i--)

//给脉冲信号

dat>

>

=1;

if(DQ)

dat|=0x80;

return(dat);

//写一个字节

voidWriteOneChar(unsignedchardat)

unsignedchari=0;

for(i=8;

i>

i--)

DQ=dat&

0x01;

delay(5);

//读取温度

unsignedcharReadTemperature(void)

unsignedchara=0;

unsignedcharb=0;

unsignedchart=0;

//floattt=0;

Init_DS18B20();

WriteOneChar(0xCC);

//跳过读序号列号的操作

WriteOneChar(0x44);

//启动温度转换

delay(200);

//跳过读序号列号的操作

WriteOneChar(0xBE);

//读取温度寄存器等(共可读9个寄存器)前两个就是温度

a=ReadOneChar();

b=ReadOneChar();

//send_dat[2]=b;

//send_dat[3]=a;

b<

<

=4;

b+=(a&

0xf0)>

4;

t=b;

send_dat[1]=t;

//tt=t*0.0625;

//t=tt*10+0.5;

//放大10倍输出并四舍五入

return(t);

voidtime_init(void)

TMOD|=0x01;

//定时器设置

IE=0x82;

TR0=1;

P2=0x00;

count=0;

voiduart_init(void)

SCON=0x50;

/*SCON:

模式1,8-bitUART,使能接收*/

TMOD|=0x20;

/*TMOD:

timer1,mode2,8-bitreload*/

TH1=0xFD;

/*TH1:

reloadvaluefor9600baud@11.0592MHz*/

TR1=1;

/*TR1:

timer1run*/

EA=1;

/*打开总中断*/

ES=1;

/*打开串口中断*/

}

/*

voidsend_data(void)

unsignedchari;

for(i=0;

i<

3;

i++)

SBUF=send_dat[i];

delay(1000);

}

*/

voidlong_delay(intm)

intj,i;

for(i=m;

for(j=1000;

j>

j--)

;

voidUART_SER(void)interrupt4//串行中断服务程序

if(TI==1)

TI=0;

if(s_count!

=4)

四:

LabVIEW程序

对串口基本参数进行配置

2读取单片机发送至串口的数据,如果没有接受到数据就不读取串口

3:

将读取到得数据进行处理,然后用各种显示器件显示出来

4:

测试结果显示

五:

总结

经过演示,本温度报警器可以显示当前温度,并能在温度超过警报值时发出报警信号,通过此温度系统的设计,使我熟悉了使用LabVIEW的串口与其他系统的通信。

但是由于该系统仅使用了一些比较简单的结构,所以程序框图不够简化,这是需要改进的地方,但是这不影响其正常使用。

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2