《基于stc89c52单片机的红外学习型遥控器.doc》由会员分享,可在线阅读,更多相关《基于stc89c52单片机的红外学习型遥控器.doc(6页珍藏版)》请在三一文库上搜索。
1、基于stc89c52单片机的红外学习型遥控器在智能电视、网络机顶盒(电视盒子)上,常见的主流遥控器无外乎红外线、蓝牙两种遥控方式。蓝牙遥控器因其无需对准、可以绕弯控制、控制距离远等特点近年来越来越受到厂商的重视以及消费者的青睐,然而尽管如此,仍然有大量用户坚持使用红外线遥控,原因就是现阶段很多蓝牙遥控器存在诸多缺陷及问题,影响用户日常使用操作。很详细的红外学习型遥控器,储存在24c64中的汇编子程序,在你自己的设计中只要修改一下IO调用它就可以了,是本人的工程验证能学习市面常用的绝大部分红外线遥控器用的是stc89c52单片机,下面是汇编代码:;*;-AT24C64 CODE-;=ICSTAR
2、T: ;I2C 开始SETB SDANOPNOPNOPNOPSETB SCKNOPNOPNOPNOPCLR SDANOPNOPNOPNOPCLR SCKRET;=ICSTOP: ;I2C 结束CLR SDANOPNOPNOPNOPCLR SCKNOPNOPNOPNOPSETB SCKNOPNOPNOPNOPSETB SDARET;=ICACK: ;I2C 应答CLR SDANOPNOPNOPNOPSETB SCKNOPNOPNOPNOPCLR SCKRET;=NOACK: ;I2C 无应答SETB SDANOPNOPNOPNOPSETB SCKNOPNOPNOPNOPCLR SCKRET;=I
3、CREADBIT: ;I2C 读取一位SETB SDANOPNOPNOPNOPSETB SCKNOPNOPNOPNOPMOV C,SDACLR SCKRET;-ICREADACK:MOV R7,#200SETB SDANOPNOPNOPNOPSETB SCKNOPNOPNOPNOPREADACKS:JNB SDA,ACKENDDJNZ R7,READACKSSETB CCLR SCKRETACKEND:CLR CCLR SCKRET;=ICREADBYTE: ;I2C 读取一个字节MOV R7,#8READLOOP:LCALL ICREADBITRLC ADJNZ R7,READLOOPMOV R7,ARET;=ICWRITEBIT: ;I2C 写一位MOV SDA,CNOPNOPNOPNOPSETB SCKNOPNOPNOPNOPCLR SCKRET;=ICWRITEBYTE: ;I2C 写一个字节MOV A,R7MOV R7,#8WRITELOOP:RLC ALCALL ICWRITEBITDJNZ R7,WRITELOOPRET;=READAT:MOV A,R7 ;计算I2C地址MOV B,#208 ;144MUL ABMOV R2,BMOV R3,A