基于AT89C52单片机的光功率计的设计.docx

上传人:b****7 文档编号:8677017 上传时间:2023-02-01 格式:DOCX 页数:16 大小:416.81KB
下载 相关 举报
基于AT89C52单片机的光功率计的设计.docx_第1页
第1页 / 共16页
基于AT89C52单片机的光功率计的设计.docx_第2页
第2页 / 共16页
基于AT89C52单片机的光功率计的设计.docx_第3页
第3页 / 共16页
基于AT89C52单片机的光功率计的设计.docx_第4页
第4页 / 共16页
基于AT89C52单片机的光功率计的设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

基于AT89C52单片机的光功率计的设计.docx

《基于AT89C52单片机的光功率计的设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C52单片机的光功率计的设计.docx(16页珍藏版)》请在冰豆网上搜索。

基于AT89C52单片机的光功率计的设计.docx

基于AT89C52单片机的光功率计的设计

基于AT89C52单片机的光功率计的设计

光电二极管:

PD333-3C响应波长为400~1100nm,具有高响应速率、高光电灵敏度等特性。

2)AD转换芯片的选择:

TLC549是8位串行A/D转换器芯可与通用微处理器、控制器通过CLK、CS、DATAOUT三条口线进行串行接口。

具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17μs,TLC549为40000次/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转换器,测定照明度数字值可以直接输出。

输出采用I2CBUS接口可以直接与单片机通讯。

方案的比较与选择:

方案一的AD芯片管脚比较少,同时有4MHz片内系统时钟和软、硬件控制电路,芯片的功能能够满足设计的要求,而且使用简单、功能强大。

而AD0809使用时还要使用外部时钟,同时还要外接逻辑器件。

在使用光电和光伏探测器件的功能上是基本一致的,就是频带响应不一样,对于可见光的光功率的测量二者都可以用。

所以采用方案一。

四、实验器件

光功率计探头(光电传感器),AT89C52单片机,电阻,电容,晶振,1602液晶屏,导线若干。

五、光功率测量原理

1、原理框图

2、各模块功能详解

1)光功率计探头

光功率计探头,是光信号转换为电信号的核心部件。

头带有光电传感器,用来接收被测光源的辐射并将其转换为

电流信号。

探头采用双线正负两个端口输出。

当被检测光

源强度发生变化时,传感器输出的电流会随之改变。

我们通

过对电流量变化进行转换分析最终获得外部光源的光功率

变化参数。

2)I/U变换

光功率探头输出小电流信号。

电流信号与电压信号相

比,长距离传输抗干扰性能较好。

但是由于本次试验距离较

短,同时为了与后面电压放大器相匹配,所以要转换为电压

信号。

本次设计使用LM358N芯片连接I/U变换电路和放大电路。

连接时,光功率探头的输出正端口接入转换电路输入

端,负端口与I/U变换电路共地连接,如图一所示。

图一,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)自DATAOUT端输出,接着要求自I/OCLOCK端输入8个外部时钟信号,前7个I/OCLOCK信号的作用,是配合TLC549输出前次转换结果的A6-A0位,并为本次转换做准备:

在第4个I/OCLOCK信号由高至低的跳变之后,片内采样/保持电路对输入模拟量采样开始,第8个I/OCLOCK信号的下降沿使片内采样/保持电路进入保持状态并启动A/D开始转换。

转换时间为36个系统时钟周期,最大为17us。

直到A/D转换完成前的这段时间内,TLC549的控制逻辑要求:

或者/CS保持高电平,或者I/OCLOCK时钟端保持36个系统时钟周期的低电平。

由此可见,在自TLC549的I/OCLOCK端输入8个外部时钟信号期间需要完成以下工作:

读入前次A/D转换结果;对本次转换的输入模拟信号采样并保持;启动本次A/D转换开始。

TLC549时序图

TLC549与单片机连接图如下所示

模拟信号从2号脚输入,6号脚输出数字信号。

6)LCD显示电路

数字信号经过单片机运算后要通过液晶显示出来,本实验使用的是1062液晶屏显示,1062与单片机连接图如下所示。

1062管脚

六、完整电路原理图设计

基于上述思想设计出的完整电路图如下所示。

七、程序设计

现列出单片机程序关键程序代码:

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

chartable1[16]="AD:

0000";

chartable2[16]="00.00uW";

uchartime,a;

uintVolt,AD;

ulongPOW;

ints;

sbitlcdrs=P0^7;

sbitlcdrw=P0^6;

sbitlcden=P0^5;

sbitCS=P3^7;//片选

sbitDO=P3^6;//数据输出

sbitCLK=P3^5;//时钟

voiddelay(uintz)//延时函数

{

uintx,y;

for(x=z;x>0;x--)

for(y=120;y>0;y--);

}

voidwrite_com(ucharcom)//写指令函数

{

lcdrs=0;

lcdrw=0;

P2=com;

lcden=1;

delay

(2);

lcden=0;

}

voidwrite_data(uchardate)//写数据函数

{

lcdrs=1;

lcdrw=0;

P2=date;

lcden=1;

delay

(2);

lcden=0;

}

voidinit()//初始化函数

{

lcden=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

}

unsignedcharTLC549(void)//AD转换,返回结果

{

uchari,temp;

CS=1;

CLK=0;

CS=0;//拉低CS端DO输出最高位

_nop_();

_nop_();

for(i=0;i<8;i++)

{

temp<<=1;

if(DO)

temp|=0x01;

else

temp|=0x00;

CLK=1;//形成一次时钟脉冲

_nop_();

_nop_();

CLK=0;

_nop_();

_nop_();

}

CS=1;

for(i=17;i>0;i--)_nop_();//延迟17us

return(temp);

}

