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

📄 main.c

📁 DS18B20温度采集然后红外发射出去,接收板接收红外并LCD显示接收的数据信息,有完整的发射接收程序
💻 C
字号:
#include <reg51.h>

#define  EXTERN_DS18B20
#include "DS18B20.h"

#define  EXTERN_AT89C51
#include "AT89C51.h"
///////////////////////////////////////////////////////////////////////
void Timer0() interrupt 1
{	TH0=0xfe;      ///定时500us////
    TL0=0x0c;
  //  TH0=0xfc;      ///定时1000us////
  //  TL0=0x18; 
    count--;         ////count的值决定脉冲的宽度///////
	if(count==0)
	{
	 TR0=0; //让定时/计数器0停止运行//
     TR1=0; //让定时/计数器1停止运行//
	 P34=0;//脉冲结束,置0使发光二极管熄灭//////
	}
}
//////////////////////////////////////////////////////////////////////
void Timer1() interrupt 3
{	PT0=1;    //////保证在T1的中断处理中时,T0可以无障碍的进入中断//////
    P34=~P34;////红外发光二极管亮13us,接着灭13us,循环周而复始///////
    PT0=0;
}

///////////////////////////////////////////////////////////////////////////
////////////////////////////// main函数//////////////////////////////////
void main(void) 
{ 
 // bit flag1;
  uchar x;//,y;
 // flag1=1;
  AT89C51_initialize();   //////////初始化///////
  if(Singlewire_Reset())  /////如果DS18B20复位正常//////
   {  
	   while(1) //////无限循环///////
         {	  
	      x=Read_Temperature();//////读取温度值//////
          display(x); 
      //    if(y!=x){y=x;Send_Data(0xaa,x);}///读取的温度值与上次的值进行比较,///////
          Send_Data(temp_msb,temp_lsb);          ////如果不同,再经红外线发送出去///////////
		  display(x);                    //////将温度值显示//////
        //  P2=0xfa;////用于调试/////
	     }
      
    }
  else  P2=0xfa;////用于调试/////
}
/////////////////////////////////////////////////////////////////////////////////////////////


//////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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