基于Si光电池的照度计设计与调试任务书.docx

上传人:b****3 文档编号:10445506 上传时间:2023-05-25 格式:DOCX 页数:12 大小:585.80KB
下载 相关 举报
基于Si光电池的照度计设计与调试任务书.docx_第1页
第1页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第2页
第2页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第3页
第3页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第4页
第4页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第5页
第5页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第6页
第6页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第7页
第7页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第8页
第8页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第9页
第9页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第10页
第10页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第11页
第11页 / 共12页
基于Si光电池的照度计设计与调试任务书.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于Si光电池的照度计设计与调试任务书.docx

《基于Si光电池的照度计设计与调试任务书.docx》由会员分享,可在线阅读,更多相关《基于Si光电池的照度计设计与调试任务书.docx(12页珍藏版)》请在冰点文库上搜索。

基于Si光电池的照度计设计与调试任务书.docx

基于Si光电池的照度计设计与调试任务书

基于Si光电池的照度计调试与设计

1.技术指标

利用硅光电池对光的灵敏性,设计出一个照度计。

要求系统测量范围为0-200lx,测量精度达到1lx,设计光电池输出信号处理电路,要求可以控制处理后的电压幅度,设计照度计硬件电路系统,要求系统各个模块能够正常工作,设计照度计软件控制系统,要求系统整体工作稳定,给设计系统定标,要求测量结果误差在1%以内。

2.设计方案及其比较

根据设计原理,硅光电池受光的影响产生电流,经过并联采样电阻产生电压信号。

此信号进入放大器的同相放大端进行放大。

经过放大后产生伏级的电压输出信号,即电平输出信号。

该信号经过数模转换电路转换为数字电压信号,然后经过单片机处理转变为数字信号。

最后通过LCD实时显示出来。

图1照度计系统框图

对于测量系统,核心控制芯片只能处理数字信号,所以必须把处理法得到的模拟电压信号经过模数转换得到相应的数字电压信号,以便系统的控制和处理。

模数转换电路设计的好坏直接影响了测量系统的精度,该模数转换模块采用的是国家半导体生产的ADC0809。

其管脚装封图如下:

图2ADC0809管脚图

各脚功能如下:

D7-D0:

8位数字量输出引脚

 IN0-IN7:

8位模拟量输入引脚。

VCC:

+5V工作电压。

GND:

地。

 REF(+):

参考电压正端。

REF(-):

参考电压负端。

START:

A/D转换启动信号输入端。

ALE:

地址锁存允许信号输入端。

(以上两种信号用于启动A/D转换). EOC:

转换结束信号输出引脚开始转换时为低电平,当转换结束时为高电平。

OE:

输出允许控制端,用以打开三态数据输出锁存器。

根据光电转换前置放大的三种电路,可以设计三种方案,它们分别是方案一:

电阻转换模式,方案二:

三极管转换模式,方案三:

集成运放转换模式。

2.1方案一

本方案的光电前置放大模块采用电阻转换模式,其电路图如下:

图3电阻转换电路

2.2方案二

本方案的光电前置放大模块采用三极管转换模式,其电路图如下:

图4三极管转换电路

2.3方案三

本方案的光电前置放大模块采用三极管转换模式,其电路图如下:

图5集成运放转换电路

2.4方案比较

三种方案各有优缺点,它们的不同之处在于光电信号处理模块。

纯电阻电路适合在电流较大的情况下使用,三极管电路适合在电流变化范围较小的情况下使用,集成运放芯片适用范围广,但成本会提高很多。

要从系统信号的实际要求和成本运算等各个方面考虑来选择适合I/V转换电路。

3.实现方案

选择方案二为实现方案。

所要设计的照度计电路电流变化范围小,所以方案二的三极管电路和方案三的集成运放芯片比较合适。

二考虑到成本问题,应选用方案二为实现电路。

图6电路仿真图

4.调试过程及结论

4.1电路连线

根据设计仿真图进行搭线,搞清楚实验开发板各个模块的内容以及接线柱的连接问题。

图7实际电路图

连线完成后,用相关软件将之前写好的程序导入到51芯片中,然后可以进行粗略的调试。

首先观察LCD显示板有无示数显示,然后用手机强光照射硅光电池,看看示数有何变化。

4.2调试过程中的数据记录及处理

将硅光电池置于合适的光照强度范围内,观察LCD示数的显示。

记录下数据并与标准照度计进行比较。

表1照度计原始数据记录表

标准照度计

实验照度计

32lx

36lx

38lx

40lx

44lx

45lx

50lx

51lx

55lx

58lx

62lx

64lx

68lx

68lx

72lx

71lx

78lx

77lx

4.3调试过程中遇到的问题

1)LCD显示屏第四个数字不显示,不发光。

经过检查后发现,该数字对应的引脚接线松动,重新插紧后,数码管显示出数字。

2)LCD显示的数字过大,数量级达到10^3,通过调试电阻,将数值降到适当范围内。

3)设计的照度计显示的数值与标准照度计有较大范围的误差。

对程序进行修改,从而降低了误差。

4.4结论

此次调试过程中遇到了很多问题,通过各种排查将误差降到最小,使自己设计的照度计与标准照度计尽量接近。

但是最后的出的数据仍然出现了问题,当光照强度在90lx范围内时,实验照度计显示的数值与标准照度计基本吻合。

但当光照强度超过了90lx,实验照度计便饱和了。

5.心得体会

从最开始的初定题目,到最后程序的完成,历经两周的时间。

在这期间,遇到了各种问题,各种困难,程序运行错误,无法实现功能的挫败和绝望感,解决问题后的欣喜和满足感,各种感受记忆犹新。

