多媒体投影机遥控器的STC12C5410单片机仿真

发布者:SereneDreamer最新更新时间:2011-12-05 关键字:体投影机遥控器  STC12C5410 手机看文章 扫描二维码
随时随地手机看文章

    当前,投影机已是高校多媒体教室的常规设备,但是由于使用频繁,人员又杂,投影机遥控器损坏及遗失的情况时有发生。因为学校用的投影机均为进口产品,遥控器很难配到,并且能买到的话价格也是异常昂贵。利用单片机仿真遥控器的功能,制作成本很低的投影机遥控器具有实用推广价值。
制作投影机遥控器的关键是先要读出原投影机遥控器(同型号)的所有按键的控制码数据,然后做成按键控制码表格,当仿真时在按键操作下单片机将不同的控制码数据发射出去,达到遥控投影机的目的。
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分别是红外线接收头输出端口及发射遥控码时的单片机输出口波形图。

 

[page]

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作为结束标志。

[page]

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,经测试可正确仿真市场上常用的投影机及彩电、空调等设备。

 

关键字:体投影机遥控器  STC12C5410 引用地址:多媒体投影机遥控器的STC12C5410单片机仿真

上一篇:基于单片机的通用型智能充电器设计
下一篇:单片机红外线遥控器解码程序

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved