智能照度仪 毕业设计.docx

上传人:b****8 文档编号:10960590 上传时间:2023-02-24 格式:DOCX 页数:19 大小:566.20KB
下载 相关 举报
智能照度仪 毕业设计.docx_第1页
第1页 / 共19页
智能照度仪 毕业设计.docx_第2页
第2页 / 共19页
智能照度仪 毕业设计.docx_第3页
第3页 / 共19页
智能照度仪 毕业设计.docx_第4页
第4页 / 共19页
智能照度仪 毕业设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

智能照度仪 毕业设计.docx

《智能照度仪 毕业设计.docx》由会员分享,可在线阅读,更多相关《智能照度仪 毕业设计.docx(19页珍藏版)》请在冰豆网上搜索。

智能照度仪 毕业设计.docx

智能照度仪毕业设计

第1章概述

1.1设计背景

随着数字技术的发展,模拟技术的缺陷日益明显,数字仪器取代模拟仪器已经成为电子仪器的发展趋势。

并且在医学研究方面和农业养殖方面,照度仪的用处越来越大。

在照度测量方面,一般照度仪精确度很低,读数不方便且误差较大,已经逐渐被淘汰。

而数字照度仪集读数方便、迅速、精确度高等特点于一体,优势明显,成为实验室乃至市场的首选。

国外数字照度仪的发展已经有好多年的历史,而且许多企业在生产照度仪。

例如德国的testo540。

照度仪适合人眼光谱的传感器具有读数锁定功能,便于读数,显示最大/最小值。

还有各种特殊功,特殊环境下用的照度仪,如水下照度仪,顾名思义就是在水下使用的照度仪;另外紫外线照度仪,可测量220到270纳米,可用于卫生、医疗、化工、电子、航天等行业。

现在数字照度仪正在向着分辨率高、小巧便捷、反应迅速的方向发展。

数字照度仪在国内的发展起步虽然比较晚,但是发展速度非常迅猛。

例如广州宏诚集团电子科技有限公司、陕西华夏亨通电子科技有限公司等产的照度仪就可以和技术先进国家的照度仪相媲美。

精美的光度测量、折叠式设计、方便携带等都是国内照度仪的优点。

但是市场上的常用的照度仪,动辄几千元,对于非高度要求的小用户话费的确太高。

故做此简易照度仪,仅利用硅光电池、AT89C51和LED共阳极数码管等少量元器件,花费不过几十元,但读数迅速、方便,制作简单,原理易懂。

1.2实验任务

利用硅光电池为信号输入电路,以AT89C51单片机芯片设计控制电路,制作一个简易照度计,可以通过LCD显示屏显示照度值。

1.3背景知识

硅光电池的光电转换原理:

  光电池是一种特殊的半导体二极管,能将可见光转化为直流电。

有的光电池还可以将红外光和紫外光转化为直流电。

光电池是太阳能电力系统内部的一个组成部分,太阳能电力系统在替代现在的电力能源方面正有着越来越重要的地位。

最早的光电池是用掺杂的氧化硅来制作的,掺杂的目的是为了影响电子或空穴的行为。

硅光电池因具有性能稳定、光谱响应范围宽、转换效率高、线性响应好、使用寿命长、耐高温辐射、光谱灵敏度和人眼灵敏度相近等优点而得到广泛应用。

硅光电池是一种直接把光能转换成电能的半导体器件。

它的结构很简单,核心部分是一个大面积的PN结,把一只透明玻璃外壳的点接触型二极管与一块微安表接成闭合回路,当二极管的管芯(PN结)受到光照时,你就会看到微安表的表针发生偏转,显示出回路里有电流,这个现象称为光生伏特效应。

硅光电池的PN结面积要比二极管的PN结大得多,所以受到光照时产生的电动势和电流也大得多。

当光照射到P区表面时,如果光子能量大于硅的禁带宽度,则在P型区内每吸收一个光子便产生一个“电子-空穴”对。

由于PN结内电场的方向是由N区指向P区,所以扩散到PN结附近的“电子-空穴”对会分离。

