ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:700.24KB ,
资源ID:8253313      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8253313.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于ARM的红外遥控信号分析器设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于ARM的红外遥控信号分析器设计.docx

1、基于ARM的红外遥控信号分析器设计 ARM课程设计报告 基于ARM的红外遥控信号分析器设计 院 系 :机电工程学院专 业:电子信息工程年级(班级):xxxx级(x)班姓 名:xxx学 号:xxxxxxxxxxx 指导教师:xxx职 称:讲师 完成日期:2014年 x月 xx 日目录1 设计任务及要求 12 总体设计思路及功能描述 12.1设计思路 12.2功能描述 13 各部分程序功能及详细设计 23.1 红外显示界面设计 23.2红外按键检测流程 33.3红外接收信号检测的程序实现 33.4红外接收结果显示 54 调试的步骤及调试过程中出现的问题以及解决方法 64.1调试的步骤 64.2问题

2、以及解决方法 75 设计心得体会 7附录A:源程序 9基于ARM的红外遥控信号分析器设计1 设计任务及要求 这次的ARM课程设计,我选的课题是基于ARM的红外遥控信号分析器设计,需设计一个能在LCD屏上显示所接收的红外遥控按键名称。其实现的功能如下:(1)能接收并显示普通电视红外遥控信号(2)译码遥控信号并显示2 总体设计思路及功能描述2.1设计思路本次设计方案就是利用ARM的多功能性的特点来设计的,具体思路为利用S3C2440和触摸屏的驱动对产生的信号进行触摸屏显示,设计框图如下图。图1 总体框图1、以ARM作为核心,综合应用了中断系统、定时器、计数器等知识,应用红外光的优点 2、遥控发射器

3、通过对红外光发射频率的控制来区别不同的操作3、遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程 4、S3C2440通过对遥控接收器的信号分析处理,解码出遥控器上对应的按键,并将其按键名显示在LCD屏上。2.2功能描述能在LCD屏上显示所接收的红外遥控按键名称。其实现的功能如下:(1)能接收并显示普通电视红外遥控信号(2)译码遥控信号并显示3 各部分程序功能及详细设计3.1 红外显示界面设计图2 红外显示界面 红外显示界面的程序实现:GUI_SetBkColor(GUI_RED);GUI_Clear();GUI_SetPenSize(10); GUI_Set

4、Color(GUI_BLACK); /设定前景颜色API GUI_SetTextMode(GUI_TM_TRANS);GUI_DispStringHCenterAt(红外遥控按键显示,240,10);GUI_DispStringHCenterAt(您按下的按键是:,60,100);GUI_DispStringHCenterAt(xx电信(x)班,250,200);GUI_DispStringHCenterAt(xxx xx号,245,220);3.2红外按键检测流程 图3 红外按键检测流程图红外接收头检测到遥控器红外发射来的信号,S3C2440对信号进行分析处理,判断是否接收到正确的红外信号编

5、码,如果信号错误重新开始检测,若成功识别,则将遥控按键名称显示在LCD屏上。3.3红外接收信号检测的程序实现unsigned char j,k,N=0,L=0,X=21; while(rGPGDAT&0x1)=0) delay(15); if(rGPGDAT&0x1) break; /确认IR信号出现 while(rGPGDAT&0x1)=0) /等IR变为高电平,跳过9ms的前导低电平信号。 delay(1); while (rGPGDAT&0x1) /等 IR 变为低电平,跳过4.5ms的前导高电平信号。 delay(1); L+; if(L3) break; for (j=0;j4;j+

6、) /收集四组数据 for (k=0;k=30) /0.14ms计数过长自动离开。 break; /高电平计数完毕 IRCOMj=IRCOMj 1; /数据最高位补“0” if (N=8) IRCOMj = IRCOMj | 0x80; /数据最高位补“1” N=0; /end for k /end for j /*if (IRCOM2!=(IRCOM3) break; */ IRCOM5=IRCOM2 & 0x0F; /取键码的低四位 IRCOM6=IRCOM2 4; /右移4次,高四位变为低四位3.4红外接收结果显示图4 红外接收显示结果 3.5程序流程图 Y图7 设计总流程图4 调试的步

