光照强度测量仪.docx

上传人:b****3 文档编号:11215798 上传时间:2023-05-29 格式:DOCX 页数:28 大小:366.51KB
下载 相关 举报
光照强度测量仪.docx_第1页
第1页 / 共28页
光照强度测量仪.docx_第2页
第2页 / 共28页
光照强度测量仪.docx_第3页
第3页 / 共28页
光照强度测量仪.docx_第4页
第4页 / 共28页
光照强度测量仪.docx_第5页
第5页 / 共28页
光照强度测量仪.docx_第6页
第6页 / 共28页
光照强度测量仪.docx_第7页
第7页 / 共28页
光照强度测量仪.docx_第8页
第8页 / 共28页
光照强度测量仪.docx_第9页
第9页 / 共28页
光照强度测量仪.docx_第10页
第10页 / 共28页
光照强度测量仪.docx_第11页
第11页 / 共28页
光照强度测量仪.docx_第12页
第12页 / 共28页
光照强度测量仪.docx_第13页
第13页 / 共28页
光照强度测量仪.docx_第14页
第14页 / 共28页
光照强度测量仪.docx_第15页
第15页 / 共28页
光照强度测量仪.docx_第16页
第16页 / 共28页
光照强度测量仪.docx_第17页
第17页 / 共28页
光照强度测量仪.docx_第18页
第18页 / 共28页
光照强度测量仪.docx_第19页
第19页 / 共28页
光照强度测量仪.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

光照强度测量仪.docx

《光照强度测量仪.docx》由会员分享,可在线阅读,更多相关《光照强度测量仪.docx(28页珍藏版)》请在冰点文库上搜索。

光照强度测量仪.docx

光照强度测量仪

 

合肥学院

计算机科学与技术系

微型计算机原理与接

口技术课程设计报告

2009~2010学年第一学期

课程

微型计算机原理与接口技术

课程设计名称

光照强度测量仪

学生姓名

周三平

学号

0604011017

专业班级

07计本

(2)班

指导教师

张向东教授

 

2010年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七段数码管,七段LED显示的哪进制数;

为什么选用光敏电阻;

为什么选用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电压-光照度函数(及副本函数)

注:

本实验还制作了一个5V对应300lux的副本程序。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2