单片机课程设计(论文)红外接收发送器.doc

上传人:laozhun 文档编号:2986486 上传时间:2023-03-07 格式:DOC 页数:21 大小:157KB
返回 下载 相关 举报
单片机课程设计(论文)红外接收发送器.doc_第1页
第1页 / 共21页
单片机课程设计(论文)红外接收发送器.doc_第2页
第2页 / 共21页
单片机课程设计(论文)红外接收发送器.doc_第3页
第3页 / 共21页
单片机课程设计(论文)红外接收发送器.doc_第4页
第4页 / 共21页
单片机课程设计(论文)红外接收发送器.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机课程设计(论文)红外接收发送器.doc》由会员分享,可在线阅读,更多相关《单片机课程设计(论文)红外接收发送器.doc(21页珍藏版)》请在三一办公上搜索。

1、机电信息工程学院单片机系统课程设计报告系:电子工程系专 业:通信工程班 级:051班设计题目:红外收发器学生姓名:指导教师: 完成日期:2008年3月21日目 录一、设计任务和性能指标11.1设计任务11.2性能指标1二、设计方案1三、系统硬件设计23.1 红外发射模块设计2(一)单片机的最小系统2(二)键盘电路4(三)红外线发射编码43.2 红外接收模块设计4(一)红外接收器设计4(二)显示电路的设计5(三)键盘接口的设计5四、系统软件设计5五、调试及性能分析75.1调试步骤75.2性能分析8六、心得体会8参考文献9附录101程序清单102硬件原理图17一、设计任务和性能指标1.1设计任务红

2、外遥控技术是一种利用红外线进行点对点通信的技术,其相应的软件和硬件技术都已比较成熟。它是把红外线作为载体的遥控方式。在现代电子工程应用中,红外线常常被用做近距离视线范围内的通讯载波,最典型的应用就是家电遥控器。使用红外线做信号载波的优点很多:成本低、传播范围和方向可以控制、不产生电磁辐射干扰,也不收干扰等等。因此被广泛地应用在各种技术领域中。红外线遥控具有结构简单,制作方便,成本低廉,抗干扰能力强,工作可靠性高等一系列优点,特别是室内遥控的优先遥控方式。同时,由于采用红外线遥控器件时,工作电压低,功耗小,外围电路简单,因此它在日常工作生活中的应用越来越广泛。 1.2性能指标1.基本要求(1)

3、能够实现利用红外线实现无线数据的收发;(2) 能够将发送的数据或接收的数据进行显示,或根据接收的命令执行相应的功能。2. 选做(1) 所发送的数据利用PC机进行控制;(2) 能够实现的数据通信采用一对多的主从模式;(3) 能够实现远程的参数数据传送,如实现远程抄表、温度、湿度等。二、设计方案按照性能设计指标的要求,设计红外收发系统有发射和接收两大模块组成。发射部分包括键盘矩阵、编码调制、红外发送器;接收部分包括光、电转换放大器、解调、解码电路。具体框图如下:显示电路红外接收器红外发射器键盘电路图1:红外发射框图 图2:红外接收框图三、系统硬件设计3.1 红外发射模块设计 (一)单片机的最小系统

4、ATMEL公司生产的AT89C51单片机它是硬件电路的核心部分,时钟电路晶振使用11.0592MHZ,复位电路采取按键复位方式。具体连接见附录1。1、主要元器件介绍单片机主控电路的主要元件是AT89C51,其外型如图3:图3:AT89C51引脚图AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4K BYTES的可反复擦写的只读程序存储器(PEROM)和128 BYTES的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元,内置功能强大的微型计算机的AT89C51提供了高性价

5、比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和FLASH存储器结合在一起,特别是可反复擦写的FLASH存储器可有效地降低开发成本。2、管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原

6、码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址

7、外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部

8、中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。/ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据

9、存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程

10、期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(二)键盘电路键盘采用列扫描。列扫描的原理是:使第一行线为低电平,如果这条列线上没有闭合键,则各条线的状态都为高电平,如果行线上有闭合键,则相应的那条列线即变为低电平。于是就可以根据按行线号和列线号求得闭合键的键码。行号分别接到了P1.0,P1.1,P1.2,列号分别接到了P1.3,P1.4,P1.5,做成了3*3的矩阵式键盘。(三)红外线发射编码AT89C51的P1.7引脚外接元件组成了红外驱动放大发射电路。它主要是由驱动管和红外发射二极管组成的。当P1

