1、简易光强检测仪第一章 题目要求与分析1.1课程设计的意义本次课程设计是我们在学习单片机后的一次实习。可增强我们的动手能力,特别对单片机的系统设计有很大的帮助。1.2题目要求1.设计并制作一台数字显示的光强检测仪。2.基本要求:测量传感器可以任选,实现光强测量精度10%。1.3题目分析本设计是测光强电路,可以使用光敏电阻之类的器件利用其感光效应,在将随被测光亮变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测光强显示出来。第二章 系统总体方案及硬件设计2.1光强测量系统设计本设计使用光敏电阻5228搭建光电转换电路,经过AD转换将光电模拟信号数字
2、化,在通过单片机进行数据处理,最终在4位LED上显示光强。同时设计了报警系统,当光强达到一定上限值时,启动报警模式。单片机的RESET口上提供了供电自启动,在X1,X2口上提供了12MHZ晶振,以支持单片机的运行与启动。系统由4个模块组成,分别为光电转换模块、AD转换模块、测量数据显示模块、报警模块。系统框图如图1:2.2硬件设计与分析本系统主要由光电转换电路,AD转换器,单片机,存储器,LED显示,蜂鸣器组成。2.2.1光电转换模块光电转换模块采用5228光敏电阻进行光电转换,当有光照射到光敏电阻上时,光敏电阻的阻值发生变化,从而产生电信号。在经过放大器将电信号放大,转换电路如图2所示。为减
3、小输出信号的噪声,输出端可接1个0.1F的电容C4去除高频信号。为防止产生自激振荡在输入与输出之间接1个0.1 F的补偿电容C1,对于增益电阻可采用高精度的可调电阻,输出信号幅度与R1成正比。R1取值大一些可以增加信噪比,但R1取值要受输出电压幅度的限制。图2 光电转换电路2.2.2A/D转换A/D转换采样比较熟悉的ADC0809芯片。ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。本次设计中AD转换系统与AT89S51单片机的外部总线接口P0连接,接收采集到的光强电压。如图3所示。2.2.3LED显
4、示和报警装置显示系统为4个BCD-七段显示译码器与P1口相连,要求P1口输出8位BCD码,符合74LS49的译码规则,完成译码,再传输到7段数码显示器上进行数据显示。同时报警装置对当前值进行判断,如大于一定值时,发出警报。报警装置是由一个三极管,电阻和蜂鸣器组成。三极管在此电路中起到开关作用,工作在饱和区。整个报警系统属于低电平驱动,其中蜂鸣器是5V有源的。路图如图3。图3 系统硬件电路原理图第三章 系统软件分析3.1主程序流程图主程序主要负责光强的显示,对光强的采集数据进行处理将其显示出来,并加上一定的报警设备。如图4:图4 主流程图3.2显示程序显示数据使用数码管显示,显示前要定义7段码共
5、阴极数码管09段码数组。流程图如图5所示。3.3报警装置当光强度大到一定值时,蜂鸣器会发出警报,提醒人光度过强,以免眼睛受到伤害。流程图如图6所示。 图5 显示程序 图6 报警装置第四章 结果与分析光敏电阻阻值因光的强度变大而变大,接入一个反相运放,使得输出电压随光强的增强而增大,达到更为直观的效果。通过AD将光强电压值经单片机处理,再由LED显示光强电压值。当光强电压达到一定值时启动报警系统。实验效果图如图4-1,4-2,4-3:本设计使用光敏电阻组成光电转换电路,设计中由于光敏电阻受光照阻值变化较大和光照不稳定产生了一些误差。图4-1 室内测量 图4-2 增加亮度测量图4-3 报警测量结果
6、分析,如表1测量值(V)理论值(V)测量误差1.951.960.51%2.032.040.49%2.052.0502.302.310.43%2.552.570.78%2.792.800.36%3.593.620.83%表1 测量结果光强转换公式:I=KUaLb其中I为流光电阻两端的电流;K为光强比例系数;U为光电阻两端的电压;a为电压指数,近似为1;L为光照强度;b为照度指数。实验中由于缺少上式中部分参数,故无法计算最终的光照强度值。第五章 总结与体会经过一个星期的努力,我们完成了简易光强检测仪的课程设计。这次设计与制作,主要是对光强这个陌生名词的理解和完成设计的硬件电路的设计。首先,我们了解
7、光强的基本概念,了解光强在生活中的应用。因为我们没用光电传感器,所以我们需用光敏电阻或光敏二极管做成一个光电转换电路用来采集光强。在设计电路上,我们需了解各个器件的引脚分布,防止接错。焊接过程中,我们由于没有掌握器件的引脚,而导致电路不能正常工作。在程序方面,相对比较简单,都是平时做过的一些实验。通过这次课程设计,我们对单片机有了更好的了解。更好的掌握了硬件电路的设计和焊接。还有,在设计中我们要仔细的分析出错的原因,往往错误就错在一些细小的地方。、参考文献1 陈磊.单片机控制数字光强检测计的设计J.大学物理实验.2009.4.2 马忠梅,张凯.单片机的C语言应用程序设计(第四版)M.北京航天大
8、学出版社.附录源程序:#include reg51.h#include absacc.h #define dm P2 /段码输出口#define uchar unsigned char#define uint unsigned intsbit w0=P10; /数码管sbit w1=P11; /数码管sbit w2=P12; /数码管sbit w3=P13; /数码管sbit f=P14; /蜂鸣器sbit AD_BUSY=P33;uchar h;uint gq,w;/*光强小数部分用查表法*/uchar code table_dm11=0x3f,0x06,0x5b,0x4f,0x66,0x6
9、d,0x7d,0x07,0x7f,0x6f,0x00;/共阴LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 uchar table_dm110=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /个位带小数点的断码表 uchar data display4=0x00,0x00,0x00,0x00; /显示单元数据 /*/void delay(uint t) for (;t0;t-);void scan()int j; for(j=0;j=250 ) f=0; delay(100); else f=1; /*主函数*/# defin
10、e IN0 XBYTE0x0000void main() dm=0x00; /初始化端口 w0=0; w1=0; w2=0; w3=0; for(h=0;h4;h+) /开机显示0000 displayh=0; for(h=0;h100;h+) /开机显示0000 scan(); while(1) unsigned char a; unsigned int b; unsigned char i=0; IN0=0; i=i; i=i; while (AD_BUSY=0); a=IN0; b=a*1.953125; work_gqj(b); /处理光强数据 f=1; fengming(b); scan(); /显示光强值
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1