7、骤及调试过程中出现的问题以及解决方法4.1调试的步骤1、连接实验箱与计算机的串口线,打开计算机超级终端,并设定为com1,115200,8,1,0N2、连接仿真调试电缆(J-Link)。3、打开ARM集成开发环境ADS,按要求编写或打开实验程序。4、根据实验内容要求编写,调试程序。5、通过ADS的DEBUG把编写好的程序加载到J-Link,进行程序仿真测试。6、记录相关数据和实验现象。7、调试完毕,整理实验箱,并切断实验箱电源。4.2问题以及解决方法1、出现文件找不到的错误。通过菜单的Project-Remove object ,并重新编译程序,生成新的.axf文件,便可解决问题。2、调试时发

8、现无法解码红外信号,经排除遥控器电量不足的可能后,用示波器直接对红外接收头的输出引脚进行波形观测,当按下遥控按键时,示波器会显示出一瞬间的波形,按住不放时,遥控器会间断发射循环码,从示波器的波形分析,红外接收到的波形是正确的。因为红外遥控发射的红外信号遵循NEC协议,而程序是用定时器进行延时,然后对延时进行计数,对计数值进行分析处理可得到遥控器的红外编码,因此延时时间需要比较精准。用延时程序写一个简单的方波,再用示波器观测其延时时间,经过调整,将延时调节到了理想状态,再重新编译程序,便成功的接收到了正确的红外信号。3、将遥控的按键名显示在LCD上,出现数据更新时重叠显示,进查阅GUI手册,调用

9、清初文字的函数,在每次跟新按键名之前,运行该函数,便解决该问题。5 设计心得体会在本次的ARM课程设计过程中,从构思设计到实现,遇到了很多问题,但都一一克服了。本次课程设计让我们对嵌入式系统的硬件和软件的基本原理、基本特点,嵌入式系统设计的基本方法有了更进一步的了解掌握。通过课程设计,我们对ARM这门课程有了更深一步的了解。也让我感受到了ARM的强大与重要,意识到我们需要花更多的时间去将ARM的理论应用到实践中去,多动手,多去解决问题,锻炼自己解决问题的能力,积累经验,才能正在学好ARM这门课程。这次课程设计,我经过自己的努力,在老师同学的帮助下,顺利完成了。参考文献1 戴峻峰,付丽辉. 多功

10、能红外线遥控器的设计.2002.8(12):1618. 2 苏长赞. 红外线与超声波遥控,北京:人民邮电出版社.1995年. 3 杨恢先,王子菡,杨穗,陶霞. 一种基于单片机的红外遥控软件解码方法, 自动化与仪器仪表.2004,22(2):1618. 4 s3c2440中文数据手册(完整版).pdf. 5 ARM公司.arm指令集EB/OL.2013-06-10, 附录A:程序#include config.h#include gui.hvoid ledflash(void); static void _irq key_handler(void);void key_init(void);uns

11、igned char IRCOM7;unsigned char PRING2110=关机,SETUP,静音,MODE,返回, EQ,后退,前进,暂停/播放,音量减, 音量加,0,1,2,3, 4,5,6,7,8,9;void usDelay(int time) int i,j; for (i = time; i 0; i-) for (j = 1; j 0; j-);void delay(unsigned char x) /x*0.14MSint y;for(y=0;yx;y+)usDelay(134);void ledflash(void) int i;/* rGPGCON = (rGPGC

12、ON & 0xFFFFFFF0) | (0xd 0); rGPGDAT = rGPGDAT & 0xfffe| 0x0; for(i=0;i100000;i+); /延时 rGPGDAT = rGPGDAT & 0xfffe| 0x1; for(i=0;i100000;i+); /延时 rGPBDAT = (rGPBDAT & 0xf0f)| (0xd4); for(i=0;i500000;i+); /延时 rGPBDAT = (rGPBDAT & 0xfff)| (0xf4); for(i=0;i500000;i+); /延时void Main ()/*TargetInit();rGPFCO

13、N = (rGPFCON & 0xFF0F) | (0x7 4); while(1) delay(1);rGPFDAT = (rGPFDAT & 0xf7)|(13);delay(1);rGPFDAT = (rGPFDAT & 0xf7)|(03); */unsigned char h=0,l=0;TargetInit();GUI_Init();rGPBCON = (rGPBCON & 0xfff3ff) | (0x48);rGPGUP &= 0xfffe|0x1;rGPGCON = (rGPGCON & 0xFFFFFFF0) | (0xc 3) break; for (j=0;j4;j+)