11、.7脚有指令信号输出时,该信号经驱动管放大后,加至红外发射二极管上,遥控指令则以红外线的形式发射出去。 当按下键盘上的不同按键时,通过编码器产生与之相应的特定的二进制脉冲码信号。将此二进制脉冲码信号先调制在38KHz的载波上,经过放大后,激发红外发光二极管转发成波长940nm的红外线光传输出去。3.2 红外接收模块设计(一)红外接收器设计红外接收器采用一体化红外遥控接收器SM0038,实验电路如图4:1 2 3OUT VCC GND 图4:SM0038OUT接单片机的P3.2口,若有红外线数字信号则经过红外接收器取出数字信号数据经单片机译码,最后送到显示电路。GND接地,VCC接高电平。(二)

12、显示电路的设计显示部分采用普通的共阳数码管显示,使用动态扫描,以便减少硬件电路。考虑到一次扫描7位数码管显示时会出现闪烁情况,设计时采用多次调用显示子程序解决这个问题。驱动数码管的芯片采用驱动能力较强的74HC373,使用单片机的P0口作为并行输出,74HC373是高电平锁存,用P1.4口作为74HC373时钟控制端口,即置1控制端。由于数码管采用共阳接法,使用P2.0-P2.1口作为数码管的位选。74HC373在得到高电平后,将8位数据锁存,并行输出送至数码管各段选控制口。(三)键盘接口的设计键盘只有4个,其中2个用于单片机上电复位,其中一个用于电源转换电路中,另外一个用于红外发射程序和红外

13、接收程序能下载到不同单片机上的转换开关。四、系统软件设计系统软件可分为发射部分、接收部分和显示三部分。软件可由汇编语言完成。发射和接收部分都采用AT89C51。发射程流程图如图5:开始NYNY键按下逐行扫描,按P口值查 键号按键号转至相应的发射程序装入发射脉冲个数到(R1)发3ms脉冲停发1ms(R1)-1=0?发1ms脉冲停发1ms开始发射初始化扫描键盘延时消抖结束 图5.1:发射主程序流程图 图5.2:发射程序流程图 图5:发射流程图接收流程图如图6: NYNYNY初始化低电平脉宽2ms?接收并对低电平脉冲计数高电平脉冲宽3ms?按脉冲个数至对应功能程序中断返回中断开始开始是否有中断?调中

