智能温室恒温控制系统C语言程序

程序清单:
#include <reg52.h>                   
#include <intrins.h>               
#include <stdio.h>
#define uchar unsigned char
sbit TMDAT = P1^4;    //两个DS18B20的I/O口
sbit TMDAT1 = P1^5;                   
sbit CS=P1^0;
sbit CLK=P1^1;
sbit DIO=P1^2;
sbit KEY=P1^3;
sbit HEAT=P1^7;
sbit COLD=P3^3;
手机镀膜机sbit HEAT1=P1^6;
sbit COLD1=P3^2;
sbit ALARM=P3^6;
int num;              //保存输入的数字
int key=7;            //保存数码管号
int qiehuan=0;        //控制屏幕显示温度或者参数
int choose=0;        //保存正在使用的DS18B20号
int max1=23;          //一号通道的报警上下限值
int min1=5;
int upper1=22;        //一号通道的预定温度值
int lower1=18;       
int max2=23;          //二号通道的报警上下限值
int min2=5;
int upper2=22;        //二号通道的预定温度值
int lower2=18; 
冷焊钳unsigned char buffer1[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};//控制符,用于显示不带小数点的数字
陶瓷手链unsigned char buffer2[16]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f};//控制符,用于显示带小数点的数字
unsigned char turn[8]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87};//控制符,用于选定数码管号
unsigned int result,result1;//保存十六进制的温度值
unsigned char a,b;
uchar data rebuf,sebuf;
uchar bdata com_data;
sbit mos_bit=com_data^7;
sbit low_bit=com_data^0;
void send(uchar sebuf);
void delay_50us();
void receive();
void reset();
void dmsec (unsigned int count);
void tmreset (void);
void tmstart (void);
void tmreset1 (void);
void tmstart1 (void);
void fuzhi(void);//用于修改参数值
void xianshi(void);//将修改的参数值显示
unsigned char tmrtemp (void);
unsigned char tmrtemp1 (void);
main()
{
unsigned int zhengshu,dot;
        unsigned char temperature;
        unsigned int symbol;
        int shiwei;
        int gewei;
unsigned int zhengshu1,dot1;
        unsigned char temperature1;
        unsigned int symbol1;
        int shiwei1;
        int gewei1;
            while(1) 
秸秆腐熟剂{
if(choose==0)    //通道一工作
{dmsec(1);
tmstart ();                     
dmsec(1000);
tmrtemp (); 
reset();       
if(result>0xf800)  //将通道一的温度转换为十进制
    { symbol=1;
ad8009
      result=~result+1;
    }
    zhengshu=result/16;
    dot=result&0x000f;
    dot=(dot*10)/16;
    shiwei=(zhengshu/10);
    gewei=(zhengshu%10);
temperature=zhengshu+dot*0.1; //通道一的十进制温度
if(temperature>upper1)        //通道一温度控制
            { COLD=1;
              HEAT=0;
              }                            //超过预定温度的上限,启动小风扇
              else if(temperature<lower1)
              { COLD=0;
                HEAT=1;}                            //低于预定温度的下限,启动小灯泡
              else
              { COLD=0;
                HEAT=0;}
              if(temperature>max1|temperature<min1)
              { ALARM=0;}                          //高于或低于设定温度的上下限,则报警
              else
              { ALARM=1;}
else{
预绞丝dmsec(1);    //通道二工作
tmstart1 ();                     
dmsec(1000);
tmrtemp1 (); 
reset();       
if(result1>0xf800)      //将通道二的温度转换为十进制

本文发布于:2024-09-22 13:23:04,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/191522.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:温度   通道   用于   预定   显示
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议