数字光强度检测模块设计要点.pdf

上传人:tbuqq 文档编号:5208689 上传时间:2020-02-21 格式:PDF 页数:31 大小:1.66MB
返回 下载 相关 举报
数字光强度检测模块设计要点.pdf_第1页
第1页 / 共31页
数字光强度检测模块设计要点.pdf_第2页
第2页 / 共31页
数字光强度检测模块设计要点.pdf_第3页
第3页 / 共31页
数字光强度检测模块设计要点.pdf_第4页
第4页 / 共31页
数字光强度检测模块设计要点.pdf_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《数字光强度检测模块设计要点.pdf》由会员分享,可在线阅读,更多相关《数字光强度检测模块设计要点.pdf(31页珍藏版)》请在三一文库上搜索。

1、第1 页 西华大学课程设计说明书 1 前言 1.1 设计选题 设计选题一:数字光强度检测模块设计 1.2 任务及要求 1.2.1 设计选题的任务 结合单片机最小电路和光敏电阻电路共同设计一个基于单片机的数字光强度检测系统, 用数码管显示光照强度。还可以设置多个不同方向的光敏电阻,通过计算它们的光照强度运 用比较器以确定当前的光照方向。 (1) 、实现单片机最小系统设计。 (2) 、焊接调试光敏电阻网络。 (3) 、焊接调试 AD电路,标定光照强度基本单位。 (4) 、编写单片机程序,将获得的电信号转换成光照强度单位下的数值,并用数管显示。 (5) 、通过比较不同方向测得的光强数值判断光照方向,

2、在数码管上显示其方向。 1.2.2 设计选题的要求 (1) 、无光照时数码管显示为零。 (2) 、用数码管显示光照强度,误差范围为510LUX(以白天中午室内日光灯的光照强度 为标准定义为 100 LUX ) 。 (3) 、两个小数点具体显示光强方位(两个小数点分别单独亮和均不亮代表三个方位) 。 第2 页 西华大学课程设计说明书 2 总体方案设计 2.1 设计方案的提出与论证 2.1.1 设计方案一 采用光敏电阻、二极管和555 定时器构成多谐振荡电路,利用多谐振荡电路的两个暂稳 态输出由此产生矩形波脉冲信号。而光敏电阻阻值会随着光照强度的变化而发生变化,进 而使得多谐振荡电路的周期变化,其

3、输出波形频率也随之改变。将其输出模拟信号波形输入 到一个简易数字式频率计通过两位数码管显示出来,数字式频率计主要由时基电路、闸门电 路计数器、锁存器、译码显示电路和逻辑控制电路组成。具体实现框图如下图2.1 所示: 图 2.1 设计方案一原理框图 光敏电阻阻值 变化 多谐振荡器电路 周期变化 简易数字频率计 时 基 电 路 闸 门 电 路 计 数 器 锁 存 器 译 码 显 示 器 逻辑控制电路 第3 页 西华大学课程设计说明书 本方案采用性能稳定且便宜的光敏电阻作为光照传感器,通过光敏电阻值变化影响多谐 振荡电路的周期而检测光强,性能较稳定一些,灵敏度也较高,但是电路结构比较复杂,所 用元器

4、件种类较多,实现和调试工作会比较困难,造价也较高,虽然能满足稳定性和灵敏度 的要求,但不宜采用。 2.1.2 设计方案二 本方案采用光电二极管,利用其产生的电流随光照增强的线性特性输出模拟采样电压, 并联三条光敏二极管和电阻支路,将这三路电压通过选通器循环输入到模数转换器ADC0804 将模拟信号转换为数字信号, 将数字信号通过通信模块输送给STC89C51 单片机,通过比较后 得出最大值,将最大值输出并利用两位数码管显示出来。具体框图如下图2.2 所示: 图 2.2 设计方案二原理框图 对于本方案,采用线性好,响应速度快的光敏二极管作为光照传感器,故电路响应速度 快,灵敏度高。缺点是单独使用

