DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1462|回复: 0
打印 上一主题 下一主题

[家电] 多媒体投影机遥控器的PIC单片机仿真

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 18:23:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     当前,投影机已是高校多媒体教室的常规设备,但是由于使用频繁,人员又杂,投影机遥控器损坏及遗失的情况时有发生。因为学校用的投影机均为进口产品,遥控器很难配到,并且能买到的话价格也是异常昂贵。利用单片机仿真遥控器的功能,制作成本很低的投影机遥控器具有实用推广价值。制作投影机遥控器的关键是先要读出原投影机遥控器(同型号)的所有按键的控制码数据,然后做成按键控制码表格,当仿真时在按键操作下单片机将不同的控制码数据发射出去,达到遥控投影机的目的。
1 读遥控器按键码方法
1.1读遥控器按键码硬件电路
     如图1为单片机读投影机遥控键码的控制电路。单片机使用宏晶公司的STC12C5410,P1.6口灯用作读码状态的指示,灯亮代表读码状态。P1.7口灯用于指示遥控发射操作,闪烁时代表遥控码发射中,在读码状态下,当P1.6口灯灭而P1.7口灯亮时代表码已读入。第(1)脚为单片机的复位脚,采用简单的RC上电复位电路,(6)脚为外中断输入口,用于读码功能的转换控制,当按一下(6)脚口的开关时,系统进入中断读码状态。(8)脚用于红外线接收头的输出信号读入。(11)脚作为遥控器的红外线信号输出口,用于输出40KHz载波编码。(12)脚接遥控测试开关。(4)、(5)脚外接12M晶振。



      当按一下“学习”开关时,P1.6口的读码灯亮,表示进入读码状态,此时将需要仿真的遥控器某按键对着红外接收头按一下,当P1.6口的灯灭而P1.7口的指示灯亮时,读码成功。从计算机超级终端串口中可获得键码的数据。为了测试读得的码是否正确,可按一下发射测试开关,看是否能正确实现投影机的功能操作。按以上方法将原投影机遥控器的所有按键码读入计算机备用。图2和图3分别是红外线接收头输出端口及发射遥控码时的单片机输出口波形图。



1.2 读遥控器按键码软件设计
    图4是读遥控器按键码控制软件的主程序流程。图5是中断读入键码数据的程序流程图。



    中断读键码程序在编程设计中非常重要。它要完成遥控码起始位的识别及脉宽计数、遥控码编码位的宽度计数、结束位的认别等功能。通过大量的不同种类的遥控码波形实验分析,遥控码的帧间歇位宽度均在10 ms以上,起始位码宽度在100μs—20ms之间,编码位在100μs—5ms之间,为确保对所有遥控器读码的成功,采用以下设计方法:
    (1)寻提起始位方法:用16位DPTR计数器对高电平进行宽度计数,计数采样周期为21μs,当高电平结束时,如高8位计数器为非零,则说明高电平宽度超过5.35ms(255×21μs),紧接来的低电平码就是起始位,否则重新开始。
    (2)读起始位方法:采用16位DPTR对低电平进行宽度计数(最大可读宽度为1.376s),当高电平跳变时结束计数,并将DPTR的高8位、低8分别存入R4,R5寄存器。
    (3)读遥控编码的方法:采用DPTR低8位计数器对码(高电平或低电平)进行宽度计数,电平跳变时结束计数,并将值存入规定的地址,在高电平码计数时,如 DPTR高8位计数器为非零(宽度大于5.35ms),则判定为结束帧间隔位,在相应存储单元写入OOH作为结束标志。
2  投影机仿真遥控器的设计
2.1仿真遥控器硬件电路的设计
    图6是投影机仿真遥控器的电路原理图。采用4*8的行列式按键开关,可有32个操作按键。遥控器从P3.7口输出40K的红外线调制信号。



2.2 仿真遥控器软件的设计
    仿真遥控器中通过主程序的循环查键执行相应的键码发射功能,键码表是写在ROM中的,因此完成编程后是不能再改的。程序包括以下主要模块:
    (1)初始化程序。P1及P3端口置位,设置计数器计数模式、控制字等。
    (2)键盘扫描程序。完成32个按键的扫键工作,并翻译成相应的32个键号,使能执行相应的键功能。
    (3)按键功能程序。利用定时器定时中断功能,实现40KHz载波的产生;利用ROM表上各按键相应的起始位控制数据、高电平控制数据、低电平控制数据控制载波的发送时间及间隔时间。遥控码调制发射的算法如下:
    ①[发起始位调制波]
    取ROM表中起始位数据;
    开40KHZ方波定时器;
    起始位数据减1,不为零,延时21μs后重复执行本句;
    为零执行下句;
    ②[发高电平间隔位]
    关40KHZ方波定时器;
    取ROM表中高电平数据;如数据为0,延时10ms后结束算法;不为零执行下句;
    数据减1,不为零,延时21μs后重复执行本句;
    为零执行下句;
    ③[发低电平调制波]
    取ROM表中低电平数据;
    开40KHZ方波定时器;
    低电平数据减1,不为零,延时21μs后重复执行本句;为零转②循环;
    ④算法结束
3  主要性能指标
    (1) 读码器最大学习码长:206bit
    (2) 读码器读码识别范围:起始位:21μs"1.376s,编码位:21μs "5.355ms
    (3) 读码误差:+21μs
    (4) 读码器帧间歇位识别范围:小于1.37s,大于5.355ms
    (5) 仿真遥控器发射距离:大于10M
4  小结
     多媒体投影机的单片机仿真遥控器性能与软件的设计具有密切的关系,特别是码宽计数的采样周期,关系到能否识别出起始位及遥控码采样精度问题,在编程时需多次实验测试,相互兼顾,本设计中读码采样周期为21μs,经测试可正确仿真市场上常用的投影机及彩电、空调等设备。
                                
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-5-4 08:15 , 耗时 0.086153 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表