格力空调遥控器红外编码精编版
wz-1000a+万能空调遥控器代码表

wz-1000a+万能空调遥控器代码表摘要:I.引言- 介绍万能空调遥控器代码表II.万能空调遥控器代码表的概述- 代码表的作用- 代码表的内容- 代码表的使用方法III.万能空调遥控器代码表的详细内容- 按键功能- 代码解释- 操作流程IV.万能空调遥控器代码表的应用场景- 空调遥控器失灵- 空调遥控器丢失- 空调遥控器需要复制其他遥控器功能V.万能空调遥控器代码表的优缺点- 优点- 缺点VI.结论- 总结万能空调遥控器代码表的作用和应用正文:【引言】万能空调遥控器代码表是一种能够帮助人们解决空调遥控器失灵、丢失或者需要复制其他遥控器功能的表格。
在这篇文章中,我们将详细介绍万能空调遥控器代码表的作用、内容、使用方法以及它的优缺点。
【万能空调遥控器代码表的概述】【II.1】代码表的作用万能空调遥控器代码表的主要作用是帮助用户在没有原厂遥控器的情况下,通过复制其他遥控器的功能,实现对空调的控制。
这不仅可以解决遥控器失灵或丢失的问题,还可以让用户更加灵活地使用空调。
【II.2】代码表的内容万能空调遥控器代码表中包含了各种空调品牌和型号的遥控器代码。
用户只需根据自己空调的品牌和型号,查找对应的代码,然后使用这些代码来操作空调。
【II.3】代码表的使用方法使用万能空调遥控器代码表的方法非常简单。
首先,用户需要确认自己空调的品牌和型号;然后,在代码表中找到对应的代码;最后,使用这些代码来操作空调。
【III.万能空调遥控器代码表的详细内容】【III.1】按键功能万能空调遥控器代码表中包含了各种按键的功能,如上下左右、确定、取消、模式切换等。
用户可以根据自己的需求,选择需要的按键功能。
【III.2】代码解释万能空调遥控器代码表中的代码分为两种:学习代码和直接代码。
学习代码需要通过学习过程将其他遥控器的功能复制到万能遥控器上;直接代码则可以直接用于操作空调。
【III.3】操作流程使用万能空调遥控器代码表的操作流程如下:1.打开空调2.按下“设置”键,进入设置模式3.按下“模式”键,选择“手动”模式4.按下需要的按键功能,如“风速”、“温度”等5.按下“确认”键,保存设置6.关闭空调,退出设置模式【IV.万能空调遥控器代码表的应用场景】【IV.1】空调遥控器失灵当用户的空调遥控器失灵时,可以通过使用万能空调遥控器代码表来操作空调。
单片机红外遥控编码与解码

用电器、视听产品的普及,红外线遥控器已被广泛使用在各种类型的家电产品上(如遥控开关、智能开关等)。
其具有体积小、抗干扰能力强、功耗低、功能强、成本低等特点,在工业设备中也得到广泛应用。
一般而言,一个通用的红外遥控系统由发射和接收两大部分组成,如图1 所示:其中发射部分主要包括键盘矩阵、编码调制、红外发射管;接收部分包括光、电信号的转换以及放大、解调、解码电路。
举例来说,通常我们家电遥控器信号的发射,就是将相应按键所对应的控制指令和系统码( 由0 和1 组成的序列),调制在32~56kHz 范围内的载波上,然后经放大、驱动红外发射管将信号发射出去。
此外,现在流行的控制方法是应用编/ 解码专用集成电路芯片来实现。
不同公司的遥控芯片,采用的遥控码格式也不一样。
在此介绍目前广泛使用较普遍的两种,一种是NEC Protocol 的PWM( 脉冲宽度调制) 标准,一种是Philips RC-5 Protocol 的PPM( 脉冲位置调制) 标准。
NEC 标准(代表芯片WD6122):遥控载波的频率为38kHz( 占空比为1:3) ;当某个按键按下时,系统首先发射一个完整的全码,然后经延时再发射一系列简码,直到按键松开即停止发射。
简码重复为延时108ms,即两个引导脉冲上升沿之间的间隔都是108ms。
如图2所示即为完整的NTC编码。
对于NTC编码,由引导码、用户编码低位,用户编码高位、键数据编码、键数据编码五部分组成,引导码由一个9ms的载波波形和4.5ms的关断时间构成,它作为随后发射的码的引导,这样当接收系统是由微处理器构成的时候,能更有效地处理码的接收与检测及其它各项控制之间的时序关系。
编码采用脉冲位置调制方式(PPM)。
利用脉冲之间的时间间隔来区分“0”和“1”。
每次8位的码被传送之后,它们的反码也被传送,减少了系统的误码率。
数据0 可用“高电平0.56ms +低电平0.56ms”表示,数据1 可用“高电平0.56ms +低电平1.68ms”表示。
51单片机格力空调遥控器

