51单片机红外线遥控试验.docx

上传人:b****0 文档编号:9038969 上传时间:2023-05-16 格式:DOCX 页数:9 大小:176.79KB
下载 相关 举报
51单片机红外线遥控试验.docx_第1页
第1页 / 共9页
51单片机红外线遥控试验.docx_第2页
第2页 / 共9页
51单片机红外线遥控试验.docx_第3页
第3页 / 共9页
51单片机红外线遥控试验.docx_第4页
第4页 / 共9页
51单片机红外线遥控试验.docx_第5页
第5页 / 共9页
51单片机红外线遥控试验.docx_第6页
第6页 / 共9页
51单片机红外线遥控试验.docx_第7页
第7页 / 共9页
51单片机红外线遥控试验.docx_第8页
第8页 / 共9页
51单片机红外线遥控试验.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

51单片机红外线遥控试验.docx

《51单片机红外线遥控试验.docx》由会员分享,可在线阅读,更多相关《51单片机红外线遥控试验.docx(9页珍藏版)》请在冰点文库上搜索。

51单片机红外线遥控试验.docx

51单片机红外线遥控试验

红外线遥控试验 

 

   XL2000试验仪配有一个标准的32位HT6121编码红外遥控器。

通用红外遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,如图1所示。

发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。

这种遥控码具有以下特征:

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示

相关原理:

解码的关键是如何识别“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.84ms最为可靠,一般取0.84ms左右均可。

  

程序运行的照片:

接线方法:

1、接8位数码管的数据线。

将数码管部份的数据口JP5接到CPU部份的P0口JP51.

2、接8位数码管的显示位线。

将数码管部份的显示位口JP8接到CPU部份的P2口JP52.

3、用一根1PIN数据线一端插入CPU部分JP53(P3口)的P3.7另外一端插入红外遥控部分的输出端JP45。

程序流程图:

汇编语言参考程序:

org00h

ORG80H

MOVP1,#0FFH

MOVP2,#0FFH

MOVP3,#0FFH

START:

JBP3.7,$;等待遥控信号出现

SB:

MOVR4,#8;8毫秒为高电平错误

SBA:

MOVR5,#250

SBB:

JBP3.7,SXB1

DJNZR5,SBB

DJNZR4,SBA

MOVR4,#2

JMPSBC

SXB1:

MOVR5,#5

SXB2:

;去掉20US的尖峰干扰信号

JNBP3.7,SBB

DJNZR5,SXB2

JMPSTART

SBC:

MOVR5,#250

SB1:

JBP3.7,SB2;2MS内不为高电平错误(监测9MS的低电平引导码)

DJNZR5,SB1

DJNZR4,SBC

JMPSTART

SB2:

;去掉20US的尖峰干扰信号

MOVR5,#5

SB2_A:

JNBP3.7,SB1

DJNZR5,SB2_A

MOVR4,#3

SB2_1:

MOVR5,#250

SB3:

;监测4.5MS高电平,如3MS内出现低电平错误

JNBP3.7,SXC

DJNZR5,SB3

DJNZR4,SB2_1

MOVR4,#2

JMPSB3_1

SXC:

;去掉20US的尖峰干扰信号

MOVR5,#5

SXC1:

JBP3.7,SB3

DJNZR5,SXC1

JMPSTART

SB3_1:

;监测4.5MS高电平,如5MS内不为低电平错误

MOVR5,#250

SB3_2:

JNBP3.7,SB4

DJNZR5,SB3_2

DJNZR4,SB3_1

JMPSTART

SB4:

;去掉20US的尖峰干扰信号

MOVR5,#5

SB4_1:

JBP3.7,SB3_2

DJNZR5,SB4_1

MOVR1,#1AH;设定1AH为起始RAM区

MOVR2,#4

PP:

MOVR3,#8

JJJJ:

MOVR5,#250

JJJJ2:

;1MS内不为低电平错误

JBP3.7,JJJJ3

DJNZR5,JJJJ2

JMPSTART

JJJJ3:

LCALLYS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态

MOVC,P3.7;将P3.7引脚此时的电平状态0或1存入C中

