摘要:遥控器方便用户非接触控制设备,被广泛应用。该文阐述了红外线遥控器基本原理,单片机选型依据,并对一特定需求的红外遥控器进行了的软硬件设计和实现。
关键词:红外遥控;MSP430;单片机;程序
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)33-7441-03
遥控器是一种无线发射装置,通过发送无线信号来传递指令信息到接收者,实现对接收者的控制。用户使用遥控器能进行近距离非接触式对设备进行操作,扩大了用户控制区域,极大地提高用户的操作体验。红外遥控器是其中一种,其原理是将按键指令信息进行编码后控制红外线二极管发射红外线, 接收设备通过红外线接收器将收到的红外信号转变成电信号,进行解码,获取相应的指令以控制设备完成所需的操作。红外遥控器被广泛使用在电视、空调等消费类电子产品。
遥控器的控制核心是单片机,其完成按键读取,指令编码,发送控制等功能,是遥控器的主要的耗能器件。遥控器一般采用电池供电,为了获得较长的使用时间,需降低单片机的功耗及需采用低功耗单片机, 同时在程序上设置,在遥控器不使用时,可以让单片机进入休眠状态,进一步减少能量的消耗。因此,采用具有高效低功耗技术的单片机是遥控器的首选。
1 MSP430系列单片机及特点
为了达到高效低功耗目标,TI(德州仪器)专门设计MSP430系列单片机 。它是一个16位的单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式(7 种源操作数寻址、4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令。高达 512kB 闪存及 64kB RAM,处理能力强运算速度快。MSP430 系列单片机能在25MHz晶体的驱动下,实现40ns的指令周期。16位的数据宽度、40ns的指令周期以及多功能的硬件乘法器(能实现乘加运算)相配合,能实现数字信号处理的某些算法(如FFT等)。这些特点保证了可编制出高效率的源程序。
同时,它是世界上功耗最低的单片机之一。其一采用低电压设计,电源电压为1.8-3.6V以降低功耗。其二独特的时钟系统设计。在 MSP430 系列中有两个不同的时钟系统:基本时钟系统、锁频环(FLL 和FLL+)时钟系统和DCO数字振荡器时钟系统。可以只使用一个晶体振荡器(32.768kHz),也可以使用两个晶体振荡器。由系统时钟系统产生CPU和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。其三,设计有一种活动模式(AM)和五种低功耗模式(LPM0~LPM4),不同的模式芯片的功耗有着显著的不同。在实时时钟模式下,可达2.5μA ,在RAM 保持模式下,最低可达0.1μA 。其四,MSP430系列单片机集成LCD控制器,直接控制LCD,降低了显示成本。
2 遥控器设计
本遥控器需要有10个数字键和3个功能键,采用LCD显示,LCD有92段,红外发射载波38HKz。设计包括硬件和软件部分。
2.1 硬件部分
由单片机,键盘,LCD,红外发射四部分构成。图1为组成原理图。
根据上述参数,选择的单片机是MSP430系列中 MSP430F413,具有8.256KBFLASH,256BRAM,内置LCD控制器支持最多96段LCD。一个16位定时器含3个捕获/比较寄存器,具有一个活动模式(AM)和五种低功耗模式(LPM0—LPM4),唤醒时间不到6个微秒。设计采用一个32.768KHz晶振。键盘采用中断加扫描工作方式,3×5结构。红外发送由9013加红外发射管构成。
2.2 软件部分
设计思想:为更进一步降低功耗,专门设计了一个功能键,单片机平时工作在低功耗状态LPM4,按此键后,单片机被唤醒进入活动模式,处理用户后续按键功能。无按键60秒后,单片机再次进入低功耗模式LPM4,降低功耗。
软件结构: 采用模块化结构,由主控,键盘采集,指令编码,红外发送,LCD显示等模块构成。软件结构如图2所示。
模块功能描述:键盘扫描模块扫描键盘,获取用户按键编码。指令编码模块根据功能表,产生指令编码。红外发送模块根据指令编码,产生38KHz的调制波形。 LCD显示模块控制LCD,显示相应的信息。主控模块负责功能调度和工作模式转换控制。
程序流程:如图3所示。
部分代码:
//工作调度
void Dispatch_Mode(WorkMode wm)
{unsigned char KeyP;
switch(wm)
{case Sleep_Mode: //do nothing;
if(NeedDeal==0)
{ ShowLed(0);
_NOP();
DisableTimer();
EnableKeyInt(1) ;//开启按键中断
LPM4 ; //进入低功耗模式4
for (i = 0; i < 10000; i++); } //等待稳定
else
{ //选择按键按下
NeedDeal=0; //复位
EnableKeyInt(0); //禁止按键中断
TimerOver=0;
ShowLed(1);
KeyP=ScanKey();
//等待按键释放
while(KeyP!= DKEY_NULL)
{KeyP=ScanKey();}
EnableTimer(); //启动定时器
mywm=Active_Mode;
mymm=Modify_Ready; }
break;
case Active_Mode: //do key press
//SetBlink(mymm, mymm,unsigned char value);
if(NeedBlink==0) mymm=Modify_Ready;
KeyP=ScanKey();
if(KeyP!=DKEY_NULL)
{ if(KeyP!=DKEY_SENT)
{_DINT();
ResetDialogTimer();
_EINT();}
//deal key
DealKeyPress(mymm,KeyP);
//wait key to release
while(KeyP!=DKEY_NULL)
{KeyP=ScanKey();}
_DINT();
TimerOver=0;
_EINT();}
else
{ if(TimerOver>100) //60秒
{ mywm=Sleep_Mode;
//EnbleLCD(0); }} //关闭LCD
break;}}
3 小结
设计的红外遥控器已制作并进行了测试,达到了设计要求。通过本设计进一步了解了MSP430系列单片机的特点和编程环境的使用,为后期的应用打下了基础。
参考文献:
[1] 张毅刚.单片机原来及应用[M].北京:高等教育出版社,2007.
[2] 李朝青.单片机原理与接口技术[M].北京:北京航空航天大学出版社,2005.
[3] 蒋俊峰. 基于单片机的红外通讯设计[J].电子设计应用,2003(11):60-62.
推荐访问: 单片机 遥控器 设计 MSP430F413