基于单片机智能温控器温度控制系统设计-毕设课设资料

【资源下载】下载地址如下1571:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

用ADC0809检测温度,如果大于设定温度则断开回路,小于则进行加热,等于设定温度则保持不变,其中分别用数码管显示设定温度与实际温度,用两个按键进行加减设定温度,收获ADC0809高位应该与单片机低位连接,在读取温度时必须先将P1口复位为1,不然会发生短路现象

#include<reg51.h>
#include<intrins.h>
#define Duan P0

sbit wei1=P2^0;//数码管选通
sbit wei2=P2^1;
sbit wei3=P2^2;
sbit wei4=P2^3;
sbit Relay=P2^4;//控制电路继电器闭合,使加热
sbit Start=P2^5;//AD0809开始转化端口
sbit EOC=P2^6; //ADC0809转化标志口
void System_Init();	  //系统初始化
unsigned char  M[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管段位
char shezhi=50;
int val;//转化值
char i=0;
void delay1ms(void)   //误差 0us
{
    unsigned char a,b,c;
    for(c=1;c>0;c--)
        for(b=142;b>0;b--)
            for(a=2;a>0;a--);
}

void main()
{
  System_Init();
  while(1)
  {
    P1=0xff;
    Start=0;
    Start=1;  //开始转化
    _nop_();
    Start=0;	
    _nop_();
    while(!EOC);   //转化结束
	val=(P1*100/256); //量程转化
	if(val>shezhi)//是否继续加热
	Relay=0;
	else
	Relay=1;
  }
}
void System_Init()
{
  TMOD=0x01;
  EA=1;
  ET0=1;
  TH0=(65535-5000)/256;
  TL0=(65535-5000)%256;

posted @ 2021-03-24 08:34  roadroad  阅读(364)  评论(0)    收藏  举报
电设屋
上千套电子毕设课设方案