JNCUUU;如果为0就跳转到UUU

MOVR5,#250

JJJJ4:

JNBP3.7,UUU

NOP

DJNZR5,JJJJ4

JMPSTART

UUU:

MOVA,@R1;将R1中地址的给A

RRCA;将C中的值0或1移入A中的最低位

MOV@R1,A;将A中的数暂时存放在R1中

DJNZR3,JJJJ;接收地址码的高8位

INCR1;对R1中的值加1,换成下一个RAM

DJNZR2,PP;接收完16位地址码和8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH的RAM中

;以下对代码是否正确和定义进行识别

MOVA,1AH;比较高8位地址码

XRLA,#00000000B;判断1AH的值是否等于00000000,相等的话A为0

JNZEXIT;如果不相等说明解码失败退出解码程序

MOVA,1BH;比较低8位地址

XRLA,#11111111B;再判断高8位地址是否正确

JNZEXIT;如果不相等说明解码失败退出解码程序

LCALLYS3

MOVA,1CH;比较数据码和数据反码是否正确?

CPLA

XRLA,1DH;将1CH的值取反后和1DH比较不同则无效丢弃,核对数据是否准确

JNZEXIT;如果不相等说明解码失败退出解码程序

LCALLYS3

CLRP2.6;选中数码管

CLRP3.3;解码成功喇叭响?

AJMPBIJIAO

;判断在118毫秒内是否有连发码

AA:

MOVR1,#25

XX:

ACALLYS2

JNBP3.7,HH;跳转到判断连发代码是否正确的程序段

DJNZR1,XX

EXIT:

;对所有端口清零

AJMPSTART

;连发码判断程序段-----------

HH:

MOVR6,#4

S:

ACALLYS1;调用882微秒延时子程序

JBP3.7,EXIT;延时882微秒后判断P3.7脚是否出现高电平如果有就退出解码程序

DJNZR6,S;重复4次,目的是确认连发码的低电平信号波形

JNBP3.7,$;等待高电?

LCALLYS3

AJMPAA

BIJIAO:

MOVA,1CH;按键数值判断执

movp1,a

CJNEA,#10h,TT1

MOVP0,#7EH;数码管显示1

TT1:

CJNEA,#03h,T2

MOVP0,#0A2H;数码管显示2

T2:

CJNEA,#01h,T3

MOVP0,#62H;数码管显示3

T3:

CJNEA,#06h,T4

MOVP0,#74H;数码管显示4

T4:

CJNEA,#09h,T5

MOVP0,#61H;数码管显示5

T5:

CJNEA,#1dh,T6

MOVP0,#21H;数码管显示6

T6:

CJNEA,#1fh,T7

MOVP0,#7AH;数码管显示7

T7:

CJNEA,#0dh,T8

MOVP0,#20H;数码管显示8

T8:

CJNEA,#19h,t9

MOVP0,#60H;数码管显示9

T9:

CJNEA,#1bh,t10

MOVP0,#28H;数码管显示0

T10:

CJNEA,#11h,t11

MOVP0,#30H;数码管显示A

T11:

CJNEA,#15h,t12

MOVP0,#25H;数码管显示b

T12:

CJNEA,#17h,t13

MOVP0,#0a9H;数码管显示C

T13:

CJNEA,#12h,t14

MOVP0,#26H;数码管显示d

T14:

CJNEA,#16h,t15

MOVP0,#0a1H;数码管显示E

T15:

CJNEA,#4ch,t16

MOVP0,#0b1H;数码管显示f

t16:

AJMPAA

YS1:

MOVR4,#20;延时子程序1,精确延时882微秒

D1:

MOVR5,#20

DJNZR5,$

DJNZR4,D1

RET

YS2:

MOVR4,#10;延时子程序2,精确延时4740微秒

D2:

MOVR5,#235

DJNZR5,$

DJNZR4,D2

RET

YS3:

MOVR4,#2;延时程序3,精确延时1000微秒

D3:

MOVR5,#248

DJNZR5,$

DJNZR4,D3

RET

END

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2