红外解码与一些标志位的应用.doc_第1页
红外解码与一些标志位的应用.doc_第2页
红外解码与一些标志位的应用.doc_第3页
红外解码与一些标志位的应用.doc_第4页
红外解码与一些标志位的应用.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#ifndef _RED_WIRE_H_#define _RED_WIRE_H_#include#define uchar unsigned char#define uint unsigned intunsigned char irtime; /红外用全局变量unsigned char IRcord4;unsigned char irdata33;/*定义变量*/uchar irpro_ok,irok,shuiwen_flag=0,fengwen_flag=0,zhuowen_flag=0,shuiya_flag=0,pentou_flag=0,baochi_flag=1; flag_lifetest=1;/* 定时器0初始化*/void TIM0init(void)/定时器0初始化 TMOD=0x22; TH1=0XFD;/定时器1工作方式2,TH1为重装值,TL0是初值。 TL1=0XFD; SM0=0;/设置10位异步收发(8位数据位),波特率可变(由定时器1溢出率控制) SM1=1; TR1=1; ES=1; /打开串行口中断 /定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x00; /重载值 TL0=0x00; /初始化值 ET0=1; /开定时器中断 TR0=1; /* 定时器0中断服务函数*/void tim0_isr (void) interrupt 1 using 1 /定时器0中断服务函数 irtime+; /用于计数2个下降沿之间的时间 void delay1ms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);/*蜂鸣器*/ void beef1()BEE=1;delay1ms(50);BEE=0; /*蜂鸣器*/ void beef2()BEE=1;delay1ms(200);BEE=0;/* 外部中断初始化 */void EX0init(void) IT0 = 1; /指定外部中断0下降沿触发,INT0 (P3.2) EX0 = 1; /使能外部中断 EA = 1; /开总中断 /*红外解码函数处理*/void Ircordpro(void) /红外码值处理函数 unsigned char i, j, k; unsigned char cord,value; k=1; for(i=0;i4;i+) /处理4个字节 for(j=1;j7) /大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差 value=value|0x80; else value=value; if(j1; k+; IRcordi=value; value=0; irpro_ok=1; /处理完毕标志位置1 /* 外部中断0函数*/void ex0_isr (void) interrupt 0 using 0 /外部中断0服务函数 static unsigned char i; /接收红外信号处理 static bit startflag; /是否开始处理标志位 if(startflag) if(irtime=33) /引导码 TC9012的头码,9ms+4.5ms i=0; irdatai=irtime; /存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i+; if(i=33) irok=1; i=0; elseirtime=0;startflag=1; /*红外键值处理*/ void Ir_work(void)/红外键值散转程序 switch(IRcord2)/判断第三个数码值 /* 老摇控器*/* case 0x13:num_change_012(0);break;/0 循环增加 case 0x17:num_change_012(1);break;/1 case 0x1B:num_change_012(2);break;/2 case 0x1F:num_change_3456(3);break;/3 单向增加或递减/ case 0x02:num_change_3456(4);break;/4/ case 0x06:num_change_3456(5);break;/5 case 0x0A:num_change_3456(6);break;/6 case 0x0E:send(50);break;/7 单个指令。 /清洗 case 0x12:send(51);break;/8/女性清洗 case 0x16:send(52);break;/9/烘干 case 0x0D:send(53);break;/10 /移动冲洗 case 0x11:send(54);break;/11 停止 case 0x15:send(55);break;/12/夜灯省电 case 0x19:send(56);break;/13/冲水 case 0x18: send(60);break;/暂时按键 case 0x1c: send(61);break;/自动化 case 0x14: send(62);break;/开启 */*新摇控器*/ case 0x01:shuiwen_flag=1;/0 循环增加 ,水zhuowen_flag=0;fengwen_flag=0;shuiya_flag=0;pentou_flag=0;beef1();break; case 0x02:zhuowen_flag=1;/1 座shuiwen_flag=0;fengwen_flag=0;shuiya_flag=0;pentou_flag=0;beef1();break; case 0x03:fengwen_flag=1;/2 风zhuowen_flag=0;shuiwen_flag=0;shuiya_flag=0;pentou_flag=0;beef1(); break; case 0x06:shuiya_flag=1;/5水压加减、zhuowen_flag=0;fengwen_flag=0;shuiwen_flag=0;pentou_flag=0;beef1(); break; case 0x05:pentou_flag=1;/喷头zhuowen_flag=0;fengwen_flag=0;shuiwen_flag=0;shuiya_flag=0;beef1(); break; /*加的部分*/ case 0x57:if(shuiwen_flag=1) /水温加。 num_change_012(0); else if(zhuowen_flag=1) /座温加 num_change_012(1); else if(fengwen_flag=1) /风温加 num_change_012(2);else if(shuiya_flag=1) /水压加 num_change_3456(6);else if(pentou_flag=1) num_change_3456(3); break; /*减的部分*/ case 0x1A:if(shuiwen_flag=1) /水温加。 num_change_012(70); else if(zhuowen_flag=1) /座温加 num_change_012(71); else if(fengwen_flag=1) /风温加 num_change_012(72);else if(shuiya_flag=1) /水压加 num_change_3456(5);/5减else if(pentou_flag=1) /减num_change_3456(4); break; case 0x04: if(baochi_flag=1) send(74);/3 单向增加或递减 baochi_flag=0; beef2();elsesend(75);baochi_flag=1; break;/ case 0x05:num_change_3456(4);break;/4 case 0x08:send(50);break;/7 单个指令。 /清洗 case 0x09:send(51);break;/8/女性清洗 case 0x0A:send(52);break;/9/烘干 case 0x00:/if(flag2=0)/ send(53);/10 /移动冲洗/*flag2=flag2;elsesend(65);flag2=flag2;*/ break; case 0x12:send(54);break;/11 停止 case 0x0F:send(55);break;/12/夜灯省电 case 0x0B:send(56);break;/13/冲水 case 0x1B: if(flag1=0) send(60); /暂定,flag1=flag1; else /开户send(61);flag1=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论