之所以选择基于硅光电池照度计这一课题,主要是因为觉得比较这个题目比较新颖。

其原理也比较容易理解,硅光电池受光的影响产生电流,经过并联采样电阻产生电压信号。

此信号进入放大器的同相放大端进行放大。

经过放大后产生伏级的电压输出信号,即电平输出信号。

该信号经过数模转换电路转换为数字电压信号,然后经过单片机处理转变为数字信号。

最后通过LCD实时显示出来。

这次课程设计总体上对我来说并不那么简单,首先是距离学习光电技术实在是过的时间太久了,很多知识都忘记的差不多了,并且期间穿插有必修课的考试。

一边准备考试,一边准备课设确实让课设在时间上打了折扣。

考试结束后便全力投入到课设当中了,最终也做出了成品。

比起以往的实验,这次课设可谓提高了一个新的层次,它包含了各个方面的技术,基本上调用了自己所有的知识储备。

设计到C++,单片机,模电数电以及光电技术等我们所学的所有专业课程。

首先是要进行电路仿真,先用proteus做好电路图,然后再用keil编写程序将程序导入到51芯片中。

过程并没有那么顺利,现实总比想象残酷许多。

一开始是LCD不显示示数,然后再是示数没有变化。

通过很长一段时间的调试,才终于将仿真做好,并进行答辩。

其次就是真枪实弹的实物操作了。

按照电路图将电路连接好后,再导入程序。

发现电路并没有想仿真图一样显示,与标准照度计有着很大的出入。

通过不断的电路修改以及程序修改,照度计终于完成!

由于时间问题和自身编程能力限制,最后做出的照度计并不令我十分满意,当光照强度超过100lx时,我的照度计就饱和了。

但这次课设确实让我收获了很多,所学的理论知识也及时得到巩固。

6.参考文献

[1]马德骏等.C语言程序设计(第2版).科学出版社,2009.

[2]吴友宇.模拟电子电路.科学出版社,2005.

[3]伍时和.数字电子技术基础.清华大学出版社,2005.

[4]杨应平.光电技术.机械工业出版社,2005.

7.附录

导入芯片程序代码:

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitlcden=P2^1;

sbitlcdrs=P2^0;

sbitlcdrw=P2^2;

sbitadwr=P3^7;//

sbitadcs=P3^0;//oe==gnd

sbiteoc=P2^3;

ucharcodetable[]="theillustionis";

ucharcodetable1[]="lx";

uintnum,a,d,qian,bai,shi,ge,num1;

uintillusion,temp;

voidinit(void);//初始化函数

voiddelay(uinta);//延时函数

voidwrite_com(ucharcom);//写指令函数

voidwrite_data(uchardate);//写数据函数

voiddisplay(uintd);//显示函数

voidmain(){

voidinit();//初始化

EA=1;//开总中断

ET0=1;//开定时器中断

TR0=1;//启动定时器

lcden=0;

/***********对1602液晶的模式进行设置***************/

write_com(0x38);//设置16*2显示,5*7点阵,8位数据接口

write_com(0x0c);//设置开显示,不显示光标

write_com(0x06);//写一个字符后地址指针加一

write_com(0x01);

n(0x07);//显示清零,数据指针清零

while

(1)

{

/*******开始不断扫描P1引脚是否有信号,并且对信号进行计算和显示********/

if(P1!

=0)

{

delay(10);

If(P1!

=0)//防止误判

{

adwr=0;

delay(5);

adwr=1;

delay(5);

adwr=0;

while

(1);

for(a=10;a>0;a--)

{temp=illusion*4;

temp=1000;

display(temp);//显示照度

}

};

};

}

}

/**********************初始化程序************************/

voidinit(void)

{

TMOD=0x01;//定时器0工作于计数方式1

TH0=(65536-5000)/256;

TL0=(65536-5000)%256;//定时时间为50ms

num=0;//

adcs=0;//sign=0;//

temp=0;

write_com(0x80);}

/*************延时函数每次延时50ms********************/

voiddelay(uinta)

{

Uintb,c;

for(b=a;b>0;b--)

for(c=110;c>0;c--);

}

/************定时器中断函数*****************/

voidto_time()interrupt1

{

TH0=(65536-5000)/256;//中断函数里重新赋初值

TL0=(65536-5000)%256;

num++;

If(num==20)//每20*50ms计算一次,并且将速度显示

{

num=0;//标志位

Illusion=P1;

}

}/***********写指令函数************/

voidwrite_com(ucharcom)

{

lcdrs=0;//

lcdrw=0;P0=com;//

delay(5);

lcden=1;

delay(20);

lcden=0;

}/*********写数据函数*************/

voidwrite_data(uchardate)

{

Lcdrs=1;//

delay(5);//

Lcdrw=0;

P0=date;//

delay(5);

lcden=1;

delay(20);

lcden=0;}

/*************显示函数********************/

voiddisplay(uintillusion)

{

qian=illusion/1000;

bai=illusion%1000/100;

shi=illusion%100/10;

ge=illusion%10;//速度范围为0至9999.

for(num1=0;num1<20;num1++)//显示前面一段字符

{

write_data(table[num1]);

delay(20);

};

write_com(0x80+0x41);//显示光照强度

write_data(0x30+qian);

write_com(0x80+0x42);

write_data(0x30+bai);

write_com(0x80+0x43);

write_data(0x30+shi);

write_com(0x80+0x44);

write_data(0x30+ge);

write_com(0x80+0x47);

for(num1=0;num1<2;num1++)

{

write_data(table1[num1]);

delay(20);

}

write_com(0x80);

}

 

 

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

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2