- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM课程设计报告
基于ARM的红外遥控信号分析器设计
院 系 : 机电工程学院 专 业: 电子信息工程 年级(班级): xxxx级(x)班 姓 名: xxx 学 号: xxxxxxxxxxx 指导教师: xxx 职 称: 讲师 完成日期: 2014年 x月 xx 日 目录
1 设计任务及要求 1
2 总体设计思路及功能描述 1
2.1设计思路 1
2.2功能描述 1
3 各部分程序功能及详细设计 2
3.1 红外显示界面设计 2
3.2红外按键检测流程 3
3.3红外接收信号检测的程序实现 3
3.4红外接收结果显示 5
4 调试的步骤及调试过程中出现的问题以及解决方法 6
4.1调试的步骤 6
4.2问题以及解决方法 7
5 设计心得体会 7
附录A:源程序 9
基于ARM的红外遥控信号分析器设计
1 设计任务及要求
这次的ARM课程设计,我选的课题是基于ARM的红外遥控信号分析器设计,需设计一个能在LCD屏上显示所接收的红外遥控按键名称。其实现的功能如下:
()()
图1 总体框图
1、以ARM作为核心,综合应用了中断系统、定时器、计数器等知识,应用红外光的优点
2、遥控发射器通过对红外光发射频率的控制来区别不同的操作
3、遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发射、接收过程
4、S3C2440通过对遥控接收器的信号分析处理,解码出遥控器上对应的按键,并将其按键名显示在LCD屏上。
2.2功能描述
能在LCD屏上显示所接收的红外遥控按键名称。其实现的功能如下:
(1)能接收并显示普通电视红外遥控信号
(2)译码遥控信号并显示
3 各部分程序功能及详细设计
3.1 红外显示界面设计
图2 红外显示界面
红外显示界面的程序实现:
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_DispStringHCenterAt(xx电信(x)班,250,200);
GUI_DispStringHCenterAt(xxx xx号,245,220);
3.2红外按键检测流程
图3 红外按键检测流程图
红外接收头检测到遥控器红外发射来的信号,S3C2440对信号进行分析处理,判断是否接收到正确的红外信号编码,如果信号错误重新开始检测,若成功识别,则将遥控按键名称显示在LCD屏上。
3.3红外接收信号检测的程序实现
unsigned char j,k,N=0,L=0,X=21;
while((rGPGDAT0x1)==0)
{
delay(15);
if(rGPGDAT0x1)
{
break;
}
//确认IR信号出现
while((rGPGDAT0x1)==0) //等IR变为高电平,跳过9ms的前导低电平信号。
{delay(1);}
while (rGPGDAT0x1) //等 IR 变为低电平,跳过4.5ms的前导高电平信号。
{delay(1);
L++;
}
if(L3)
{break;}
for (j=0;j4;j++) //收集四组数据
{
for (k=0;k8;k++) //每组数据有8位
{
while ((rGPGDAT0x1)==0) //等 IR 变为高电平
{delay(1);}
while (rGPGDAT0x1) //计算IR高电平时长
{
delay(1);
N++;
if(N=30) //0.14ms计数过长自动离开。
{break;}
} //高电平计数完毕
文档评论(0)