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 + -
显示快捷键?