keilc51红外遥控解码程序.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
keilc51红外遥控解码程序.doc

keil c51红外遥控解码程序 字体大小: 小 中 大 作者:大炮 ??? 来源: ??? 日期:2008-01-21 ??? 点击:0 ??? 本keil c51程序适用uPC1621/uPC1622及兼容的红外遥控器芯片,占用外部中断0和定时器1,以中断方式解码,节省系统资源,以查询方式检测遥控信号是否有效. 解码思路: ??? 红外线经一体化接受头解码放到后送到单片机的外部中断0,单片机设置外部中断下降沿触发,T0和T1为16位定时器,T0在系统启动后定时5ms.T1在外部中断0启动后开始定时,初值为0,每次在INT0中断后先读T1计数值,并重设初值为0,而且判断T1的计数值, 代码 //Fosc=11.0592MHz ?? //?states?for?and?variables?IR?data?processing?; ?? typedef?enum{? ?? ?????????????IR_idle,? ?? ?????????????IR_waitstart,?????????? ?? ?????????????IR_getaddr,?????????? ?? ?????????????IR_getaddrinv,?????????? ?? ?????????????IR_getdata,?????????? ?? ?????????????IR_getdatainv?????????? ?? ????????????}_IRstate;??????????????? ?? ?? _IRstate?IRstate?=?IR_idle; ?? ?? unsigned?char?IRaddr=0xff; ?? unsigned?char?_IRaddr=0xff; ?? unsigned?char?IRdata=0xff; ?? unsigned?char?_IRdata=0xff; ?? unsigned?char?IR_repeat=0; ?? unsigned?char?IR_ready=0; ?? unsigned?char??IR_poweron=0; ?? //bit?ir_done=0; ?? //?time?constants ?? unsigned?int?IRtimer=0;?//?IR?timeout? ?? ?? //cpu初始化 ?? void?cpu_init(void) ?? { ?? ????TMOD=0X11;?//?T0?and?T1?十六位定时???????????????? ?? ????TH0=0xee;??//fosc=11.0592M,timer=5ms ?? ????TL0=0x00;? ?? ????TR0=1;?//?run?timer?0; ?? ????TF0=0; ?? ?? ????ET0=1;??//?enable?tmr?0?overflow?interrupt ?? ????IT0=1;?//?int0?edge?sensitive ?? ????EX0=1;?//??enable?int0 ?? ????EA=1;???//?global?interupt?enable? ?? } ?? ?? //T0中断 ?? void?tmrint()?interrupt?1 ?? { ?? ????TH0=0xee; ?? ????TL0=0x00;? ?? ????if?(IRtimer)?????//IR接收超时 ?? ????????--IRtimer;?//? ?? ????else?? ????{ ?? ????????IRstate=IR_idle; ?? //????????IR_poweron=0; ?? ????} ?? } ?? ?? //Fosc=11.0592MHz ?? #define?msec_12p5??0x2d00 ?? #define?msec_15??0x3600 ?? #define?msec_9??0x2066 ?? //#define?msec_9??0x1066 ?? #define?msec_2p5??0x900 ?? #define?msec_0p9??0x33d ?? #define?msec_1p68??0x610 ?? ?? ?? //void?IRint()?interrupt?0(void) ?? ?? //When?the?IR?receive?pin?goes?low?and?interrupt?is?generated? ?? //?IR?is?collected

文档评论(0)

zhoubingchina + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档