光电传感器实验平台软件设计摘要:此光电传感器实验平台软件设计包括光电转换、测量计算、输入输出三部分,光源信号作用于各光电传感器,由模数转换ADC0809采集光敏电阻、光敏二极管、光敏三极管、光电池的输出信号,透射式光电开关、热释电红外器件的输出信号为开关量,不需要经过模数转换ADC0809,把采集到的数据经单片机测量编程测量计算,将传感器主要特征参数实时显示出来。
我们用按键选择要进行的实验项目。
测量计算的核心器件为单片机,单片机系统实时测算并显示出传感器元件的主要参数。
关键字:传感器;转换模块;单片机第1章引言我国理工科院校现有的大学实验教学仪器都属于单一模式的仪器,即光学工程类、模电类、数电类、传感器类等单一功能的实验教学方法和仪器。
这些实验教学仪器虽然能够进行本学科的单科教学实验,但不能进行多学科综合性的实验教学,更无法培养学生的综合实验技能。
此光电传感器实验平台由光源、光电转换、测量计算、输入输出部分组成。
可以完成光电传感器的原理性实验,同时可进行应用性实验;整体结构紧凑,功能完整,实验平台即构成完整的光电传感器系统。
所有器件均在同一侧,有利于对具体的光电元件和转换电路的感性认识,深刻理解具体电路的参数与组成。
通过更换光源器件可以进行光谱特性的初步测量。
单片机系统对光电传感器信号进行处理是传感器系统的重要应用方向。
第2章方案设计本设计由光源、光电转换、测量计算、输入输出部分组成。
可以完成光电传感器的原理性实验,同时可进行应用性实验,以实验平台构成完整的光电传感器系统。
安装不同的光源,通过调节电路改变光强,经过光电转换部分得到合适的处理信号,用ADC0809来采集。
测量计算部分包括AD转换和单片机,采用ADC0809作为模数转换控制器,单片机采用51单片机,且支持在线调试,学生可以充分理解软件框架与控制流程;可以对实验软件做自主性的修改。
进行模数转换的器件都有一定的电压输入范围,当传感器信号经调理过程进入模数转换器时电压量也应保持在两成范围内。
接入模数转换控制器的信号有两路,第一路信号为光源电路中的电压信号,第二路信号为光电传感器输出经信号调理电路调整后的电压信号。
51单片机将第二路信号经电路模型和算法处理,得出光电传感器元件的主要参数送驶入输出部分。
输入输出部分包括LCD显示器,小键盘和执行部件。
显示器件为字符型液晶显示器,显示光源信号值和光电传感器主要参数;小键盘包括0~9的数字键和“确定”、“返回”,共12个按键,实现实验项目的选择;电子音响和LED作为执行部件,在光电传感器应用系统中根据传感器的信号做出不同执行动作。
可以进行各种光电传感器的原理与应用实验,基本光电传感器包括:光敏电阻、光敏二极管、光敏三极管、光电池、透射式光电开关、热释电红外器件。
2.1光电传感器实验平台模块分布图22.2光电传感器实验平台的硬件结构[1](1)光源通过调节电路改变光强,不同的实验给出不同的光强。
(2)在实验平台上用遮光板盖住光源和光敏电阻,入射光强,电阻减小,入射光弱,电阻增大。
(3)在实验平台上用遮光板盖住光源和光敏二极管,当有光照的时候,光敏二极管的暗电流增大,无光照的时候,其暗电流很小。
(4)在实验平台上用遮光板盖住光源和光敏三极管,其测试电路就有暗电流,取走遮光板时即有光电流。
(5)在实验平台上当有光入射到光电池表面时,电路中产生光电流。
(6)在实验平台上安装好光源和接收器,用遮光板盖住光源和接收器,测试透射式光电开关接收器的信号量。
(7)在实验平台上安装好光源和接收器,用遮光板盖住或移开光源和接收器,观察热释电红外传感器信号的变化。
将以上试验测得数据,通过ADC0809的采集,送到单片机通过相应的公式计算得出要测得参数,并显示出来。
2.3光电传感器实验平台的软件流程图32.4系统方案图4系统上电之后,显示选择菜单:1. Photoresistor 2. photosensitive diode 3.phototransisor 4. photo-cell 5.t-switch,通过键盘选择不同实验项目,例如,要做光电二极管实验,在键盘上输入“2”,直接进入界面,单片机根据输入数值控制0809选择第二通道测量光敏二极管实验电路,同时将测量结果在1602上显示,要返回到主菜单就按Cancel键,可以选择其他实验。
第3章实验平台的软件设计3.1总体概述本设计的主要功能模块有数据的计算与显示, 包括光敏电阻传感器, 光电二极管传感器, 光电三极管传感器以及光电池、透射式光电开关、热释电器件等模块。
每种模块可直接进入界面进行操作,操作灵活方便。
平台软件流程图:图53.2数据转换测量计算部分包括AD转换和单片机,采用ADC0809作为模数转换控制器,单片机采用51单片机,支持在线调试,学生可以充分理解软件框架与控制流程;可以对实验软件做自主性的修改。
进行模数转换的器件都有一定的电压输入范围,当传感器信号经调理过程进入模数转换器时电压量也应保持在两成范围内。
接入模数转换控制器的信号有两路,第一路信号为光源电路中的电压信号,第二路信号为光电传感器输出经信号调理电路调整后的电压信号。
51单片机将第二路信号经电路模型和算法处理,得出光电传感器元件的主要参数送入输出部分。
3.2.1 ADC0809的工作原理[2]A/D转换的作用是数据的采集和转换。
ADC0809分辨率8位, 转换时间100uS, 单电源+ 5V 供电, 模拟输出范围0 ~ 5 V, 无需调零和满量程调整。
ADC0809有8个输入通道, 可以减少实验台的A/D个数, 可以解决多路同时输入的问题。
ADC0809的工作时序图[3]图6从图可以看出,启动脉冲START和地址所存允许脉冲ALE的上升沿将地址送上地址总线,模拟量经C、B、A选择开关所指定的通道送到A/D转换器。
在START信号下降沿的作用下,逐次逼近过程开始,在时钟的控制下,一位一位地逼近。
此时,转换信号EOC呈低电平状态。
由于逐次逼近需要一定的过程,所以,在此期间内,模拟输入值应维持不变,比较器要一次次进行比较,直到转换结束。
此时,如果计算机发出一个输出允许命令(EOC呈高电平),则可读出数据。
3.2.2 ADC0809与c51的引脚接口图7图7是ADC0809与C51的引脚接口图。
ADC0809的6脚START(A/D转换启动信号输入端)与C51的2脚(P1.1)相接;ADC0809的7脚EOC(转换结束信号输出引脚)与C51的3脚(P1.2)相接;ADC0809的9脚OE(输出允许控制端)与C51的4脚(P1.3)相接;ADC0809的10脚CLOCK与C51的30脚(ALE)相接;ADC0809的25、24、23脚(即ADD A、ADD B、ADD C)地址输入线分别与C51的21、22、23脚(即P2.0、P2.1、P2.2)相接;ADC0809的22脚ALE(地址锁存允许信号输入端)与C51的1脚(P1.0)相接。
3.2.3 ADC0809的子程序(1)ADC0809的流程图(图8)(2)程序代码如下所示#include <REGX51.H>#define AD P2 //AD0809通道选择输入#define DD P3 //AD0809数据输入//接口sbit AD_ALE = P1^0; //AD0809地址锁存,高电平有效sbit AD_ST = P1^1; //AD0809启动上升沿100ns高电平,低电平开始转换sbit AD_EOC = P1^2; //转换结束,高电平有效,查询!sbit AD_OE = P1^3; //输出使能,高电平使能,低电平高阻。
void ADC_INT ( void ){ AD_ST = 0 ;AD_ALE = 0 ;AD_OE = 0 ;} 图8unsigned char AD_CONVER( unsigned char add ){unsigned char i=0;if( add < 8 )AD = add; //通道选择(0~7)AD_ALE = 1;AD_ALE = 1;AD_ALE = 0;AD_ST = 0;AD_ST = 1;AD_ST = 1;AD_ST = 0; //高电平启动AD_EOC = 1;for(i=0;i<30; i++); //延时....while(AD_EOC == 0 ); //AD_OE = 1;AD_OE = 1;i = DD ; //读数据AD_OE = 0;return i; } //返回3.3数据采集3.3.1光敏电阻实验主要测试光敏电阻的阻值【4】其测量的流程:光源通过调节电路改变光强,不同的实验给出不同的光强。
在有光入射时,我们可以很容易的测量出光敏电阻两端的电压V亮,这样,可以通过相应的公式求出光敏电阻的阻值,即I亮=(5-V亮)/R L,则可以求出R= V亮/I亮。
测试光敏电阻的阻值:n = AD_CONVER( addrs ); //读转换函数EA=1; P3=0xff;if(addrs == 0 ) //第一通道,测量光敏电阻。
{t = n*10;t=t/(256-n); //计算公式n=t*10; //放大10倍,取小数点后面1位,一共四位(14.5k)dis[4] = 'K'; //单位m = n%10;dis[3] = m + 0x30;dis[2] ='.'; //小数点m = n/10%10;dis[1] = m + 0x30;m = n/100 ;dis[0] = m + 0x30;}3.3.2光电二极管实验主要测试光电二极管的光电流其测量的流程:光源通过调节电路改变光强,不同的实验给出不同的光强。
在有光入射时,我们可以很容易测出光电二极管两端的电压值V,这样,通过公式I光=(5-V)/R L得出光电二极管的光电流。
3.3.3光电三极管实验主要测试光电三极管的光电流(I L)其测量的流程:光源通过调节电路改变光强,不同的实验给出不同的光强。
在有光入射时,我们可以很容易的测量出光电三极管发射极E的电压值V E,则由公式I E=V E/R L 就可以得出光电三极管发射极E的电流值,这样,光电三极管的光电流I L=I E/(1+β)。
3.3.4光电池实验主要测试光电池产生的电动势其测量的流程:光源通过调节电路改变光强,不同的实验给出不同的光强。
在有光入射时,我们可以很容易的测量出光电池电路中放大器LM358中1脚的电位,根据放大器的虚短,可以得出3脚和5脚的电压相等。
根据放大器的虚断可以求得1脚的电压是3脚的电压的11倍。
这样,我们就可以知道光电池产生的电动势。