⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 to yao(qq).c

📁 空调温度自动控制(lcd显示+上下限可设置)采用80C51+1602+AD590+ADC0809
💻 C
字号:
#include <at89x52.H>
#include "LCD1602.h"



//********

unsigned char i;
sbit ST=P2^4; 
sbit OE=P2^5; 
sbit EOC=P2^6; 
sbit CLK=P2^7; 
void t0(void) interrupt 1 using 0 
{  CLK=~CLK; } 
//***

unsigned char TempBuffer[10];
void IntToStr(unsigned int t, unsigned char *str, unsigned char n) 
{
	unsigned char a[5]; char i, j;                                 	
	a[0]=(t/10000)%10;         //取得整数值到数组     
	a[1]=(t/1000)%10;                                     	
	a[2]=(t/100)%10;                                      	
	a[3]=(t/10)%10;                                       	
	a[4]=(t/1)%10;                                        	
                                                      
	for(i=0; i<5; i++)         //转成ASCII码         
		a[i]=a[i]+'0';                                    	
	for(i=0; a[i]=='0' && i<=3; i++);                     	
	for(j=5-n; j<i; j++)       //填充空格                 
		{ *str=' ';  str++; }                             	
	for(; i<5; i++)                                       	
		{ *str=a[i]; str++; }  //加入有效的数字           
	*str='\0'; 
} 

void Delay1ms(unsigned int count)
{
	unsigned int i,j;
	for(i=0;i<count;i++)
	for(j=0;j<120;j++);
}

unsigned long getdata;
unsigned long temp;
unsigned int n=3;
unsigned char nou=35;
unsigned char nod=20;

main()
{
//************
  ST=0; 
  OE=0; 
  ET0=1; 
  ET1=1; 
  EA=1; 
 TMOD=0x02; 
  TH0=216; 
  TL0=216; 
  TR0=1; 
ST=1; 
ST=0;//***



  //  Count = 0;
	LCD_Initial();
	      
	while(1)
	{    //**************
        if(EOC==1) 
         { 
          OE=1; 
         getdata=P3; 
  //getdata=127;
          OE=0; 
      //  temp=(getdata-137)*2; 
       temp=(getdata*100/51-272);

//P2=getdata;


          ST=1; 
          ST=0;  

       }
if(P1_3==0){Delay1ms(70);if(P1_3==0){  n++;
                                      
                                       
                                    if(n==4) n=1;}
                                     }


switch(n){
  case 1:   
         IntToStr(nou,&TempBuffer[0],3);
        GotoXY(0,0);
 	    Print("Set upper limit");
	    GotoXY(0,1);
	    Print(" is:        \"C "); 
		GotoXY(7,1);
		Print(&TempBuffer[0]); break;
  case 2:  
         IntToStr(nod,&TempBuffer[0],3);
        GotoXY(0,0);
 	    Print("Set lower limit ");
	    GotoXY(0,1);
	    Print(" is:        \"C "); 
		GotoXY(7,1);
		Print(&TempBuffer[0]); break;
  case 3:  IntToStr(temp,&TempBuffer[0],3);
        GotoXY(0,0);
 	    Print("Now temperature ");
	    GotoXY(0,1);
	    Print(" is:        \"C "); 
		GotoXY(7,1);
		Print(&TempBuffer[0]);
	
                 break;
        }
if(P1_1==0){Delay1ms(50);if(P1_1==0){if(n==1&&nou>nod) nou--;
                                         else if(n==2) nod--;}
                      } 

if(P1_0==0){Delay1ms(50);if(P1_0==0){if(n==1) nou++;
                                         else if(n==2&&nod<nou) nod++;}   
                      }

   if(nod>temp){P1_5=0;P1_6=1;}
  else if(nou<temp){P1_5=1;P1_6=0;}              
    else {P1_5=0;P1_6=0;}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -