液晶显示遥控程序.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
液晶显示遥控程序.doc

带中文字库12864LCD液晶+红外解码遥控显示程序(调试可用) #include reg52.h #include global.h #include intrins.h #include Lcd.h void Inf_Dec(); void Inf_Con(uchar Command); void Manu_Display(); void Auto_Display(bit eN); //自动显示 //外部中断初始化 void Int0_Init() { EX0=1; IT0=1; //作为按键接收 EX1=1; IT1=1; //作为红外接收 PX0=1; EA=1; } // 定时器初始化 void Time0_Init() //12M晶振 { TMOD=0X22; //T1,T2分别为八位自动重装 TH0=256-184; //定时100us TL0=256-184; ET0=1; TR0=0; //等待接收使能 EA=1; } // 串口初始化 void Serial_Init() { SCON=0X50; TMOD=0X22; ES=1; TH1=0XFA; TL1=0XFA; EA=1; TR1=1; } // 串口发送函数 void Serial_Send(uchar ch) { SBUF=ch; while(TI==0); TI=0; } // 系统初始化 void Sys_Init() { Int0_Init(); Time0_Init(); Serial_Init(); LCD_Init(); } // 延时函数 void Dlay_1S(uint t) { uint i,j; for(i=0;it*100;i++) for(j=0;j10000;j++); } void main(void) { Sys_Init(); // 系统初始化 while(1) { if( Irf_En (pCount = 34) ) // 仅在接收完毕执行一次 { Inf_Dec(); // 红外测试和解调 Inf_Con(Irf_Data); // 红外遥控 Irf_En=0; Auto_Display(Flag_AutoFlag_State); // 自动显示,界面切换和字幕滚动 } // 自动显示时,按键是失效的,有待于改进 } } // 脉宽捕捉计数 void Time0() interrupt 1 { tCount++; } // 红外接收脉宽捕捉 void Int0() interrupt 0 { TR0=0; //关闭计数 Led1=1; if( tCount=88 tCount93 ) //计数复位 { pCount=0; IC[pCount++]=tCount; //记录引导码 测试结果:引导码90,91 数据码11,22 tCount=0; Irf_En=1; //启动解调函数jt(); Led1=0; } else { if(pCount39) //防止溢出 { IC[pCount++]=tCount; tCount=0; } else { IC[pCount]=tCount; tCount=0; } } TR0=1; } /**********************红外解码**********************/ void Inf_Dec() { uint Buf=0; uchar i,D[3]; TR0=0; for(i=0;i40;i++) { if(i=17i33) //测试数据码的正确性i=17i33 { //测试全部码的正确性i=00i40 Buf=1; if(IC[i]15) //T2ms:1 T2ms:0 { //原码*256+反码 Buf=Buf+1; } } IC[i]=0; } D[0]=Buf/256; // 原码 D[1]=~(Buf%256); // 反码还原 if(D[0]==D[1]) // 接收码校检 { Irf_Data=D[1]; } else { Irf_Data=0xff; // 误码

文档评论(0)

shengyp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档