5、输出电流(或电压)很小,需要加放大电路将采样电压进一 步放大,而加入运放环节会由于运放的零漂和易受温度影响使得电路稳定性降低,误差增大。 另外限于实验元器件的供给,实验中也不采用本方案。 2.1.3 设计方案三 采用三路光敏电阻支路并联检测光照强度,通过每一路可以得到一个模拟采样电压,将 这三路电压通过 CD4051 单 8 通道数字控制模拟电子开关循环输入到模数转换器ADC0804 将 模拟信号转换为数字信号, 将数字信号通过通信模块输送给STC89C51 单片机,通过比较后得 出最大值,将最大值输出并利用两位数码管显示出来。对于光强的方位,则通过控制两位数 码管的两个小数点的关断与否来显示

6、出来,具体是两个小数点分别单独亮时对应两个方位, 而两个小数点均不亮时对应另外一个方位。至此,可以将光照的强度以及光照的方位通过两 位数码管显示出来,完成了本设计选题的任务及要求。具体框图如下图2.3 所示: 89C51 单片机 光敏二极管接 受光照 输 出 电 流 变化 采集电阻两端 电压 运 算 放 大 器 两位数码 管显示 模数转换 ADC 第4 页 西华大学课程设计说明书 图 2.3 设计方案三原理框图 本方案采用性能稳定且便宜的光敏电阻作为光照传感器,STC89C51 单片机作为主控制器。 性能稳定,抗干扰能力强,不易受外界环境温度等因素影响,灵敏度也较高,但是由于光照 传感器采用光

7、敏电阻且为三条支路并联采集模拟电压信号,会存在一定的误差。 总体上来说, 本方案电路结构简单、所用元器件供给充足、成本造价低、性能稳定且误差范围也在设计选 题的要求之内, 能在简单低成本的基础上很好的完成设计选题的任务,故实验中采用本方案。 2.2 方案选择 通过以上三种方案的设计,方案一采用光敏电阻作为光照传感器,稳定性和灵敏度虽然 都能满足设计选题的要求,但是电路结构过于复杂,实现和调试都比较困难,在实验中不采 用;方案二采用光敏二极管作为光照传感器,线性度好,响应速度快,但是需要额外添加运 放环节,对系统稳定性和误差都会带来不利影响,另外限于元器件的供应,本实验中也不采 用:而方案三采用

8、光敏电阻作为光照传感器,进行模拟电压采样,通过ADC 数模转换器将模 拟信号转换为数字信号传送到51 单片机中,进而控制两位数码管显示具体数值和方位,简单 可行,成本造价低,故在实验中采用本方案。 控 制 信 号 89C51 单片机 光敏电阻采集 模拟电压 输出选择 模块 模 数 转 换 器 ADC 通信模块 两位数码 管显示 第5 页 西华大学课程设计说明书 3 单元模块设计 3.1 个单元模块功能介绍及电路设计 3.1.1 光照强度检测电路的设计 对于最终采用的方案三,其光照强度检测电路如下图3.1 所示: 图 3.1 设计方案光强检测电路 如上图所示,采用三路光敏电阻支路并联,其中一路串

9、联固定电阻,而另外两组分别串 联一个电位器, 均接在 VCC 和 GND 之间,采样电压为三个光敏电阻两端所加电压U1、U2 、U3, 对于这三路电压值比较后把最大值输送给ADC0804 转化为数字信号,通过数码管显示出来。 其中两个电位器的作用是在后期的调试过程中,使得在外界给予三个方向的光敏电阻同样强 度的光照时,通过调节电位器使得数码管显示光强数值相同。对于与两个采样电位器和采样 固定电阻的选取,由数字式万用电表对光敏电阻在无光照和正常光照时进行测量,对应阻值 第6 页 西华大学课程设计说明书 在 2.1k 欧姆 11.2k 欧姆之间变化,故固定电阻R1选取 5k 欧姆左右,综合实验室的

