资讯详情

STC89C52单片机温控继电器代码

/***************************************************************************

标题: 温控继电器实验

实验板:LY5A-L2A开发板

作者: 林洋电子-单片机

说明: 当温度低于下线值时,启动继电器并关闭上线值。注:使用12M晶振下调试

******************************************************************************/

//头文件:

#include

#include "ds18b20.h" //引入DS18B20头文件

//引脚定义:

sbit JDQ=P1^4; //继电器控制

sbit SMG_q = P1^0; //定义数码管阳级控制脚(千位)

sbit SMG_b = P1^1; ///定义数码管阳级控制脚(百位)

sbit SMG_s = P1^2; ///定义数码管阳级控制脚(十位)

sbit SMG_g = P1^3; ///定义数码管阳级控制脚(个位)

///变量定义:

unsigned char ly_dis[4]//定义显示缓冲区

unsigned char DSU=32; //在线温度

unsigned char DSD=30; ///离线温度

code unsigned char table[]=

{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//表:共阳数码管 0-9

unsigned char l_posit=0; //显示位置

//函数声明:

void display(void);//显示函数,显示缓冲区内容

void delay(void);

//主函数,C语言入口函数:

void main()

{

unsigned int i=0;

float tt;

int ltemp;

while(1){

if(i==0)

tmpchange(); ///温度转换

if(i==100){

tt=tmp()*0.0625; ///因为获得真正的十进制温度值DS18B20

//可以精确到0.0625度,所以读回数据的最低值代表0.0625度。

if(tt<=DSD) ///低于离线温度启动继电器

JDQ=0;

if(tt>=DSU) ///关闭继电器,继电器

JDQ=1;

ltemp=tt*10 0.5; //放大十倍。这样做的目的是将小数点后的第一个转换为可显示数字,同时进行四舍五入操作。

if(ltemp<0){ ///判断第一个显示整数还是负数

ly_dis[0]=0xbf;

ltemp=0-ltemp;

}

else

ly_dis[0]=ltemp/1000;/显示百位值

ltemp=ltemp00;

ly_dis[1]=ltemp/100; //显示温度十位值

ltemp=ltemp0;

ly_dis[2]=ltemp/10; //显示温度个位值

ly_dis[3]=ltemp; ///显示小数点后的一个

}

i ;

if(i==3000)

i=0;

display(); //调用显示器

delay();

}

}

//显示函数,参数显示内容

void display()

{

P0=0XFF; //

switch(l_posit){

case 0: ///选择千位数码管,关闭其他位置

SMG_q=0;

SMG_b=1;

SMG_s=1;

SMG_g=1;

P0=table[ly_dis[0]]; //输出显示内容

break;

case 1: ///选择百位数码管,关闭其他位置

SMG_q=1;

SMG_b=0;

SMG_s=1;

SMG_g=1;

P0=table[ly_dis[1]];

break;

case 2: ///选择十位数码管,关闭其他位置

SMG_q=1;

SMG_b=1;

SMG_s=0;

SMG_g=1;

P0=table[ly_dis[2]]&0x7f;

break;

case 3: ///选择个位数码管,关闭其他位置

SMG_q=1;

SMG_b=1;

SMG_s=1;

SMG_g=0;

P0=table[ly_dis[3]];

break;

}

l_posit ; ///每次调用轮流显示一次

if(l_posit>3)

l_posit=0;

}

///延迟子函数,短暂延迟

void delay(void){

unsigned char i=10;

while(i--);

}

标签: 热继电器h10q继电器4继电器温控器32继电器202525a热继继电器f7375三极热继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台