实验二十一 红外发射接收实验.doc_第1页
实验二十一 红外发射接收实验.doc_第2页
实验二十一 红外发射接收实验.doc_第3页
实验二十一 红外发射接收实验.doc_第4页
实验二十一 红外发射接收实验.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二十一 红外发射接收实验一、实验目的了解红外通信知识,掌握红外数据收发的电路、编解码的编程方法。二、实验内容根据系统提供的红外收发电路,单片机一方面从发送端发出数据,一方面从接收端接收数据,并比较收到的数据与发送的是否一致。三、实验要求按实验内容编写程序,并在实验仪上调试和验证。四、实验说明在很多单片机应用系统中,常常利用非电信号(如光信号、超声波信号等)传送控制信息和数据信息,以实现遥控或遥测的功能。红外通信具有控制简单、实施方便、传输可靠性高的特点,是一种较为常用的通信方式。实现单片机系统红外通信的关键在于红外接口电路的设计以及接口驱动程序的设计。1红外通信的基本原理红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端采用脉时调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。2红外发送器红外发送器电路包括脉冲振荡器、驱动管Q1和Q2、红外发射管Q3等部分。其中脉冲振荡器由2206组成,用以产生38kHz的脉冲序列作为载波信号;红外发射管Q3用来向外发射950nm的红外光束。红外发送器的工作原理为:串行数据由单片机的串行输出端DATA送出并驱动Q1管,数位“0”使Q1管导通,通过Q2管调制成38kHz的载波信号,并利用红外发射管Q3以光脉冲的形式向外发送。数位“1”使Q1管截止,红外发射管Q3不发射红外光。若传送的波特率设为1200bps,则每个数位“0”对应32个载波脉冲调制信号的时序,如图21-1所示。图21-1 调制信号时序图3红外接收器红外接收电路选用专用红外接收模块。该接收模块是一个三端元件,使用单电源+5V电源,具有功耗低、抗干扰能力强、输入灵敏度高、对其它波长(950nm以外)的红外光不敏感的特点,其内部结构框图如图21-2所示。图21-2 红外接收模块内部结构框图接收模块的工作原理为:首先,通过红外光敏元件将接收到的载波频率为38kHz的脉冲调制红外光信号转化为电信号,再由前置放大器和自动增益控制电路进行放大处理。然后,通过带通滤波器和进行滤波,滤波后的信号由解调电路进行解调。最后,由输出级电路进行反向放大输出。为保证红外接收模块接收的准确性,要求发送端载波信号的频率应尽可能接近38kHz,因此在设计脉冲振荡器时,要选用精密元件并保证电源电压稳定。再有,发送的数位“0”至少要对应14个载波脉冲,这就要求传送的波特率不能超过2400bps。五、实验预习要求学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。六、实验内容及步骤1、把7279阵列式键盘的J9四只短路帽打在上方,J10打在VCC处,用8P排线将JD7和八位动态数码显示的JD11相连,JD8和JD12相连;红外发射的短路帽J14,J15,J16都打在上方,IN接最小系统的P1.0,同时P1.0在接八位逻辑笔的任意口,OUT接最小系统的T1口。2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加 “红外发射接受程序.ASM”源程序,进行编译,直到编译无误。4、编译无误后,运行程序。观察发光管的闪烁(为发射的数据)和数码管的显示接收的数据。若显示不正常则可调RW0调频率到38K RW2调适当的幅度!5、也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二)七、源程序(光盘中附带) 八、电路图;/*;/*文件名:红外发射接受实验程序;/*创建人:巫升辉 ;/*2005.9.25 ;功能:程序由定时器T0产生1HZ的调制信号由.P1.0产生,T1口对红外接收头 ;接受的信号进行处理并送显示,注:一般红外线接受模块的解调信号频率 ;为38KHZ,当它接受到38khz左右的红外信号时将输出低电平,但输出低电 ;平的时间是有限制的如(100ms),也就是说发送数据的低电平宽度是有限的。;接线:p1.0接八位逻辑输出电平的任意一个口,同时接到红外发射头的调 ;制信号输入口将产生的38KHZ信号接如红外发射头的载波输入口,在将红外 ;接受头的的输出端接到T1, RXD-DIN TXD-CLK。;/* ConterSoft EQU 50H ;定时计数值 ;LEDBuf EQU 30H ;TEMP EQU 40H DBUF DATA 030H BIT_COUNT DATA 040H TIMER DATA 041H DATA_IN DATA 020H DATA_OUT DATA 021H CLK BIT P1.6 DAT BIT P1.7 ORG 0000H ljmp MAIN ORG 000BH LJMP INT_T0 ;T0中段入口MAIN: MOV TMOD,#51H ;T0定时/T1计数 MOV TL0,#00H ;11.0592晶振 MOV TH0,#4CH mov TH1, #0 mov TL1, #0 MOV ConterSoft,#10;改变立即数则改变调制信号的发生频率观查实验效果 SETB ET1 setb TR1 ; 开始记数 SETB TR0 SETB ET0 SETB EA Mloop: ACALL TOBCD ACALL DISPLAY ACALL DELAY Ljmp MLoopINT_T0: CLR EA PUSH ACC MOV A,ConterSoft DEC A MOV ConterSoft,A JNZ BACK ;软件计数,次数不到返回,不为零时则转移 CPL P1.0 MOV ConterSoft,#10 ;改变立即数则改变调制信号的发生频率观查实验效果 BACK: MOV TL0,#00H MOV TH0,#4CH SETB ET0 ;允许T0中断 SETB TR0 SETB EA POP ACC RETI;双字节十六进制整数转换三字节BCD码TOBCD:;= MOV R7,TL1 MOV R6,TH1HB2: CLR A ;码初始化 MOV R3,AMOV R4,AMOVR5,AMOVR2,#10H ;转换双字节十六进制整数HB3:MOVA,R7 ;从高端移出待转换数的一位到CY中RLCAMOVR7,AMOVA,R6RLCAMOVR6,AMOVA,R5 ;码带进位自身相加,相当于乘ADDCA,R5DAA ;十进制调整MOVR5,AMOVA,R4ADDCA,R4DAAMOVR4,AMOVA,R3ADDCA,R3MOVR3,A ;双字节十六进制数的万位数不超过,不用调整DJNZR2,HB3 ;处理完16bit;BCD码拆开送缓存DisplayResult: mov a, R3 anl a,#0fh mov DBUF+4,A ;R3低四位送缓存0 mov a, R4 swap a anl a,#0fh mov DBUF+3,a ;R4高四位送缓存1 mov a, R4 anl a,#0fh mov DBUF+2,a ;R4低四位送缓存2 mov a, R5 swap a anl a,#0fh mov DBUF+1,a ;R5高四位送缓存3 mov a, R5 anl a,#0fh mov DBUF,a ;R5低四位送缓存4 retDELAY: LCALL DELAY1 LCALL DELAY1 LCALL DELAY1 LCALL DELAY1 LCALL DELAY1 RETDELAY1:MOV R1, #0DLOOP: DJNZ R1, DLOOP DJNZ R0, DELAY1 RETDelay2: mov r5, #2A0: mov r6, #20 A1: mov r7, #50DelayLoop: NOP NOP djnz r7, DelayLoop djnz r6, A1 djnz r5, A0 RETDISPLAY: ANL P2,#00H ; CS7279有效 MOV DATA_OUT,#10100100B ; A4H,复位命令 CALL SEND MOV DATA_OUT,#10000000B ; 在第一个数码管上显示 CALL SEND MOV DATA_OUT,DBUF CALL SEND MOV DATA_OUT,#10000001B ; 译码方式0,2位显示在第二个数码管上显示 CALL SEND MOV DATA_OUT,DBUF+1 CALL SEND MOV DATA_OUT,#10000010B ; 译码方式0,3位显示在第三个数码管上显示 CALL SEND MOV DATA_OUT,DBUF+2 CALL SEND MOV DATA_OUT,#10000011B ; 译码方式0,4位显示在第四个数码管上显示 CALL SEND MOV DATA_OUT,DBUF+3 CALL SEND MOV DATA_OUT,#10000100B ; 译码方式0,5位显示在第五个数码管上显示 CALL SEND MOV DATA_OUT,DBUF+4 CALL SEND RET SEND: MOV BIT_COUNT,#8 ; 发送字符子程序 ANL P2,#00H CALL LONG_DELAYSEND_LOOP:MOV C,DATA_OUT.7 MOV DAT,C SETB CLK MOV A,DATA_OUT RL A MOV DATA_OUT,A CALL SHORT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论