版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 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问题以及解决方法75 设计心得体会7附录A:源程序9基于AR
2、M的红外遥控信号分析器设计1 设计任务及要求 这次的ARM课程设计,我选的课题是基于ARM的红外遥控信号分析器设计,需设计一个能在LCD屏上显示所接收的红外遥控按键名称。其实现的功能如下:(1)能接收并显示普通电视红外遥控信号(2)译码遥控信号并显示2 总体设计思路及功能描述2.1设计思路本次设计方案就是利用ARM的多功能性的特点来设计的,具体思路为利用S3C2440和触摸屏的驱动对产生的信号进行触摸屏显示,设计框图如下图。遥控器红外发射红外接收头S3C2440处理器LCD显示图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_SetColor
4、(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);开始N红外检测显示按键名称红外信号判断Y3.2红外按键检测流程 图3
5、 红外按键检测流程图红外接收头检测到遥控器红外发射来的信号,S3C2440对信号进行分析处理,判断是否接收到正确的红外信号编码,如果信号错误重新开始检测,若成功识别,则将遥控按键名称显示在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&am
6、p;0x1) /等 IR 变为低电平,跳过4.5ms的前导高电平信号。 delay(1); L+; if(L>3) break; for (j=0;j<4;j+) /收集四组数据 for (k=0;k<8;k+) /每组数据有8位 while (rGPGDAT&0x1)=0) /等 IR 变为高电平 delay(1); while (rGPGDAT&0x1) /计算IR高电平时长 delay(1); N+; if(N>=30)/0.14ms计数过长自动离开。 break; /高电平计数完毕 IRCOMj=IRCOMj >> 1; /数据最高位
7、补“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程序流程图信号分析处理显示按键名称绘制图形显示界面开始系统初始化N红外信号判断红外检测 Y图7 设计总流程图4 调试的步骤及调试过程中出现的问题以及解决方法4.1调试的步骤
8、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、调试时发现无法解码红外信号,经排除遥控器电量不足的可
9、能后,用示波器直接对红外接收头的输出引脚进行波形观测,当按下遥控按键时,示波器会显示出一瞬间的波形,按住不放时,遥控器会间断发射循环码,从示波器的波形分析,红外接收到的波形是正确的。因为红外遥控发射的红外信号遵循NEC协议,而程序是用定时器进行延时,然后对延时进行计数,对计数值进行分析处理可得到遥控器的红外编码,因此延时时间需要比较精准。用延时程序写一个简单的方波,再用示波器观测其延时时间,经过调整,将延时调节到了理想状态,再重新编译程序,便成功的接收到了正确的红外信号。3、将遥控的按键名显示在LCD上,出现数据更新时重叠显示,进查阅GUI手册,调用清初文字的函数,在每次跟新按键名之前,运行该
10、函数,便解决该问题。5 设计心得体会在本次的ARM课程设计过程中,从构思设计到实现,遇到了很多问题,但都一一克服了。本次课程设计让我们对嵌入式系统的硬件和软件的基本原理、基本特点,嵌入式系统设计的基本方法有了更进一步的了解掌握。通过课程设计,我们对ARM这门课程有了更深一步的了解。也让我感受到了ARM的强大与重要,意识到我们需要花更多的时间去将ARM的理论应用到实践中去,多动手,多去解决问题,锻炼自己解决问题的能力,积累经验,才能正在学好ARM这门课程。这次课程设计,我经过自己的努力,在老师同学的帮助下,顺利完成了。参考文献1 戴峻峰,付丽辉. 多功能红外线遥控器的设计.2002.8(12):
11、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.h"void ledflash(void); static void _irq key_handler(void);void key_init(void);u
12、nsigned char IRCOM7;unsigned char PRING2110="关机","SETUP","静音","MODE","返回","EQ","后退","前进","暂停/播放","音量减","音量加","0","1","2","3","4","5&quo
13、t;,"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;y<x;y+)usDelay(134);void ledflash(void)inti;/*rGPGCON = (rGPGCON & 0xFFFFFFF0) | (0xd << 0);rG
14、PGDAT = rGPGDAT & 0xfffe| 0x0; for(i=0;i<100000;i+); /延时 rGPGDAT = rGPGDAT & 0xfffe| 0x1;for(i=0;i<100000;i+); /延时rGPBDAT = (rGPBDAT & 0xf0f)| (0xd<<4); for(i=0;i<500000;i+); /延时 rGPBDAT = (rGPBDAT & 0xfff)| (0xf<<4);for(i=0;i<500000;i+); /延时void Main ()/*Targ
15、etInit();rGPFCON = (rGPFCON & 0xFF0F) | (0x7 << 4); while(1) delay(1);rGPFDAT = (rGPFDAT & 0xf7)|(1<<3);delay(1);rGPFDAT = (rGPFDAT & 0xf7)|(0<<3); */unsigned char h=0,l=0;TargetInit();GUI_Init();rGPBCON = (rGPBCON & 0xfff3ff) | (0x4<<8);rGPGUP &= 0xfffe|0
16、x1;rGPGCON = (rGPGCON & 0xFFFFFFF0) | (0xc << 0);GUI_SetBkColor(GUI_RED);GUI_Clear();GUI_SetPenSize(10);GUI_SetColor(GUI_BLACK); /设定前景颜色API GUI_SetTextMode(GUI_TM_TRANS);GUI_DispStringHCenterAt("红外遥控按键显示",240,10);GUI_DispStringHCenterAt("您按下的按键是:",60,100);GUI_DispString
17、HCenterAt("xx电信(x)班",250,200);GUI_DispStringHCenterAt("xxx xx号",245,220); while(1) 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
18、变为低电平,跳过4.5ms的前导高电平信号。 delay(1); L+; if(L>3) break; for (j=0;j<4;j+) /收集四组数据 for (k=0;k<8;k+) /每组数据有8位 while (rGPGDAT&0x1)=0) /等 IR 变为高电平 delay(1); while (rGPGDAT&0x1) /计算IR高电平时长 delay(1); N+; if(N>=30) /0.14ms计数过长自动离开。 break; /高电平计数完毕 IRCOMj=IRCOMj >> 1; /数据最高位补“0” if (N&g
19、t;=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(IRCOM5>9) l=IRCOM5+0x37; else l=IRCOM5+0x30; if(IRCOM6>9) h=IRCOM6+0x37; else h=IRCOM6+0x30; if(h=(4+0x30)&(l=
20、(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=(0+0x30)X=6;if(h=(4+0x30)&(l=(2+0x30)|
21、(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(h=(6+0x30)&a
22、mp;(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)&(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(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年陕西卫生类药学专业知识事业单位招聘考试试卷
- 经济合同履行信誉承诺书(5篇)
- 会议记录与总结反馈表
- 健康险创新与市场趋势-洞察与解读
- 企业数据收集策略文件库自动工具
- 2025年全国共青团“新团员入团”应知应会知识考试能力检测试卷及参考答案详解(a卷)
- 2025年山东事业单位招聘考试职业能力倾向测验试卷城市规划类
- 2025年公共卫生职业卫生与职业安全试卷
- 企业财务预算管理模板成本控制版
- 行业采购管理流程及模板
- 2025年四川省定向乡镇公共基础知识试题及答案
- 特种设备B类安全监察员考试题库及答案解析
- 高考模拟考试命题方案
- 2025年海南省文昌市辅警考试真题及答案
- 物业员工岗位培训教材合集
- 2025淘宝服饰9-10月刊趋势洞察
- 考点攻克人教版九年级物理《欧姆定律》单元测试试卷(含答案详解)
- 2025四川成都高新投资集团有限公司选聘中高层管理人员4人笔试历年参考题库附带答案详解(3卷合一)
- 2025年糖尿病考试试题及答案
- 小学科学类实验器材配备指南
- 吉林市中储粮2025秋招面试半结构化模拟题30问及答案
评论
0/150
提交评论