10、电阻元 器件供给,本实验中选取4.7k 欧姆;两个电位器则选择0-20k 欧姆规格的灵敏电位器。 3.1.2 电压输出选择电路设计 输出选择模块采用CD4051芯片如下图 3.2 所示: 图 3.2 设计方案输出模块CD4051芯片电路结构图 CD4051相当于一个单刀八掷开关,控制X0-X7八个通道的开通和关断,开关接通哪一通 道,由输入的3 位地址码 ABC来决定。本设计方案中将三路模拟采样电压U1 U3分别接到 X0-X2 上,由单片机程序控制ABC管脚进行循环采样,进而控制采样电压的输出,通过X 输 出端传送给数模转换器ADC0804 芯片。 3.1.3 数模转换模块电路设计 本方案中

11、采用ADC0804 芯片进行数模转换,其电路结构图如下图3.3 所示。 ADC0804 模 数转换器是用 CMOS 集成工艺制成的逐次比较型摸数转换芯片。分辨率8 位,转换时间 100 s,输入电压范围为05V,增加某些外部电路后,输入模拟电压可为5V。该芯片内有输出数 据锁存器,当与计算机连接时,转换电路的输出可以直接连接在CPU 数据总线上,无须附加 逻辑接口电路。 第7 页 西华大学课程设计说明书 图 3.3 设计方案一数模转换模块电路结构图 在实验方案中, 将 CD4051 循环输出的模拟电压接到ADC0804 的 6 管脚输入,通过它转换 为数值信号, 通过八个管脚 DB0 DB7通

12、过通信模块传送给单片机, 对单片机进行编程进而控 制两位数码管的显示。 其外接电阻的阻值已经标注在电路结构图中。 对于 ADC0804 其接口时序及接口信号图如下图3.4 所示: 图 3.4 设计方案 ADC0804接口时序及接口信号图 数据 CS WR INTR RD DB 转换结束 时序图 第8 页 西华大学课程设计说明书 3.1.4 单片机最小系统的电路设计 图 3.5 设计方案单片机最小系统电路结构图 STC89C51 功能强大、速度快、寿命长、价格低,目前在市场上已经是主流,其外型有40 个引脚,双列直插DIP-40。STC89C51 可以完成 ISP 在线编程功能,而AT89C51

13、则不能。将 AT89C51中的程序直接烧录到STC89C51 中后,STC89C51 就可以代替 AT89C51直接工作(一般 都不需要做任何改动即可正常工作) 。因此本实验中采用STC89C51 单片机作为主控制器,其 电路结构如上图 3.5 所示。 对于电路中注意单片机要使用P0端口,必须外加上拉电阻, 本实验方案中采用10K欧姆 排阻。电路中 P10P17管脚分别接到模数转换电路ADC0804 电路的 DB0 DB7管脚。另外其 对应的通信系统电路图如下图3.6 所示: 第9 页 西华大学课程设计说明书 图 3.6 设计方案通信模块电路结构图 3.1.5 数码管显示电路的设计 用一个两位

14、数码管来具体显示光照强度的数值,两位数码管的两个小数点对应显示光强 方位,主要由编程控制。数码管电路结构图具体如下图3.7 所示: 图 3.7 设计方案数码管显示电路结构图 第10 页 西华大学课程设计说明书 3.1.6 系统其它部分 整个板子的电源由直流稳压电源供电,加5V电压,由一六角自锁开关来控制通断;单片 机程序编译软件由Keil uVision2完成,单片机复位由一个小按键来实现;单片机下载程序 软件则为 STC-ISP V29 Beta5 来完成。 3.2 电路参数的计算及元器件的选择 表 1 元器件清单表 3.3 光照传感器及敏感元件概述 光照传感器是基于光电效应、 将光信号转换

15、为电信号的传感器,其敏感元件是光电器件。 光照传感器主要由光敏元件组成。目前光敏元件发展迅速、品种繁多、应用广泛。主要有光 敏电阻器、光电二极管、光电三极管、光电耦合器和光电池。 元器件名称型号数量 万用板 单片机 STC89C51 DIP40 六角自锁开关 四角按键 30pf电容 12M晶振 Max232芯片 DIP16插座 104电容 串口头 ADC0804 DIP20插座 电位器 LM358 DIP8插座 CD4051 两位数码管 三极管 8550 光敏电阻 150pf电容 1 1 1 1 1 2 1 1 2 5 1 1 1 2 1 1 1 1 2 3 1 第11 页 西华大学课程设计说

