当前位置:众信范文网 >教案设计 > 一个基于MSP430F413单片机的红外遥控器设计与实现

一个基于MSP430F413单片机的红外遥控器设计与实现

时间:2022-10-24 11:10:04 来源:网友投稿

摘要:遥控器方便用户非接触控制设备,被广泛应用。该文阐述了红外线遥控器基本原理,单片机选型依据,并对一特定需求的红外遥控器进行了的软硬件设计和实现。

关键词:红外遥控;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