1.1151单片机格力空调遥控器2.2.#include <reg52.h>3.#include <intrins.h>4.#define uchar unsigned char5.#define uint unsigned int6.#define enTransmitt flag=17.#define disTransmitt flag=O8.sfr T2M0D = 0XC9;9.bit flag=0;10.sbit IR38k =P2A3; // 红外发射管11.sbit key1=P1A1;12.sbit key2=P1A3;13.sbit key3=P1A5;14.sbit key4=PM7;15.sbit key5=P1A0;16.sbit key6=P1A4;17.uchar KeyScan();18.uint count=0,set_count=0;19.uchar fengliang_value=0;20.uchar key_value=0;21.uchar wendu_value=0;22.uchar mode_value=0;23.uchar switch_value=0;24.uchar zhuanye_value=0;25.uchar codeZhuanye[][5]={{0x39,0x04,0x00,0x50,0x02},{0x79,0x04,0x00,0x50,0x02}};//手动,自动转页(20度,冷气)26.ucharcode fengliang[][5]={{0x28,0x08,0x00,0x50,0x02},{0x19,0x08,0x00,0x50,0 x02},uchar code mode[][5]={ {0x58,0x00,0x00,0x50,0x02},{0x59,0x04,0x00,0x50,0x02},{0x5a,0x04,0x00,0x50,0x02},{0x5b,0x04,0x00,0x50,0x02}}; //自动,冷气,除湿,送风/*ucharcode 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();29.30.31. 32. 33. 34. 35.36.37. 38. 39.40.41. 42.43.44.45.46.47.48.49.50.51.52.53.54.55.void ir_out1() // 启动和关闭57.send_precode(180,90);58.send_8bit_code(on_or_off[switch_value][0]);59.send_8bit_code(on_or_off[switch_value][1]);60.send_8bit_code(on_or_off[switch_value][2]);61.send_8bit_code(on_or_off[switch_value][3]);62.send_4bit_code(on_or_off[switch_value][4]);63.〃send_final_code();64.// key_value=0;65.switch_value++;66.if(switch_value==6){ switch_value=0; }67.67.}68.void ir_out2() //wendu--69.{71.70.send_precode(180,90);71.send_8bit_code(wendu[wendu_value][0]);72.send_8bit_code(wendu[wendu_value][1]);73.send_8bit_code(wendu[wendu_value][2]);74.send_8bit_code(wendu[wendu_value][3]);75.send_4bit_code(wendu[wendu_value][4]);76.send_final_code();77.wendu_value--;78.if(wendu_value==0) {wendu_value=15;}81.79.}80.void ir_out3() 〃wendu++81.{82.send_precode(180,90);83.send_8bit_code(wendu[wendu_value][0]);84.send_8bit_code(wendu[wendu_value][1]);85.send_8bit_code(wendu[wendu_value][2]);86.send_8bit_code(wendu[wendu_value][3]);87.send_4bit_code(wendu[wendu_value][4]);88.send_final_code();89.wendu_value++;90.if(wendu_value==15) { wendu_value=O;}91.}92.void ir_out4()//mode choose93.{94.send_precode(180,90);95.send_8bit_code(mode[mode_value][0]);96.send_8bit_code(mode[mode_value][1]);97.send_8bit_code(mode[mode_value][2]);98.send_8bit_code(mode[mode_value][3]);99.send_4bit_code(mode[mode_value][4]);100.send_final_code();101.mode_value++;102.if(mode_value==4)103.{ mode_value=0;}107.104.}105.void ir_out5() // 转叶106.{107.send_precode(180,90);108.send_8bit_code(zhuanye[zhuanye_value][0]); 109.send_8bit_code(zhuanye[zhuanye_value][1]); 110.send_8bit_code(zhuanye[zhuanye_value][2]); 111.send_8bit_code(zhuanye[zhuanye_value][3]); 112.send_4bit_code(zhuanye[zhuanye_value][4]); 113.send_final_code();114.zhuanye_value++;115.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;}}//============================================void delayms(unsigned char ms){unsigned char i;while(ms--){for(i=0;i<120;i++){};}}void Timerlnit(){EA=1;ET0=1;TMOD=0X01;TH0=0XfF;TL0=221; //50UST2C0N=0x00; 120.121.122.123.124.125.126.127.128.129.130.131.132.133.134.135.136.137.138.139.140.141.142.143.144.145.146.147.148.149.150.151.152.T2MOD=0x02; //enable T2's wave output through T2 pin(P10) 153.RCAP2H=(65536-11059/38/4)>>8; //output frequency is 38KHz 154.RCAP2L=(65536-11059/38/4)&0 xff;155.}156.void TransmittPulse()157.{158.enTransmitt;159.// ir=0;160.TR0=1;161.TR2=1;162.}163.void TransmittLow()164.{165.//ir=1;166.TR0=1;167.disTransmitt;168.TR2=0;169.IR38k=1;170.}171.void endTransmitt()172.{173.//ir=0;174.TR0=0;175.TR2=0;176.IR38k=1; //JIEZHI177.}178.void send_logic0(unsigned int s_cnt_1,unsigned int s_cnt_2) 179.{180.set_count=s_cnt_1;//181.TransmittPulse();182.count =0;184.while(count<set_count)185.;186.endTransmitt();187.〃ir=1;188.set_count=s_cnt_2;//11;〃189.//ir=1;190.count =0;191.TransmittLow();192.192.while(count<set_count)193.;194.endTransmitt();195.}196.void send_logic1(unsigned int s_cnt_1,unsigned int s_cnt_2) 197.{198.set_count=s_cnt_1;//199.TransmittPulse();201.200.count =0;203.201.while(count<set_count)202.;203.endTransmitt();204.//ir=1;205.//=========================206.set_count=s_cnt_2;//32;〃207.//ir=1;208.count =0;212.209.TransmittLow();214.210.while(count<set_count)endTransmitt();}void send_precode(unsigned int s_cnt_1,unsigned int s_cnt_2) {set_count =s_cnt_1;//180;〃 9MSTransmittPulse(); //start send pulsecount =0;while(count<set_count) {;} endTransmitt(); set_count =s_cnt_2;//90;//4.5MS count =0;TransmittLow();while(count<set_count){;}endTransmitt();}void send_final_code(){set_count=28;//count =0;TransmittPulse(); while(count<set_count) endTransmitt();}void send_8bit_code(uchar value)216. 217. 218. 219. 220. 221. 222. 223.224.225.226.227.228.229.230.231.232.233.234.235.236.237.238.239.240.241.242.243. 244. 245.uchar i,temp;temp=value;for(i=0;i<8;i++){if(temp&0x01) sendl_logic1(11,32); //1.68ms else send_logic0(11,11); //600UStemp=temp>>1;}}void send_4bit_code(uchar value){uchar i,temp;temp=value;for(i=0;i<4;i++){if(temp&0x01) sendd_logic1(11,32); //1.68mselse send_logic0(11,11); //600UStemp=temp>>1;}}//============================主函数======================== void main(){TimerInit();while(1){key_value=KeyScan();switch(key_value){case 1:ir_out1();delayms(200);break; //248. 249. 250. 251. 252. 253. 254. 255.256.257.258.259.260.261.262.263.264.265.266.267.268.269.270.271.272.273.274. 275. 276. 277. 开和关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;280.281.282.283.284.285.286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297.298. 299.300.301.302.303.304.305.306.307.308.309.312. while(!key1); 313. }314. if(key2==0) 315. {316. delayms(20); 317. if(key2==0) 318. {319. return 2; 320. }321. while(!key2); 322. }323.324. if(key3==0) 325. {326. delayms(20); 327. if(key3==0) 328. {329. return 3; 330. }331. while(!key3); 332. }333. if(key4==0) 334. {335. delayms(20); 336. if(key4==0) 337. {338. return 4; 339. }340. while(!key4); 341. }342. if(key5==0)344. delayms(20); 345. if(key5==0) 346. {347. return 5; 348. }349. while(!key5); 350. }351. if(key6==0) 352. {353. delayms(20); 354. if(key6==0) 355. {356. return 6; 357. }358. while(!key6); 359. }360. return 0 ; 361. }。
红外线遥控编码解码控制

