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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数字式光照强度检测仪的设计实现ppt.docx

1、数字式光照强度检测仪的设计实现ppt电子电路实验3综合设计总结报告题目:数字式光照强度检测仪的设计实现班级:20080421学号:2008042117姓名: 许相凯日期:2011.5.13摘 要光照强度检测仪可以应用在需要某一特定光强范围的领域 。它的主体是光敏电阻,光敏电阻采用半导体材料制作,半导体吸收光子而产生的光电效应,使得光敏电阻阻值变小;光敏电阻的电极一般采用梳状,提高了光敏电阻的灵敏度;另外光敏电阻光谱特性好,光谱响应从紫外区一直到红外区,而且体积小、重量轻、性能稳定。本实验采用的方案是:用单片机控制模数转换芯片通过模拟开关采集三个方向光敏电阻与固定电阻的分压值,在单片机内部通过逻

2、辑判断保留接收最强光强(即光照射方向)的采集结果,通过转换函数转换成对应的光照强度,并用数码管显示,同时通过已判断光照射方向,显示相应的小数点。设计选题及设计任务要求设计选题:数字式光照强度检测仪的设计实现任务要求:1、设置三个方向的光照强度检测,通过模数转换等用两位数码管显示最强光照强度(即光照射方向的光照强度),要求在黑暗中显示00,在室内强光下显示99; 2、用小数点显示光照方向:光从左侧入射亮高位小数点,光从右侧入射亮低位小数点,光从前方入射不亮小数点。正 文1方案的设计与论证方案一 逻辑判断后 选光照方向一侧信号采集 目的侧 模拟信号方案二 控制模拟开关依次选择三侧方案一是利用电压比

3、较器LM358对任意两路电压进行比较,把比较结果送到单片机进行逻辑判断选择光照方向一侧的光敏电阻进行模数转换,把转换后数据送到单片机,经单片机程序转换成光照强度让数码管显示,并显示光照方向侧的小数点。方案二是利用模拟开关在单片机的控制下依次选择三侧模拟信号,通过模数转换器采集数据分别存入三个变量,利用程序判断光照方向,将光照方向数字信号转换成光照强度通过数码管显示,并显示光照方向侧的小数点。方案一采用先判断后采集的方式,每次只需采集一侧模拟信号,节省采集时间,适合采集频率较高的系统。但该方案与方案二相比较电路复杂,并且判断后再采集可能有滞后影响高精度。方案二具有电路结构简单、无采集滞后等优点,

4、缺点是采集三侧模拟信号浪费时间,但本选题所用的光敏电阻光照特性非线性,本身不是精确测量,故采集频率高并不一定更精确。鉴于方案二的上述优点故本选题实现方案选择方案二。2理论计算(1) 单片机主模块 下图即为单片机最小系统,采用STC89C51单片机,外接复位电路,时钟电路,其中P20端口的LED是为了检验单片机实际电路是否正常连接。(2) 通信模块用于下载程序到SYC89C51单片机。(3) 光敏输出模块 下图依次为左侧、前侧、右侧光敏电阻输出模块。测得光敏电阻在室内光照射下电阻约为1.7k欧姆,黑暗中约为150k欧姆,选取的分压电阻不能太大,否则灵敏度太小,经试选5.1k欧姆合适;电位器的电阻

5、在下载程序后测试调整,使得当同样的光照强度从另外两个方向入射时数码管显示的数不变。5.1K电位器电位器X1X2X0 (4)输出选择模块。经10k电阻接ADC0804Vin+P05P04P03根据单片机发来的指令使CBA依次为000、001、002来选择X0、X1、X2三路中一路模拟开关,使模拟电压经X传送到ADC0804经行模数转换。CD4051管脚图、管脚说明及真值表: (5) ADC0804模块 用单片机控制CS、RD、WR完成ADC0804的驱动,将X传来的模拟信号转换成数字信号,再将数字信号传送到单片机。P00P01P02XADC0804的规格及引脚图:时序图如下: (6)数码管显示电

6、路。 数码管为共阳极连接,P32、P33分别控制十位、个位的位选,P06、P07分别控制十位、个位小数点。P06P07P33P323测试方法与数据(1) 测试方法:A、测试项目:在无光情况下观察数码管是否显示为00;在室内用三个方向的光敏电阻依次对着光入射的方向观测数码管显示值是否相等,以及是否是光从左侧入射时显示高位小数点、光从前侧入射时不显示小数点、光从右侧入射时显示低位小数点。B、如何测试:用keil软件编程,程序说明如下:【1】AD0804驱动子程序,根据ADC0804时序图编写;unsigned char adc0804( void ) /读AD0804子程序 unsigned ch

7、ar addata,i; rd=1;wr=1;/int1=1; /读ADC0804前准备 P1=0xff; /P1全部置一准备 cs=0;wr=0;wr=1; /启动ADC0804开始测电压 rd=0; /开始读转换后数据 i=i; i=i; /无意义语句,用于延时 /等待ADC0804读数完毕 addata=P1; /读出的数据赋与addate rd=1;cs=1; /读数完毕return(addata); /返回最后读出的数据 【2】显示子程序,依次显示十位、个位;void display(int temp) /显示程序 ge=1; delay(2); P2=tabletemp/10; /

