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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

简易光照度计的设计.docx

1、简易光照度计的设计目录1 实验任务 12 设计原理 12.1 基本理论 12.2 系统框图 12.3 程序设计流程图 23 实现方案 33.1 硬件电路图 33.2 原理图说明 33.2.1 光电前置放大电路 33.2.2 AD转换电路 43.2.2 显示电路 43.3 硬件程序 44 调试过程及结论 104.1 调试过程 104.2 结论 115 心得体会 136 参考文献 14利用硅光电池的简易照度计设计1 实验任务 利用硅光电池为信号输入电路,以AT89C51单片机芯片设计控制电路,制作一个简易照度计,可以通过LCD显示屏显示照度值。2 设计原理2.1 基本理论硅光电池是一种能将光能直接

2、转换成电能的半导体器件,它实质上是一个大面积的半导体PN结,其工作原理是光生伏特效应。当光照射在硅光电池的PN结区时,会在半导体中激发出光生电子-空穴对。PN结两边的光生电子-空穴对在内电场作用下,多数载流子的不能穿越阻挡层,而少数载流子却能穿越阻挡层,结果,P区的光生电子进入N区,N区的光生空穴进入P区,使每个区中的光生电子-空穴对分割开来。光生电子在N区的集结使N区带负电,光生电子在P区的集结使P区带正电。P区和N区之间产生光生电动势。当硅光电池接入负载后,光电流从P区经负载流至NE,负载中就会有功率输出。 利用AT89C51芯片实现控制电路,用ADC0809模数转换器实现模拟信号和数字信

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

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

5、clude #define uchar unsigned char#define uint unsigned intsbit lcden=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

6、 a); /延时函数void write_com(uchar com); /写指令函数void write_data(uchar date); /写数据函数 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); /写一个字符后地址

7、指针加一 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;a0;a-) temp=illusion*4; temp=1000; display(temp);/显示照度 ; ; /*初始化程序*/void init(void) TMOD=0x01; /定时器0工作于计数方式1 TH0=(65536-50

8、00)/256; TL0=(65536-5000)%256; /定时时间为50ms num=0;/ adcs=0;/ sign=0;/ 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计算一次,并且将速度显

9、示 num=0; /标志位 illusion=P1; /*写指令函数*/void write_com(uchar com) lcdrs=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; b

10、ai=illusion%1000/100; shi=illusion%100/10; ge=illusion%10; /速度范围为0至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+

11、0x44); write_data(0x30+ge); write_com(0x80+0x47); for(num1=0;num12;num1+) write_data(table1num1); delay(20); write_com(0x80); 4 调试过程及结论4.1 调试过程 在仿真过程中为了方便控制放大电路,这里先采用滑动变阻器来代替前置放大电路。具体的就是将滑动变阻器接电源和地,将滑动端接入AD转换器的IN0端口。图4 电压为零时的仿真图 从图中可看出,输入电压最小为零时,显示屏显示的照度值就为0lx。图5 电压最大时仿真图 从上图中可看出,输入电压最大时,显示屏显示的照度值为2

12、55lx。 在焊电路板的过程中,开始时用两个控制端控制LCD显示屏,发现效果不太好,后来改为三个端口控制。在调试过程中,接上电源,发现LCD没有反应,检查电路发现是LCD的数据输入端和AT89C51的P0接反了。改正上述错误后,显示屏亮了,可发现显示的乱码而且显示很不稳定,检查电路后发现是电路中某些接触点接触不良。将这些接触点重新焊了一遍,显示屏终于显示了照度值,但数值很不稳定,从十几勒克斯到两百多勒克斯无规律跳变,可能是AD输出出错,检查电路,确实的AD的OUT端与89C51的P1端口接反了,导致输出数值放大了几百倍,因此出现微弱信号变化就使数值改变很大。改正此处电路后,终于显示了正常稳定的

13、照度值。4.2 结论 在Proteus软件中仿真成功,并按电路原理图焊接好电路,将程序烧录到AT89C51芯片中进行调试,LCD显示屏最终可以显示照度值,实验成功。图6 焊接好的电路板图7 LCD显示屏上显示的照度值 遮住光电池后,显示的照度值明显减小,如图。图8 遮住光电池后显示的照度值5 心得体会首先这次课程设计是对以前学过的相关知识的一次综合的运用,是把课本知识转化为生活实际的一次实践性的实验,很大程度上锻炼了我的思考问题解决问题的能力,实验的内容贴近生活实际,使我们可以用自己所学的知识解决实际问题。这次课程设计在很大程度上调动了我的积极性和对专业浓厚的兴趣。温故而知新。课程设计开始,对知识系统而全面进行了梳理,遇到难处先是苦思冥想再向同学请教,终于熟练掌握了基本理论知识,而且领悟诸多平时学习难以理解掌握的较难知识,学会了如何思考的思维方式,找到了设计的灵感。总的来说这次课程设计相对比较顺利,但是也遇到了一些问题,遇到问题并不是什么坏事,通过

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

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