红外遥控具有结构简单,制作方便,成本低廉,抗干扰能力强,工作可靠性高等一系列优点。
同时,由于红外遥控器件,工作电压低,功耗小,外围电路简单,因此,在日常生活中广泛应用,如彩电,录像机,音响空调,风扇,即其它的小型电器上。
遥控距离在几米到十几米。
波长在0.76um~1000um的光波为红外光(线),红外光为不可见光。
红外光按波长范围分为近红外、中红外、远红外、极红外4类。
红外线遥控是利用近红外光传送遥控指令的,波长为0.76um~1.5um。
用近红外作为遥控光源,是因为目前红外发射器件(红外发光管)与红外接收器件(光敏二极管、三极管及光电池)的发光与受光峰值波长一般为0.8um~0.94um,在近红外光波段内,二者的光谱正好重合,能够很好地匹配,可以获得较高的传输效率及较高的可靠性。
一、红外遥控系统的构成:主要由两大部分构成: 红外编码发射部分,红外解码接收部分。
红外发射部分主要由,键盘,红外编码芯片(sc6122/ht6122),电源,红外发射管组成。
红外解码部分:由红外接收电路、红外解码、电源和应用电路组成。
红外遥控接收器的主要作用是将遥控发射器发来的红外光信好转换成电信号,再放大、限幅、检波、整形,形成遥控指令脉冲,输出至遥控微处理器。
其中红外接收电路主要是接收部分的红外接收管是一种光敏二极管(现在常用一体化红外接收头)。
三、红外遥控的编码与解码常用的编码芯片HT6122,遥控器的按键信息由编码芯片编码后,以38KHZ的载频,经红外发射管,向外发射。
有引导码,16为用户编码,按键编码,按键反码构成。
引导码:引导码,也称引导脉冲,一般由高电平1和低电平0的脉冲组成,高电平9ms,低电平4.5ms用来标志遥控编码脉冲信号的开始,使遥控接收器能由此判断出所接收的信号是干扰还是系统的遥控代码。
用户码:通常由8位原码和8位反码组成。
它用来指示遥控系统的种类,以区别其它遥控系统,防止各遥控系统的误动作。
红外线遥控器NEC编码