8、显示十位 shi=0; delay(2); shi=1; shi=1; P2=tabletemp%10; /显示个位 ge=0; delay(2); ge=1;【3】转换子程序,将采集转换后的数字信号通过函数转换成显示数;uint zhuan(uchar temp) int x=255-temp; int y; if(x=250) /当采集后数字数据大于 /250时认为最大光强显示99 y=99; if(x40&x250) /根据上述两部分列出中间 /线性部分 y=(x-40)*10/21; return(y);【4】数据采集存储程序,分别采集三路数据,存入三个变量; uchar DATA0,

9、DATA1,DATA2; a=0; b=0; c=0; DATA0=adc0804(); delay(2); a=1; b=0; c=0; DATA1=adc0804(); delay(2); a=0; b=1; c=0; DATA2=adc0804(); delay(2);【5】判断光入射方向显示程序,显示光强及光照方向;if(DATA0=DATA1&DATA0=DATA2) /判断哪路光最强 display(zhuan(DATA0); /左路 dp1=0; dp2=1;else if(DATA1=DATA0&DATA1=DATA2) display(zhuan(DATA1);/中路 dp1

10、=1; dp2=1; else display(zhuan(DATA2);/右路 dp1=1; dp2=0; 用STC_ISP软件把程序下载到单片机。遮住光读取数码管示数;用三个方向的光敏电阻依次对着光入射的方向观测数码管显示值,以及小数点亮灭情况。(2) 测试仪器:无(3) 测试数据 :a、无光下数码管显示00;b、室内左侧冲光照方向时显示90,左小数点亮;前侧冲光照方向时显示90,小数点不亮;右侧冲光照方向时显示90,右小数点亮。4结果分析数据处理:无光下显示00;室内光照射方向显示均为90,小数点显示也符合要求。结论: 实验成功。5附录总电路图:见附页图元件表:见附页表参考文献:1、 实

11、用电子系统设计基础姜威,北京理工大学出版社。2、 电子线路设计实验测试罗杰、谢自美,电子工业出版社。3、 单片机实验与应用系统设计范蟠果,国防工业出版社。附页1、程序代码:#include /单片机51头文件,存放着单片机的寄存器#include /为了使用空指令加载的头文件sbit shi=P32; /数码管十位sbit ge=P33; /数码管个位sbit dp1=P06; /十位小数点sbit dp2=P07; /个位小数点sbit cs=P00; sbit rd=P01; sbit wr=P02; /ad控制管脚定义sbit c=P03;sbit b=P04;sbit a=P05; /

12、cd4051控制管脚定义#define uchar unsigned char#define uint unsigned intUnsigned char code table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/数码管段选显示 0-9/*/ void delay(uint count) /delay uint i; while(count) i=200; while(i0) i-; count-; /*/ unsigned char adc0804( void ) /读AD0804子程序 unsigned char addat

13、a,i; rd=1;wr=1;/int1=1; /读ADC0804前准备 P1=0xff; /P1全部置一准备 cs=0;wr=0;wr=1; /启动ADC0804开始测电压 rd=0; /开始读转换后数据 i=i; i=i; /用于延时等待ADC0804读数完毕 addata=P1; /读出的数据赋与addate rd=1;cs=1; /读数完毕return(addata); /返回最后读出的数据/*/ void display(int temp) /显示程序 ge=1; delay(2); P2=tabletemp/10; /显示十位 shi=0; delay(2); shi=1; shi

14、=1; P2=tabletemp%10; /显示个位 ge=0; delay(2); ge=1;/*/uint zhuan(uchar temp) /转换程序,目的是让ad采集进来的 /数字信号转换成0099的二位数显示 int x=255-temp; int y; if(x=250) y=99; if(x40&x250) y=(x-40)*10/21; return(y);/*/void main() /主程序 int i=0; /数码管检验,小数点全亮,数字从0099依次显示一次 while(i10) shi=0; dp1=0; dp2=0; ge=0; P2=tablei; i+; de

15、lay(100); /检验完毕 while(1) uchar DATA0,DATA1,DATA2; a=0; b=0; c=0; DATA0=adc0804(); delay(2); a=1; b=0; c=0; DATA1=adc0804(); delay(2); a=0; b=1; c=0; DATA2=adc0804(); delay(2); if(DATA0=DATA1&DATA0=DATA2) /判断哪路光最强,便显示哪 /路及相应的小数点 display(zhuan(DATA0); /左路 dp1=0; dp2=1; else if(DATA1=DATA0&DATA1=DATA2) display(zhuan(DATA1);/中路 dp1=1; dp2=1; else display(zhuan(DATA2);/右路 dp1=1; dp2=0; delay(2);

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

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