voidData_Conversion(void)//AD读数转十进制函数

{

AD=TLC549();

if(a<5)

{

s=s+AD;

a++;

if(a==5)

{

table1[8]=s/1000+'0';

table1[9]=s/100%10+'0';

table1[10]=s/10%10+'0';

table1[11]=s%10+'0';

Volt=AD*100/255*5;

POW=(-0.4140)*Volt*Volt+100*10.2729*Volt+10000*1.2273;

POW=POW/100;

table2[4]=POW/1000+'0';

table2[5]=POW/100%10+'0';

table2[7]=POW/10%10+'0';

table2[8]=POW%10+'0';

a=0;

s=0;

}

}

}

voiddisplay(ucharx,uchary,uchar*str)

{

uchari;

if(x==0)write_com(0x80|y);

if(x==1)write_com(0xc0|y);

for(i=0;i<16;i++)

{

write_data(str[i]);

if(str[i]=='\0')break;

}

}

voidmain()

{

init();

TMOD=0x01;//设置定时器0为工作方式1(00000001)

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);

}

}

voidint_adr(void)interrupt1

{

TH0=(65536-50000)/256;//重装初值

TL0=(65536-50000)%256;

time++;

if(time==1)

{

Data_Conversion();

time=0;

}

}

八、调试设计

产品调试直接关系到产品的质量与性能。

软件调试需要用到uVision软件。

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统。

与汇编相比。

C语言在功能、结构性、可读性、可维护性等方面具有明显的优势.而且易学易用。

此外,KeilC51软件还提供有丰富的库函数和功能强大的集成开发调试工具,且全Windows界面。

KeilC51生成的目标代码效率非常高,多数语句生成的汇编代码都很紧凑,很容易理解。

在开发大型软件时更能体现高级语言的优势。

uVision在编译过程中,能很好的检测出程序的错误与警告。

并能直观提示是哪一行程序出了问题.故可方便地对程序进行检测与验证。

uVi.sion采用BL5I作连接器,因为BL5l兼容L51,所以.一切能在Dos下工作的project都可以到uVision中进行连接调试。

uVision采mdScopeforwin.dows作调试器,该调试器支持MON51及系统模拟两种方式,而且功能较forDOS要强大好用,调试功能也很强大。

在系统硬件调试中.可利用5l系列仿真器F51—64K进行硬件仿真,uVision也对5l系列仿真器进行了说明与介绍。

同时。

uVision还可与F51—64K进行联合仿真.它可以根据仿真步骤进行实际操作,并利用参考光功率计进行调试,以便此设计程序在语法没有错误的基础上能够正确测量光纤功率。

在实际电路的调试中,曾经出现液晶屏显示电压不稳定,而且信号容易饱和等问题,通过我们积极查找,我们发现TLC549的基准电压没有连接电源,电路经过改进后可以顺利输出相对稳定的电压信号。

九、数据记录与拟合

1、输出电压与标准光功率计关系表:

V

uW

V

uW

V

uW

0

0.05

 

 

 

 

0.1

2.5

1.1

11.8

2.1

21

0.2

3.22

1.2

12.6

2.2

21.7

0.3

4.59

1.3

13.8

2.3

22.6

0.4

6.01

1.4

14.5

2.4

23.1

0.5

6.8

1.5

15.6

2.5

23.9

0.6

7.83

1.6

16.5

2.6

24.4

0.7

8.75

1.7

17.5

2.7

25

0.8

8.92

1.8

18.9

2.8

25.7

0.9

9.68

1.9

19.6

2.9

26.4

1

10.47

2

20.1

3

27

2、数据拟合图:

x=[0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2];

y=[0.05,2.5,3.22,4.59,6.01,6.8,7.83,8.75,8.92,9.68,10.47,11.8,12.6,13.8,14.5,15.6,16.5,17.5,18.9,19.6,20.1,21.0,21.7];

p=polyfit(x,y,2)

x1=0:

0.05:

2.2;

y1=polyval(p,x1);

plot(x,y,'*r',x1,y1,'-b')

p=

-0.414010.27291.2273

3、拟合后,根据函数关系输出的功率信号与标准光功率计对比:

标准/uW

测量/uW

4.24

4.27

7.14

7.24

10.8

11.08

13.6

13.88

15

15.7

十、误差分析

根据上述数据,可算得相对误差:

=2.2%

误差分析:

环境光线,以及测量相对位置变化可能引起测量误差。

由于整个系统的设计缺陷可能存在较大的系统误差。

十一、成品展示

实物图

工作图

十二、心得体会

光通信技术的飞速发展以及光缆与光纤的大量应用.促使了智能化测试仪器在实验室教学和工程应用中的飞速发展。

本文从基础的光电转换技术人手,通过微处理器对信息数据进行处理。

并根据需要进行判断。

经过反复调试运行,给出了这种数字光功率计的设计方法。

该光功率计具有成本低、维护简单、误差小等诸多优点。

可满足高校实验室的教学和光通信施工部门的施工检测与维护需求。

具有广阔的市场应用前景和参考价值。

本次设计实验,给了我们初学者一个锻炼机会,经历了系统分析,设计,制作,调试和数据处理等各个环节,使我们深刻的了解了产品设计的全过程,也给我们今后独立进行系统设计积累了宝贵的经验。

在实际电路的制作过程中,也出现过各种各样的问题,但是通过我们小组的协作配合,我们顺利完成了整个设计过程,也锻炼了我们的团队协作能力。

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

当前位置:首页 > 高等教育 > 农学

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

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