⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 client3.c

📁 //*********主机代码****** #include <reg51.h> #include "Clicent_Setting.h" #include "LCD_Funt
💻 C
字号:
//***********从机代码*******8

#include <reg51.h>
#include "Clicent_Setting.h"
#include "Funtion_T.h"

 char TTemp;
void delay_50ms()
{
 int s=5000;
 while(--s);
}
//************
void Serial_Init(void)	//串口初始化
{	
	SCON = 0x50;			// 设定串行口工作方式 
	PCON =0x80;            // 波特率倍增 SMOD=1
	TMOD=0x20;
	TH1 = 0xf3;				// 6MHZ 波特率2400
	TL1 = 0xf3;
	TR1=1;
	ES=1;				  
}

//************
void Interrupt_Init(void)	//中断初始化
{
	EA=1;
	EX0=1;
	
}

//*************
void interrupt4(void) interrupt 4 using 2	  //串口中断触发
{
	EA=0;
	if(TI)
	 TI=0;
	if(RI)
	{
		RI=0;
		if(SBUF==STD3)  //0x8f)		//如果接收到主机的地址码
		{
			SBUF=Address_Respond3;		//发送地址响应码
			while(!TI);		//必须
			TI=0;
			SCON=0xd0;		//并且把SCON中的SM2置0,允许响应数据中断			
		}

		if(SBUF==Clicent_Command3)		//如果接收到主机的启动的命令
		{	
			SBUF=Command_Respond3;		//发送响应码0x55返回给主机
			while(!TI);		//必须
			TI=0;
		}
		if(SBUF==Clicent_Data_Command3)		 //如果接受到主机的发送转化结果的命令
		{
			SBUF=Data_Command_Respond3;//发送响应码
			while(!TI);	//必须
			TI=0;
		}

		if(SBUF==Clicent_Receive_Data3)
		{
		 SBUF=Data_Receive_Respone3;
		 while(!TI);	//必须
		 TI=0;

		while(!RI);		//接收数据 测试
		RI=0;
		TTemp=SBUF;
		P1=TTemp;

 		SCON=0xf0;

		}
		if(SBUF==Clicent_Send_Data3)			  //发送数据
		{
			SBUF=DS18B20_Data[0];
			while(!TI);
			TI=0;
			SBUF=DS18B20_Data[1];
			while(!TI);
			TI=0;
			
			SCON=0xf0;
		}
		
	}
	EA=1;
}

//***************
void DS18B20_Run(void)
{
	DS18B20_Read_Temperature();
}
//***************/
void main(void)
{
    P1=0;
	Interrupt_Init();	
	Serial_Init();
	
	while(1)
	{
			delay_50ms();	//延时50ms左右读一次温度,读得太多可能会出现乱数
			DS18B20_Run();		//启动DS18B20
			delay_50ms();	//延时50ms左右读一次温度,读得太多可能会出现乱数

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -