📄 main.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 + -