



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*技术支持*/*应用与51系列、STC系列、经本人测试无误*/#include #include delay.h/此处省去#include lcd.h/此处省去/sbit IR=P11; /红外接口标志char code Tab16=0123456789ABCDEF;char data TimeNum= ;/*/* 函数声明 */*/unsigned char irtime;/红外用全局变量bit irpro_ok,irok;unsigned char irdata33; /33个高低电平的时间数据unsigned char IRcord4; /处理后的红外码,分别是 客户码,客户码,数据码,数据码反码void Ir_work(void);void Ircordpro(void);/*/* 红外解码函数处理 */*/void Ircordpro(void)/红外码值处理函数/irok=1 unsigned char i, j, k; unsigned char cord,value; k=1; for(i=0;i4;i+) /处理4个字节 for(j=1;j7)/0.256*7=1.79ms,大于此为高电平,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差 value=value|0x80; else /低电平 value=value; if(j1; k+; IRcordi=value; /4个字节的数据 value=0; irpro_ok=1;/处理完毕标志位置1 /*/* 红外键值处理 */*/void Ir_work(void) /红外键值散转程序 irpro_ok=1 TimeNum0 = TabIRcord0/16; /处理客户码并显示 TimeNum1 = TabIRcord0%16; TimeNum3 = TabIRcord1/16; /处理客户码并显示 TimeNum4 = TabIRcord1%16; TimeNum6 = TabIRcord2/16; /处理数据码并显示 TimeNum7 = TabIRcord2%16; TimeNum9 = TabIRcord3/16; /处理数据反码并显示 TimeNum10 = TabIRcord3%16; WriteCMD(0x01); WriteCMD(0x80); LCD_write_string(code:);/显示处理过后的码值 delay(1); WriteCMD(0x80+5); LCD_write_string(TimeNum);/显示处理过后的码值 delay(1); WriteCMD(0x80+40); LCD_write_string(KEY:); WriteCMD(0x80+0x40+0x04); switch(IRcord2) case 0xb6:LCD_write_string(1);break;case 0x01:LCD_write_string(2);break;case 0x02:LCD_write_string(3);break;case 0x28:LCD_write_string(Up);break;case 0x2c:LCD_write_string(Down);break;case 0x2e:LCD_write_string(Left);break;case 0x2a:LCD_write_string(Right);break;case 0x17:LCD_write_string(Power);break;case 0x21:LCD_write_string(Ok);break;default:break;delay(1); irpro_ok=0; /处理完成后清楚标志位/*/* 定时器2初始化 */*/void Time2_init()EA=0;T2MOD &= 0xFC; /* T2OE=0;定时器2输出不允许 */T2MOD |= 0x00; /* DCEN=0才能引起EXF2的中断*/ EXF2=0; /* reset flag 定时器2外部标志位清除*/ TF2=0;/*清除T2的溢出标志*/ TCLK=0;RCLK=0;/* disable baud rate generator 不用于波特率发生器*/ EXEN2=1; /* ignore events on T2EX 视T2EX(P1.1)端信号有效、允许T2EX产生捕获*/ TH2 = (65536-256)/256; /*T2初始值*/ TL2 = (65536-256)%256;C_T2=0; /* timer mode 定时模式*/ CP_RL2=1; /* reload mode 不重载模式-要捕获*/ ET2=1; /* enable timer2 interrupt 允许T2中断*/ TR2=1; /* timer2 run 开始计时*/ EA=1; /* interupt enable 中断允许*/ /*/void main(void) Time2_init(); LCD_init(); /初始化液晶 delay(1); while(1)/主循环 if(irok) /如果接收好了进行红外处理 Ircordpro(); irok=0; if(irpro_ok) /如果处理好后进行工作处理,如按对应的按键后显示对应的数字等 Ir_work(); /*/* 定时器2中断服务函数及其捕获服务程序 */*/void Time2_EXF2 (void) interrupt 5 /T2EX中断static unsigned char i; /接收红外信号处理static bit startflag; /是否开始处理标志位if(TF2)irtime+; /有多少个256us、用于计数2个下降沿之间的时间TH2 = (65536-256)/256; /*T2重载值*/ TL2 = (65536-256)%256;TF2 = 0; /*手动清除T2的溢出标志*/if(EXF2)/* reset interrupt flag 复位中断标志位*/ if(startflag) if(irtime=33)/引导码 TC90
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 9350:2025 EN Corrosion of metals and alloys - Testing method of corrosion resistance for hafnium at high temperature and pressure
- 校园消防安全主题班会(3篇)
- 2025年小学生防溺水安全知识专项题及答案
- 2025年无人机应急巡检笔试题集与答案
- 2025年安全评价知识试题及答案
- 2025年法医类招聘面试模拟题及答案
- 2025年心理咨询师初级面试预测题集
- 2025年市场营销经理竞聘面试指南及模拟题答案全解析
- 2025年培训管理岗位面试模拟题及答案
- 2025年商标代理人业务水平考试模拟题及答案
- 《人为因素与航空法规》课件(共九章)
- 部编新课标培训课件
- 非工作时间行为协议
- 老年病人麻醉管理
- 2025年广西专业技术人员继续教育公需科目(一)答案
- 白细胞减少症和粒细胞缺乏
- CJ 41-1999工业企业水量平衡测试方法
- 地下矿山地压管理制度
- 藏文考试试题及答案
- 施工水电费合同协议书
- 车辆动力学分析考试试题及答案
评论
0/150
提交评论