FAE Service Department designed
紅外遙控器的常見協議分析
常用的红外线信号传输协议有 ITT 协议、 NEC 协议、 Nokia NRC 协议、 Sharp 协议、 Philips RC-5 协议、Philips RC-6协议, Philips RECS-80协议,以及 Sony SIRC 协议等。 協議組成 :一般由引導碼 ,用戶碼,資料碼,重複碼或資料碼的反碼和 結束碼構成。 載波:常用的有33K,36K,36.6K,38K,40K,56K,無載波 占空比:常用的有1/3,1/2,不常用1/4 調製方式:脈寬調製,相位調製,脈衝位置調製
紅外線的基本特性
1. 紅外光按波長範圍分為近 紅外、中紅外、遠紅外、 極紅外4類。 紅外線遙控是利用近紅外 光傳送遙控指令的,波長 為0.76um~1.5um。 用近紅外作為遙控光源, 是因為目前紅外發射器件 與紅外接收器件的發光與 受光峰值波長一般為 0.8um~0.94um,這樣可以 獲得較高的傳輸效率及較 高的可靠性。
HT48R09E4學習型遙控器軟件流程
開始
1. 2. 3.
RAM初始化:將RAM的内部清空。 睡眠程序:IC進入HALT模式。 鍵盤掃描程序:用於取鍵值。有鍵按 下,進入鍵盤掃描,沒有鍵按下,進 入省電模式。 其他程序:定時重發,保留給用戶, 用戶根據自己的需要加入程序,配合 鍵盤掃描程序使用。 延時程序:客戶自己加入的延時程 序Part numbers including "C" are mask version devices while "R" are OTP devices.
Part No.
Encoder/Decoder
VDD
mz-1000a+万能空调遥控器代码表

