1030.c

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

C
129
字号
//xing
#include <reg51.h>
#include <YAOKONG.h>
#define uchar unsigned char
#define uint unsigned int
#define dataBUS P2

uchar serior[4]={0xAA,0X55,0XA5,0X00};
uchar VT=0;
uchar datacode=0;

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 yaokong (void)
{
datacode=dataBUS;
datacode&=0X0F;
}


void int0 (void) interrupt 0
{
VT=1;
}

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

initial ()
{
SCON=0X50;
TMOD=0x20;
TH1=0xF3;//0xF3;2400
TL1=0xF3;
TR1=1;
IT0=1;
EA=1;
ES=1;
EX0=1;
P0=0X00;
P1&=0X70;
}


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 main(void)
{
initial();
while(1)
{
if (VT==1)
		{
		delay();		
		yaokong();
		switch (datacode)
			{
		
			case 0x08:	
						serior[3]=0x08;	
						sendstring (serior,4);				
						break;
			case 0x04:	
						serior[3]=0x04;	
						sendstring (serior,4);
						break;
			case 0x02:	
						serior[3]=0x02;	
						sendstring (serior,4);
						break;
			case 0x01:	
						serior[3]=0x01;	
						sendstring (serior,4);				
						break;
/*
			case 0x03:	
						JK5=!JK5;				
						break;
			case 0x06:	
						JK6=1;
						while(NOT_VT==0);
						JK6=0;
						break;
			case 0x09:	
						JK7=!JK7;				
						break;
			case 0x0D:	
						JK8=1;	
						while(NOT_VT==0);
						JK8=0;
						break;
*/
			default :   //JK9=!JK9;
						break;
			}
		VT=0;
		}
}

}

		

⌨️ 快捷键说明

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