16、明书 3.3.1 光敏电阻器 、光敏电阻原理 光敏电阻器由能透光的半导体光电晶体构成,因半导体光电晶体成分不同,又分为可见 光光敏电阻(硫化镉晶体) 、红外光光敏电阻(砷化镓晶体) 、和紫外光光敏电阻(硫化锌晶 体) 。当敏感波长的光照半导体光电晶体表面,晶体内载流子增加,使其电导率增加(即电阻 减小) 。 光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻 器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制 和光电转换(将光的变化转换为电的变化)。 2、光敏电阻的应用 光敏电阻器广泛应用于各种自动控制电路(如自动照明灯控制电路、自动报警电

17、路等)、 家用电器(如电视机中的亮度自动调节,照相机中的自动曝光控制等)及各种测量仪器中。 3.3.2 光敏二极管 光敏二极管是一种将光能变换为电能的器件,它利用了半导体的光生伏特效应的原理。 光敏二极管的优点是线性好,响应速度快,对宽范围波长的光具有较高的灵敏度,噪声低; 缺点是单独使用输出电流(或电压)很小,需要加放大电路。 第12 页 西华大学课程设计说明书 4 软件设计 4.1 说明软件设计原理及设计所用工具 本设计主要使用Protel以及 ISIS 软件,通过它可以进行原理图的绘制以及仿真。下面 介绍一些前面板对象共用属性的用法。 1)Visible 选项:选中该项表示开启栅格的功能

18、。当开启栅格显示功能的时候,原理图 的图纸背景中会出现网格。该选项后面的编辑框用于输入显示栅格的大小,单位为mil 。 2)Lib Ref 编辑框:表示所要放置的元器件在元件库中的名称。Protel 99 SE就是根据 这一名称在当前元件库中进行搜索,在用户确定之后再将其从库中调到工作区中的。 3)Designator 编辑框:表示所要放置的元器件在原理图中的元器件序号,每一个元器 件都有一个唯一的元器件序号,它是元器件的唯一标识符。 4)Part Type 编辑框:表示元器件的类型。默认情况下,它与Lib Ref 的内容相同,也 就是说,该元件的类型就是它在相应的元件库中的名称。 4.2 画

19、出软件设计结构图、说明其功能 本设计主要使用Protel及 ISIS 软件,来设计步进电机驱动控制系统。本次设计数字光 照强度检测模块设计必须有五个部分,即:1)照强度检测电路; 2)电压输出选择电路; 3) 数模转换模块电路; 4)单片机最小系统的电路; 5)数码管显示电路。 各部分功能分别为: 1) 在后期的调试过程中,使得在外界给予三个方向的光敏电阻同样强度的光照时,通过调节电 位器使得数码管显示光强数值相同;2)控制采样电压的输出,通过X输出端传送给数模转换 器 ADC0804 芯片; 3)将 CD4051循环输出的模拟电压接到ADC0804 的 6管脚输入,通过它转 换为数值信号,

20、通过八个管脚 DB0 DB7通过通信模块传送给单片机, 对单片机进行编程进而 控制两位数码管的显示;4)作为主控制器; 5)用一个两位数码管来具体显示光照强度的数 值,两位数码管的两个小数点对应显示光强方位。 第13 页 西华大学课程设计说明书 5 系统调试 5.1 电路板硬件焊接及调试 硬件的焊接工作是软件编程调试的基础,硬件焊接的质量对于一个系统的性能、稳定性 都有重要影响。 5.1.1 准备工作 在进行焊接之前,我首先对拿到手的所有元器件进行测试以检查其是否还能正常工作。 对于三个光敏电阻、普通电阻、两个三极管逐一测试,发现其中一个光敏电阻阻值基本不随 光照强度变化而变化,又进行了调换。

