单片机课程设计论文红外线接收发送装置设计.doc

上传人:sccc 文档编号:4848020 上传时间:2023-05-19 格式:DOC 页数:25 大小:352.52KB
返回 下载 相关 举报
单片机课程设计论文红外线接收发送装置设计.doc_第1页
第1页 / 共25页
单片机课程设计论文红外线接收发送装置设计.doc_第2页
第2页 / 共25页
单片机课程设计论文红外线接收发送装置设计.doc_第3页
第3页 / 共25页
单片机课程设计论文红外线接收发送装置设计.doc_第4页
第4页 / 共25页
单片机课程设计论文红外线接收发送装置设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

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

1、课程设计说明书 第24页红外线接收发送装置设计摘 要利用红外线传输信息的方式可用于近距离遥控、飞机内广播和航天飞机内宇航员间的通信等。同时红外通信技术适合于低成本、跨平台、点对点高速数据连接,尤其是嵌入式系统。其主要应用:设备互联、信息网关。设备互联后可完成不同设备内文件与信息的交换。信息网关负责连接信息终端和互联网。红外通信技术是在世界范围内被广泛使用的一种无线连接技术,被众多的硬件和软件平台所支持。红外线通信是目前使用较广泛的一种通信手段。与一般通用的红外遥控器不同的是它不是利用专用的编解码芯片来实现发收端的编解码,而是应用C51 单片机,通过单片机的编、解码程序来实现红外信号的发收,从而

2、实现红外遥控通信功能。此通信系统经过一些必要的扩展,完全可以实现通用和各种专用红外遥控器的功能。 本文所要介绍的内容就是如何利用单片机,结合红外线器件设计构造出一套简易的红外线通信系统,以实现在中短距离内的红外无线通信的功能。关键字:单片机红外通信发射、接收、遥控、串行接口241 绪论随着社会生产力的发展和技术的进步,单片机的应用越来越广泛。在遥控应用领域,单片机尤其得到了很好的应用。很多单片机应用系统中,常常利用非电信号传送控制信息和数据信息,以实现遥控或遥测的功能。在各种非电信号中, 红外线光信号是最经常用的。它在各领域都得到广泛的应用,红外线为不可见光,具有很强的隐蔽性和保密性,因此其在

3、防盗、警戒等安全保卫装置也得到了广泛的应用。因为红外线通信具有成本低廉、控制简单、实施方便、简单易用、结构紧凑和抗干扰能力强、传输可靠性高的特点,因此在小型的通信移动设备中获得了广泛的应用。试想一下,如果没有红外通信,连接这其中的两个设备就必须要有一条特制的连线,如果要使它们能够任意地两两互联传输数据,该需要多少条连线呢?而有了红外线通信口,这些问题就都迎刃而解了。本课题要设计完成的就是一个简单的基于单片机的红外通信系统,通过单片机的编、解码程序来实现红外信号的发收,从而实现红外遥控通信功能.此通信系统经过一些必要的扩展,完全可以实现通用和各种专用红外遥控器的功能。实现单片机系统红外通信的关键

4、在于红外接口电路的设计以及接口驱动程序设计。 2 红外通信各硬件电路 我们这里把整个遥控器系统分为发射模块及接收模块两部分,和一般通用的遥控器结构相同,本课题设计的通信系统发射部分也包括键盘矩阵电路、编码调制电路、LED 红外发射电路;接收部分包括光、电转换放大器、解调解码电路和解码显示电路。各部分电路的设计思路和具体实现如下。2.1 红外发射模块电路的实现 当按下某一按键后,遥控器上的遥控芯片便进行编码产生一组句柄,结合载波电路的载波(38KHz)而成为合成信号,经过放大器提升功率而推动红外发射二极管,将红外线信号发射出去,所要发射的句柄必须加上载波才能使信号传送的距离加长,一般遥控器的有效

5、距离为7m。图1 基于I/O口的红外发射电路2.1.1 载波信号电路的设计图2 载波电路图为使红外信号能够正确的传送出去和传送更远,我们也需要在编码信号输出端加上一个高频载波信号。通过载波信号的调制,把编码信号的有用信息“携带”出去,这样信号的传送距离就能更长,而且能有效的避免干扰。通过555 时基电路和选择合适的外围元件组成频率为38KHz 的载波脉冲振荡器,如图2 所示。图中,通过调节200 欧精密可调变阻器RP2 的阻值,可以调整使555 的输出端输出为38KHz 的载波信号。2.1.2按键输入电路图3 按键输入电路2.1.3串口通信的硬件电路如下图4所示。 图4 串口通信电路2.1.4

