ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:513.35KB ,
资源ID:4172622      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4172622.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易光照度计的设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易光照度计的设计.docx

1、简易光照度计的设计简易照度计设计1实验任务1.1实验目的 1, 了解光敏二极管的基本特性。 2, 设计和制作简易照度计。1.2 实验要求1, 根据参考电路,分析照度计的基本工作原理。2, 测量光敏二极管的基本资料。 3, 根据光敏二极管的基本特性,设计和制作1000LUX的简易照度计。1.3 实验所需器材电阻,电位器,运算放大器,正负12V电源, 负9V电源,51单片机,数码管,高压汞灯,连接线 照度计设计模板(电路板),光敏二极管(日光型,响应波长在5000埃到6000埃),万用表。1.4 设计内容1, 根据电路图制作照度计实验模板。2, 调节照度计旋钮使光敏二极管处的照度为100LUX,并

2、保持该照度不变,然后将光敏二极管接入IC1的输入端,并将K置于1的位置使 光敏二极管处于0偏压的状态,测量该照度下光敏二极管的光电流。 3, 测量不同照度下(200,300,400,500,600 700,800LUX)光敏二极管的光电流,并做出照度电流曲线。 4, 将K置于2,3的位置给光敏二极管的正极加上一个负偏压并测量出该电压的大小,重复2,3步的内容,做出照度计电流曲线,并比较。 5, 根据不同照度计下的输出电压设计制作简易照度计。 2设计原理2.1 基本理论硅光电池是一种能将光能直接转换成电能的半导体器件,它实质上是一个大面积的半导体PN结,其工作原理是光生伏特效应。当光照射在硅光电

3、池的PN结区时,会在半导体中激发出光生电子-空穴对。PN结两边的光生电子-空穴对在内电场作用下,多数载流子的不能穿越阻挡层,而少数载流子却能穿越阻挡层,结果,P区的光生电子进入N区,N区的光生空穴进入P区,使每个区中的光生电子-空穴对分割开来。光生电子在N区的集结使N区带负电,光生电子在P区的集结使P区带正电。P区和N区之间产生光生电动势。当硅光电池接入负载后,光电流从P区经负载流至NE,负载中就会有功率输出。 利用AT89C51芯片实现控制电路,用ADC0809模数转换器实现模拟信号和数字信号的转换。当光电池接入负载,将输出的信号通过三极管放大,通过模数转换器ADC0809转换为数字信号,通

4、过单片机控制电路将信号输入LCD显示屏,在显示屏上显示当前的照度值。2.2 系统框图 系统框图如下:图1 照度计设计系统框图2.3 程序设计流程图 程序流程图如下:图2 程序设计流程图3实现方案3.1 硬件电路图 3.2原理图说明3.2.1光电前置放大电路 利用三级管的的放大作用,将带负载的光电池电路输出的电流放大,为了保证信号有更好的线性关系,所以将三极管接成电流转换为电压的形式。经过测量,电压放大的范围大概为0.2V到2.3V。3.2.2 AD转换电路 采用ADC0809模数转换芯片和AT89C51单片机,将光电池接收的光信号转换后放大的电压模拟信号转换为数字信号,然后通过单片机的控制电路

5、将数字信号送到LCD显示屏。3.2.3显示电路 此处显示电路采用了1602A液晶显示模块。 当光直射光电池时,放大的电压信号通过三极管的发射极送入AD转换器的IN0端口。因为AD的ADD A、ADD B、ADD C都接地,所以ADC0809就采集IN0端口的信号。模拟信号经过转换后向OUT-1OUT8传送数字信号。数字信号经过总线传送到AT89C51的P1口,并读入累加器A,经过AT89C51计算后通过P0端口输出,然后控制LCD显示屏的输出。3.3硬件程序#include #define uchar unsigned char#define uint unsigned intsbit lcd

6、en=P21;sbit lcdrs=P20;sbit lcdrw=P22;sbit adwr=P37;/sbit adcs=P30; /oe =gndsbit eoc=P23;uchar code table=the illustion is;uchar code table1=lx;uint num,a,d,qian,bai,shi,ge,num1;uint illusion,temp;void init(void); /初始化函数void delay(uint a); /延时函数void write_com(uchar com); /写指令函数void write_data(uchar d

7、ate); /写数据函数 void display(uint d); /显示函数void main() void init(); /初始化 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引脚是否有信号,并且对信

8、号进行计算和显示*/ if(P1!=0) delay(10); if(P1!=0)/防止误判 adwr=0; delay(5); adwr=1; delay(5); adwr=0; while(oec); for(a=10;a0;a-) temp=illusion*4; temp=1000; display(temp);/显示照度 ; ; /*初始化程序*/void init(void) TMOD=0x01; /定时器0工作于计数方式1 TH0=(65536-5000)/256; TL0=(65536-5000)%256; /定时时间为50ms num=0;/ adcs=0;/ sign=0;

9、/ temp=0;write_com(0x80);/*延时函数每次延时50ms*/void delay(uint a) uint b,c; for(b=a;b0;b-) for(c=110;c0;c-);/*定时器中断函数*/void to_time() interrupt 1 TH0=(65536-5000)/256; /中断函数里重新赋初值 TL0=(65536-5000)%256; num+; if(num=20) /每20*50ms计算一次,并且将速度显示 num=0; /标志位 illusion=P1; /*写指令函数*/void write_com(uchar com) lcdrs

10、=0; /lcdrw=0; P0=com; /delay(5); lcden=1; delay(20); lcden=0;/*写数据函数*/void write_data(uchar date) lcdrs=1; /delay(5); /lcdrw=0; P0=date;/ delay(5); lcden=1; delay(20); lcden=0;/*显示函数*/void display(uint illusion) qian=illusion/1000; bai=illusion%1000/100; shi=illusion%100/10; ge=illusion%10; /速度范围为0至

11、9999. for(num1=0;num120;num1+) /显示前面一段字符 write_data(tablenum1); 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;num12;

12、num1+) write_data(table1num1); delay(20); write_com(0x80); 4调试过程及结论4.1调试过程从图中可看出,输入电压最小为零时,显示屏显示的照度值就为0lx。 从上图中可看出,输入电压最大时,显示屏显示的照度值为255lx。 在焊电路板的过程中,开始时用两个控制端控制LCD显示屏,发现效果不太好,后来改为三个端口控制。在调试过程中,接上电源,发现显示的乱码而且显示很不稳定,检查电路后发现是电路中某些接触点接触不良。将这些接触点重新焊了一遍,显示屏终于显示了照度值,但数值很不稳定,从十几勒克斯到两百多勒克斯无规律跳变,可能是AD输出出错,检查

13、电路,确实的AD的OUT端与89C51的P1端口接反了,因此出现微弱信号变化就使数值改变很大。改正此处电路后,终于显示了正常值4.2 光照度与电流曲线 照度(LUX)200300400500600700800电流(A)2.142.492.893.083.253.303.454.3结论 在Proteus软件中仿真成功,并按电路原理图焊接好电路,将程序烧录到AT89C51芯片中进行调试,LCD显示屏最终可以显示照度值,实验成功。5参考文献1、王庆友. 光电技术. 北京:电子工业出版社,20112、华成英 童诗白. 模拟电子技术基础. 北京: 高等教育出版社,19853、戴先金. 51单片机开发实例. 北京: 清华大学出版社,20064、康华光. 电子技术基础. 北京: 高等教育出版社,2006

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

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