光生电子被推向N区,光生空穴被留在P区,从而使N区带负电,P区带正电,形成光生电动势。

AT89C51:

 AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图所示:

  

AT89C51外形及引脚排列

管脚说明:

VCC:

供电电压。

  GND:

接地。

  P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

  P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为低八位地址接收。

  P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

  P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

  P3口也可作为AT89C51的一些特殊功能口,如下表所示:

  口管脚备选功能

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2/INT0(外部中断0)

  P3.3/INT1(外部中断1)

  P3.4T0(记时器0外部输入)

  P3.5T1(记时器1外部输入)

  P3.6/WR(外部数据存储器写选通)

  P3.7/RD(外部数据存储器读选通)

  P3口同时为闪烁编程和编程校验接收一些控制信号。

  RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

  ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

  /PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

  /EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

  XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

  XTAL2:

来自反向振荡器的输出。

  振荡器特性:

  XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

第2章系统方案比较与选择

2.1工作原理:

当光照射在硅光电池的PN结区时,会在半导体中激发出光生电子-空穴对。

PN结两边的光生电子-空穴对在内电场作用下,多数载流子的不能穿越阻挡层,而少数载流子却能穿越阻挡层,结果,P区的光生电子进入N区,N区的光生空穴进入P区,使每个区中的光生电子-空穴对分割开来。

光生电子在N区的集结使N区带负电,光生电子在P区的集结使P区带正电。

P区和N区之间产生光生电动势。

当硅光电池接入负载后,光电流从P区经负载流至NE,负载中就会有功率输出。

 利用CPU芯片实现控制电路,用AD模数转换器实现模拟信号和数字信号的转换。

当光电池接入负载,将输出的信号通过三极管放大,通过模数转换器AD转换为数字信号,通过单片机控制电路将信号输入LCD显示屏,在显示屏上显示当前的照度值。

原理图1

 

  

此电路前置放大电路利用三级管的的放大作用,将带负载的光电池电路输出的电流放大,为了保证信号有更好的线性关系,所以将三极管接成电流转换为电压的形式。

原理图2

  此电路的前置放大电路采用ICL7650自稳零斩集成运放,同是一种高精度,低漂移,高输入阻抗的集成运放他利用动态较零原理。

清除COMS器件固有的失调和漂移,对微弱信号来讲是个较理想的前置放大器并采用自动量程转换,如果采用单一的反馈电阻,若输入信号变化范围大,则小信号将得不到有效方向大,从而降低了A/D转换精度,以致影响了控制量,因此采用控制模拟开关自动地选择合适的反馈电阻来改变运放的放倍,使其适合各种量程的测量。

原理图3

  此电路为照度计的照度采集模块与前置放大模块,之后上与上两图相同,

  本电路利用光电二极管BS500B的输出电流为0.55uA/100LX由于光电二极管的输出电流很小,为1nA~1mA,直接输入到运放ICL8048不能获得良好的性能所以先用运放LF412CN对光电二极管的输出电流Isc 进行放大,由于对0数运放ICL8048的输出为负斜率特性,因此在其后接入了进行极性转换的运放LF412CF。

三种电路相比较:

图1电路简单成本低,但量程范围有限。

图2电路设计简单,抗干扰能力强,带自量程控制,量程范围宽。

图3电路设计复杂,成本低,适应要求不高的场合。

 

2.2系统框图

系统框图如下:

 

 

 

图1照度计设计系统框图

2.3程序设计流程图

程序流程图如下:

 

图2程序设计流程图

 

第三章具体方案

3.1硬件电路图

图3照度计硬件原理图

3.2原理图说明

光电前置放大电路

利用三级管的的放大作用,将带负载的光电池电路输出的电流放大,为了保证信号有更好的线性关系,所以将三极管接成电流转换为电压的形式。

经过测量,电压放大的范围大概为0.2V到2.3V。

AD转换电路

采用ADC0809模数转换芯片和AT89C51单片机,将光电池接收的光信号转换后放大的电压模拟信号转换为数字信号,然后通过单片机的控制电路将数字信号送到LCD显示屏。