6、 红外发射电路模块的系统综合电路图通过上面对发射模块各部分电路的具体设计,我们可以得出发射模块的系统综合电路设计图如下图5所示。图5 发射模块系统综合电路图2.2 红外接收模块电路的实现下图为红外接收的工作方块图,其主要控制组件为红外线接收模块,其内部含有高频的载波电路,专门用来滤除红外线合成信号的载波信号(38KHz)而送出发射器的控制信号。当红外线合成信号进入红外线接收模块,在其输出端便可以得到原先的数字控制编码,只要经过单片机译码程序进行译码,便可以得知按下了哪一按键,而作出相对应的控制处理,完成红外遥控的动作。 图6 红外接收工作方块图2.2.1 解码后控制电路无线通信的最终目的就是为

7、了实现无线接收后的控制功能。本课题的无线接收后控制电路设计为一个数码显示电路和一个响铃报警电路,这样既可以实现了红外无线接收后的控制功能,也可以通过这个电路很直观的识别解码的成功与否。具体电路设计见下图7。图7 解码后数码显示电路电路中根据发射端发射按键的数目,设计一位的数码管来显示,数码管采用的是一个共阴极接法的一位数码显示管,其中09 数码显示数字表示的是发射按键的09 的编号数,关闭按键的数码显示符号则用“E”来表示。报警电路部分则只采用了一个5伏电磁型蜂鸣器来报响,通过蜂鸣器的报响从而表示译码的成功。2.2.2 接收模块的系统综合电路图通过上面对接收模块各部分电路的具体设计,我们不难得

8、出接收模块的系统综合电路设计图见图8图8 接收模块的系统综合电路图3 红外通信系统的软件设计 软件的设计,要求准确无误的实现红外遥控器的控制功能,并要求系统具有高的可靠性、快的反应速度、以及低的系统功耗。本系统的控制功能主要包括发射端的键盘按键输入,按键信息的编码输出,接收端的译码显示以及报响控制等功能。下面是对红外发射与红外接收软件程序设计的具体阐述。3.1 红外遥控发射的软件程序实现#include #include /_nop_ ();void scan_k0(void); /0void scan_k1(void); /1void scan_k2(void); /2void scan_k

9、3(void); /3void scan_k4(void); /4void scan_k5(void); /5void scan_k6(void); /6void scan_k7(void); /7void scan_k8(void); /8void scan_k9(void); /9void scan_k10(void);/10void send_9000(void);void send_1685(void);void send_2000(void);void send(unsigned char Data);void timer0_int(void);/ interrupt 1 ; /T0

10、 中断子程序 /2ms 计数器*sbit OUT=P10;/发射脚sbit K0 =P20;sbit K1 =P21;sbit K2 =P22;sbit K3 =P23;sbit K4 =P24;sbit K5 =P25;sbit K6 =P26;sbit K7 =P27;sbit K8 =P15;sbit K9 =P16;sbit K10=P17;sbit TEST1=P30;/TEST1sbit TEST2=P31;/TEST2sbit TEST3=P32;/TEST3sbit TEST4=P33;/TEST4*unsigned char ss ; /system statusunsign

11、ed char n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10; /键龄unsigned char wait; /等待释放#void main()OUT=0; /关闭发射TMOD=0x11; /定时器0 和1 都设置为方式1 即16 位计数器TL0=0x30;TH0=0x0F8; /T0 定时2msEA=1; /开放总中断ET0=1; /允许T0 中断ET1=0; /禁止T1 中断TR0=1; /启动T0while(1);*void scan_k0(void) /if (K0=0) /按键按下时I/O 口为0.if (+n0=9) /键盘防抖延时2ms*9=18mswait

12、=250,n0=0;send(0);*void scan_k1(void) /if (K1=0) /按键按下时I/O 口为0.if (+n1=9) /键盘防抖延时2ms*9=18mswait=250,n1=0;send(1);*void scan_k2(void) /if (K2=0) /按键按下时I/O 口为0.if (+n2=9)wait=250,n2=0;send(2);*void scan_k3(void) /if (K3=0) /按键按下时I/O 口为0.if (+n3=9)wait=250,n3=0;send(3);*void scan_k4(void) /if (K4=0) /按