14、 /收集四组数据 for (k=0;k=30) /0.14ms计数过长自动离开。 break; /高电平计数完毕 IRCOMj=IRCOMj 1; /数据最高位补“0” if (N=8) IRCOMj = IRCOMj | 0x80; /数据最高位补“1” N=0; /end for k /end for j /*if (IRCOM2!=(IRCOM3) break; */ IRCOM5=IRCOM2 & 0x0F; /取键码的低四位 IRCOM6=IRCOM2 4; /右移4次,高四位变为低四位 if(IRCOM59) l=IRCOM5+0x37; else l=IRCOM5+0x30; i

15、f(IRCOM69) h=IRCOM6+0x37; else h=IRCOM6+0x30; if(h=(4+0x30)&(l=(8+0x30) X=0; if(h=(2+0x30)&(l=(8+0x30)|(h=(14+0x37)&(l=(5+0x30) X=1; if(h=(0+0x30)&(l=(8+0x30)|(h=(14+0x37)&(l=(1+0x30) X=2; if(h=(6+0x30)&(l=(8+0x30) X=3; if(h=(14+0x37)&(l=(8+0x30) X=4; if(h=(8+0x30)&(l=(8+0x30) X=5; if(h=(0+0x30)&(l=

16、(0+0x30) X=6; if(h=(4+0x30)&(l=(2+0x30)|(h=(10+0x37)&(l=(8+0x30) X=7; if(h=(12+0x37)&(l=(1+0x30) X=8; if(h=(2+0x30)&(l=(2+0x30)|(h=(10+0x37)&(l=(4+0x30) X=9; if(h=(9+0x30)&(l=(8+0x30)|(h=(12+0x37)&(l=(3+0x30)|(h=(15+0x37)&(l=(15+0x35) X=10; if(h=(4+0x30)&(l=(1+0x30)|(h=(12+0x37)&(l=(8+0x30) X=11; if

17、(h=(6+0x30)&(l=(1+0x30)|(h=(12+0x37)&(l=(12+0x37) X=12; if(h=(14+0x37)&(l=(3+0x30)|(h=(9+0x30)&(l=(12+0x37) X=13; if(h=(2+0x30)&(l=(11+0x37)|(h=(8+0x30)&(l=(5+0x30) X=14; if(h=(14+0x37)&(l=(1+0x30)|(h=(13+0x37)&(l=(12+0x37) X=15; if(h=(6+0x30)&(l=(3+0x30)|(h=(8+0x30)&(l=(12+0x37) X=16; if(h=(10+0x37

18、)&(l=(11+0x37)|(h=(9+0x30)&(l=(5+0x30) X=17; if(h=(10+0x37)&(l=(8+0x30) X=18; if(h=(10+0x37)&(l=(10+0x37)|(h=(11+0x37)&(l=(5+0x30) X=19; if(h=(10+0x37)&(l=(9+0x30)|(h=(13+0x37)&(l=(5+0x30) X=20; GUI_GotoXY(150,100); GUI_DispCEOL(); GUI_DispStringAtCEOL(&PRINGX,235,100);/ GUI_DispStringHCenterAt(&PRI

19、NGX,150,100); /* GUI_SetFont(&GUI_Font8x16); GUI_GotoXY(150,100); GUI_DispCEOL(); GUI_GotoXY(150,100); GUI_DispChar(h); GUI_GotoXY(170,100); GUI_DispCEOL(); GUI_GotoXY(170,100); GUI_DispChar(l);*/ void key_init(void)rGPGCON &=(0x30);rGPGCON |=(0x20);rEXTINT1 &=(0xf0);rEINTPEND |= (18);rEINTMASK &=(18);pISR_EINT8_23=(U32)key_handler;EnableIrq(BIT_EINT8_23);static void _irq key_handler(void) if(rINTPND=BIT_EINT8_23); ClearPending(BIT_EINT8_23);if(rEINTPEND&(18)rEINTPEND|=(18); for(;) ledflash();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1