




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于msp430f149的PWM红外解码的研究摘要:由于红外遥控的实用与经济性,本文研究PWM方式调制的红外解码的实现。红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。1红外遥控系统通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如下所示:(一)发射部分键盘矩阵、编码调制、LED红外发送器键盘编码
2、调制红外LED发射(38KHz的载波)(二)接收部分研究中应用VS0038一体化红外接收头(实物图如下:)红外接收头VS0038能够正常接收的角度2遥控发射器及其编码(1)遥控发射器专用芯片很多(2)根据编码格式可以分成:脉冲宽度调制和脉冲相位调制两大类现在我们研究以运用比较广泛,解码比较容易实现的脉冲宽度调制来加以说明。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:(a) 采用脉宽调制的串行码(b) 以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”(c) 以脉宽为0.565ms、间隔1.685ms、周期为2.25
3、ms的组合表示二进制的“1”遥控器发出由“0”和“1”组成的32位二进制码,经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码用于核对数据是否接收正确。1引导四上地址码地址码j数据码数据反码iVJnnnnMnnniummmnnmnnnr(其中的地址码为用户识别码,它又分为用户码与用户反码)当遥控器上任意一个按键按下超过36ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码头,对于接收端而言就是一
4、个9ms的低电平,和一个4.5ms的高电平,这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84m
5、s最为可靠,一般取0.84ms左右即可。根据红外编码的格式,程序应该等待9ms的起始码和4.5ms的结果码完成后才能读码。接收器及解码VS0038是塑封一体化红外线接收器,它是一种集红外线接收、放大、整形于一体的集成电路,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,没有红外遥控信号时为高电平,收到红外信号时为低电平,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。下面是一个msp430f149单片机对红外线遥控器的解码程序,它可以把遥控器的32位码(42位码也可以)的红外遥控器每一个按键的键值读出来,并且通过12864点阵液晶显示编码
6、和键值,在解码成功的同时发出“嘀”的提示音。并且能把编码保存起来,如果此时按下键盘上第三个键,就把该信号再向外发射出去,不过一次只能存一组数据,如果有兴趣可以把编码存入flash,这样不仅可以保存更多的编码,而且掉电数据也不会丢。这是测试时用的遥控器这是测试的结果,前三行是红外信号的编码,最后一行是8位数据码的十六进制格式,因为我的遥控器采用的是32位二进制码,所以后十位是无效位。如果是对42位二进制码的遥控器解码时,前26位是系统码,后16位是8位数据码和8位数据反码。不过此时第四行的十六进制是无效哦。000000001111111110100010010111011111111111A2软
7、件设计思想及流程:(1)程序使用到的msp430f149单片机的IO口主要有P4与P6(用于12864液晶驱动)P1.3与P5.2(分别用来实现红外数据的接收和红外数据的发送)。(2)程序的关键部分是红外解码,而根据红外线发出的红外信号编码的规则可以看出,二进制码“0”和“1”最主要的区别在于脉冲时间的长短,所以根据判断脉冲时间便可以判断是“1”还是“0”。其程序如下:(程序已调试通过直接移值就可以用)#include#includeconfig.h#defineCPU_F(double)8000000)/CPU主频8MHZ#definedelay_us(x)_delay_cycles(lon
8、g)(CPU_F*(double)x/1000000.0)#definedelay_ms(x)_delay_cycles(long)(CPU_F*(double)x/1000.0)#defineucharunsignedchar#defineuintunsignedint/*红外接收端口定义*/#defineHW_IP1DIR&=BIT3#defineHW_OP1DIR|=BIT3#defineHW_LP1OUT&=BIT3#defineHW_HP1OUT|=BIT3#defineHW_Q(P1IN&BIT3)/*12864液晶端口定义*/#defineRS(15)#defineRW(16)#
9、defineEC(17)#definePSB(10)#defineRST(11)/*红外发射端口定义*/#defineFS_HP5OUT|=BIT2#defineFS_LP5OUT&=BIT2#defineFS_IP5DIR&=BIT2#defineFS_OP5DIR|=BIT2#defineFS_FP5OUTa=BIT2#defineFSIEONTACCTL0|=CCIE;TACCTL1|=CCIE#defineFSIEOFFTACCTL0&=CCIE;TACCTL1&=CCIE#defineBUZ_OFFP6OUT|=BIT2#defineBUZONP6OUT&=BIT2ucharflag
10、,ff,mf,num;intwidth;/用来设定载波信号的持续时间uchartable_IR42;/用来存放接收的红外信号编码音量-音量+uchartable_ir0=0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1;/uchartable_ir1=0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,1,0,1,0,1,1,1;/uchartable_lcd尸48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70;/液晶显示数字
11、对应ASIICvoidLCD_INIT(void);/液晶初始化函数声明voidWRITE_COM(ucharcom);/液晶写指令函数声明voidWRITE_DATA(uchardata);/液晶写数据函数声明charREAD_BF(void);/液晶忙检查函数声明voidinfrared(void);/红外接收检测函数声明voidIR_SEND(uchar*pir);/红外发射函数声明ucharkey(void);/矩阵键盘扫描函数声明voidmain(void)(uinti=0;ucharkeydata;/存放键值用WDTCTL=WDTPW+WDTHOLD;/关闭看门狗BCSCTL1&=
12、XT2OFF;/开启XT2高速晶体振荡器BCSCTL2|=SELM_2+SELS;doIFG1&=OFIFG;for(i=0;i0);输出9ms的载波信号_DINT();/关闭总中断FS_H;delay_us(4500);输出4.5ms的高电平for(i=0;i0);/输出0.56ms的载波信号_DINT();/关闭总中断if(*pir+)FS_H;delay_us(1685);/根据编码确定要输出“0”还是“1elseFS_H;delay_us(560);如果是“1”输出1.685ms的高电平,/如果是“0”,输出0.56ms的高电平width=21;/21_EINT();/开启总中断whi
13、le(width0);/输出0.56ms的载波信号作为结束码_DINT();/关闭总中断FS_L;关闭红外发射管P2OUT&=BIT0;delay_ms(100);P2OUT|=BIT0;/LED0闪烁一下作为发射标志/*红外接收函数*/uchark;ucharir=0;ucharj=0;ucharvalue_L=0,value_H=0;/存放操作码的高四位和低四位HW_I;/在检测前把端口为输入for(k=0;k19;k+)(delay_us(400);if(HW_Q)return;/检测是否有9ms的低电平,否则返回重新检测)while(!HW_Q);/等待9ms低电平过去for(k=0;
14、k5;k+)delay_us(500);if(!HW_Q)return;/如果在2.5ms内有低电平,则认为是干扰,并且退出重新检测while(HW_Q);/等待4.5ms高电平过去for(k=0;k22)break;如果高电平时间过长,跳出循环,继续执行下面的程序if(j=7)如果高电平的宽度大于0.7ms,则接收的为1,同时存入数组table_IRk=1;elsetable_IRk=0;如果高电平宽度小于0.7ms,则接收的为“0”,同时存入数组j=0;for(k=16;k20;k+)/把第3个字节低四位存入value_L内,便于在液晶上显示value_L=1;if(table_IRk)v
15、alue_L|=0x01;for(k=20;k24;k+)/把第3个字节高四位存入value_H内,便于在液晶上显示value_H=1;if(table_IRk)value_H|=0x01;WRITE_COM(0x80);/设置液晶第一行显示前16位字符(用户识别码)while(READ_BF();for(k=0;k16;k+)ir=table_IRk;WRITE_DATA(table_lcdir);while(READ_BF();WRITE_COM(0x90);/设置液晶第二行显示8位的操作码和8位的操作反码while(READ_BF();for(k=0;k16;k+)ir=table_IR
16、k+16;WRITE_DATA(table_lcdir);while(READ_BF();WRITE_COM(0x88);/如果遥控器发出的是42位二进制码,则剩余的部分在第三行显示while(READ_BF();for(k=0;k0;row-)(P1OUT=temp;if(P1IN&0xf0)!=0xf0)(num=row+rank;P1OUT=0xf0;returnnum;)temp=1;)while(P1IN&0xf0)!=0xf0);delay_ms(15);while(P1IN&0xf0)!=0xf0);)returnnum;)/*液晶初始化函数*/voidLCD_INIT(void
17、)(P5OUT|=RST;P5OUT|=PSB;WRITE_COM(0x30);while(READ_BF();WRITE_COM(0x0c);while(READ_BF();WRITE_COM(0x01);while(READ_BF();/*液晶写指令函数*/voidWRITE_COM(ucharcom)P5OUT&=RS;P5OUT&=RW;P5OUT&=EC;P4OUT=com;delay_us(5);P5OUT|=EC;delay_us(5);P5OUT&=EC;/*液晶写数据函数*/voidWRITE_DATA(uchardata)P5OUT|=RS;P5OUT&=RW;P5OUT&=EC;P4OUT=data;delay_us(5);P5OUT|=EC;delay_us(5);P5OUT&=EC;/*液晶忙检测函数*/charREAD_BF(void)ucharbusy;P4DIR=0x00;P5OUT&=RS;P5OUT|=RW;P5OUT|=EC;busy=P4IN;delay_us(5);P5OUT&=EC;P4DIR=0xff;retur
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025公司项目部管理人员安全培训考试试题及答案 完整
- 2025年厂里厂里安全培训考试试题【含答案】
- 2025年岗位安全培训考试试题含答案(满分必刷)
- 2025通信设备采购合同范本
- 2025工业用地转让代理合同
- 2025临时电源租赁合同
- 2025授权投资协议合同范本
- 2025商场柜台租赁合同模板
- 2025建筑工程施工合同示范本
- 2025电子产品销售合同模板大全
- GB 7718-2025食品安全国家标准预包装食品标签通则
- 2025年高考历史总复习世界近代史专题复习提纲
- 2025-2030中国蜂蜜行业营销渠道与多元化经营效益预测研究报告
- 社工证考试试题及答案
- 内蒙古汇能集团笔试题库
- 产后保健知识课件
- 氧化反应工艺安全操作规程
- 子宫肌瘤病例讨论
- 门窗安装施工方案07785
- 土壤氡检测方案
- 氧化镓雪崩光电探测器的研究进展
评论
0/150
提交评论