13、键按下时I/O 口为0.if (+n4=9)wait=250,n4=0;send(4);*void scan_k5(void) /if (K5=0) /按键按下时I/O 口为0.if (+n5=9)wait=250,n5=0;send(5);*void scan_k6(void) /if (K6=0) /按键按下时I/O 口为0.if (+n6=9)wait=250,n6=0;send(6);*void scan_k7(void) /if (K7=0) /按键按下时I/O 口为0.if (+n7=9)wait=250,n7=0;send(7);*void scan_k8(void) /if (

14、K8=0) /按键按下时I/O 口为0.if (+n8=9)wait=250,n8=0;send(8);*void scan_k9(void) /if (K9=0) /按键按下时I/O 口为0.if (+n9=9)wait=250,n9=0;send(9);*void scan_k10(void) /if (K10=0) /按键按下时I/O 口为0.if (+n10=9)wait=250,n10=0;send(10);*void send(unsigned char Data)EA=0; /关中断/-下面开始发码头-send_9000();send_4500();/.下面开始发识别码.send

15、_565();/0send_560();send_565();/1send_565();/0send_560();send_565();/1send_1685();send_565();/0send_560();send_565();/1send_1685();send_565();/1send_1685();/.下面开始发数据码和数据反码.send_565();/D0if(Data & 0x01)=1)send_1685();else send_560();send_565();/D1if(Data & 0x02)=2)send_1685();else send_560();send_565

16、();/D2if(Data & 0x04)=4)send_1685();else send_560();send_565();/D3if(Data & 0x08)=8)send_1685();else send_560();/send_565();/D0 反if(Data & 0x01)=1)send_560();else send_1685();send_565();/D1 反if(Data & 0x02)=2)send_560();else send_1685();send_565();/D2 反if(Data & 0x04)=4)send_560();else send_1685();s

17、end_565();/D3 反if(Data & 0x08)=8)send_560();else send_1685();send_2000();/结束信号!/OUT=0; /停止发送!EA=1; /开中断void send_9000(void)TH1=0x0DC;TL1=0x0D8; /9000us,开始发码头TF1=0; /清除溢出标志/+TR1=1; /启动T1OUT=1;while(!TF1);void send_4500(void)TH1=0x0EE;TL1=0x06C; /4500usTF1=0; /清除溢出标志OUT=0;while(!TF1);void send_560(voi

18、d)TH1=0x0FD;TL1=0x0D0; /560usTF1=0; /清除溢出标志OUT=0;while(!TF1);void send_565(void)TH1=0x0FD;TL1=0x0CB; /565usTF1=0; /清除溢出标志OUT=1;while(!TF1);void send_1685(void)TH1=0x0F9;TL1=0x06B; /1685usTF1=0; /清除溢出标志OUT=0;while(!TF1);void send_2000(void)TH1=0x0F8;TL1=0x030; /2000usTF1=0; /清除溢出标志OUT=1;while(!TF1);v

19、oid timer0_int(void) interrupt 1 /T0 中断子程序 /2ms 计数器;TL0=0x30;TH0=0x0F8; /重装定时器0 常数;/定时2msif (wait=0) /如果之前没有键按下或者有键按下延时结束.scan_k0();scan_k1(); /scan_k2(); /scan_k3(); /scan_k4(); /scan_k5(); /scan_k6(); /scan_k7(); /scan_k8(); /scan_k9(); /scan_k10(); /elsewait-;END3.2 红外遥控接收的软件程序ORG 0000HAJMP MAIN;

20、 转入主程序ORG 0003H; 外部中断P3.2 脚INT0 入口地址AJMP INT ; 转入外部中断服务子程序(解码程序)MAIN: LCALL YS100ms ;延时100msMOV DPTR,#TABSETB EA ; 打开CPU 总中断请求SETB IT0 ; 设定INT0 的触发方式为脉冲负边沿触发SETB EX0 ; 打开INT0 中断请求MOV TMOD,#01H; T0 方式1,16 位计数器SETB TR0; 启动T0CLR ET0; 禁止T0 中断MOV P0,#0; LED 不显示CLR P2.7;LCALL SPEAK;AJMP $;=;以下为进入P3.2 脚外部中

