为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

格力空调遥控

2018-04-01 16页 doc 87KB 11阅读

用户头像

is_477730

暂无简介

举报
格力空调遥控格力空调遥控 经过本人几天的努力,格力空调遥控诞生了,有兴趣的可以转载, 附有原理图和PCB,以及源码 上图为PCB 三维图板效果 以上为原理图 /**********************************************************************\ **-- Copyright (c) UESTC Wang Shijing --------------- **----------------------------------------------------------...
格力空调遥控
格力空调遥控 经过本人几天的努力,格力空调遥控诞生了,有兴趣的可以转载, 附有原理图和PCB,以及源码 上图为PCB 三维图板效果 以上为原理图 /**********************************************************************\ **-- Copyright (c) UESTC Wang Shijing --------------- **---------------------------------------------------------------------- ** Project Name: air_conditioner ** Project Date: May 9,2010 ** Project Auth: Wangshijing ** Description: This project is just for the Gree Air_conditioner infrared remote ** controller ** **---------------------------------------------------------------------- ** Revision : ** Date: ** Notes: ----------------------------------------------------------------------- \**********************************************************************/ #include #include #define uchar unsigned char #define uint unsigned int //#include"Infrared.h" //just for the Gree air_conditioner #define enTransmitt flag=1 #define disTransmitt flag=0 sfr T2MOD = 0XC9; sbit ir = P1^2 ; sbit IR38k =P1^0; sbit speaker=P3^7; #define keyboard P2 bit flag=0; sbit key1=P3^0; sbit key2=P3^1; sbit key3=P3^2; sbit key4=P3^3; uint count=0,set_count=0; //============================================== uchar fengliang_value=0; uchar key_value=0; uchar wendu_value=0; uchar mode_value=0; uchar switch_value=0; uchar zhuanye_value=0; uchar code zhuanye[][5]={{0x39,0x04,0x00,0x50,0x02},{0x79,0x04,0x0 0,0x50,0x02}}; // 手动,自动转页(20度,冷气) /*uchar code fengliang[][5]={ {0x5b,0x0e,0x00,0x50,0x02},{0x6b,0x0e,0x00,0x50,0x02}, {0x7b,0x0e,0x00,0x50,0x02} }; */ uchar code fengliang[][5]={{0x28,0x08,0x00,0x50,0x02},{0x19,0x08,0x00,0x50,0x02}, {0x09,0x08,0x00,0x50,0x02} }; //自动模式风量 小,中,大 (20度) uchar code mode[][5]={ {0x58,0x00,0x00,0x50,0x02},{0x59,0x04,0x00,0x50,0x02}, {0x5a,0x04,0x00,0x50,0x02},{0x5b,0x04,0x00,0x50,0x02} }; //自动,冷气,除湿,送风 /*uchar code on_or_off[][5]={ {0x40,0x00,0x00,0x50,0x02},{0x48,0x00,0x00,0x50,0x02} }; */ uchar code on_or_off[][5]={ {0x39,0x08,0x00,0x50,0x02},{0x31,0x08,0x00,0x50, 0x02}, {0x59,0x08,0x00,0x50,0x02},{0x51,0x08,0x00,0x50,0x02}, {0x79,0x08,0x00,0x50,0x02},{0x71,0x08,0x00,0x50,0x02}, }; //开机,关机 uchar code wendu[][5]={ {0x59,0x00,0x00,0x50,0x02},{0x59,0x01,0x00,0x50,0x02}, {0x59,0x02,0x00,0x50,0x02},{0x59,0x03,0x00,0x50,0x02}, {0x59,0x04,0x00,0x50,0x02},{0x59,0x05,0x00,0x50,0x02}, {0x59,0x06,0x00,0x50,0x02},{0x59,0x07,0x00,0x50,0x02}, {0x59,0x08,0x00,0x50,0x02},{0x59,0x09,0x00,0x50,0x02}, {0x59,0x0a,0x00,0x50,0x02},{0x59,0x0b,0x00,0x50,0x02}, {0x59,0x0c,0x00,0x50,0x02},{0x59,0x0d,0x00,0x50,0x02}, {0x59,0x0e,0x00,0x50,0x02} }; //温度值 void send_precode(unsigned int s_cnt_1,unsigned int s_cnt_2); void send_8bit_code(uchar value); void send_4bit_code(uchar value); void send_final_code(); void ir_out1() //启动和关闭 { send_precode(180,90); send_8bit_code(on_or_off[switch_value][0]); send_8bit_code(on_or_off[switch_value][1]); send_8bit_code(on_or_off[switch_value][2]); send_8bit_code(on_or_off[switch_value][3]); send_4bit_code(on_or_off[switch_value][4]); //send_final_code(); // key_value=0; switch_value++; if(switch_value==6){ switch_value=0; } } void ir_out2() //wendu-- { send_precode(180,90); send_8bit_code(wendu[wendu_value][0]); send_8bit_code(wendu[wendu_value][1]); send_8bit_code(wendu[wendu_value][2]); send_8bit_code(wendu[wendu_value][3]); send_4bit_code(wendu[wendu_value][4]); send_final_code(); wendu_value--; if(wendu_value==0) {wendu_value=15;} } void ir_out3() //wendu++ { send_precode(180,90); send_8bit_code(wendu[wendu_value][0]); send_8bit_code(wendu[wendu_value][1]); send_8bit_code(wendu[wendu_value][2]); send_8bit_code(wendu[wendu_value][3]); send_4bit_code(wendu[wendu_value][4]); send_final_code(); wendu_value++; if(wendu_value==15) { wendu_value=0;} } void ir_out4()//mode choose { send_precode(180,90); send_8bit_code(mode[mode_value][0]); send_8bit_code(mode[mode_value][1]); send_8bit_code(mode[mode_value][2]); send_8bit_code(mode[mode_value][3]); send_4bit_code(mode[mode_value][4]); send_final_code(); mode_value++; if(mode_value==4) { mode_value=0;} } void ir_out5() //转叶 { send_precode(180,90); send_8bit_code(zhuanye[zhuanye_value][0]); send_8bit_code(zhuanye[zhuanye_value][1]); send_8bit_code(zhuanye[zhuanye_value][2]); send_8bit_code(zhuanye[zhuanye_value][3]); send_4bit_code(zhuanye[zhuanye_value][4]); send_final_code(); zhuanye_value++; if(zhuanye_value==2) {zhuanye_value=0;} } void ir_out6() //风量 { send_precode(180,90); send_8bit_code(fengliang[fengliang_value][0]); send_8bit_code(fengliang[fengliang_value][1]); send_8bit_code(fengliang[fengliang_value][2]); send_8bit_code(fengliang[fengliang_value][3]); send_4bit_code(fengliang[fengliang_value][4]); send_final_code(); fengliang_value++; if(fengliang_value==3) {fengliang_value=0;} } //============================================ unsigned char KeyScan(); void delayms(unsigned char ms) { unsigned char i; while(ms--) { for(i=0;i<120;i++){}; } } void BUZZ(unsigned int ms) { speaker=0; delayms(ms); speaker=1; } void TimerInit() { EA=1; ET0=1; TMOD=0X01; TH0=0XfF; TL0=221; //50US T2CON=0x00; T2MOD=0x02; //enable T2's wave output through T2 pin(P10) RCAP2H=(65536-11059/38/4)>>8; //output frequency is 38KHz RCAP2L=(65536-11059/38/4)&0xff; } void TransmittPulse() { enTransmitt; // ir=0; TR0=1; TR2=1; } void TransmittLow() { //ir=1; TR0=1; disTransmitt; TR2=0; IR38k=1; } void endTransmitt() { //ir=0; TR0=0; TR2=0; IR38k=1; //JIEZHI } void send_logic0(unsigned int s_cnt_1,unsigned int s_cnt_2) { set_count=s_cnt_1;// TransmittPulse(); count =0; while(count>1; } } void send_4bit_code(uchar value) { uchar i,temp; temp=value; for(i=0;i<4;i++) { if(temp&0x01) send_logic1(11,32); //1.68ms else send_logic0(11,11); //600US temp=temp>>1; } } //============================主函数 ======================== void main() { TimerInit(); // AT24C_Init(); while(1) { key_value=KeyScan(); switch(key_value) { case 1:ir_out1();delayms(200);break; // 开和关 case 2:ir_out2();delayms(200);break; // 温度- case 3:ir_out3();delayms(200);break; // 温度+. case 4:ir_out4();delayms(200);break; // 模式选择 case 5:ir_out5();delayms(200);break; //转叶设置 case 6:ir_out6();delayms(200);break; //default:ir=1;break; } } } void timer0(void) interrupt 1 { TH0=0XfF; TL0=221; //50us count++; if(flag) TR2=1; //IR38k=0; else TR2=0;//IR38k=1; } unsigned char KeyScan() { /*-------------第一列扫描-----------------*/ if(key1==0) { delayms(20); if(key1==0) { return 1; } while(!key1); } if(key2==0) { delayms(20); if(key2==0) { return 2; } while(!key2); } if(key3==0) { delayms(20); if(key3==0) { return 3; } while(!key3); } if(key4==0) { delayms(20); if(key4==0) { return 4; } while(!key4); } return 0 ; } //============================以上为C代码==========================================
/
本文档为【格力空调遥控】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索