21、所有元器件基本测试完毕后,对其管脚进行镀锡,以 保证电路可靠性和焊接质量。紧接着在焊之前对元器件的分布做一个大致的布局,在布局清 晰的基础上开始硬件的焊接。 5.1.2 焊接工作 在焊接过程中,应遵循以下原则: 1)、元器件的装插焊接应遵循先小后大,先轻后重,先低后高,先里后外的原则;在瓷 介电容、电解电容等元件立式安装时,引线不能太长,否则降低元器件的稳定性;但也不能 过短,以免焊接时因过热损坏元器件; 2)、各元器件焊接在电路板上,焊盘上的元器件引脚不高出电路板面2mm,高出的部分 用斜口钳或其它剪切工具剪下。焊点大小均匀整洁,焊锡适量,剪切高度一致,元器件摆放 位置合适、整齐; 3)、对

22、于集成电路的焊接:在焊接时,首先要弄清引线脚的排列顺序,并与线路板上的 焊盘引脚对准,核对无误后在焊接,然后再重复检查,确认后再焊接其余脚位。由于集成电 路引线脚较密,焊接完后要检查有无虚焊,连焊等现象,确保焊接质量。 在实验过程中,我在遵循上述原则的基础上,同时对电路分块进行焊接。在分块焊接的 过程中首先对电路中的插座进行了统一的焊接,再对电阻电容等小元器件进行焊接,所有元 器件焊完后,把每一块内部需要连接在一起的连接起来。这样在各大块完成的基础上,再将 块与块之间的连线焊上。至此,所有硬件基本焊接完毕。 接下来对电路板的直流供电进行焊接,将所有需要接到 VCC 端的点连接到一起, 再加上

23、六角自锁开关。 最后将程序下载所需的串口焊接上,把过长的引线剪断并擦拭干净,至此硬件焊接工作 基本完毕。 第14 页 西华大学课程设计说明书 5.1.3 静态测试 将集成电路元器件对准方向装上后,进行硬件电路的检查,加上5V直流电源,在确保所 有元器件没有过热的前提下,利用数字式万用表直流电压档检测各节点(包括芯片的电源管 脚,地管脚等)进行电压测量,都符合条件。最后检测光敏电阻支路节点电压是否随光照强 度变化而变化,检测结果为:当无光照时电压在0.15V 左右;而白天室内正常光照时,检测 电压约为 3.5V 左右。静态测试符合要求,接下来进行下一步,即程序的调试。 5.2 数码管显示电路及程

24、序调试 在进行数码管显示电路的过程中,首先遇到了硬件上的问题,在程序下载完毕后,数码 管没有任何反应,根本不亮,在经过检查后,发现可能是两个三极管的问题,将三极管拆下 来进行测试,发现已经损坏,再经过调换重新焊接后,硬件电路恢复正常了,数码管开始亮 起来,但数字一直在闪和跳变,同时小数点也在跳变。 具体思考造成数码管闪动和数字跳变的原因,再经过老师答疑,认为是程序中对数据采 样没有通过在一段时间内采样进而求平均值的方法来采集数据,致使显示数据随着外界的小 干扰一直在跳变。而数码管在闪动则是因为延迟时间设置过长,超出了人的视觉暂留范围, 使人感觉到数字在闪动。在明白了原因的基础上,对程序进一步修

25、改和调试,最后数码管很 稳定且灵敏度很高地显示出了检测到的光强值,且小数点与各个方位的对应关系也是正确的。 至此,软件调试工作基本完毕,调试后的最终程序如下所示。 最终程序: #include/单片机 51 头文件 , 存放着单片机的寄存器 #include /为了使用空指令加载的头文件 sbit smg2=P25;/数码管位 addata选 sbit smg3=P24;/数码管位选 #define uchar unsigned char #define uint unsigned int unsigned char code table=0xC0,0xF9,0xA4,0xB0,0x99,0x

