ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:401.64KB ,
资源ID:7836786      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7836786.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(03910749姚福钦机制7班.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

03910749姚福钦机制7班.docx

1、03910749姚福钦机制7班课程设计报告 姓 名 姚福钦 学 号 201303910749 年 级 2013 专 业机械设计制造及其自动化 系(院) 机械工程学院 指导教师 吕剑 2014年4月30日目 录摘要 11 引言 12 系统功能分析 13 总体设计方案确定及其原理图 13.1 遥控系统组成部分及结构框图 13.2 系统原理图 13.2.1发射系统 23.2.2接收系统 33.2.3调制 43.3硬件电路设计 43.4红外发射与接收部分电路设计 44 软件程序设计 55 实验仿真 56总结与展望 77课程设计的心得体会 7参考文献 8附录 9基于单片机的红外遥控系统设计 摘要:本文介

2、绍了基于AT89C51和AT89C2051的红外遥控系统。该系统的设计重点在于采用同一遥控器控制多个设备。其中,硬件电路主要包含了以下几个模块:红外发射电路和红外接收电路。整个电路简单可靠、操作灵活、耗电量小、性价比较高,满足了现代生活,生产和科研的需要。关键词:8051单片机 红外遥控系统 红外发射电路 红外接收电路 1 引言近年来随着计算机在社会各领域的渗透单片机的应用正在不断地走向深入同时也带动传统的控制、检测等工作日益更新。传统的遥控器大多采用无线电遥控技术随着科技的进步红外线遥控技术的进一步成熟红外遥控也逐步成为了一种被广泛应用的通信和遥控手段。为了方便实用传统的家庭电器逐渐采用红外

3、线遥控。工业设备中在高压、辐射、有毒气体、粉尘等有害环境下采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。红外遥控的特点是不影响周边环境、不干扰其它电器设备。由于其无法穿透墙壁故不同房间的家用电器可使用通用的遥控器而不会产生相互干扰电路调试简单只要按给定电路连接无误一般不需任何调试即可投入工作编解码容易可进行多路遥控。红外遥控虽然被广泛应用但各产商的遥控器不能相互兼容。当今市场上的红外线遥控装置一般采用专用的遥控编码及解码集成电路但编程灵活性较低且产品多相互绑定不能复用故应用范围有限。而本文采用单片机进行遥控系统的应用设计遥控装置将同时具有编程灵活、控制范围广、体积小、功耗低、功能强、成本

4、低、可靠性高等特点因此采用单片机的红外遥控技术具有广阔的发展前景。2 系统功能分析设计一套红外遥控系统,要求以8051单片机作为遥控发射和接收的主控制器,利用单片机内部定时和外部中断功能实现发射编码和接收解码,通过键盘按键启动发射,通过LED灯限时接收到的数据。3 总体设计方案确定及其原理图3.1 遥控系统组成部分及结构框图图1 红外遥控系统组成3.2 系统原理图通用红外遥控系统由调制、发射和接收三大部分组成,本系统以AT80C51单片机作为红外发射编码和接收解码芯片,另外再以HS5104作为发射编码芯片,红外遥控系统如图2所示:图2 红外遥控系统3.2.1发射系统发射系统一般用电池供电,这就

5、要求芯片的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗。红外线通过红外发光二极管(LED)发射出去,红外发光二极管内部材料和普通发光二极管不同,在其两端施加一定电压时,它发出的是红外线而不是可见光。图3 简单驱动电路图4 射击输出驱动电路如图3和图4是LED的驱动电路,图3是最简单电路, 选用元件时要注意三极管的开关速度要快,还要考虑到LED的正向电流和反向漏电流,一般流过LED的最大正向电流为100mA,电流越大,其发射的波形强度越大。图3电路有一点缺陷,当电池电压下降时,流过LED的电流会降低,发射波形强度降低,遥控距离就会变小。图4所示的射极输出电

6、路可以解决这个问题,两个二极管把三级管基极电压钳位在1.2V左右,因此三级管发射极电压固定在0.6V左右,发射极电流IE基本不变,根据IEIC,所以流过LED的电流也基本不变,这样保证了当电池电压降低时还可以保证一定的遥控距离。红外发射二极管的接法如图5所示:图5 红外发射二极管连接原理图3.2.2接收系统红外信号接收系统的典型电路如下图图6所示。图6 红外线接收头内部电路 该电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号,然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流信号进入带通滤

7、波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。 以上电路被集成在一个元件中,成为一体化红外线接收头,如图7所示:图7 红外线接收头红外线接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚。根据发射端调制载波的不同应选用相应解调频率的接收头。红外线接收头内部放大器的增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。有的厂家建议在供电脚和电源之间接入330欧电阻,进一步降低电源

8、干扰。3.2.3调制红外遥控发射数据时采用调制的方式,即把数据和一定频率的载波进行“与”操作,这样可以提高发射效率和降低电源功耗。3.3硬件电路设计红外遥控系统由发射端和接收端两大部分组成。发射端由键盘电路、编码芯片、电源和红外发射电路组成。接收端由红外接收电路、解码芯片、电源盒应用电路组成。通常,为了使信号能更好地传输,发送端将基带二进制信号调制为脉冲串信号后,再通过红外发射管发射。其实质是一种脉宽调制的串行通信。红外线通信的发送部分主要是把待发送的数据转换成一定格式的脉冲,然后驱动红外发光管向外发送数据。接受部分则是由户外接收头来完成红外线的接收、放大、解调,还原成与同步发射格式相同的脉冲

9、信号,并输出TTL兼容电平。最后通过解码把脉冲信号转换成数据,从而实现信号的传输。红外遥控系统如图8所示,由8051单片机作为主控制器完成数据的编码和解码任务。实际电路中,只要将IR引脚接上红外线发射/接收头之后,就可以实现遥控功能。 图8 红外遥控系统电路3.4红外发射与接收部分电路设计红外遥控系统的串行数据格式如图9所以,包括引导码、用户码、数据码和数据反码。引导码为9ms低电平加4.5ms高电平,用户码为16位,数据码和数据反码各为8位,数据反码主要用于判断接收的数据是否正确。图9红外遥控系统的串行数据格式用户码或数据码中的每一位可以是1,也可以是0,位0用0.56ms低电平加0.56m

10、s高电平表示,位1用1.68ms低电平加0.56ms高电平表示,如图10所示。 图10 数据格式中位0和位1的表示电平输入键盘如下图图11所示,LED显示接收如图12所示。图11 4*4键盘按键图12 LED灯接收数据灯4 软件程序设计红外遥控系统程序设计包括编码程序和解码程序,编码程序按规定的数据格式,为键盘中每个按键设置相应的码值,解码程序则根据接收到的脉冲来还原键码,实现按键识别。程序见附录。5 实验仿真每当按键则LED灯显示不同的灯管亮(按二进制码所显示),说明已正确接收由发射系统发出的信号,并由接收端解码接收。图13 仿真初始图当依次按下键盘上1,2,3,+,=,时LED灯如下图所示

11、。 图14 按键盘1后LED显示 图15 按键盘2后LED显示 图16 按键盘3后LED显示 图17 按键+后LED显示图18 按键盘=后LED显示6总结与展望 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。当然,红外遥控照明灯如果要投入大规模生产时,还需要对它不断的进行优化。展望未来,家用电器信息化能够大大的提高人们的生活质量,并且在此基础上开发出能够统一控制这些家电的遥控器会越来越受到人们的欢迎,无限通信技术发展越来越快,同时,

12、我们也应该注意到。红外通信应用的局限性也越来越明显了,比如其通信距离以及通信数据率等原因。现代生活中,局域网、GPRS等无限通讯技术将在家电信息化的过程中将代替它而起到更大的作用。7课程设计的心得体会本次课程设计研究的是利用AT89C51单片机芯片来控制一个红外遥控型系统,通过掌握其原理及控制过程,设计一个硬件电路,并通过查阅资料和咨询老师进行对硬件电路的相关软件设计来完成本次课程设计。最终目的在于学会独立的查找资料选择方案,巩固所学知识设计单片机硬件电路,加强电子制作的动手能力。实话,课程设计紧张的时候的确有点累,但是通过这几个星期的实践训练,我明白了许多,仔细回味这些日子以来的点点滴滴,一

13、种少有的成功的喜悦,就如同在比赛者中胜了对手一样,虽然是小小的喜悦,却让我倦意顿消。经过这次的课程设计,通过理论联系实践,我认为在以下几个方面我有了较大提高:(1) 能够熟练地查阅和运用有关资料,加深对专业理论知识的掌握,锻炼了对于电子、自动控制、单片机原理及应用、微机原理及应用等课程的应用能力,更好的了解了软硬件开发的程序和过程。(2) 能够提出和解决涉及中遇到的问题,并加以理性的分析,创造能力有了进一步的提高。(3) 锻炼了自己独立思考和独立工作的能力,提高了使用仿真软件技能以及设计能力。通过本次可能设计我认识到自己在专业知识上的缺陷,所学专业知识在实际应用中还不能够得心应手,以后同时我也

14、深刻体会到了,学习和实践是密不可分的,要用于动手积极实践才能深刻理解学到的知识。在本次设计中我学到了很多很实用的技术,为以后的工作积累宝贵经验。以后我会加强这方面的学习,在实际应用中多下工夫,提高自己的个人能力。由于对理论知识的掌握的不够牢固,对有些知识的理解还是不够透彻,设计中总难免有不足之处,这些需要在以后的工作和学习中进一步学习和改善。参考文献1徐爱钧主编.单片机原理与应用.机械工业出版社,2011 2 李光飞,楼然苗,胡佳文等. 单片机课程设计实例指导.北京:北京航空航天出版社.20043杨居义主编.单片机课程设计实例教程.清华大学出版社,20104苏长赞.红外线与超声波遥控.北京:人

15、民邮电出版社.19955张爱全.红外线遥控的基本原理和应用范围.山西电子技术.2003附录:1 仿真电路图2 程序 遥控编码程序:#include#define uchar unsigned char#define uint unsigned int#define uintlong unsigned long sbit p3_0=P30;sbit p2_1=P21;/sbit out=PSW7; /位的等同方式/sfr cy=PSW7;sbit p1_0=P10;sbit p1_1=P11;sbit p1_2=P12;sbit p1_3=P13;bit out;uint keyvalue=0x

16、00,flag_key=0,value1,value2,keycount=0,i,j,flag_set=0,flag_press=0;uchar code keycode4=0x7f,0xbf,0xdf,0xef;uchar code portvalue16=0x07,0x08,0x09,0x0a,0x04,0x05,0x06,0x0b,0x01,0x02,0x03,0x0c,0x0d,0x00,0x0e,0x0f;uchar code wy8=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;/红外数据部分;uchar user1=0x00,user2=0x00

17、; /用户码标志位0和1uint count=0,endcount=0;uint irdata=0;void deltime(void);void key_scan(void);void sendirdata(void);main(void) EA = 1; /允许CPU中断 TMOD = 0x11; /设定时器0和1为16位模式1 ET0 = 1; /定时器0中断允许 p3_0=1; P1=0xff; TH0 = 0xFF; TL0 = 0xE4; /设定时值0为38K 也就是每隔28us中断一次 TR0 = 0; while(1) key_scan(); if(flag_press=1)

18、flag_press=0; TR0=1; sendirdata(); void key_scan(void) for(i=0;i=3;i+) P1=keycodei; if(p1_3=0) keycount=i*4+0;flag_key=1; break; if(p1_2=0) keycount=i*4+1;flag_key=1;break; if(p1_1=0) keycount=i*4+2;flag_key=1;break; if(p1_0=0) keycount=i*4+3;flag_key=1;break; if(flag_key=1) flag_key=0; value1=P1; d

19、eltime(); value2=P1; if(value1=value2) keyvalue=portvaluekeycount;flag_set=1;flag_press=1; while(flag_set) value2=P1; if(value1!=value2) flag_set=0; void deltime(void) uint k; for(k=0;k=20;k+);/ void time0int(void) interrupt 1 TH0=0xFF; TL0=0xE5; /设定时值为38K 也就是每隔26us中断一次 count+; void sendirdata() uch

20、ar s=0,datapd=0; /发送9ms起始码的低电平 346 通过接收端得测试得到的数据 endcount=346; p3_0=0; count=0; dowhile(countendcount); /发送4.5ms的结果码高电平 endcount=173; /173通过接收端得测试得到的数据 count=0; p3_0=1; dowhile(countendcount); /发送用户码1 由于已经设置了用户码分别为0和0所以这里直接发送,这里连发16个位0。/如果用户码不一样,这里就要进行修改了。 for(s=0;s=15;s+) /下面发送0.56ms低电平和0.56ms高电平 2

21、1和64为计算电平时间的数据 endcount=21; count=0; p3_0=0; while(countendcount); endcount=21; count=0; p3_0=1; dowhile(countendcount); /发送数据, 21和64为计算电平时间的数据 irdata=keyvalue; for(s=0;s=7;s+) datapd=irdata & wys; if (datapd=0) endcount=21;count=0; else endcount=64;count=0; p3_0=0; dowhile(countendcount); /发送公共的0.5

22、6ms高电平 endcount=21;count=0; p3_0=1; dowhile(countendcount); /发送数据反向 irdata=keyvalue; for(s=0;s=7;s+) datapd=irdata & wys; if (datapd=0) endcount=60;count=0; else endcount=20;count=0; p3_0=0; dowhile(countendcount); /发送公共的0.56ms高电平 endcount=20;count=0; p3_0=1; dowhile(countendcount); TR0=0; 遥控解码程序:CO

23、UNT EQU 30H ;定时计数数值 FLAG_USER1 EQU 45H ;用户码位置1FLAG_USER2 EQU 46H ;用户码位置2SAVEDATA EQU 47H ;数据保存位置ORG 0000HLJMP MAINORG 0003HLJMP EXTER0INTORG 000BHLJMP TIMER0INTORG 1000HMAIN: MOV TMOD,#01H ;定时器0模式1 MOV TH0,#0FFH ;定时100us MOV TL0,#9CH SETB EA SETB IT0 ;外部中断0边沿触发方式,负跳变有效 SETB ET0 SETB EX0 MOV R0,52H ;

24、接收的数据8个一组所存放的起始位置 MOV 52H,#00H ;先进行清零 MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H MOV 51H,#00H ;中间数据存储单元 MOV COUNT,#00H MOV R1,#08H ;设定接收的数据8个一组 MOV R2,#02H ;设定接收的数据组为4个。 CLR PSW.5 ;数据接收标志 CLR PSW.1 ;数据处理标志 MOV FLAG_USER1,#00H ;设定用户码为0. LOOP: JNB PSW.1,$ ;判断是否进行数据处理。为1则进行处理,反之等待 LCALL DATACHULI ;数据处理。主要进

25、行用户码判断以及数据和数据反码的判断 ;用户码判断,根据编码,用户码1和用户码2均为0,所以这里我们只判断用户码1和接受的用户码数据 CLR PSW.1 ;清零等待下一组数据的接收 MOV A,SAVEDATAENDLOOP: LJMP LOOP;外部中断0部分EXTER0INT: SETB TR0 MOV 30H,#00H ;30H为计数值 RETITIMER0INT: MOV TH0,#0FFH ;定时100us MOV TL0,#9CH INC 30H ;注意,count要在外部中断开始后设定初始值为0; ;起始码的判断,计数数值在85-95之间,采集端口是否发生变化,发生变化了,可以认

26、为可以接受数据了 SETB P3.2 MOV C,P3.2 JB PSW.5,DATARECEIVEPD ;如果为1,表明可以进入数据接收判断位置,否则还是引导码处的判断 JNC ENDTIMER0INT MOV A,30H ;注在试验中了解到,COUNT=115为9ms的数值 ;0.56ms和1.68ms对应的count分别为 6和16 CLR C SUBB A,#90 JC ENDTIMER0INT ;如果C为1,说明不符合引导码的9ms,直接退出,否则符合引导时间,准备接受数据 SETB PSW.5 ;数据接收标志。 CLR TR0 ;以免接收数据 MOV R1,#08H ;表示要接收的

27、数据8个一组 MOV 51H,#00H ;中间数据存储清零 MOV R0,#52H MOV R2,#04H ;总共接收2组 LJMP ENDTIMER0INTDATARECEIVEPD: JNC ENDTIMER0INT ;c为1,表明状态发生变化,可以对计数值进行判断接收的位是0还是1 CLR TR0 MOV A,30H CLR TR0 ;首先关掉定时器0 SUBB A,#10 ;以8为分界线,小于8则为0,大于8我们认为接收的是1 JC ORECEIVE ;跳到接收位0处 SETB C MOV A,51H ;接收位1 RRC A MOV 51H,A LJMP WENDPDORECEIVE:

28、 CLR C MOV A,51H RRC A MOV 51H,A WENDPD: DJNZ R1,ENDTIMER0INT MOV R1,#08H MOV R0,51H ; 重点:重复2次,确保值写到单元里 MOV R0,51H INC R0 MOV 51H,#00H DJNZ R2,ENDTIMER0INT ;若不为0说明4组数据还未接收完则跳转到终端结束 CLR PSW.5 SETB PSW.1ENDTIMER0INT: RETIDATACHULI: MOV A,52H CLR C SUBB A,FLAG_USER1 JNZ ENDDATACHULI ;与用户码进行比较,本用户码设置的是0,当然也可以设置其他 MOV A,54H ANL A,55H JNZ ENDDATACHULI ;判断数据接收的是否正确 MOV A,54H MOV SAVEDATA,A ;将数据保存起来 MOV P1,A MOV 52H,#00H ;先进行清零 MOV 53H,#00H MOV 54H,#00H MOV 55H,#00HENDDATACHULI: RETEND

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1