mz-1000a+万能空调遥控器代码表摘要:1.引言:介绍mz-1000a+万能空调遥控器2.遥控器代码表:列出mz-1000a+万能空调遥控器的代码表3.代码表的使用:说明如何使用代码表进行空调遥控器的操作4.结论:总结mz-1000a+万能空调遥控器的特点和优势正文:一、引言在炎热的夏季和寒冷的冬季,空调是我们生活中不可或缺的电器。
随着科技的发展,遥控器也变得越来越智能化。
今天,我们要介绍的就是一款具有强大功能的空调遥控器——mz-1000a+万能空调遥控器。
二、遥控器代码表mz-1000a+万能空调遥控器具有一个完整的代码表,这个代码表包括了各种品牌和型号空调的遥控代码。
这些代码可以帮助用户轻松地控制他们的空调,无论他们使用的是哪种品牌或型号的空调。
以下是部分代码表的示例:- 品牌代码:美的(Midea)、格力(Gree)、海尔(Haier)等- 型号代码:空调型号、空调类型(冷暖、单冷等)- 功能代码:开关机、模式、风速、温度等三、代码表的使用使用mz-1000a+万能空调遥控器的代码表非常简单。
首先,用户需要找到他们空调的品牌和型号对应的代码。
然后,他们可以将这些代码输入到遥控器中,这样遥控器就可以控制他们的空调了。
例如,如果用户使用的是美的品牌的空调,他们可以将“Midea”输入到遥控器的品牌代码中,然后将相应的型号代码和功能代码输入到遥控器中。
这样,用户就可以使用遥控器来控制他们的空调了。
四、结论mz-1000a+万能空调遥控器具有强大的功能和简单的使用方法。
它不仅可以帮助用户轻松地控制他们的空调,而且还可以适用于各种品牌和型号的空调。
avr学习型空调红外遥控器代码IRD-1V21

