如何通过PIC单片机设计一款多媒体终端遥控器?

如何通过PIC单片机设计一款多媒体终端遥控器?,第1张

1 设计理念和原理

1.1 设计理念

随着数字家庭等领域技术的迅速发展,在多媒体终端上的增值业务将越来越多,浏览网页、搜索、短信等都需要遥控器进行输入。但作为连接用户和终端之间的重要外设,遥控器的设计理念还停留在模拟电视时代,体验感较差。目前用户输入的解决方式是呼出终端的内置输入法,这样就带来了两个问题:一,不同厂家的终端都需要内置自己的中英文输入法,占用资源,而且必须搭配自己的遥控器使用,通用性不高;二,用户在输人时必须一边看遥控器输入一边看屏幕确认输入,如果文字较多会造成频频抬头和低头的麻烦,难以忍受。基于以上缺点,本文提出将输入法内置于遥控器的理念,在遥控器上输入文字后再统一将文字编码用红外线发给终端,终端接收后将编码译成文字显示在输入区中。

1.2 红外遥控器工作原理

遥控码是一串二进制数字信号,通过脉冲编码形成脉冲序列,被调制到一个固定频率载波上,最后通过红外发射管,以光脉冲的形式发射出去。脉冲编码就是将“1”和“0”用一个脉冲来标识。本设计使用NEC红外协议,用脉宽560us,周期4x560us代表二进制“1”;用脉宽560us,周期2x560us代表二进制“0”(如图1所示,密集竖线表示38KHz载波)。

如何通过PIC单片机设计一款多媒体终端遥控器?,如何通过PIC单片机设计一款多媒体终端遥控器?,第2张


图1 NEC协议红外遥控信号的调制

2 硬件设计

2.1 总体设计原则

遵循嵌入式系统高性能、低功耗、小体积的设计思想,总体设计原则是:元器件采用低功耗芯片;尽量用软件实现硬件功能,减少器件数量;键盘采用中断方式,一旦系统空闲超时立即使其进入休眠状态,再次按键予以唤醒。

2.2 硬件组成

硬件组成如图2所示。其中:主芯片为Microchip公司PIC18F系列高档单片机66J11,性价比极高;液晶屏控制器为Sitronix公司的ST7565R,分辨率128x64;汉字点阵字库用Atmel公司的262KB Flash制作,它和LCD与单片机的接口均为SPI接口;键盘有49个按键.采用7x7矩阵方式,7根行线连到单片机B口的RBI~RB7外部中断脚,列线连到单片机的E口的RE1-RE7,作为数字输出口。

如何通过PIC单片机设计一款多媒体终端遥控器?,如何通过PIC单片机设计一款多媒体终端遥控器?,第3张


图2 基于PIC单片机的红外遥控器硬件组成

3 软件设计

3.1 系统运行流程

遥控器无开关机过程,因此放入电池时系统硬件即初始化,进入休眠。按键中断时,进入主程序,系统运行流程如图3所示,分为两种模式:普通遥控和文本输入。单片机内部的看门狗负责对空闲状态(没有键被按下)计时,超时后系统复位重新进入休眠状态。

如何通过PIC单片机设计一款多媒体终端遥控器?,如何通过PIC单片机设计一款多媒体终端遥控器?,第4张


图3 系统运行流程图

3.2 功耗管理设计

PIC18F系列器件提供了三种主要的工作模式:运行模式、空闲模式和休眠模式,实际中只使用运行模式和休眠模式。根据遥控器的运行流程,看门狗(WDT:Watchdog TImer)负责实现空闲时间的计时。4ms的WDT超时溢出周期与16位的后分频比值相乘。可以通过在MPLAB IDE中配置寄存器2H中的WDTPS位控制一个多路开关以对WDT后分频器的输出进行选择,可获得的超时溢出周期范围为4ms至135秒(2.25分钟)。在代码中需要在每次按键后喂狗,保证看门狗重新计时。

3.3 驱动程序设计

3.3.1 键盘驱动

PIC单片机的B口是外部中断口,有四个INT中断和四个KBI中断。本设计将RB0留做扩展备用,RBl/INTl、RB2/INT2和RB3/INT3都设置为下降沿触发中断;KBl4个口(RB4-RB7)为电平变化中断(双沿),在程序里只对下降沿中断有处理。

按键扫描采取行列扫描方式获取键值。配置行线均弱上拉,列线均输出为0;当有键(行列交叉点)按下时,此键所在行线即出现下降沿;进入中断处理后,依次令每根列线输出为0,其余为1,扫描行线看哪根行线输入为0,从而得到按键的位置。

3.3.2 SPI驱动

PIC单片机有两个主控同步串行端口模块,它们都可以用软件配置为SPI方式,使用非常方便.数据读写只需读写其缓存即可,不需要像51单片机那样模拟时序。本设计使用了两个SPI接口器件:LCD和FLASH字库,他们是从设备,单片机是主设备。在配置好与SPI时钟频率等有关的寄存器后,主从设备就可以通信了。当主设备从从设备读数据时,SSPxlF(x=1,2)标志寄存器为0说明正在接收数据,为1时说明已收到一个字节;当主设备往从设备写数据时,SSPxlF为1说明已发完—个字节。

3.3.3PWM驱动

发射用的红外载波口’用标准脉宽捌制模块(PWM)来实现,载波频率是38KHz,因此PWM的周期就是1/38KHz,PWM周期的计算公式是:

PWM周期=[(_PR2)+1].4.TOSC(TMR2预分频值).

本设计中晶振是12MHz.即TOSC=1/12MHz,经过计算,PR2寄存器设置为78。TMR2预分频值为1可得到频率为38Km的方波。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/dianzi/2599333.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-08-09
下一篇2022-08-09

发表评论

登录后才能评论

评论列表(0条)

    保存