2024年5月11日发(作者:)
#include
//宏定义
#define uchar unsigned char
#define uint unsigned int
#define LcdData P0
//引脚定义
sbit RS=P2^0;//1602LCD RS
sbit RW=P2^1;//1602LCD RW
sbit E=P2^2;//1602LCD E
sbit RLED=P2^3;//Red LED
sbit GLED=P2^4;//Green LED
sbit BUZZER=P2^5;//蜂鸣器
sbit DQ=P2^6;//DS18B20 DQ
sbit MAX=P1^0;//+
sbit MIN=P1^1;//--
sbit ZHUAN=P1^2;//转换
//全局变量定义
bit Temp_Flag;//正负温度标志:温度为正Temp_Flag=0,否则为1
uint Temp=25;//温度值
uint max=300;//温度值
uint min=250,z=0;//温度值
//函数申明
void Delayms(uint xms);//ms级延时函数
void WriteLcd(uchar Dat,bit x);//写1602LCD指令、数据函数
void InitLCD(void);//初始化1602LCD函数
void RledBlink(void);//Red LED闪烁函数
void GledBlink(void);//Green LED闪烁函数
void Delayus(uchar xus);//us级延时函数
bit Init_DS18B20(void);//初始化DS18B20函数
uchar Read_DS18B20(void);//读DS18B20函数
void Write_DS18B20(uchar Dat);//写DS18B20函数
void GetTemp();//取温度函数
void CalcTestTemp();//温度处理函数
void InitT0(void);//初始化定时器T0
uchar FirstLine[16]={""};//用于1602LCD第2行显示的数组
uchar SecondLine[16]={"shang xian xia"};//用于1602LCD第1行显示的数组
//ms级延时函数
void Delayms(uint xms)//1ms左右延时
{
uint i,j;
for(i=xms; i>0; i--)
for(j=110; j>0; j--);
}
//写1602LCD指令、数据函数
void WriteLcd(uchar Dat,bit x)//写指令时x=0,写数据时x=1
{
E=0;
LcdData=Dat;
RS=x;
RW=0;
E=1;
Delayms(1);
E=0;
}
//初始化1602LCD函数
void InitLcd(void)
{
WriteLcd(0x38,0);//功能设定(38H)
WriteLcd(0x0C,0);//显示开、关设定(0CH)
WriteLcd(0x06,0);//输入模式设定(06H)
WriteLcd(0x01,0);//清除显示(01H)
}


发布评论