红外遥控模拟与嵌入式系统实验报告.pdfVIP

红外遥控模拟与嵌入式系统实验报告.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

方法、步骤:

红外通信:红外基带通信协议很多,我们用的是比较普遍的NEC协议。

NEC协议的数据格式包括了码、用户码、用户码(或者用户码反码)、

按键键码和

键码反码,最后一个停止位。停止位主要起作用,一般不进行判断,编程

时我们也不予

理会。其中数据编码总共是4个字节32位。

矩阵按键到键码的映射表

{1,2,3,0x26},//数字键1、数字键2、数字键3、向上键

{4,5,6,0x25},//数字键4、数字键5、数字键6、向左键

{7,8,9,0x28},//数字键7、数字键8、数字键9、向下键

{0,0x1B,0x0D,0x27}//数字键0、ESC键、回车键、向右键

我们通过红外NEC协议进行通信,当按下什么键时做出相应的反应。

蜂鸣器:

按照驱动方式分为有源蜂鸣器和无源蜂鸣器。这里的有源和无源不是指电源,而是振荡

源。有源蜂鸣器带了振荡源给了BUZZ引脚一个低电平,蜂鸣器就会直接响。而无

源蜂鸣器是不带振荡源的,要让他响必须给500Hz~4.5KHz之间的脉冲频率信号来

驱动它才会响。

我们用的是蜂鸣器,当检测到红外信号时,蜂鸣器就响一下,代表将做出反应。

数码管显示:

数码管的8个段,我们直接当成8个LED小灯来控制,那就是a、b、c、d、e、f、g、

dp一共8个LED小灯。

多个数码管显示数字的时候,我们实际上是轮流点亮数码管(一个时刻内只有一个数码

管是亮的),利用人眼的视觉暂留现象(也叫余辉效应),就可以做到看起来是所有数

码管都

同时亮了,这就是动态显示,也叫做动态扫描。

以数码管动态显示秒表程序为例:

LED灯:

当引脚输出一个高电平,就是跟VCC一样的5V电压,那么这个时候,左侧VCC电

压和右侧的引脚的电压是一致的,那就没有电压差,没有电压差就不会产生电流,没有电

流LED小灯就不会亮,也就是会处于熄灭状态。如果输出是低电平时,电路就会有电压

差,LED小灯就会亮。

我们是用LED小灯来显示声音的大小。有一个灯亮是代表一音量,两个灯亮代表两音量。

2

IC总线与EEPROM:

I2C总线是由时钟总线SCL和数据总线SDA两条线构成,连接到总线上的所

有器件的SCL都连到一起,所有SDA都连到一起。

起始信号:I2C通信的起始信号的定义是SCL为高电平期间,SDA由高电平向低电

平变化产生一个下降沿,表示起始信号。

数据传输:有时序的要求,要求当SCL在低电平的时候,SDA允许变化,也就是说,

发送方必须先保持SCL是低电平,才可以改变数据线SDA,输出要发送的当前数据的

一位;而当SCL在高电平的时候,SDA绝对不可以变化,因为这个时候,接收方要来

当前SDA的电平信号是0还是1,因此要保证SDA的稳定。

停止信号:I2C通信停止信号的定义是SCL为高电平期间,SDA由低电平向高电平

变化产生一个上升沿,表示结束信号。

我们用EEPROM实现掉电喜好数。

实验过程及内容:

数码管显示部分:

//**************共阳极8段数码管动态扫描模块****************

#includereg52.h

sbitSEG_CON=P2^5;//段选控制端

sbitBIT_CON=P2^6;//位选控制端

unsignedcharseg_data[]

={0xff,0xff,0xff,0xff,0xf6,0xff,0xff,0xf6};//数码管各段缓存

unsignedcharcode

bit_num[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//数码管各

位的码表

unsignedcharcodehello[]

={0xbf,0xff,0x89,0x86,0xc7,0xc7,0xc0,

文档评论(0)

fuwuzhishi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档