21、断子程序,也就是解码程序INT: CLR EA ; 暂时关闭CPU 的所有中断请求CLR A;MOV R6,#10; #10H9: ACALL YS861 ; 调用861 微秒延时子程序JB P3.2,EXIT1;延时861 微秒后判断P3.2 脚是否出现高电平如果有就退出解码程序DJNZ R6,H9 ;重复10 次,完成对遥控信号的9000 微秒的初始低电平信号识别。MOV P1,#1 ; TEST1MOV R6,#5 ;H45:ACALL YS861; 调用861 微秒延时子程序MOV C,P3.2 ; 将P3.2 引脚此时的电平状态0 或1 存入C 中JNC EXIT1 ; 如果为0 就

22、退出DJNZ R6,H45; 检测到高电平1 的话继续检测直到4.7ms 的高电平结束ACALL YS500; 延时500 微秒避开4.5 毫秒的结果码C_A0_0: JNB P3.2,$ ; 等待地址码第一位的高电平信号LCALL YS861; 高电平开始后用861 微秒的时间尺去判断信号此时的电平状态JB P3.2,EXIT1; 如果为1 就退出C_A1_1: JNB P3.2,$ ; 等待地址码第一位的高电平信号LCALL YS861; 高电平开始后用861 微秒的时间尺去判断信号此时的电平状态JNB P3.2,EXIT1; 如果为0 就退出LCALL YS1000; 检测到高电平1 的

23、话,延时1 毫秒等待脉冲高电平结束C_A2_0: JNB P3.2,$ ; 等待地址码第一位的高电平信号LCALL YS861; 高电平开始后用861 微秒的时间尺去判断信号此时的电平状态JB P3.2,EXIT1; 如果为1 就退出C_A3_0: JNB P3.2,$ ; 等待地址码第一位的高电平信号LCALL YS861; 高电平开始后用861 微秒的时间尺去判断信号此时的电平状态JB P3.2,EXIT; 如果为1 就退出LCALL YS861; 高电平开始后用861 微秒的时间尺去判断信号此时的电平状态JNB P3.2,EXIT; 如果为0 就退出LCALL YS1000; 检测到高电

24、平1 的话,延时1 毫秒等待脉冲高电平结束C_A5_0: JNB P3.2,$ ; 等待地址码第一位的高电平信号LCALL YS861; 高电平开始后用861 微秒的时间尺去判断信号此时的电平状态JB P3.2,EXIT; 如果为1 就退出C_A6_1: JNB P3.2,$ ; 等待地址码第一位的高电平信号LCALL YS861; 高电平开始后用861 微秒的时间尺去判断信号此时的电平状态JNB P3.2,EXIT; 如果为0 就退出LCALL YS1000; 检测到高电平1 的话,延时1 毫秒等待脉冲高电平结束C_A7_1: JNB P3.2,$ ; 等待地址码第一位的高电平信号JNB P

25、3.2,EXIT; 如果为0 就退出LCALL YS1000; 检测到高电平1 的话,延时1 毫秒等待脉冲高电平结束;MOV P1,#3 ; TEST3AJMP NEXTEXIT1: AJMP EXIT ; 中继跳转NEXT: NOPMOV R1,#1AH ; 设定1AH 为起始RAM 区MOV R2,#2; 接收从1AH 到1BH 的2 个内存,用于存放操作码和操作反码PP: MOV R3,#4; 每组数据为4 位MOV C,P3.2; 将P3.2 引脚此时的电平状态0 或1 存入C 中JNC UUU; 如果为0 就跳转到UUULCALL YS1000; 检测到高电平1 的话,延时1 毫秒等

26、待脉冲高电平结束UUU:RRC A; 将C 中的值0 或1 移入A 中的最低位DJNZ R3,JJJJ;SWAP A; 接收满4 位进行处理MOV R1,A; 将A 中的数暂时存放在R1 数值的内存中INC R1; 对R1 中的值加1,换下一个RAMDJNZ R2,PP ; 接收完4 位数据码和4 位数据反码,存放在1AH/1BH 中;MOV P1,#4 ; TEST4,OK!MOV A,1AHCPL A; 对1AH 取反后和1BH 比较ANL A,#0FH; 屏蔽高4 位;MOV B,1BH; TESTCJNE A,1BH,EXIT;如果不等表示接收数据发生错误,放弃;MOV P1,#5 ;

27、 TEST5MOV A,1AH;MOVC A,A+DPTR ;查表LCALL SPEAK; 蜂鸣器响0.1ms,表示解码成功!MOV P0,A; 将按键的段码通过P0 口的1 个LED 数码管显示出来!AJMP OKEXIT: MOV P0,#79H ;显示解码出错EE;MOV P1,R6 ;TESTOK: SETB EA ; 允许中断RETI ; 退出解码子程序;=YS861: MOV R4,#20 ; 延时子程序1,精确延时861 微秒D1: MOV R5,#20 ; 1usDJNZ R5,$ ; 2usDJNZ R4,D1 ; (2us*20+1+2)*20+1=861usRETYS47