avr学习型空调红外遥控器代码作者:佚名来源:本站原创点击数:24 更新时间:2010年08月15日【字体:大中小】/***************************************//* Target : avr单片机 ATmega8l */ /* Crystal: 3.6864Mhz *//* 2007.8.20 *//* 外国人写的学习型空调红外遥控器的源程序*//* AT24C512里存储2个键的时间数据, *//* 学习和发射时都通过串口输出 *//* 按键学习和串口学习都可以/*带多键盘通讯接口/***************************************///IRD-1V20 模块地址写EEPROM(2)#include <iom8v.h>#include <macros.h>#include <string.h>#include <eeprom.h>#define SYSCLK 3686400UL#define uchar unsigned char#define uint unsigned int#define ulint unsigned long#define IRD_START TCCR2=0X19#define IRD_STOP TCCR2=0X00/* I2C device slave address 1 A0、A1、A2--GND == 0xa02 A0、A1、A2--VCC == 0xa6 */ /* 24c512 =65536 bytes,anykey include <1000 bytes */#define devicecode 0x01#define TWI_SLA_24C512 0xa0//#define address 0x02//遥控器地址//#define TWI_SLA_PCF8563 0xa2#define MAX_ITER 200#define TW_WRITE 0#define TW_READ 1// MT#define TW_REP_START 0x10#define TW_START 0x08#define TW_MT_ARB_LOST 0x38#define TW_MT_SLA_ACK 0x18#define TW_MT_SLA_NACK 0x20#define TW_MT_DATA_ACK 0x28#define TW_MT_DATA_NACK 0x30// MR#define TW_MR_SLA_ACK 0x40#define TW_MR_SLA_NACK 0x48#define TW_MR_ARB_LOST 0x38#define TW_MR_DATA_NACK 0x58#define TW_MR_DATA_ACK 0x50#define led_off PORTC|=(1<<PORTC2)#define led_on PORTC&=(~(1<<PORTC2)) #define TX485 PORTD|=(1<<PORTD7);#define RX485 PORTD&=(~(1<<PORTD7));uchar end,study_key;uchar data_buf[700];//uchar data_buf11[100];uchar modify_buf[6];//键值特征暂存区uchar study_key_value=0;uchar send_key_value=0;uchar scon_key_value=0;uchar rece_begin=0;uint timer_over_cnt,pulse_in_cnt;uchar send_end;uint save_start,send_start;//uint pp;uchar study_num,send_num;uint num,lenth;uchar sum=0,rec_end;//len1;uint s_save_start;uchar s_study_num;uint count0,count1;uint rece_num=0;//接受数据计数;uchar rece_buf[8];uchar rece_ok=0;uchar ctrl_flag=0;uchar get_flag=0;uchar set_flag=0;uchar amend_flag=0;uchar scon_save[8];uchar scon_err=0;uchar scon_err_flag=0;uchar key_on_flag=0;uchar key_off_flag=0;uchar ord_flag=0;uchar MKaddress;void EEPROM_write( unsigned int Address, unsigned char UcData) {while(EECR & (1<<EEWE));EEAR=Address;EEDR=UcData;EECR|=(1<<EEMWE);EECR|=(1<<EEWE);}unsigned char EEPROM_read(unsigned int Address)while(EECR & (1<<EEWE));EEAR=Address;EECR|=(1<<EERE);return EEDR;}void watchdog_init(void){WDR(); //this prevents a timout on enablingWDTCR=0x1F;NOP();WDTCR=0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs }void Delay_mSec(uint n){uchar i;while(n--){for(i=0;i<125;i++);WDR();}}void Delay_us(uchar n){uchar i;for(i=0;i<n;i++);void int0_init(void){MCUCR=0x01;// MCUSR=0;}void uart_init(void)//bps=38400,UCSRA=0X02;bps=19200,UCSRA=0;{UCSRB = 0x00; //disable while setting baud rateUCSRA = 0x01;UCSRC = 0x86;//0x06;UBRRL = 0x0b; //set baud rate loUBRRH = 0x00; //set baud rate hiUCSRB = 0x9c;}int TWI_read_bytes(uchar SLAADDR,uint eeaddr, int len, uchar *buf,uchar slavtype)uchar sla, twcr,n = 0;int rv = 0;/* patch high bits of EEPROM address into SLA */WDR();sla = SLAADDR ;restart:if (n++ >= MAX_ITER) return -1;begin:TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN); /* send start condition */ while ((TWCR & (1<<TWINT)) == 0) ; /* wait for transmission */switch ((TWSR&0xf8)){case TW_REP_START: /* OK, but should not happen */case TW_START:break;case TW_MT_ARB_LOST:goto begin; /* Note [7] */default:return -1; /* error: not in start condition */ /* NB: do /not/ send stop condition */ }WDR();TWDR = sla | TW_WRITE;TWCR = (1<<TWINT)|(1<<TWEN); /* clear interrupt to start transmission */while ((TWCR & (1<<TWINT)) == 0) ; /* wait for transmission */switch ((TWSR&0xf8)){case TW_MT_SLA_ACK:break;case TW_MT_SLA_NACK:goto restart; /* nack during select: device busy writing */case TW_MT_ARB_LOST:goto begin; /* re-arbitrate */default:goto error; /* must send stop condition */}if(slavtype==2){TWDR = eeaddr>>8; /* high 8 bits of addr */TWCR = (1<<TWINT) | (1<<TWEN); /* clear interrupt to start transmission */ while ((TWCR & (1<<TWINT)) == 0) ; /* wait for transmission */switch ((TWSR&0xf8)){case TW_MT_DATA_ACK:break;case TW_MT_DATA_NACK:goto quit;case TW_MT_ARB_LOST:goto begin;default:goto error; /* must send stop condition */}}WDR();TWDR = eeaddr; /* low 8 bits of addr */TWCR = (1<<TWINT) | (1<<TWEN); /* clear interrupt to start transmission */while ((TWCR & (1<<TWINT)) == 0) ; /* wait for transmission */由于代码太长,本文篇幅有限,完整本版的代码从这里下载/ziliao/file/IRD-1V21.rar这是从一个外国论坛上搞下来的,已经测试通过,晶振使用外接的3.6864Mhz,内部rc晶振可能不太稳定。
单片机对不同品牌空调红外遥控代码

