1基于光电传感器测距系统设计一、传感器的工作原理光电传感器是利用光敏元件将光信号转换为电信号的的传感器,它的敏感波长在可见光波长附件,包括红外线波长和紫外线波长。光敏电阻器是利用半导体光电导效应制成的一种特殊电阻器,对光线十分敏感,它的电阻值能随着外界光照强弱(明暗)变化而变化。在无光照射时,呈高阻状态;当有光照射时,其电阻值迅速减小,广泛用于各种控制电路,(自动照明灯控制电路、自动报警电路等),家用电气(如电视机中的高度自动调节。照相机中的自动曝光控制等)及各种测量仪器中。光敏电阻又称光导管,它几乎都是用半导体材料制成的光电器件。光敏电阻没有极性,纯粹是一个电阻器件,使用时既可以加直流电压,也可以加交流电压。当光敏电阻受到一定波长范围的光照时,它的阻值急剧减小,电路中的电流迅速增大,一般希望暗电阻越大越好,亮电阻越小越好,此时光敏电阻的灵敏度高。该系统可通过光敏电阻将由于距离变化引起的光照强度变化这一非电气量转化为电压这一电气量。当距离近时,光照强,光敏电阻的阻值很小;当距离远时,光照弱,光敏电阻的阻值大。二、系统总体结构1、传感器的选择光电传感器是采用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。光电传感器一般由光源、光学通路和光电元件三部分组成。本文选择的是光敏电阻作为光电元件,硫化镉(Cds),光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达1~10MΩ;在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。22、系统功能的描述在测量物体距离时我们采用的时光敏电阻作为本次课题的光电传感器。距离的变化引起光照强度的变化,进而光敏电阻的阻值发生变化,最终引起电路的输出电压的变化。本课题是以AT89C52单片机、AD0804转换器核心器件,ADC0804将电路中的模拟信号转换成数字信号送入单片机进行数据的处理,最后通过LCD液晶将电路的电压显示出来。3、系统原理框图4、系统结构分析:(1)光电传感器(信号采集部分)采用光敏电阻作为信号采集器件,光敏电阻是基于光电导效应的一种光电器件,无光照时,光敏电阻值(暗电阻)很大,电路中的(暗电流)很小,当受到光照时,半导体材料电导率增加,,电阻减小,其阻值随光照强度而减小。光敏电阻作为光电式传感器的一种,它具有灵敏度高,光谱响应范围宽,体积小,重量轻,机械强度高,耐冲击,耐震动,抗过载能力强和寿命长等优点,所以选择光敏电阻采集光照信号,把不同的光照强度转化为不同的电阻值。把光敏电阻串联在直流电路中即可把不同的电阻值转化为不同的电压值。把对光电信号的处理3转化为对电压信号的处理。(2)ADC0804(信号处理部分)AD0804是一只具有20引脚8位CMOS连续近似的A/D转换器,将光敏电阻采集到的电压模拟量信号转换成数字量的信号。(3)AT89C52(数据处理部分)AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM)。在本次课题中,AT89C52将AD0804转换出来的数字信号进行处理,处理完成将电压通过显示器显示出来,AT89C52和AD0804的接线图如原理图所示。(4)LCD液晶显示(显示部分)将电压信号通过显示器显示出来,距离的改变直接通过电压显示出来,电压的大小近似取决于距离的远近。三、主要硬件器件的功能介绍1、AD0804的结构图42、ADC0804引脚功能的介绍(1)引脚1(CS):ChipSelect,与RD、WR接脚的输入电压高低一起判断读取或写,入与否,当其为低位准(low)时会active。(2)引脚2(RD):Read。当CS、RD皆为低位准(low)时,ADC0804会将转换后的数字讯号经由DB7~DB0输出至其它处理单元。(3)引脚(WR):启动转换的控制讯号。当CS、WR皆为低位准(low)时,ADC0804做清除的动作,系统重置。当WR由0→1且CS=0时,ADC0804会开始转换信号,此时INTR设定为高位准(high)。(4)引脚4、引脚19(CLKIN、CLKR):频率输入/输出。频率输入可连接处理单元的讯号频率范围为100kHz至800kHz。而频率输出最大值无法大于640KHz,一般可选用外部或内部来提供频率。(5)引脚5(INTR):中断请求。转换期间为高位准(high),等到转换完毕时INTR会变为低位(low)告知其它的处理单元已转换完成,可读取数字数据。(6)引脚6、引脚7(VIN(+)、VIN(-)):差动模拟讯号的输入端。输入电压VIN=VIN(+)—VIN(-),通常使用单端输入,而将VIN(-)接地。(7)引脚8(AGND):模拟电压的接地端。(8)引脚9(VREF∕2)︰模拟参考电压输入端。VREF为模拟输入电压VIN的上限值。若引脚9空接,则VIN的上限值即为VCC。(9)引脚10(DGND)︰数字电压的接地端。(10)引脚11~引脚18(DB7~DB0)︰转换后之数字数据输出端。(11)引脚20(Vcc)︰驱动电压输入端53、A/D转换电路R110kC1150pFVIN+6VIN-7VREF/29CLKIN4AGND8RD2WR3INTR5CS1DGND10DB7(MSB)11DB612DB513DB414DB315DB216DB117DB0(LSB)18CLKR19VCC20U1ADC0804R210kR31kR41kD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016LDB1DB2DB3DB4DB5DB6DB7DB8CSRDWR58%RV11kA/D转换电路如图所示,由于PROTUES仿真软件不能仿真光敏电阻接受光照后电阻的变化,故在ADC0804的输入端加一滑变电阻器,来代替光敏电阻产生的0~4.92V模拟电压,经过A/D转换后送到单片机的P1口,从而实现电路的仿真。4、AT89C52的结构图65、AT89C52单片机概述AT89C52是美国Atmel公司生产的低电压、高性能CMOS8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。其主要工作特性是:1)片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;2)片内数据存储器内含256字节的RAM;3)具有32根可编程I/O口线;4)具有3个可编程定时器;5)中断系统是具有8个中断源、6个中断矢量、2个级优先权的中断结构;6)串行口是具有一个全双工的可编程串行通信口;7)具有一个数据指针DPTR;8)低功耗工作模式有空闲模式和掉电模式;9)具有可编程的3级程序锁定位;10)AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;11)AT89C52最高工作频率为24MHz6、AT89C52的各引脚功能:·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。7·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash编程和程序校验期间,P1接收低8位地址。·P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,8只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。·PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。·XTAL2:振荡器反相放大器的输出端。7、晶振电路时钟电路是计算机的心脏,它控制着计算机的工作节奏。MCS-51单片机允许的时钟频率是因型号而异的典型值为12MHZ。MCS-51内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。电容C1和C2的作用有两个:其一是使振荡器起振,其二是对振荡器的频率f起微调作用(C1、C2大,f变小),其典型值为30pF。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1