• 大小: 4KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-07-03
  • 语言: 其他
  • 标签: 51单片机  

资源简介

51单片机温度报警系统(温度可以通过串口上传至相关软件,用1602显示温度)

资源截图

代码片段和文件信息

#include 

sbit beep=P1^5;
sbit DSPORT=P3^7;
#define lcd P0
sbit RS=P2^6;
sbit RW=P2^5;
sbit E=P2^7;

int temp1;
int time;
char num[16]=“    .           “;

/******************************************延迟函数*******************************/
void delay(int i)
{
while(i--);
}

void Delay1ms(int y)
{
int x;
for( ; y>0; y--)
{
for(x=110; x>0; x--);
}
}
/*************************1602相关函数*************************/
void mingling(int ml)//写入命令
{
  E=0;
  RS=0;//0
  RW=0;
  lcd=ml;
  delay(1000);
  E=1;
  delay(5000);
  E=0;
}

void chushihua()//1602初始化设置
{
 mingling(0x38);
 mingling(0x0c);
 mingling(0x06);
 mingling(0x01);
 mingling(0x80);
}

void write(char sj)//写入数据
{
    E=0;
  RS=1;//1
  RW=0;
  lcd=sj;
  delay(1000);
  E=1;
  delay(5000);
  E=0;

}

/********************串口函数******************************/
void chuankou()
{
SCON=0X50;
TMOD=0X20;
PCON=0X80;
TR1=1;
TH1=0XF3;  
TL1=0XF3;
ES=1;
EA=1;
}

/**********************数据处理函数*****************************/
int shujuchuli(int temp)
{  
    float tp;  
if(temp< 0)
   {
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*100+0.5;
 
   }
  else
   {
tp=temp;
temp=tp*0.0625*100+0.5;
}
if(temp<0)
{
num[4]=‘-‘;
}
num[1]=temp/10000+‘0‘;
num[2]=temp/1000%10+‘0‘;
num[3]=temp/100%10+‘0‘;
num[5]=temp/10%10+‘0‘;
num[6]=temp%10+‘0‘;

return temp;  //数据处理:温度为负数时要取其反码 temp=0.0625a*100+0.5 温度=temp/100
}
/**************************************ds18b62函数***********************************************************/

int chushihua1()
{
  int i;
  DSPORT=0;
  i = 70;
  while(i--);//延时642us
  DSPORT = 1;
  i=0;

评论

共有 条评论