单片机对不同品牌空调红外遥控代码【原创实用版】目录1.单片机红外遥控原理及应用2.不同品牌空调红外遥控代码的差异3.解码原理及方法4.实践案例与注意事项5.总结与展望正文一、单片机红外遥控原理及应用红外遥控技术是一种广泛应用于家电遥控器的技术,它通过红外发射器发射红外光,再由红外接收器接收红外光,从而实现信息的传递。
单片机作为核心的控制芯片,可以通过编程实现红外遥控的解码和编码。
在众多应用场景中,单片机红外遥控技术在空调遥控器领域表现得尤为突出。
二、不同品牌空调红外遥控代码的差异由于不同品牌的空调在设计时采用了不同的遥控器编码方案,因此它们之间的红外遥控代码存在差异。
这些代码通常由品牌和型号信息、用户码、数据码等组成。
为了实现对不同品牌空调的红外遥控,我们需要对这些代码进行解码和分析。
三、解码原理及方法解码原理主要基于红外遥控器的编码和解码原理。
在接收到红外光信号后,单片机首先对其进行解调,然后提取出遥控器编码方案中的品牌和型号信息、用户码、数据码等。
解码方法通常包括查找编码表、使用专用解码芯片等。
四、实践案例与注意事项在实际操作过程中,我们可以通过编写程序实现对不同品牌空调的红外遥控。
以某品牌空调为例,首先需要找到该品牌空调的遥控器编码表,然后编写程序实现对红外光信号的解调,并根据编码表提取出相应的用户码和数据码。
在编程过程中,需要注意红外接收头的连接、编程环境的配置等问题。
五、总结与展望随着科技的发展,单片机红外遥控技术在家电控制领域的应用越来越广泛。
通过研究不同品牌空调的红外遥控代码,我们可以实现对多种空调设备的遥控,从而提高生活质量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、基本格式
起始码(S)+35位数据码+连接码(C)+32位数据码
二、电平规范
起始码:9000us低电平+4500us高电平
连接码:600us低电平+20000us高电平
数据0:600us低电平+600us高电平
数据1:600us低电平+1600us高电平
三、数据编码
3.1
表一前35位数据码
保留
左右
扫风
保留
温度显示
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
0
0
0
0
0
0
0
0
0
0
0
节能
校验
3.3
需要注意的是,所有数据都按照逆序方式递增。
模式字段定义
表三模式字段定义
自动
制冷
除湿
送风
制热
0X1
0X9
0X5
0XD
0X3
四、校验计算
校验码=【(模式-1)取四位二进制逆序+(温度-16)+2+左右扫风+换气+节能】取二进制后四位的逆序。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
模式
开关
风速
扫风
睡眠
温度
定时
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
0
0
0
1
0
1
0
定时
超强
灯光
健康
干燥
换气
保留
3334350 Nhomakorabea1
0
保留
3.2
表二后32为数据码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
0
0
0
0
0
0
0
0
1
0
0
上下
扫风