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

📄 2.c

📁 测温控制系统(C程序)
💻 C
字号:
#include <AT89X52.H>
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
                               0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char dispbuf[8]={0,0,0,0};
sbit CLOCK=P2^7;		        	/*定义ADC0808时钟位	   */
sbit ST=P2^4;
sbit EOC=P2^6;
sbit OE=P2^5;
sbit PWM=P3^7;
sbit ds=P2^0;
sbit de=P2^1;
sbit dy=P2^2;
sbit dl=P2^3;
sbit kk=P1^7;
unsigned char ADC;
unsigned char A,C;
int j;
void WAIT(void); 


void DELAY(void)					  /*延时函数*/
{ 
  unsigned char k,i;
  for(k=20;k>0;k--)
  for(i=A;i>0;i--);
}






void WAIT(void)
{ 		int s;
        ST=0;			  	
		ST=1;
		ST=0;			
 		while(EOC==0);	
		OE=1; 
		ADC=P0;
		OE=0;
		C=P0;
		C=C/2.5;
		s=C;
		s=s*10; 					   /*显示数据转换*/
	    dispbuf[3]=C/1000;
        C=C%1000;
        dispbuf[2]=C/100;
		C=C%100;
        dispbuf[1]=C/10;
		dispbuf[0]=C%10;	
		PWM=1;	
		if(dispbuf[3]==1)			 /*判断温度是否到达一百度*/
		WAIT();						   
		A=ADC;
		DELAY();
		PWM=0;
		A=255;
		A=A-ADC;
		DELAY();
		WAIT();
                 

}



void main()									/*主函数*/
{	 
       j=60;
	   TMOD=0x02;	  
       TH0=0x20;
	   TL0=0x00;
	   TH1=0x3C;
	   TL1=0xB0;  
	   IE=0x8A; 
	   TR0=1;
	   
	   TR1=1;	
	   WAIT();
	   

}

void t0(void) interrupt 1 using 0			   /*定时器T0*/
{
  CLOCK=~CLOCK; 
}

void t1(void) interrupt 3 using 0			   /*定时器T1*/

{
    TH1=0x3C;
	TL1=0xB0;
	j--;										/*判断是否5s*/
	if(j>0)
		 return;
	

	    P1=dispcode[dispbuf[3]];				   /*显示温度*/
	ds=0;
	ds=1;
	ds=0;
		P1=dispcode[dispbuf[2]];
	de=0;
	de=1;
	de=0;
		P1=dispcode[dispbuf[1]];
		kk=1;

	dy=0;
	dy=1;
	dy=0;
		P1=dispcode[dispbuf[0]];
	dl=0;
	dl=1;
	dl=0;
	j=60;
	return;

}

⌨️ 快捷键说明

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