📄 connect.c
字号:
#include<regx52.h>
#include<ds18b20.h>
#include<ds18b201.h>
#include<ds18b202.h>
#include<ds18b203.h>
#include<ds18b204.h>
#include<chuank.h>
bit flag1=0,flag2=0; //连接标志位
unsigned fa1[4],fa2[4],fa3[4],fa4[4],fa5[4];//fal[0]:代表具体的那一路信号。fa1[1]:代表数据的正负。fa1[2]:low、fa1[3]:high
void display(int a)//五路温度检测
{ switch(a)
{case 0:
getTmpValue();
fa1[0]=1; fa1[1]=flag; fa1[2]=low; fa1[3]=high;break;
case 1:
getTmpValue1();
fa2[0]=2; fa2[1]=flag; fa2[2]=low; fa2[3]=high;break;
case 2:
getTmpValue2();
fa3[0]=3; fa3[1]=flag; fa3[2]=low; fa3[3]=high;break;
case 3:
getTmpValue3();
fa4[0]=4; fa4[1]=flag; fa4[2]=low; fa4[3]=high;break;
case 4:
getTmpValue4();
fa5[0]=5; fa5[1]=flag; fa5[2]=low; fa5[3]=high;break;
}
/*if(a==0)
{
getTmpValue();
fa1[0]=0; fa1[1]=flag; fa1[2]=low; fa1[3]=high;
}
else
{
getTmpValue1();
fa2[0]=1; fa2[1]=flag; fa2[2]=low; fa2[3]=high;*/
}
////////////////////////////主函数
void main()
{unsigned rec,shu,i;
int ji=0;
uartinit(); //串口初始化函数
sendchar('A');////首先发送联络信号A uns
/* while(1)
{
display(0);
display(1);
display(2);
display(3);
display(4);
if(flag2==0)sendchar('A');//说明未联系到乙机(则继续发送联系信号A)
else if(flag2==1) ///因为当flag2=1时说明,两机通信已经正常了,现在可以传送温度
{
ji++;
shu=ji%5;
if(shu==0) // 分开发送
{
for(i=0;i<4;i++)
{
delay(10); //稍作延时再发送下一位数据,这样会比较准确一点
sendchar(fa1[i]);//发送一路(温度信号)信号
}
}
if(shu==1)
{
for(i=0;i<4;i++)
{
delay(10); //稍作延时再发送下一位数据,这样会比较准确一点
sendchar(fa2[i]);//发送第二路路(温度信号)信号
}
}
if(shu==2)
{
for(i=0;i<4;i++)
{
delay(10); //稍作延时再发送下一位数据,这样会比较准确一点
sendchar(fa3[i]);//发送第二路路(温度信号)信号
}
}
if(shu==3)
{
for(i=0;i<4;i++)
{
delay(10); //稍作延时再发送下一位数据,这样会比较准确一点
sendchar(fa4[i]);//发送第二路路(温度信号)信号
}
}
if(shu==4)
{
for(i=0;i<4;i++)
{
delay(10); //稍作延时再发送下一位数据,这样会比较准确一点
sendchar(fa5[i]);//发送第二路路(温度信号)信号
}
}
}
}*/
}
//////串口中断函数
void R_uart(void) interrupt 4////串口中断函数
{
sendchar('A');
/*unsigned rec;
if(RI==1) ///只针对接收中断
{
RI=0;
rec=SBUF;
if(rec=='B') //说明两机已经联系上了 //就可以开始发送需要传输的数据
{
flag2=1;
}
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -