红外解码与一些标志位的应用

上传人:简****9 文档编号:110831307 上传时间:2019-10-31 格式:DOC 页数:8 大小:15.76KB
返回 下载 相关 举报
红外解码与一些标志位的应用_第1页
第1页 / 共8页
红外解码与一些标志位的应用_第2页
第2页 / 共8页
红外解码与一些标志位的应用_第3页
第3页 / 共8页
红外解码与一些标志位的应用_第4页
第4页 / 共8页
红外解码与一些标志位的应用_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《红外解码与一些标志位的应用》由会员分享,可在线阅读,更多相关《红外解码与一些标志位的应用(8页珍藏版)》请在金锄头文库上搜索。

1、#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_life

2、test=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

3、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; /开总中

4、断 /*红外解码函数处理*/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) i

5、nterrupt 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)/红外键值散转程序 swi

6、tch(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

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

8、eak;/自动化 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();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号