光电系统设计与检测说明书
电子照片 (证件照)
题 系
目 红外遥控设计 ****** ****** ****
(
部
)
专 业( 班 级)
学 指 导 起
号 教 师 日
期
20100411**
******
止
13年6月3日6月15日
学院课程设计鉴定表
**** 设计题目 学号 20100411** 专业 光电信息工程 指导教师 ***** 班级 一 红外遥控器 指导教师意见: 评定等级: 答辩小组意见: 教师签名: 日期: 评定等级: 教研室意见: 答辩小组长签名: 日期: 教研室主任签名: 系(部)意见: 日期: 系主任签名:_ 说明 日期: 课程设计成绩分“优秀”、“良好”、“及格”、“不及格”四类; 10级光电检测课程设计任务书
系(部):电子与通信工程系
专业:光电
指导教师:莉 利平 谭志光 谢志宇2013-6-
8
课题名称 红外遥控设计 1. 设计容(选题围):光电检测技术的综合应用 备选抽签题目: 1.1光电循迹设计 利用红外光电器件或摄像头器件让小车能够沿着预先划定的线路行驶,一般线路由红色 或黑色纸带或胶带制成。 1.2光电避障设计 利用红外或超声波进行障碍物的探测,并且使小车能够成功避障碍。 1.3光电遥控设计 利用红外或无线进行遥控设计。 1.4光电测距设计 利用红外或超声波进行直线距离的测量。 1.5光电测速设计 测速包括直线速度和转速,利用光电开光、红外对管、光耦、激光及接收管等直射式或 反射式装置进行测量电动机的转速,要求系统能够判断电动机的转动方向,并通过数码管或 液晶显示单元显示检测结果; 1.6微小位移检测设计 利用PSD光敏二极管、Y型光纤设计微位移检测系统,要求电路能够显示微小的位移值。 1.7照度检测设设 计 计 容 及 设计一款简易的数字式光照度计,只需进行简单的操作便可对光照度进行测量。测量系 统主要是根据硅光要 求 电池的光伏效应,即在光辐射下,硅光电池转换出来的电压与被测光照度 有一定线性关系的原理实现光照强度测量的。系统根据人眼们对光照强度的不冋要求,通过 测量光照度值进行判断,从而提示使用者环境的光照强度是否符合要求。 1.8光电测角设计 利用角度传感器测量出运动物体的运动方向和角度。 1.9光电感应设计 利用热释电器件进行智能感应或控制设计。 1.10光电测温设计 利用红外TN901或IN4148传感器进行温度的测量。 1.11光电追光设计 利用红外对管或光敏电阻判断光源的方向,使小车做出相应的动作。 自拟题目请报指导老师批准。 2. 设计要求: 2.1设计中器件及参数自拟,带 MCI控制更佳; 2.2设计中选用光电器件的参数或基本原理说明及相关测试数据分析说明;如果软件中没有 所选用的光电器件,可用其他器件代替,但必须在课程设计报告中详细说明其可替代性; 2.3课题由抽签决定;自拟课题报指导老师 审查; 2.4撰写课程设计报告:格式和容见课程设计报告电子模板。 设 计 1课题容:利用光电器件进行多种物理量或环境变化进行检测或感应设计; 2课程设计提交的资料: 工 2.1课程设计说明书打印稿及电子文档; 作 2.2光电器件及其应用电路源文件和实物作品; 量 起止日期(或时间) 设计容(或预期目标) 备注 进 度 安 排 6月17日 6月18日~6月20日 6月21日 课题及安排介绍、分组; 收集、查阅资料方案论证、设计项目确定 利用Proteus或Multisim 等软件设计,实物制作 最终设计及调试,撰写课程设计说明书 答辩及演示 教研室 意见 年 月曰 系(部)主 管领导意见 年 月曰 摘要:
很多电器都采用红外遥控,那么红外遥控的工作原理是什么呢
计方法。红外线遥控就是利用波长为
?本文将介绍其原理和设
38kH z,这是由
0.76〜1.5 ym之间的近红外线来传送控制信号的。常
用的红外遥控系统一般分发射和接收两个部分。红外遥控常用的载波频率为
发射端所使用的455kHz晶振来决定的,在发射端要对晶振进行整数分频,分频系数一般取
12,所以 455kHz+ 12~ 37.9 kHz~ 38kHzo 也有一些遥控系统采用 36kHz、40kHz、56kHz 等, 一般由发
射端晶振的振荡频率来决定。接收端的输出状态大致可分为脉冲、 锁、数据五种形式。
关键词:80c51单片机、红外发光二极管、晶振
电平、自锁、互
目录
1绪论 ..................................................................................... 7 2、 红外遥控器 ............................................................................. 8
2.1、 基本原理及应用 ................................................................. 8 2.2、 红外遥控发射部分 ............................................................... 9 2.3、 红外遥控接收部分 .............................................................. 11 2.4、 系统设计 ....................................................................... 12 3、 设计思路 .............................................................................. 13 4、 设计成果展示 .......................................................................... 14 5、 总结 .................................................................................. 15 6、 参考文献: ................................................................................................................................. 15
附录1: ................................................................... 16
1绪论
人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。 其中红光的波长围为 0.62〜0.76卩m紫光的波长围为
0.38〜0.46卩m比紫光波长还短的
0.76〜1.5 ym之
它实际上是一只
光叫紫外线,比红光波长还长的光叫红外线。红外线遥控就是利用波长为 间的近红外线来传送控制信号的。
发射部分的主要元件为红外发光二极管。
特殊的发光二极管,由于其部材料不同于普通发光二极管,因而在其两端施加一定电压时, 它便发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为
940nm左右,外形与普通 5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、 深蓝、透明三种
颜色,判断红外发光二极管好坏的办法与判断普通二极管一样: 阻挡量一下红外发光二极管的正、
用万用表电
反向电阻即可。在实际应用中要给红外接收二极管加反向
这样才能获得较
偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用, 高的灵敏度。红外接收二极管一般有圆形和方形两种。
由于红外发光二极管的发射功率一般
都较小(100mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益 放大电路。前些年常用卩PC1373H CX20106A等红外接收专用放大电路。最近几年不论是业 余制作还是正式产品, 大多都采用成品红外接收头。
成品红外接收头的封装大致有两种:
一
种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正( 收头的优点是不需要复杂的调试和外壳屏蔽, 常方便。但在使用时注意成品红外接收头的载波频率。
VDD、电源负(GND和数
使用起来如同一只三极管,
非
据输出(V0或OUT。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说 明。成品红外接
2、红外遥控器
2.1、基本原理及应用
红外线的特点人的眼睛能看到的可见光,若按波长排列,依次 黄、绿、青、蓝、紫,红光的波长围为 红外线遥控器就是利用波长
(从 长到短)为红、橙、
红
0.62卩m-0.7卩m,比红光波长还长的光叫红外线。
也不会影响周边环境。电路调试简单,若对发射信
红外线发射和接收
人们见到的红外遥控系 它发出的是红外线而不
0.76卩m-1.5 ^m之间的近红外线来传送控制信号的。
外线的特点是不干扰其他电器设备工作, 号进行编码,可实现多路红外遥控功能。 统分为发射和接收两部分。 是可见光。
发射部分的发射元件为红外发光二极管,
常用的红外发光二极管发出的红外线波长为 样的方法。单只红外发光二极管的发射功率约
940nm左右,外形与普通$ 5mm发光二极
100mW红外发光二极管的发
接收电
它才能正常工
管相同,只是颜色不同。 一般有透明、黑色和深蓝等三种。判断红外发光二极管的好坏与判 断普通二极管一光效率需用专用仪器测定,而业余条件下,只能凭经验用拉距法进行粗略判定。 路的红外接收管是一种光敏二极管,
使用时要给红外接收二极管加反向偏压,
作而获得高的灵敏度。红外接收二极管一般有圆形和方形两种。 功率较小,红外接收二极管收到的信号较弱, 在不论是业余制作或正式的产品, 红外接收、放大、滤波和比较器输出
由于红外发光二极管的发射
然而现
所以接收端就要增加高增益放大电路。
毕业论文-2 -等的模块,性
大都采用成品的一体化接收头。红外线一体化接收头是集
科技大学高新学院
能稳定、可靠。所以,有了一体化接收头,人们不再制作接收放大电路,这样红外接收电路 不仅简单而且可靠性大大提高。
红外遥控器由于受遥控距离、角度等影响,使用效果不是很好,如采用调频或调幅发射 接收编码,则可提高遥控距离,并且没有角度影响。红外遥 红外遥控中,它不影响周边环境、不干扰其它电器 不需任何调试即可投入 工作;编解码容易,可进行多路遥 控。现在红外遥控在家用电器、室 近距离遥控中 得到了广泛的应 用。另外模块还可以用在其他红外 遥控系统中,应用前景十分广阔。
通用红外遥控系统由发射和 接收两
大部分组成,应用编
控发射和接收模块可以用在室
设备。由于其无法穿透墙壁,所以不同
房间的家用电器可使用通用遥控 器而不会产生相互干扰;电路调 试简单,只要按给定电路连接无 误,一般
/解码
专用集成电路芯片来进行控制操 作,如图
1所示。发射部分包括键 盘矩阵、编码调
制、LED红外发送 器;接收部分包括光、电转换放大 器、解调、解码电路。 以下详细说明 2.2、红外遥控发射部分
红外遥控系统由发射和接收两大部分组成,系统采用编 /解码专用集成电路和单片机芯
直流稳压电源,红外
片来进行控制操作。 发射系统设计的电路由如下的几个基本模块组成: 发射电路。
系统框图如图2所示:、
图2
主要芯片——单片机介绍
同一般微处理器的 89S52的控制器也由指令寄存器 IR 。指令译码器ID 。 定时及控制逻辑电路和程序计数器
PC等组成。
PC不属于特殊功能寄存器 SFR的畴)。
CPU总是把PC的容
PC的
程序计数器PC是一个16为的计数器(注: 他总是存放着下一个要取得指令的
16位存储单元地址。也就是说,
作为地址,从存中取出指令码或含在指令中的操作数。因此,每当取完一个字节后,
容自动加1 ,为取下一个字节作好准备。只有在执行转移子程序调用指令和中断响应是例 外,那时PC的容不加1 ,而是指令或中断响应过程自动给
PC置入新的地址。单片机上
程序从0000H
电或复PC自动清0,即装入地址0000H,这就保证了单片机上电或复位后, 地址开始执行。
指令寄存器1R保存当前正在执行的一条指令。执行一条指令,先要把他从程序存储器 取到指令存储器中。指令容含操作码和地址码,操作码送往指令译码器
令的微操作信号。地址码送往操作数地址形成实际的操作数地址。
定时与操作是微处理器的核心部件, 他的任务是控制取指令 ' 执行指令 ' 存取操作数 或运算结果等操作,向其他部件发出各种微操作控制信号,协调各部件的工作。
片机设有振荡电路,只需外接石英晶体和频率微调电容就可产生部时钟信号。
ID,并形成相应指
80C51单
2 AT89S52的引脚
VCC :电源
GND:接地
P0 口: P0 口是一个8位漏极开路的双向I/O 口。作为输出口,每位能驱动
辑电平。对P0端口写“ 1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,
8个TTL逻
P0 口也被作为低8位地址/数据复用。在这种模式下,
P0具有部上拉电阻。
在flash编程时,P0 口也用来接收指令字节;在程序校验时,输出指令字节。程序校 验时,需要外部上拉电阻。
P1 口: P1 口是一个具有部上拉电阻的 8位双向I/O 口,p1输出缓冲器能驱动 4个
IIL )。
TTL逻辑电平。对P1端口写“ 1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用
时,被外部拉低的引脚由于部电阻的原因,将输出电流(
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2 )和时器/计数器 2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1 口接收低8位地址字节。 引脚号第二功能:
P1.0 T2 (定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX (定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI (在系统编程用) P1.6 MISO (在系统编程用) P1.7 SCK (在系统编程用)
P2 口: P2 口是一个具有部上拉电阻的
8位双向I/O 口,P2输出缓冲器能驱动 4个
IIL )。
TTL逻辑电平。对P2端口写“ 1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用
时,被外部拉低的引脚由于部电阻的原因,将输出电流(
在访问外部程序存储器或用 16位地址读取外部数据存储器(例如执行MOV)@DPTJR时, P2 口送出高八位地址。 在这种应用中,P2 口使用很强的部上拉发送 1。在使用8位地址(如 MOVX @RI访问外部数据存储器时, P2 口输出P2锁存器的容。
在flash编程和校验时,P2 口也接收高8位地址字节和一些控制信号。
P3 口: P3 口是一个具有部上拉电阻的 8位双向I/O 口,p2输出缓冲器能驱动 4个
TTL逻辑电平。对P3端口写“ 1”时,部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于部电阻的原因,将输出电流( 红外发射电路图
遥控发射通过键盘, 每按下一个键,即产生具有不同的编码数字脉冲,
这种代码指令信
IIL )。
号调制在40KH z的载波上,激励红外光二极管产生不同的脉冲,通过空间的传送到受控机 的遥控接收器。
P1 口作为按键部分,P3.5 口作为发射部分,然后用三极管的放大驱动红 外发射。电路如下图所示。
2.3、红外遥控接收部分 1、接收部分系统框图:
图3-1红外遥控接收电路桩图
其中显示部分采用七段数码管显示。
2.4、系统设计
1、摇控码的编码格式
采用脉宽调制的串行码,以脉宽为
0.565ms、间隔0.56ms、周期为1.125ms的组合表示
二进制的“0” ;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合二进制的 “1” 其波形如图4所示。
n_ FL
图4遥控码的“1”和“ 0”
红外遥控发射芯片采用 PPM编码方式,当发射器按键按下后,将周期性地发出同一种 32位二进制码,周期约为108ms的编码脉冲。遥控编码脉冲由前导码、16位地址码(8位 地址码、8位地址码的反码)和 16位操作码(8位操作码、8位操作码的反码)组成。 通过对用户码的检验,每个遥控器只能控制一个设备动作,
间的干扰。编码后面还要有编码的反码,
这样可以有效地防止多个设备之
用来检验编码接收的正确性,
防止误操作,增强系
由一个9ms的高电平(起始码)和一个4.
统的可靠性。前导码是一个遥控码的起始部分,
5ms的低电平(结果码)组成,作为接受数据的准备脉冲。
图5发送一组完整的编码脉冲
上述“0”和“1”组成的32位二进制码经38khz的载频进行二次调制以提高发射频率, 然后再通过红外发射二极管产生红外线向空间发射。
2、 遥控码的发射
当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再 调制成40kHz方波由红外线发光管发射出去。P3.5端口的输出调制波如图 4 — 1所示。
3、数码帧的接收处理
当红外线接收器输出脉冲帧数据时,第一位码的低电平将启动中断程序实时接收 帧。在数据帧接收时,将对第一位码的码宽进行验证。若第一位低电平码的
数据
的脉宽小于
2ms,将作为错误码处理。当间隔位的高电平脉宽大于
器A中的脉冲个数,执行相应输出口操作。图 码波形图。
3ms时,结束接收,然后根据累加
4 —2就是红外线接收器输出的一帧遥控
M—丸
B8 4-2红外钱接收矮输出的一波雜圈
3、设计思路
本次课程设计的设计思路, 采用单片机为载体, 实现红外遥控器对显示数字的控制, 通
过键盘扫描读取遥控器上的按键并且进行判断。遥控器上的数字与数码管显示数字完全一 样,另外增设了 “加” “减”键、消音键、遥控开关键。键盘上其他按键显示为键上字母, 通过单片机对该系统实施控制,源程序见附录。
本次设计的实验程序原本程序为单片机配套的红外遥控程序,在 示,经过一12864的显示屏上显 番改动变成数码管显示。
4、设计成果展示
红外遥控器:
设计实物图:
5、总结
一个星期的课程设计终于完了, 此次的课程设计让我感触很多,不仅仅是知识上的学习 和掌握,同时也让我明白了很多做人的道理。在开始阶段,老师让我们了解一些基本知识, 当自己照着学习指导上的容完成了一个课题时那种心情很棒,
我觉得自己尽自己的最大努力
去设计课程项目,便能感到一种幸福。由于是三人一组, 这次课程设计中,我也有打酱油的
时候,当然更重要的还是团队合作的,如果时间可以重来,我可能会认真的去学习和研究, 也可能会自己独立的完成一个项目,
我相信无论是谁看到自己做出的成果时心里一定会很兴
团队精神固然很重要, 但人往往还是要靠自己
奋。此次实验让我明白了一个很深刻的道理:
的努力,自己亲身去经历,这样自己的心里才会踏实,学到的东西才会更多。本次课程设计 虽然不是自己亲手一字一句的设计出来的,
这些我复习了单片机相关的知识、软件。
这次课程设计是一个理论与实践结合的过程,
让我明白理论知识往往是不够的, 只有把
在设计的过
但还是基本看懂了了它的设计思路和程序。
通过
所学的理论与实际行动相结合, 才会提高自己的综合实际能力和独立思考能力。
程中我们都会遇到很 多的问题,但往往是一个小问题都会导致实验的失败,这就要我们花 大量的时间去思索和改正,
这是一个很艰辛的过程, 但同时也是你收获最大的过程。 实验往
同时也要认真去完
往是一个苦中有乐的过程, 我希望在以后的实验学习中自己能独立思考,
成,这样既能学到知识,也能让自己的实践操作得到锻炼。我要感谢我们这个团队的人员, 他们帮我学到了很多, 同时也付出了很多, 也感谢老师的细心指导, 让我们顺利的完成了课 程设计。
6、参考文献: 1) 2) 3) 4)
http://baike.baidu./view/1870404.htm
http://we nku.baidu./view/8c430d878762caaedd33d4c8.html http://we nku.baidu./view/37c9611c59eef8c75fbfb3ae.html http://we nku.baidu./view/4843487d31b765ce05081453.html
uehar code #in elude number[]={0xc0,0xf9,0xa4,0xb0,0x99,0x #in elude vintrin 92,0x82,0xf8,0x80,0x98,0x88,0xc1,0x86 ,0xc7,0x89}; #defi ne uehar un sig ned //char 函数声名 //此表为LED的字模 // 0 1 2 3 4 5 6 7 8 9 R U E L H void delay(uchar x); 〃x*0.14MS void delay1(i nt ms); void beep(); sbit IRIN = P3A2; // 红外接收器数据线 sbit BEEP = P1A5; // uchar IRCOM[7]; uchar quite=1; //控制声音 开关 /** ********************************** ***************************** **/ 附录1: {P0=nu mber[0]; IRIN=1; //I/O 口初始化 BEEP=1; IE = 0x81; // 允许 总中断中断,使能INT0夕卜部中断 TCON = 0x01; // 触发 方式为脉冲负边沿触发 while(1); } /************************************ ********************************/ void IR_IN() in terrupt 0 usi ng 0 {uchar j,k,N=0; uchar p; EX0 = 0; // 关 掉外部中断防止中断的再次发生进入检测 引导码阶段(9ms的低电平4.5ms的高电平) delay(15); if (IRIN==1) { EX0 =1; //9ms 的检测检测结束从新打开外部中断 return; } mai n() while (!IRIN) // 确认IR信号出现 {delay(1);} // 等IR变为高电平,跳过 9ms的前导低电平 信号。 for (j=O;j<4;j++) // 收集四组数据 { for (k=0;k<8;k++) // 每组数据有8位 { while (IRIN) // 等IR变为低电平,跳过4.5ms的引导高电 平信号。 {delay(1);} while (!IRIN) // 等IR变为高电平 {delay(1);} while (IRIN) // 计算IR高电平时长(0和1的低电平的时长 一样的,只要判断高电平时长超过 0.56ms 并小于1.12ms为1否则为0) { delay(1); //0.14ms计数过长自动离开。 N++; if (N>=30) { EX0=1; return; } //高电平计数完毕 } IRCOM[j]=IRCOM[j] >> 1; //数据最高位补“ 0 ” if (N>=8) {IRCOMj = IRCOM[j] | 0x80;} // 高电平持续时间大于1.12ms则数据最高位补“ 1 ” N=0; } } /* ・ ***** 5 红外遥控器键值表**** ;45 46 47 ;44 40 43 ;07 15 09 ;16 19 0d ;0c 18 5e ;08 1c 5a ;42 52 4a */ if (IRCOM[2]!=~IRCOM[3]) //判断有没有误码(有责放弃没有判断键 码) { EX0=1; return; } switch(IRC0M[2]) { case 0x45: //显示遥控上的字符按键 P0=nu mber[0]; p=0; break; case 0x46: P0=nu mber[0]; p=0; break; case 0x47: quite=!quite; II开/关声音 break; case 0x44: P0=nu mber[0]; p=0; break; case 0x40: {if(p==0||p==-1)p=1; p--;P0=number[p];if(p<=0) p=10;} II数字减 break; case 0x43: {if(p==9||p==10) p=8; p++;P0=nu mber[p];if(p>=9) p=-1;} II数字加break; case 0x07: P0=nu mber[12]; p=0; break; case 0x15: P0=nu mber[13]; p=0; break; case 0x09: P0=nu mber[14]; p=0; break; case 0x19: P0=nu mber[10]; p=0; break; case OxOd: P0=nu mber[11]; p=0; break; case 0x16: P0=nu mber[0]; p=-1; break; case 0x0c: P0=nu mber[1]; p=1; break; case 0x18: P0=nu mber[2]; p=2; break; case 0x5e: P0=nu mber[3]; p=3; break; case 0x08: P0=number[4] p=4; break; case 0x1c: P0=number[5] p=5; break; case 0x5a: P0=number[6] p=6; break; case 0x42: P0=number[7] p=7; break; case 0x52: P0=number[8] p=8; break; case 0x4a: P0=number[9] p=9; break;} if(quite==1) //控制声 void delay1(i nt ms) {un sig ned char y; while(ms--) 音开关 beep(); EXO = 1; /** ********************************** ******************** **/ _n op_(); // 控制 void beep() 蜂鸣器响 {un sig ned char i; for (i=0;i<100;i++) {delay(4); BEEP=!BEEP; //BEEP 取反} BEEP=1; // 关闭 蜂鸣器} /** ****************************************************** void delay (un sig ned char x) 〃x*0.14MS {un sig ned char i; while(x--) {for (i = 0; i<13; i++){} }} ********************************** ******************** {for(y = 0; y<250; y++) {_nop_(); _n op_(); _n op_(); } } } 因篇幅问题不能全部显示,请点此查看更多更全内容