28、30: MOV R4,#10 ; 延时子程序2,精确延时4730 微秒D2: MOV R5,#235; (2us*235+1+2)*10+1=4731DJNZ R5,$DJNZ R4,D2RETYS1000: MOV R4,#2; 延时程序3,精确延时1000 微秒D3: MOV R5,#248DJNZ R5,$DJNZ R4,D3RETYS500: MOV R5,#248; 延时子程序4,精确延时500 微秒DJNZ R5,$RETYS100ms:MOV R4,#200; 延时程序5,精确延时100m 秒D5: MOV R5,#248DJNZ R5,$DJNZ R4,D5RET;-SPEAK

29、: MOV R6,#1LOOP1: MOV R7,#200; 发声100ms * 1LOOP2: MOV TH0,#0FEH;MOV TL0,#00CH; 500us 定时CLR TF0;JNB TF0,$CPL P2.7;DJNZ R7,LOOP2DJNZ R6,LOOP1RET;-TAB: DB 03FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H; 0 1 2 3 4 5 6 7 8 9 灭END 结 论利用单片机来实现红外通信技术,结合通信原理中的数字信号编解码技术,研制出了一套简单的红外通信遥控器。通过对系统模块的测试与调试,已基本上实现了红外通信

30、的功能。然而,在一个有限的时间内,我已经把握了红外通信系统设计开发的基本思路和方法。已经完成了红外通信系统遥控器从电路原理图到电路板图的设计,掌握了基于评估板的基本功能程序的开发和调试方法与红外发射/接收模块的基本应用方法。设计过程中,学会了Keil51 集成开发环境的应用,掌握了基于51 系列单片机评估板的基本功能和使用方法,学会了评估板主要资源的使用方法,并通过评估板对设计方案进行了局部验证。在前期收集资料的相关研究中,从网站上学习到了如何利用单片机来实现红外遥控器解码的相关知识,成功的进行了红外通信的移植实验,并获得了一些红外通信的重要数据:这包括硬件参数及软件设计方法。这些对于我后面单

31、片机红外通信系统的设计与研究都是有着很好的借鉴意义的。可以说,一次毕业设计的完成过程,就是一个不断的应用四年里所学过的旧知识的过程和不断的学习吸收新知识的过程。这次的完成走完了单片机红外通信系统设计开发的大部分过程,可以说是一次艰苦的尝试。在尝试过程中遇到了一次又一次的困难,但是一次又一次的从困难中爬起、分析、再验证。这些尝试的过程将对我以后的工作和学习产生深远的影响,也为以后从事硬件系统的系统开发奠定了基础。致 谢在课程设计过程中,我要衷心地感谢我们的老师以及给我帮助的同学,在我整个毕业设计过程中,老师给了我很大的帮助和细心的指导。在设计过程中,当我遇到了困难和问题时,当我们需要他的时候,老

32、师和同学总是给予我鼓励和指导他让我们学会了以前在课堂上没有的东西。 另外,我还要特别感谢我所有的搭档,是他们给了我巨大的勇气和战胜困难的信心,在毕业设计中我们合作的很愉快,当我们遇到困难时我们一起去探讨和研究,一起去战胜它,大家也一起分享排除问题和困难后的喜悦。 同时大家也发扬我们慷慨激扬精神:特别能吃苦,特别能攻关,特别能战斗,特别能奉献 。在此,我表示真诚的感谢! 参考文献1 苏长赞 红外线与超声波遥控M.北京:人民邮电出版社,1997 2 张玉香 新型遥控接收模块 HS0038J.无线电,1998.7 3 肖景和 实用遥控电路M.北京:人民邮电出版社,1998 4 李钟实 实用电子报警器精选百例M.北京:科学技术文献出版社.19995 高茹云 通讯电子线路M.西安:西安电子科技大学出版社,1999 6 刘振海 单片机原理及应用技术. 北京: 高等教育出版社, 2003.17 沈红卫 单片机应用系统设计实例与分析.北京:北京航空航天大学出版社,20028 原东昌 李晋炬.通信原理与电路实验指导书.北京:北京理工大学出版社,2000.3

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号