14、断子程序按照按键数显示 图6.1:接受主程序流程图 图6.2:中断子程序流程图图6:接收流程图五、调试及性能分析5.1调试步骤调试分为硬件调试和软件调试。硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测试结果如下:(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导线是否完全连接,测试结果所有连接线都已连接好;(2)检验单片机的晶振是否起振,用示波器观察波形;测试结果波形都很好;(3)检查各芯片的功能是否正常,检测按键的导通情况。测试结果正常。软件调试主要是程序调试,可以分块进行调试,分别对发射模块和接收模块程序进行调试。首先都要在实验台上进行调试。具体步骤如下:

15、(1)发射模块程序调试,首先将程序输入到电脑中,对逻辑功能和语句进行检查,再用软件进行调试,调试无错误后才可以下载到单片机中。(2)接收模块程序调试,程序无错误后,下载到单片机中,结合接收模块程序,验证实验功能,当发射部分有键按下时,接收模块中的接收器接收红外线并在数码管中显示出按键数,完成实验要求。5.2性能分析首先单片机按键复位后,数码管无显示,指示灯灭。然后把发射程序和接收程序分别下载到相应的单片机中,当发射部分有键按下时,经过内部编码,然后根据键值设定按键的脉冲个数,再调制成40HZ方波由红外发射管发射出去。红外接收模块的红外接收器SM0038接收红外线,当红外接收器输出脉冲帧数据时,

16、第一位码的低电平将启动终端程序,实时接收数据帧。在数据帧接收时,将对第一位码的码宽进行验证,若第一位低电平的脉冲小于2ms,将作为错误码处理,当间隔位的高电平脉冲宽大于3ms时,结束接收。再经过单片机的译码来确定所按键的脉冲数,并经过解码功能确定相应的功能,最后经过数码管显示出按键数。红外接收器输出的一帧遥控码波形如图7:1ms第一位2ms1ms 图7:红外接收器一帧遥控码波形图六、心得体会这次课程设计是对我们学习微机原理及单片机课程的检验及实际应用能力的一次提高。我们所设计的是红外收发器。所能实现的是红外的发射和接收,发射部分通过键盘输入数字通过AT89C51编码并用红外二极管发射出去。接收

17、部分通过另外一块AT89C51通过中断方式接收红外信号并解码,最后从数码管显示所按下的键号。原理图的设计时我们使用了Altium6.0这个强大的绘图工具,由于一些实际的器件在器件库中无法找到,我们只有自己制作,在这个过程中我们学到了很多的知识和方法。在制作PCB印刷电路板的时候,很多器件的封装与实际尺寸存在很大的差别,为了获得准确的封装,我们实际测量了所给器件的大小与规格,自己制作与之匹配的封装库,这让我们明白实践是出真知的唯一途径,只有亲自动手,实际才能测试才能获得最可靠的设计数据。当然我们也出现了严重的失误,由于对电源与地的距离估计不足,导致两者过近,出现了短接的危险。因此我们不得不重新处

18、理这个问题,这个教训也告诫了我们,对于任何小的细节都不能掉以轻心,小的疏忽也会造成大的损失。对于电路图和电路板都应当采取科学谨慎的态度,这是保证是的基本实验结果产生的前提,在正式焊接前,对电路板的核查测试应当细心备至,反复检测才不会导致最终的失败。程序的编写过程也给了我们很大的收获。在编写程序之前,我们查阅了大量的相关资料,力求做到规范清晰。在把握了整体的思路后,我们先从程序流程图着手, 将整个程序分成若干模块,分开编写,一边发现问题一边解决问题,并在实验板上检验程序测试情况,根据现象不断修改。在这个过程中我们体会到编程的技巧,设置子程序的合理性,同时对单片机最小系统的设计有了整体的理解和深刻

19、的体会,使我们的思维的锻炼与能力培养有了很大的提高和长足的进步。本次课程设计虽然时间很短,但收获却很大。首先我们对单片机最小系统的设计有了整体的把握,对程序编写的合理与规范性有了深刻的理解,建立起程序设计的一般思路,以及Altium6.0的使用方法,其强大的功能给我们提供了很大的帮助,通过原理图的设计过程,使我们认识到了这个软件的重要性,我们会以此为契机,在日后的学习中会继续使用它,使其发挥更大的功能。经过三个星期的课程设计,我们得到了充分的锻炼,不仅对单片机的学习有了深刻的理解,同时也增强了我们的毅力和处理突发问题的能力。学习是要付出一定的艰辛与努力的,做事情一定要有不怕困难的吃苦精神,唯有

20、坚持不懈,发扬团队协作才能够克服困难,取得最后的胜利。相信本次课程设计对我们以后的学习将会有很大的影响,我们一定会积极地总结经验与教训,改进不足,争取在日后做得更好。当然要感谢老师和同学们的帮助,在我们束手无策,陷入困境的时候给予热情的帮助,使我们顺利渡过难关。课程设计是一次很好的实践动手机会,通过实践,我们的知识得到了应用,真正实现了知识的学以致用,理论联系实际,我们会更加注重实践能力的锻炼,注重动手能力的培养。参考文献1 彭为、黄科、雷道仲. 单片机典型系统设计实例精讲. 北京:电子工业出版社,20062 陈明荧. 8051单片机课程设计实训教材. 北京: 清华大学出版社,2004 3 李

21、群芳,黄建. 单片机微型计算机与接口技术. 北京:电子工业出版社,20014 楼然苗、李光飞. 51系列单片机设计实例. 北京:北京航空航天大学出版社,20035 李光飞、楼然苗. 单片机课程设计指导. 北京航空航天大学出版社,2007附录1程序清单发射程序;主程序和中断程序入口ORG 0000H AJMP STARTORG 0003H RETIORG 000BH RETI ORG 0013H RETI ORG 001BH ;定时器T1中断入口地址 LJMP INTT1 ;初始化程序 CLEARMEMIO: CLR A DEC A MOV P0,A MOV P1,A MOV P2,A MOV

22、P3,A CLR P1.7 MOV IE,#00H ;关所有中断 MOV TMOD,#20H ;方式2 MOV TH1,#0F5H ;定时初值 MOV TL1,#0F5H SETB EA RET;主程序START: LCALL CLEARMEMIO MAIN: LCALL KEYWORK LJMP MAIN ;中断服务程序INTT1: CPL P1.7 ;38.5KHZ红外遥控信号 RETI KEYWORK: MOV P1,#0FFH ;置P1口为输入状态 CLR P1.7 CLR P1.6 CLR P1.0 ;扫描第1行 MOV A,P1 ANL A,#38H CJNE A,#38H,KEY

23、CON SETB P1.0 ; 扫描第2行 CLR P1.1 MOV A,P1 ANL A,#38H CJNE A,#38H,KEYCON SETB P1.1 ;扫描第3行 CLR P1.2 MOV A,P1 ANL A,#38H CJNE A,#38H,KEYCON SETB P1.2 ;结束扫描 RET KEYCON: LCALL DELAY ;延时去抖动 MOV A,P1 ;读入P1口值 ANL A,#38H CJNE A,#38H,KEYCHE ;确有键按下KEYOUT: RETKEYCHE: MOV A,P1 MOV B,A LOOP: MOV A,P1 ANL A,#38H ;低3

24、位为0 CJNE A,#38H,LOOP ;列选全为1(键按着) MOV R7,#00H ;放键,查表次数为0 MOV DPTR,#KEYTABCHELOOP: MOV A,R7 MOVC A,A+DPTR XRL A,B ;查表值与P1口值比较 JZ KEYOK INC R7 CJNE R7,#09H,CHELOOP RETKEYOK: MOV A,R7 MOV B,A RL A ADD A,B MOV DPTR,#KEYFUNTAB ;散转功能程序首址 JMP A+DPTR ;散转至对应功能程序标号KEYFUNTAB: LJMP KEYFUN00 ;跳到键号对应功能程序标号 LJMP KE

25、YFUN01 LJMP KEYFUN02 LJMP KEYFUN03 LJMP KEYFUN04 LJMP KEYFUN05 LJMP KEYFUN06 LJMP KEYFUN07 LJMP KEYFUN08 RETKEYTAB: DB 36H,35H,33H,2EH,2DH,2BH,1EH,1DH,1BH,0FFHKEYFUN00: MOV A,#02H ;发送2个脉冲 LCALL REMOTE ;转发送程序 RET KEYFUN01: MOV A,#03H ;发送3个脉冲 LCALL REMOTE ;转发送程序 RET KEYFUN02: MOV A,#04H ;发送4个脉冲 LCALL

26、REMOTE ;转发送程序 RET KEYFUN03: MOV A,#05H ;发送5个脉冲 LCALL REMOTE ;转发送程序 RET KEYFUN04: MOV A,#06H ;发送6个脉冲 LCALL REMOTE ;转发送程序 RET KEYFUN05: MOV A,#07H ;发送7个脉冲 LCALL REMOTE ;转发送程序 RET KEYFUN06: MOV A,#08H ;发送8个脉冲 LCALL REMOTE ;转发送程序 RET KEYFUN07: MOV A,#09H ;发送9个脉冲 LCALL REMOTE ;转发送程序 RET KEYFUN08: MOV A,#

27、0AH ;发送10个脉冲 LCALL REMOTE ;转发送程序 RET ;编码发射程序REMOTE: MOV R1,A ;装入发射脉冲个数 LJMP OUT3 OUT: MOV R0,#75H ;1MS宽低电平发射数据 OUT1: SETB ET1 ;开T1中断 SETB TR1 ;开定时器T1 NOP NOP NOP NOP DJNZ R0,OUT1 MOV R0,#32H ;1MS宽高电平间隙控制数据 OUT2: CLR TR1 ;关定时器T1 CLR ET1 ;关中断 CLR P1.7 ;关脉冲输出 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP

28、 NOP NOP DJNZ R0,OUT2 ;时间不到,转OUT2再循环 DJNZ R1,OUT ;脉冲未发完,转OUT再循环发射 LCALL DL500MS RET OUT3: MOV R0,#0FFH ;装发射3MS宽控制数据 LJMP OUT1DELAY: MOV R2,#0FFHDELAY1: DJNZ R2,DELAY1 RET ;10MS延时 DL10MS: MOV R3,#14HDL10MS1: LCALL DELAY DJNZ R3,DL10MS1 RET;500MS延时程序 DL500MS: MOV R4,#32H DL500MS1: LCALL DL10MS DJNZ R4

29、,DL500MS1 RET END接受程序;主程序和中断程序入口ORG 0000H AJMP STARTORG 0003H ;外部中断0中断入口 LJMP INTEX0ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI ;初始化程序 CLEAR: CLR A DEC A MOV P0,A MOV P1,A MOV P2,A MOV P3,ACLEARMEM: MOV IE,#00H ;关所有中断 SETB EX0 ;开外中断 SETB EA ;总中断允许 RET START: LCALL CLEA

30、R SJMP $;遥控接收程序(采用中断接收) INTEX0: CLR EX0 ;关外中断 JNB P3.2,READ1 READOUT: SETB EX0 ;允许外部中断0中断 RETI READ1: CLR A MOV DPH,A ;DPTR清零 MOV DPL,A HARD1: JB P3.2,HARD11 ;P3.2变高电平转HARD11 INC DPTR ;低电平记数 NOP ;1US延时 NOP AJMP HARD1 HARD11: MOV A,DPH ;DPTR高8位放入A JZ READOUT ;为0则脉宽小于(255*8US)2MS退出 CLR A ;否则第一个为宽脉冲(计数器先清0) CLR P3.6 READ11: INC A READ12: JNB P3.2,READ12 ;低电平时等待 MOV R1,#06H READ13: JNB P3.2,READ11 LCALL DELAY ;延时512US DJNZ R1,READ13 ;6次延时 DEC A ;超过3MS判为结束,减1 DEC A JZ FUN0 ;为0执行FUN0(2个脉冲) DEC A

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号