51单片机红外遥控格力空调程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机红外遥控格力空调程序#include

#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();

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++)

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);

/*******************************************/

相关文档
最新文档