资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于 AT89C52 单片机的光功率计的设计1 1、背景概述背景概述 随着技术的不断进步激光技术在各行业中得到了广泛的应用,对光功率测量技术也提 出了更高的要求。传统的光功率测量系统设计是在探测器输出信号后,经放大、AD转换, 直接数字显示,同时有调零电路、定标电路,对于光电型还有波长选择开关。随着电子技 术的发展,这种设计方法显然已经过时,当前的设计使用单片机技术,或者使测量电路和 微机接口、软件和硬件相结合,实现智能测量,使采集和处理测量数据由单片机完成而 不需要人来操作,可以在特殊的环境中完成测量。 光功率定义光功率定义 光功率是光在单位时间内所做的功。光功率常用单位是毫瓦(mW)和分贝(dB),其中两 者关系为lmW=0dB,而小于1mw 的分贝为负值。例如,在光纤收发器或交换机说明书中,有 其产生的发光和接收光功率,通常发光小于0dB。接收端所能够接收的最小光功率称为灵敏 度,能接收的最大光功率减去灵敏度的值称为动态范围,发光功率减去接收灵敏度是允许 光纤损耗 值。 光功率计的设计要点光功率计的设计要点 针对实际应用,要选择适合的光功率计,应该关注以下 各点: (1)选择最优的探头类型和接口类型。 (2)评价校准精度和编写校准程序,与光纤和接头要求 范围相匹配。 (3)确定这些型号与测量范围和显示分辨率相一致。 (4)具备直接插入损耗测量功能。 二、实验目的和意义二、实验目的和意义 “光电子测量设计”是电子科学与技术专业的必修实践环节,该课程是以测量为主线,应用光电子技术解决一个测量问题。学生通过具体解决测量问题的训练过程,理解测量的 基 本概念,掌握应用光电子技术解决测量问题的基本方法,学会测量误差分析、数据处理等。该课程对于培养有计量特色的光电子技术人才十分重要。 基于光电转换器件的光强度的测量,设计光接收电路,并进行光电转换, 再设计放大电路、滤波电路、AD 转换电路及微处理器电路,对测量光的光强 度进行标定,最终实现光强度的测量,系统要求精度为 1mW。 三、方案设计与比较方案设计与比较 方案一:基于光电二极管的光功率测量1)光电探头的选择: 光电二极管:PD333-3C 响应波长为 4001100nm,具有高响应速率、高光电灵 敏度等特性。2)AD 转换芯片的选择:TLC549 是 8 位串行 A/D 转换器芯可与通用微处理器、控制器通过 CLK、CS、DATA OUT 三条口线进行串行接口。具有 4MHz 片内系统时钟和 软、硬件控制电路,转换时间最长 17s, TLC549 为 40 000 次/s。总失调误 差最大为0.5LSB,典型功耗值为 6mW。采用差分参考电压高阻输入,抗干扰, 可按比例量程校准转换范围,VREF-接地,VREF+VREF-1V,可用于较小 信号的采样。 方案二:基于硅光电池的光功率测量 1)光电探头的选择: 硅光电池:BPW34 具有高光电探测率、比较大的光敏面积、高光电灵敏度,快 速响应时间、体积小等特点。 2)AD 转换芯片的选择:(图 1) ADC0809 是 8 位逐次逼近型A/D 转换器。它由一个 8 路模拟开关、一个地 址锁存译码器、一个 A/D 转换器和一个三态输出锁存器组成(见图 1) 。多路 开关可选通 8 个模拟通道, 允许 8 路模拟量分时输入,共用 A/D 转换器进行 转换。三态输出锁器用于锁存 A/D 转换完 的数字量,当 OE 端为高电平时, 才可以从三态输出锁存器取走转换完的数据。方案三:采用集成光强感应芯片采用已经有的集成光强感应芯片,如下图所示。BH1710FVC 内置了 16bitAD 转换器,可对广泛的亮度进行 1 勒克斯的高精度, 内置 A/D 转换器,测定照明度数字值可以直接输出。输出采用 I2C BUS 接口可 以直接与单片机通讯。方案的比较与选择:方案的比较与选择:方案一的 AD 芯片管脚比较少,同时有 4MHz 片内系统时钟和软、硬件控制 电路,芯片的功能能够满足设计的要求,而且使用简单、功能强大。而 AD0809 使用时还要使用外部时钟,同时还要外接逻辑器件。在使用光电和光伏探测器 件的功能上是基本一致的,就是频带响应不一样,对于可见光的光功率的测量 二者都可以用。所以采用方案一。 四、四、实验器件实验器件 光功率计探头(光电传感器),AT89C52单片机,电阻,电容,晶振,1602液晶屏,导线若干。5、光功率测量原理光功率测量原理 1、原理框图2、各模块功能详解 1)光功率计探头 光功率计探头,是光信号转换为电信号的核心部件。探 头带有光电传感器,用来接收被测光源的辐射并将其转换为 电流信号。探头采用双线正负两个端口输出。当被检测光 源强度发生变化时,传感器输出的电流会随之改变。我们通 过对电流量变化进行转换分析最终获得外部光源的光功率 变化参数。 2)IU变换 光功率探头输出小电流信号。电流信号与电压信号相比,长距离传输抗干扰性能较好。但是由于本次试验距离较 短,同时为了与后面电压放大器相匹配,所以要转换为电压 信号。本次设计使用LM358N芯片连接I/U变换电路和放大电路。连接时,光功率探头的输出 正端口接入转换电路输入 端,负端口与 IU 变换电路共地连接,如图一所示。图一,I/U 变化电路 3)运算放大电路 I/U 变换以后输出的信号很微弱,大概是毫伏的量级,要对信号后期处理,首先要进 行放大。由于本次试验对电路精度要求不高,这里只设计了一级放大。电路图如图二所示。图二,运算放大电路 4)低通滤波电路 本实验所得的信号为低频信号,故在进行 A/D 转换之前要滤除高频信号,我们用两个 电容组成的无源低通滤波器作为被刺实验的滤波电路。电路图如图三。图三,低通滤波电路 5)A/D 转换电路 本实验采用 TLC549CD 芯片实现 A/D 转换。 TLC549 是 TI 公司生产的一种低价位、高性能的 8 位 A/D 转换器,它以 8 位开关电 容逐次逼近的方法实现 A/D 转换,其转换速度小于 17us,最大转换速率为 40000HZ,4MHZ 典型内部系统时钟,电源为 3V 至 6V。它能方便地采用三线串行接口方式 与各种微处理器连接,构成各种廉价的测控应用系统。 当/CS 变为低电平后, TLC549 芯片被选中, 同时前次转换结果的最高有效位 MSB (A7)自 DATA OUT 端输出,接着要求自 I/O CLOCK 端输入 8 个外部时钟信号,前 7 个 I/O CLOCK 信号的作用,是配合 TLC549 输出前次转换结果的 A6-A0 位,并为本次转换做 准备:在第 4 个 I/O CLOCK 信号由高至低的跳变之后,片内采样/保持电路对输入模拟量 采样开始,第 8 个 I/O CLOCK 信号的下降沿使片内采样/保持电路进入保持状态并启动 A/D 开始转换。转换时间为 36 个系统时钟周期,最大为 17us。直到 A/D 转换完成前的这 段时间内,TLC549 的控制逻辑要求:或者/CS 保持高电平,或者 I/O CLOCK 时钟端保持 36 个系统时钟周期的低电平。由此可见,在自 TLC549 的 I/O CLOCK 端输入 8 个外部时钟 信号期间需要完成以下工作:读入前次 A/D 转换结果;对本次转换的输入模拟信号采样并 保持;启动本次 A/D 转换开始。TLC549 时序图TLC549 与单片机连接图如下所示模拟信号从 2 号脚输入,6 号脚输出数字信号。 6)LCD 显示电路 数字信号经过单片机运算后要通过液晶显示出来,本实验使用的是 1062 液晶屏显 示,1062 与单片机连接图如下所示。1062 管脚六、完整电路原理图设计六、完整电路原理图设计 基于上述思想设计出的完整电路图如下所示。七、程序设计七、程序设计 现列出单片机程序关键程序代码:#include #include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long char table116=“ AD: 0000 “;char table216=“ 00.00 uW “; uchar time,a; uint Volt,AD; ulong POW; int s; sbit lcdrs=P07; sbit lcdrw=P06; sbit lcden=P05; sbit CS=P37; /片选 sbit DO=P36; /数据输出 sbit CLK=P35; /时钟 void delay(uint z)/延时函数 uint x,y; for(x=z;x0;x-) for(y=120;y0;y-); void write_com(uchar com) /写指令函数 lcdrs=0; lcdrw=0; P2=com; lcden=1; delay(2); lcden=0; void write_data(uchar date) /写数据函数 lcdrs=1; lcdrw=0; P2=date; lcden=1; delay(2); lcden=0; void init() /初始化函数 lcden=0; write_com(0x38);write_com(0x0c); write_com(0x06); write_com(0x01); unsigned char TLC549(void) /AD 转换,返回结果 uchar i,temp; CS=1; CLK=0;CS=0;/拉低 CS 端 DO 输出最高位_nop_();_nop_();for(i=0;i0;i-) _nop_(); /延迟 17us return(temp); void Data_Conversion(void) /AD 读数转十进制函数 AD=TLC549(); if(a5) s=s+AD; a+; if(a=5) table18=s/1000+0; table19=s/100%10+0;table110=s/10%10+0; table111=s%10+0; Volt=AD*100/255*5; POW=(-0.4140)*Volt*Volt+100*10.2729*Volt+10000*1.2273; POW=POW/100; table24=POW/1000+0; table25=POW/100%10+0; table27=POW/10%10+0; table28=POW%10+0; a=0; s=0; void display (uchar x,uchar y,uchar *str) uchar i; if(x=0) write_com(0x80|y); if(x=1) write_com(0xc0|y); for(i=0;i16;i+) write_data(stri); if(stri=0) break; void main() init(); TMOD=0x01; /设置定时器 0 为工作方式 1(0000 0001) TH0=(65536-50000)/256; /装初值 50ms 一次中断 TL0=(65536-50000)%256; EA=1; /开总中断 ET0=1; /开定时器 0 中断 TR0=1; /启动定时器 0 while(1) delay(800); display(0,0,table1); display(1,0,table2); void int_adr(void) interrupt 1
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号