1030.c

来自「单片机红外解码及无线解码的应用」· C语言 代码 · 共 209 行

C
209
字号
//xing 2005/12/11

#include <YAOKONG.h>

uchar message=0;
uchar serior[4]={0xAA,0X55,0XA5,0X00};
uchar VT=0;
uchar data1,data2,time;
uchar setTempture=25;
uchar setSpeed=middle;
uchar setModle=cool;
void delay(void)
{
uchar j,k;
//for(i=0;i<1;i++)
for (j=0;j<50;j++)
for (k=0;k<50;k++);
}

void openTimer0(void)
{
time=0;
TH0=0x3C;
TL0=0xB0;
TR0=1;
}



void int0 (void) interrupt 0
{
if (message==waitedata1) 
{
data1=dataBUS;

message=waitedata2;
openTimer0();
}
else
if (message==waitedata2) 
{
data2=dataBUS;
TR0=0;//closeTimer0();
message=receiveOver;
}
}

void timer0 (void) interrupt 1
{
if (time<40) time++;
else
{
time=0;
message=waitedata1;
TR0=0;
}
}

void receive (void) interrupt 4
{
if (TI==1)
TI=0;
else
RI=0;
}





initial ()
{
P0=0X00;
P1&=0XC0;
data1=0;
data2=0;
SCON=0X50;
TMOD=0x21;
TH1=0xF3;//0xF3;2400
TL1=0xF3;
TR1=1;
IT0=1;//下降沿
PX0=1;
EA=1;
ES=1;
EX0=1;
ET0=1;
}


void sendstring (uchar *p ,uchar len)
{
uchar i;
for (i=0;i<len;i++)
{
SBUF=*(p++);
delay();
}
}

void delay1(void)
{
uchar j,k;
for (j=0;j<200;j++)
for (k=0;k<250;k++);
}

void action(void)
	{
	data1&=0X0F;
	data2&=0X0F;
	data2=data2+(data1<<4);
	switch (data2)
			{
			case 0x31:	
						JK12=!JK12;				
						break;		
			case 0x34:	
						JK11=!JK11;				
						break;
			case 0x32:	
						serior[3]=0x04;	
						sendstring (serior,4);
						while(NOT_VT==0)
						{
						delay1();
						sendstring (serior,4);
						}
						JK12=!JK12;
						break;
			case 0x38:	
						/*serior[3]=0x02;	
						sendstring (serior,4);
						while(NOT_VT==0)
						{
						delay1();
						sendstring (serior,4);
						}*/
						JK13=!JK13;
						break;
			case 0x01:	
						JK14=1;	
						while(NOT_VT==0);
						JK14=0;				
						break;

			default :   //JK9=!JK9;
						break;
			}	
		message=waitedata1;
		}

void temperature(void)
{
	unsigned int  temper ;
	uchar tempture;
	uchar giveout ;
	temper=0;
	giveout=0;
while(temperBit==1)
	{
 	if (message==receiveOver)
		{
		action();
		giveout=1;
		}
	}
while(temperBit==0)
	{
 	if (message==receiveOver)
		{
		action();
		giveout=1;
		}
	}
while(temperBit==1) 
	{
 	if (message==receiveOver)
		{
		action();
		giveout=1;
		}	
	else
	temper++;
	}
if (temper>300) temper=300;
else
if (temper<175) temper=175;
temper-=175;
tempture=temperatur[temper];
}

void main(void)
{
initial();
while(1)
{
if (message==receiveOver)
		{
		action();	
		}
else		
	temperature();	
	
}

}

		

⌨️ 快捷键说明

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