显示电路

此处显示电路采用了1602A液晶显示模块。

当光直射光电池时,放大的电压信号通过三极管的发射极送入AD转换器的IN0端口。

因为AD的ADDA、ADDB、ADDC都接地,所以ADC0809就采集IN0端口的信号。

模拟信号经过转换后向OUT-1~OUT8传送数字信号。

数字信号经过总线传送到AT89C51的P1口,并读入累加器A,经过AT89C51计算后通过P0端口输出,然后控制LCD显示屏的输出。

3.3硬件程序

#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);//显示清零,数据指针清零

while

(1)

{

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

if(P1!

=0)

{

delay(10);

if(P1!

=0)//防止误判

{

adwr=0;

delay(5);

adwr=1;

delay(5);

adwr=0;

while(oec);

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

 

第四章调试过程及结论

4.1调试过程

在仿真过程中为了方便控制放大电路,这里先采用滑动变阻器来代替前置放大电路。

具体的就是将滑动变阻器接电源和地,将滑动端接入AD转换器的IN0端口。

图4电压为零时的仿真图

从图中可看出,输入电压最小为零时,显示屏显示的照度值就为0lx。

图5电压最大时仿真图

从上图中可看出,输入电压最大时,显示屏显示的照度值为255lx。

在焊电路板的过程中,开始时用两个控制端控制LCD显示屏,发现效果不太好,后来改为三个端口控制。

在调试过程中,接上电源,发现LCD没有反应,检查电路发现是LCD的数据输入端和AT89C51的P0接反了。

改正上述错误后,显示屏亮了,可发现显示的乱码而且显示很不稳定,检查电路后发现是电路中某些接触点接触不良。

将这些接触点重新焊了一遍,显示屏终于显示了照度值,但数值很不稳定,从十几勒克斯到两百多勒克斯无规律跳变,可能是AD输出出错,检查电路,确实的AD的OUT端与89C51的P1端口接反了,导致输出数值放大了几百倍,因此出现微弱信号变化就使数值改变很大。

改正此处电路后,终于显示了正常稳定的照度值。

 

参考文献

[1]康光华.电子技术基础(模拟部分).北京:

高等教育出版社,1999

[2]康光华.电子技术基础(数字部分).北京:

高等教育出版,2004

[3]余发山.单片机原理及应用技术.北京:

中国矿业大学出版社,2003

[4]何立民.单片机应用技术选编.北京:

北京航空航天大学出版社,2000

[5]徐爱华.单片机应用技术教程.北京:

机械工业出版社,2003

[6]王元庆.新型传感器原理及应用.北京:

机械工业出版社,2002

[7]孟立凡,郑宾.传感器原理及技术.北京:

国防工业出版社,2005

[8]郝芸传.感器原理与应用.北京:

电子工业出版社,2002

[9]何道清.传感器与传感器技术.北京:

科学出版社,2004

[10]宋文绪,杨帆.传感器与检测技术.北京:

高等教育出版社,2004

[11]张谦琳.超声波检测原理和方法.北京:

中国科技大学出版社,1993

[12]张胜全.D18B20数字温度计在微机温度采集系统中的序编制.南京:

南京大学出版社,1998

[13]锻九州.放大电路实用设计手册.沈阳:

辽宁科学技术出版社,2002

[14]牛余朋.基于单片机的高精度超声波测距电路.电子世界2005年5期

[15]苏伟、巩壁建,潘笑.超声波测距误差分析.传感器技术2004年23卷

[16]宋立中.基于单片机的超声波测距仪LED显示电路的设计.仪表技术2006年4期

[17]沈进棋.移动机器人多路超声波数据采集系统的研究与实现.电子技术,2003

[18]rtoriS,ZHANGGX.GeometricErrorMeasurementandCompensationofMachines.AnnalsoftheCIRP.1995:

599-609

[19]oltonW.Instrumentation&processmeasurement.Longman

Scientific&Technical.1991

 

致谢

 

附录

 

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

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

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

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