光照强度测量仪1.docx
- 文档编号:30777914
- 上传时间:2023-08-23
- 格式:DOCX
- 页数:27
- 大小:363.25KB
光照强度测量仪1.docx
《光照强度测量仪1.docx》由会员分享,可在线阅读,更多相关《光照强度测量仪1.docx(27页珍藏版)》请在冰豆网上搜索。
光照强度测量仪1
1.题义分析及解决方案
设计一个简易的光照强度测量仪,由光照强度产生的模拟电压信号转换为数字信号,然后转换为照度(单位是勒克斯)显示在LED上;
校准照度测量器:
在一定的光强度下,产生200数字量的电压,以此对应关系(照度—电压)将其它光强度转换为勒克斯值,显示在LED上。
1.1题义需求分析
1.1.1光照强度测量仪的概念
通过使用某测量仪来测量某光照的强度,这种仪器就称为光照强度测量仪。
仪器使用时先将某待测光源直接照射在测量仪的光照接收口(实验中为光敏电阻表面),然后在测量仪的可视化界面(实验中为LED)中观察结果值。
光照强度的国际单位(SI)为勒克斯,又称米烛光。
1流明的光通量均匀分布在1平方米面积上的照度,就是一勒克斯。
可以标作勒[克斯],简称勒。
英为lux,简作lx。
勒克斯是引出单位,由流明(lm)引出。
流明则由标准单位烛光(cd)引出。
1.1.2光照强度测量仪的工作原理
测量仪主要根据光敏电阻的特性制作的。
光敏电阻值随受到的光照强度的变化而变化(光照强度越大,电阻值越小)。
将光敏电阻接入电路中,不同光照强度导致光敏电阻值变化,于是光敏电阻上的电压发生变化,导致电路的输出电压也相应变化。
根据电压-光照度函数关系,由电压计算得到光照强度值,然后以可视化界面形式输出,供用户查看结果。
1.1.3从计算机角度解决问题
计算机通过PCI线与实验箱上的ES-PCI模块相连,充分利用实验箱上的各个模块完成,有:
A3(片选)、B2(时钟)、B4(8255)、D3(光敏电阻)、G4(ADC0809)、G5(LED)以及ES-PCI。
通过导线正确连接好电路。
使用时光源直接照射在光敏电阻表面,结果(光照强度)显示在LED上。
1.1.4根据设计内容要求可知:
光敏电阻的特性:
光敏电阻随受到的光照强度的变化电阻值发生变化,光照强度越强电阻越小,在分压电路中获得电压越低。
根据这一特性,结合光照强度和输出的模拟电压之间的关系,可以得到某一光强度下的对应的模拟电压。
将模拟电压通过AD转化器转换为数字电压,以便于计算机处理。
然后再将数字电压转换成光照度。
使用STARES598PCI单板开发机设计一个应用接口芯片作为八个七段LED数码管的输入口,接口可以使用8255A或8279。
编写程序实现八个LED数码管显示光照度值,该值为(根据采样得到的模拟电压转换得到的)数字电压对应的光照强度。
1.2.解决问题方法及思路
1.2.1硬件部分
程序设计中用到的硬件是光敏电阻、ADC0809、8255A和七段LED数码管。
提出问题:
为什么接口使用8255A而不是8279;
为什么显示装置使用LED七段数码管而不是LCD;
为什么选用光敏电阻;
为什么选用ADC0809。
解决问题:
1.2.1.1接口芯片选用8255A而不是8279是由于8255A在本程序中使用软件控制很容易实现且不需要用到小键盘,具体如表1所示。
表18255A芯片与8279芯片用法比较表
器件名称
特点
8255A芯片
8255芯片是可编程的并行接口芯片,不需要附加外部电路便可和大多数并行传输数据的外部设备相连,数据的各位同时传送,使用十分方便。
8279A芯片
8279芯片可以实现对键盘/显示器的自动扫描,以减轻CPU负担,具有显示稳定,程序简单,不会出现误动作等。
1.2.1.2本实验选择的显示设备是七段LED数码管,没有选择LCD的原因如表3示。
表2LED与LCD比较表
LED
与LCD相比,LED在亮度,功耗可视角度和刷新速率等方面更具有优势,其最显著的特点是使用寿命长光电转换效能高,绿色环保。
LCD
LCD占用空间小,功耗低,低辐射,能降低视觉疲劳,但会出现闪烁现象。
1.2.1.3本实验选用的是光敏电阻,因为光敏电阻上的光照强度与输出电压成线性关系,得到的模拟电压也成线性关系。
1.2.1.4本实验选用的模数转换器是ADC0809。
由于本实验的精度要求不是很高,ADC0809的转换精度和转换时间也都不是很高,但其性能价格比有明显的优势,是目前应用比较广泛的芯片之一,足以满足本次实验需求。
1.2.2软件部分
根据题义要求,接口采用的是芯片8255A,A、B口输出,C口输入。
将A口设置为段选,B口设置为位选,且A、B口均工作在方式0。
用软件编程实现从C口读入信息,通过8个LED数码管循环显示光照强度(实际应用中只用到3个)。
2.硬件设计
2.1.选择芯片8255A
2.1.1芯片8255A在本设计中的作用
芯片8255A通过数据口从CPU接受转换得到的光照度数据,通过B口输出作为位选,实现LED数码管的动态显示,通过A口将数值输出到LED数码管。
2.1.2芯片8255A的功能分析
2.1.2.18255引脚图
8255是可编程并行接口,内部有3个相互独立的8位数据端口,即A口、B口和C口。
三个端口都可以作为输入端口或输出端口。
A口有三种工作方式:
即方式0、方式1和方式2,而B口只能工作在方式0或方式1下,而C口通常作为联络信号使用。
8255的工作只有当片选CS有效时才能进行,而控制逻辑端口实现对其他端口的控制。
2.1.2.2CPU接口(数据总线缓冲器和读/写控制逻辑)
数据总线缓冲器:
这是一个8位双向三态缓冲器,三态是由读/写控制逻辑控制的。
这个缓冲器是8255A与CPU数据总线的接口。
所有数据的输入/输出,以及CPU用输出指令向8255A发出的控制字和用输入指令从8255A读入的外设状态信息,都是通过这个缓冲器传递的。
读/写控制逻辑:
它与CPU的6根控制线相连,控制8255A内部的各种操作。
控制线RESET用来使8255A复位。
和地址线A1及A0用于芯片选择和通道寻址。
控制线和用来决定8位内部和外部数据总线上信息传送的方向,即控制把CPU的控制命令或输出的数据送到相应的通道,或把状态信息或输入数据送到CPU。
8255A的读/写控制逻辑的作用,是从CPU的地址和控制总线上接受输入的信号,转变成各种命令送到A组或B组控制电路进行相应的操作。
2.1.2.38255A的引脚信号
与外设相连的
PA7~PA0:
A口数据信号线。
PB7~PB0:
B口数据信号线。
PC7~PC0:
C口数据信号线。
与CPU相连的
RESET:
复位信号。
当此信号来时,所有寄存器都被清除。
同时三个数据端口被自动置为输入端口。
D7~D0:
它们是8255A的数据线和系统总线相连。
CS:
片选信号。
在系统中,一般根据全部接口芯片来分配若于低位地址(比如A5、A4、A3)组成各种芯片选择码,当这几位地址组成某一个低电平,于8255A被选中。
只有当有效时,读信号写才对8255进行读写。
RD:
读信号。
当此信号有效时,CPU可从8255A中读取数据。
WR:
写信号。
当此信号有效时,CPU可向8255A中写入数据。
A1、A0:
端口选择信号。
8255A内部有3个数据端口和1个控制端口,共4个端口。
规定当A1、A0:
为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制口。
8255的基本操作如下表3所示。
表38255的基本操作
2.1.2.4芯片8255A的技术参数,如下表4所示:
参数说明:
输入最低电压:
min=-0.5V,max=0.8V
输入最高电压:
2.0V
输出最低电压:
0.45V
输出最高电压:
2.4V
表48255A的技术参数
2.1.2.58255A工作方式控制字
A口、B口为输出模式,工作于方式0。
CPU中的数据经由数据线路到达8255A,再由A口、B口分别段选、位选后输出到LED。
详细控制字见表5。
表58255A的工作方式控制字
方式0的工作特点
这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。
其功能为:
①两个8位通道:
通道A、B。
两个四位通道:
通道C高4位和低四位;
②任何一个通道可以作输入/输出;
③输出是锁存的;
④输入是不锁存的;
⑤在方式0时各个通道的输入/输出可有16种不同的组合。
2.2选择LED七段数码管
2.2.1LED七段数码管在实验中的作用
LED发光二级管(Light-EmittingDiode),在本设计中采用7段发光二级管作为终端显示。
物理构造:
LED发光二级管,采用砷化镓、镓铝砷和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。
2.2.2LED七段数码管的功能分析
工作原理:
当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现。
数字成像:
七段LED显示器可以控制在哪几个数位上,哪几个发光二极管亮,从而显示数字。
如果发光二极管共阳极,则输入为0时亮,为1时不亮,反之如果发光共阴极,则输入1时亮,0时不亮。
在本实验中选用了共阴极。
所谓共阴极是指将各LED二极管的阴极连接在一起(一般相连接地)各阳极接到相应器件引脚上。
发光二极管是一种外加电压超过额定电压时发生击穿,并因此能产生可发光的器件,数码显示器通常由多个发光二极管来组成七段或八段笔画显示器,当段组合发光时,便会显示某一个数码管或字符,七段代码的各位用作a—g和DP的输入。
COM为8个发光二极管的公共引线,实验中COM引线接内部8个二极管的阴极,abcdefg(dp)则为8个发光二极管的阳极的引线。
实验中LED管采用动态显示:
3个LED显示器按固定的时间间隔显示一段时间(1.25ms),利用人眼视觉滞后,感觉3个LED显示器同时点亮且无闪烁感。
2.2.3LED七段数码管的技术参数
表6LED显示的技术参数
主要参数:
此时的驱动电流为25mA。
发光二极管的压降一般为1.5~2.0V,其工作电流一般取10~20mA为宜。
发光二极管的发光颜色有:
红色光、黄色光、绿色光、红外光等。
发光二极管应用电路有四种,即直流驱动电路、交流驱动电路、脉冲驱动电路、变色发光驱动电路。
由于8255A的最大驱动电流为4.0mA,而LED的工作电流一般为10~20mA,所以需要加一个驱动器74LS244。
2.2.4LED七段显示器的功能分析
表7LED真值表
LED数字显示原理:
如下图8为LED数码管及其框图
图8LED显示器
上面两图分别为外形图和原理图,当七段数码管点亮其中几段可显示数字和简单的西文字符,将七段数码管负极连接到一起称为公共端,而发光二极管的正极则分别由引脚引出,便于控制哪个发光二极管点亮,在右图中如果在COM端接低电平,而在其他引出线上施加不同的电平,则对高电平的发光二极管就会点亮,由于将8个发光二极管负极全部连接在一起,称为共阴极数码管,还有将8个发光二极管的正极连接在一起,故称之为共阳极数码管。
本次实验用的数码管需动态扫描显示,其接口电路将所有数码管的笔画控制段与a~h同名端连在一起,接到一个并行端口,每个公共极COM端由独立的I/O线控制,CPU向字模输出口送出字形码时,所有数码管接收到相同的字形码,究竟哪个数码管显示,取决于每个LED的COM端,所谓动态扫描,就是显示一位信息时,其他位不能显示,必须采用分时方法,轮流控制COM端。
2.3选择光敏电阻
2.3.1光敏电阻在本设计中的作用
光敏电阻在实验中是用来提供模拟电压的,通过光照度的变化改变电阻值,提供变化的模拟电压。
2.3.2光敏电阻的功能分析
物理构造:
光敏电阻又称光导管,它几乎都是用半导体材料制成的光电器件。
光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也可以加交流电压。
无光照时,光敏电阻值(暗电阻)很大,电路中电流(暗电流)很小。
当光敏电阻受到一定波长范围的光照时,它的阻值(亮电阻)急剧减少,电路中电流迅速增大。
一般希望暗电阻越大越好,亮电阻越小越好,此时光敏电阻的灵敏度高。
实际光敏电阻的暗电阻值一般在兆欧级,亮电阻在几千欧以下。
光敏电阻的原理结构:
它是涂于玻璃底板上的一薄层半导体物质,半导体的两端装有金属电极,金属电极与引出线端相连接,光敏电阻就通过引出线端接入电路。
为了防止周围介质的影响,在半导体光敏层上覆盖了一层漆膜,漆膜的成分应使它在光敏层最敏感的波长范围内透射率最大。
工作原理:
光敏电阻接有一个稳定电压,当光照度变化时,光敏电阻的阻值会改变,通过比例放大器输出电阻的压降。
2.3.3光敏电阻的技术参数
亮阻约为2K欧,暗阻大于1M欧,外观直径5毫米,最高承受电压直流120V,最大功耗100mW上升响应时间20ms,下降响应时间30ms。
实验中光敏电阻电路输出的电压范围为0-5V。
光敏电阻电路图如下:
2.4选择芯片ADC0809
2.4.1ADC0809在本设计中的作用
ADC0809接收光敏电阻电路传送的模拟电压,将模拟电压转换为数字电压,传送给CPU进行数据转换,CPU将数字电压通过电压与光照度的比例关系转换为光照度。
2.4.2ADC0809的功能分析
物理构造:
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近数码寄存器、时序及控制逻辑和三态输出锁存器组成。
工作原理:
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。
2.4.3ADC0809的技术参数
ADC0809是8路8位A/D转换器,即分辨率8位。
具有转换起停控制端。
转换时间为100μs单个+5V电源供电模拟输入电压范围0~+5V,不需零点和满刻度校准。
工作温度范围为-40~+85摄氏度低功耗,约15mW。
2.4.4ADC0809主要信号引脚的功能说明。
见图9。
图9引脚图
ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。
下面说明各引脚功能。
IN7~IN0——8路模拟量输入端。
D7~D0——8位数字量输出端。
ADDA、ADDB、ADDC——3位地址输入线,用于选通8路模拟输入中的一路
ALE——地址锁存允许信号,输入,高电平有效。
对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。
START——转换启动信号。
。
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动。
START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。
EOC——A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE——数据输出允许信号,输入,高电平有效(OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据)。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK——时钟脉冲输入端。
要求时钟频率不高于640KHZ,通常使用频率为500KHz的时钟信号。
REF(+)、REF(-)——基准电压。
参考电源、参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。
其典型值为Vref(+)=+5V,Vref(-)=-5V。
Vcc——电源,单一+5V。
GND——接地。
2.5硬件总逻辑图及其说明
硬件总逻辑图如下图10所示:
图10硬件总逻辑图
芯片8255A的数据线D0~D7与主机低八位数据线相连,8255A的RD线、WR线、A0、A1、RESET分别与主机的RD线、WR线、A0、A1、RESET线连接。
8255A的A口控制LED的段选,B口控制位选.
光敏电路如下:
在单片机上的接口连接如下:
3.控制程序设计
3.1控制程序设计思路说明
初始化8255芯片,设置工作方式控制字为89(100010001B),即A、B口为输出,分别控制LED的段选、位选,C口输入。
下图为控制字:
以采样五十次为一周期,求得五十次采样的总值。
然后除以50,得到采样50次的平均值,存入LastAD。
在每一次采样过程中,都在PC机和LED上输出上一周期采样转化得到的光照强度(单位:
勒克斯)。
具体转化过程为:
采样得到的模拟值经过AD转化后为电压值,电压范围为0-5V。
而考虑到实际生活中,一般照明为200lux,重点照明为300lux,所以实验中可显示的光照强度为0-500lux。
于是参考两者之间的线性关系,定下入下图的关系:
图10电压-光照度函数
3.2程序流程图
3.3控制程序
.MODELTINY
PCIBAR3EQU1CH
;8位I/O空间基地址(它就是实验仪的基地址,也为DMA&32BITRAM板卡上的8237提供基地址)
Vendor_IDEQU10EBH;厂商ID号
Device_IDEQU8376;设备ID号
.STACK100
.DATA
ADDR_0809DW00F0H
LastADDB0;上一次AD转换值
IO_Bit8_BaseAddressDW?
BUFFERDB'H.V$'
msg0DB'BIOS不支持访问PCI$'
msg1DB'找不到StarPCI9052板卡$'
msg2DB'读8位I/O空间基地址时出错$'
msg3DB'AD转换结果(前边是16进制数,后边是十进制数):
$'
COM_ADDDW00E3H;控制口偏移量
PA_ADDDW00E0H;PA口偏移量
PB_ADDDW00E1H;PB口偏移量
PC_ADDDW00E2H;PC口偏移量
LED_DATADB3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh,6Fh;0-9的七段代码表
SHIFTDB0FEH;用于位选
.CODE
START:
MOVAX,@DATA
MOVDS,AX
NOP
CALLInitPCI
CALLModifyAddress;根据PCI提供的基地址,将偏移地址转化为实地址
MOVAH,09H
LEADX,msg3
INT21H
CALLInit8255;初始化8255A
XORAL,AL
JMPSTART6
START1:
MOVCX,50;采样五十次
MOVBX,0;累计五十次采样值
START2:
CALLAD0809
XORAH,AH;采样值在AL中,AH清0后,AX即为采样值
ADDBX,AX;BX为采样总值
CALLDISPLAY_PC
;在PC机上显示结果
CALLDISPLAY_LED
;LED显示上一次采样的结果LastAD
LOOPSTART2
MOVAX,50
XCHGAX,BX
DIVBL;五十次的平均值,BL=50,平均值在AL中,余数在AH中
CMPAL,LastAD
JZSTART3
START6:
MOVLastAD,AL
;LastAD值为AD转换值
START3:
CALLIfExit
JZSTART1
JMPExit
AD0809PROCNEAR
MOVSI,CX
MOVAL,0
MOVDX,ADDR_0809
OUTDX,AL
MOVDX,IO_Bit8_BaseAddress
MOVCX,100
AD08091:
INAL,DX
LOOPAD08091
;延时,等待AD转换完成
MOVDX,ADDR_0809
INAL,DX
MOVCX,SI
RET
AD0809ENDP
ToCharPROCNEAR
;转化为可显示的16进制数
ADDAL,'0'
CMPAL,'9'
JBEToChar1
ADDAL,07H
ToChar1:
RET
ToCharENDP
DISPLAY_PCPROCNEAR
MOVSI,AX;相当于PUSH
MOVDI,BX
MOVAL,LastAD
;将AD转换值读入AX中
MOVAH,AL
ANDAL,0FH
CALLToChar
MOVBUFFER+1,AL
MOVAL,AH
ANDAL,0F0H
RORAL,4
CALLToChar
MOVBUFFER,AL
MOVAL,AH
XORAH,AH
MOVBL,51
;255/5(16进制的1=1/51V)
DIVBL
ORAL,'0'
;转化为可显示的10进制数
MOVBUFFER+4,AL
;整数部分
MOVAL,10
MULAH
DIVBL
ORAL,'0'
MOVBUFFER+6,AL
;第一位小数
MOVAL,10
MULAH
DIVBL
ORAL,'0'
MOVBUFFER+7,AL
;第二位小数
MOVDX,43
MOVAH,02H
INT10H;定位光标
LEADX,BUFFER
MOVAH,09H
INT21H;显示结果
MOVAX,SI;相当于POP
MOVBX,DI
RET
DISPLAY_PCENDP
TO_LEDPROCNEAR;LED显示
LEABX,LED_DATA
XLAT;经代码表转换为七段LED表中的段码,AL=BX[AL]
MOVDX,PA_ADD
;从8255A的PA口读取数字量,段选
OUTDX,AL
MOVAL,SHIFT;七段LED的位选,0FEH选取最低位,位选
MOVDX,PB_ADD;PB口位选
OUTDX,AL
CALLDLTIME;延时
ROLAL,1
;向前选取次低位,位选
MOVSHIFT,AL
MOVAL,0FFH
;禁止显示,全置为灭,防止数字串位
OUTDX,AL
RET
TO_LEDENDP
DISPLAY_LEDPROCNEAR
MOVSI,AX
MOVDI,BX
XORAX,AX
MOVAL,BUFFER+7
SUBAL,30H
CALLTO_LED
;在LED上显示右起第一位数
MOVAL,BUFFER+6
SUBAL,30H
CALLTO_LED
;显示第二位数
MOVAL,BUFFER+4
SUBAL,30H
CALLTO_LE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 光照强度 测量仪