26、92,0x82,0xF8,0x80,0x90;/ 数码 管段选显示0-9 unsigned char contrl;/小数点控制标志 sbit cs=P33; sbit wr=P35; sbit rd=P34; /AD 控制管脚定义 sbit a=P20; sbit b=P21; 第15 页 西华大学课程设计说明书 sbit c=P22; / CD4051 通道选择 sbit LP=P23; /左边小数点 sbit RP=P26; /右边小数点 void delay(uint count) /delay uint i; while(count) i=5; while(i0) i-; count

27、-; void delay_n(uint count) /delay uint i; while(count) i=1; while(i0) i-; count-; /*读 AD0804 子程序 */ unsigned char adc0804( void ) /读 AD0804 子程序 unsigned char 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; /无意义语句,用于延时等待ADC

28、0804 读数完毕 addata=P1;/读出的数据赋与 addate 第16 页 西华大学课程设计说明书 rd=1;cs=1;/读数完毕 addata=addata/2; return(addata);/返回最后读出的数据 void display(int temp) smg3=1; P0=tabletemp/10; /显示十位 smg2=0; delay(25); smg2=1; /*/ smg2=1; P0=tabletemp%10; /显示个位 smg3=0; delay(25); smg3=1; /*/ unsigned char select(void) /判断三个光照强度,输出最

29、大的 unsigned char right,mid,left,max; /*/ a=0; b=0; c=0; delay(2); right=adc0804(); delay(6); /*/ a=1; b=0; c=0; delay(2); 第17 页 西华大学课程设计说明书 mid=adc0804(); delay(6); /*/ a=0; b=1; c=0; delay(2); left=adc0804(); delay(6); /*/ if (right=mid) if(right=left) max= right; contrl=1; else max=left; contrl=3;

30、 else if(mid=left) max=mid; contrl=2; else max=left; contrl=3; 第18 页 西华大学课程设计说明书 return (max); unsigned char Filter (void) unsigned char i; unsigned char value,sum1; unsigned int sum; sum=0; for(i=0;i=250) /当采集后数字数据大于 /250时认为最大光强显示99 y=99; if(x40/数码管位选 sbit smg2=P25;/数码管位 addata选 sbit smg3=P24;/数码管位

31、选 #define uchar unsigned char #define uint unsigned int unsigned char code table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/ 数码 管段选显示0-9 sbit cs=P33; sbit wr=P35; sbit rd=P34; /AD 控制管脚定义 sbit a=P20; sbit b=P21; sbit c=P22; / CD4051 通道选择 sbit LP=P23; /左边小数点 sbit RP=P26; /右边小数点 void delay(uint

32、 count) /delay uint i; while(count) i=200; while(i0) 第28 页 西华大学课程设计说明书 i-; count-; /*读 AD0804 子程序 */ unsigned char adc0804( void ) /读 AD0804 子程序 unsigned char 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; /无意义语句,用于延时等待ADC

33、0804 读数完毕 addata=P1;/读出的数据赋与 addate rd=1;cs=1;/读数完毕 addata=addata/2; return(addata);/返回最后读出的数据 void display(int temp) /显示程序 /*/ smg3=1; smg2=1; delay(2); P0=tabletemp/100; /显示百位 smg1=0; delay(2); smg1=1; /*/ smg3=1; P0=tabletemp/10; /显示十位 smg2=0; delay(2); 第29 页 西华大学课程设计说明书 smg2=1; /*/ smg2=1; P0=ta

34、bletemp%10; /显示个位 smg3=0; delay(2); smg3=1; /*/ unsigned char select(void) /判断三个光照强度,输出最大的 unsigned char right,mid,left,max; /*/ a=0; b=0; c=0; delay(2); right=adc0804(); delay(1); /*/ a=1; b=0; c=0; delay(2); mid=adc0804(); delay(1); /*/ a=0; b=1; c=0; delay(2); left=adc0804(); delay(1); /*比较三个值,取最大的 */ 第30 页 西华大学课程设计说明书 if (right=mid) if(right=left) max= right; LP=1; RP=0; else max=left; LP=0; RP=1; else if(mid=left) max=mid; LP=1; RP=1; else max=left; LP=0; RP=1; return (max); void main() 第31 页 西华大学课程设计说明书 while(1) select(); display(select();

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1