描述:
            本来是用11.0592MHZ现在改成22.1184MHZ
程序如下,该怎么改,可以说得详细点吗?
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int 
sbit key1=P3^4;//按键控制开机
sbit key2=P3^5;//按键控制关机
sbit key3=P3^6;//按键控制温度+
sbit key4=P3^7;//按键控制温度-
sbit out=P1^5;//发送IO口
uchar wd1[15]={0x00,0x08,0x04,0x0c,0x02,
              0x0a,0x06,0x0e,0x01,0x09,
			  0x05,0x0d,0x03,0x0b,0x07
		     };
uchar wd2[15]={0x0a,0x06,0x0e,0x01,0x09,
              0x05,0x0d,0x03,0x0b,0x07,
			  0x0f,0x00,0x08,0x04,0x0c
		     };
uchar x=12;//开机28度
/************晶振11.0592MHz**************/
void delay(uint xms)				
{
	uint i,j;
	for(i=xms;i>0;i--)		      //i=xms即延时约xms毫秒
		for(j=112;j>0;j--);
}
void delay560us(void)	//560us延迟函数			
{
	uint j;
	for(j=63;j>0;j--);
}
void delay4500us(void)	   //4.5ms延迟函数	
{
  	uint j;
	for(j=516;j>0;j--);
}
void khz_2(uint num)		 //38KHZ脉冲 占空比1:2
{
    for(;num>0;num--)
	 {
	  out=~out;	    
	 }
}
 void send0_a(void)    //发送0
{  
   khz_2(42) ;
   //khz_3(21) ;
   out=1;
   delay560us();
}
void send1_a(void)		//发送1
{  
   khz_2(42) ;
   out=1;
   delay560us();
   delay560us();
   delay560us();
}
void leadcode_a(void)	//发送引导码
{
     khz_2(690) ;
	 out=1;
   	 delay4500us();
}
/***************************关机****************************/
void close( uchar a,uchar b,uchar c,uchar d) 
{
	uint i;
	leadcode_a();
	send1_a();
	for(i=0;i<7;i++)
	send0_a();
	if(a)
		send1_a();
	else 
		send0_a();
	if(b)
		send1_a();
	else 
		send0_a();
	if(c)
		send1_a();
	else 
		send0_a();
	if(d)
		send1_a();
	else 
		send0_a();	 
	send0_a();
	send0_a();
	send0_a();
	send0_a();
	for(i=0;i<5;i++)
	send0_a();
	send1_a();
	for(i=0;i<6;i++)
	send0_a();
	send1_a();
	send0_a();
	send1_a();
	send0_a();
	send0_a();
	send1_a();
	send0_a();
	khz_2(42) ;
    out=1;
    delay(20);
	}
void close1(uchar e,uchar f,uchar g,uchar h  )
{
	uchar i;
	for(i=0;i<13;i++)
	send0_a();
	send1_a();
	send0_a();
	send0_a();
	for(i=0;i<12;i++)
	send0_a();
	if(e)
		send1_a();
	else 
		send0_a();
	if(f)
		send1_a();
	else 
		send0_a();
	if(g)
		send1_a();
	else 
		send0_a();
	if(h)
		send0_a();
	else 
		send1_a();
	khz_2(42) ;
    out=1;
	delay(1000);
/*******************************************/
/****************开机************************/
}
void open(uchar a,uchar b,uchar c,uchar d ) 
{
    uint i;
	leadcode_a();
	send1_a();
	send0_a();
	send0_a();
	send1_a();
	for(i=0;i<4;i++)
	send0_a();
	if(a)
		send1_a();
	else 
		send0_a();
	if(b)
		send1_a();
	else 
		send0_a();
	if(c)
		send1_a();
	else 
		send0_a();
	if(d)
		send1_a();
	else 
		send0_a();	 
	 send0_a();
	 send0_a();
	 send0_a();
	 send0_a();
	for(i=0;i<5;i++)
	send0_a();
	send1_a();
	for(i=0;i<6;i++)
	send0_a();
	send1_a();
	send0_a();
	send1_a();
	send0_a();
	send0_a();
	send1_a();
	send0_a();
	khz_2(42) ;
    out=1;
    delay(20);
	}
	void open1(uchar e,uchar f,uchar g,uchar h)
	{
	uchar i;
	for(i=0;i<13;i++)
	send0_a();
	send1_a();
	send0_a();
	send0_a();
	for(i=0;i<12;i++)
	send0_a();
	if(e)
		send1_a();
	else 
		send0_a();
	if(f)
		send1_a();
	else 
		send0_a();
	if(g)
		send1_a();
	else 
		send0_a();
	if(h)
		send1_a();
	else 
		send0_a();
	khz_2(42) ;
    out=1;
	delay(1000);
}
void keyscan()
{
	uchar  a,b,c,d,e,f,g,h;
	if(key1==0)
	{
		delay(10);
		if(key1==0)
		{
			while(!key1);
			if(wd1[x] & 0x08)
	     	a=1;
	else 
		a=0;
	if(wd1[x] & 0x04)
		b=1;
	else 
	b=0;
	if(wd1[x] & 0x02)
	 		c=1;
	else 
			c=0; 
	if(wd1[x] & 0x01)
			d=1;
	else 
		d=0; 
			if(wd2[x] & 0x08)
	     	e=1;
	else 
		e=0;
	if(wd2[x] & 0x04)
		f=1;
	else 
	f=0;
	if(wd2[x] & 0x02)
	 		g=1;
	else 
			g=0; 
	if(wd2[x] & 0x01)
			h=1;
	else 
		h=0; 
			open(a,b,c,d);
			open1(e,f,g,h);
		}
	}
	if(key2==0)
	{
		delay(10);
		if(key2==0)
		{
			while(!key2);
			if((wd1[x] & 0x08))
		a=1;
	else 
		a=0;
	if((wd1[x] & 0x04))
		b=1;
	else 
		b=0;
	if((wd1[x] & 0x02))
		c=1;
	else 
		c=0;
	if((wd1[x] & 0x01))
		d=1;
	else 
		d=0;
		if((wd2[x] & 0x08))
	     	e=1;
	else 
		e=0;
	if((wd2[x] & 0x04))
		f=1;
	else 
	f=0;
	if((wd2[x] & 0x02))
	 		g=1;
	else 
			g=0;
			if((wd2[x] & 0x01))
			h=1;
	else 
		h=0;
			close(a,b,c,d);
			close1(e,f,g,h);
		}
	}
	if(key3==0)
	{
		delay(10);
		if(key3==0)
		{
			while(!key1);
			x++;
			if((wd1[x] & 0x08))
	    	a=1;
	else 
		a=0; 
	if((wd1[x] & 0
 

