摘要: 21世纪是信息时代,是获取信息,处理信息,运用信息的时代。传感与检测技术的重要性在于它是获得信息并对信息进行必要处理的基础技术,是获取信息和处理加工信息的手段,无法获取信息则无法运用信息。
光电式传感器是将光信号转化为电信号的一种传感器。它的理论基础是光电效应。这类效应大致可分为三类。第一类是外光电效应,即在光照射下,能使电子逸出物体表面。利用这种效应所做成的器件有真空光电管、光电倍增管等。第二类是内光电效应,即在光线照射下,能使物质的电阻率改变。这类器件包括各类半导体光敏电阻。第三类是光生伏特效应,即在光线作用下,物体内产生电动势的现象,此电动势称为光生电动势。这类器件包括光电池、光电晶体管等。光电效应都是利用光电元件受光照后,电特性发生变化。敏感的光波长是在可见光附近,包括红外波长和紫外波长。数字式电子计数器有直观和计数精确的优点,目前已在各种行业中普遍使用。数字式电子计数器有多种计数触发方式,它是由实际使用条件和环境决定的。有采用机械方式的接触式触发的,有采用电子传感器的非接触式触发的,光电式传感器是其中之一,它是一种非接触式电子传感器。采用光电传感器制作的光电式电子计数器。这种计数器在工厂的生产流水线上作产品统计,有着其他计数器不可取代的优点。
关键词:计数 光电传感器 单片机
第1章 引言………………………………………………………………1
第2章 光电计数器的系统设计………………………………………2
2.1系统硬件设计 ………………………………………………3
2.1.1各组成模块 ………………………………………………4
2.1.2主要芯片元器件引脚图及功能介绍…………………… 4
2.2系统软件设计 ………………………………………………7
第3章 设计原理……………………………………………………… 9
3.1计数测量 ……………………………………………………10
3.2 中断方式计数……………………………………………… 11
3.3串行通信接口…………………………………………………12
第4章 软件程序的设计 ………………………………………………13
4.1 时间控制设置 ………………………………………………13
4.1.1 1s定时设置………………………………………………13
4.1.2 3秒报警延时 ……………………………………………13
4.2 进制转换………………………………………………………14
4.3 数码显示………………………………………………………17
4.4 总程序调试……………………………………………………21
第一章 引言
传感与检测技术是一门知识面广、综合程度高、实用性很强的专业课程。它从传感器的基本理论入手,着重讲叙传感器的结构与感测原理,传感器是一个二端口的装置,不同的传感器输入-输出特性不同,同一传感器适应不同的被测信号呈现的特性也有所不同。尤其当被测信号为静态信号时两种状态下,传感器的输入-输出特性完全不同。感测技术在许多新技术、新器件里都有应用,在课程安排上,以信息的传感、转换、处理为核心,从基本物理概念入手,阐述热工量、机械量、几何量等参数的测量原理及方法。
自动化的计数提高了工业生产上的效率以及准确性,计数的自动化和智能化最终能加速实现现代化的工业。随着生产自动化、设备数字化和机电一体化的发展,对光电计数器的需求日益增多。
光电计数器设计一方面是为了巩固课本所学知识,完成知识迁移,另一方面加强动手能力,识图能力及设计能力。
光电计数器在实际生产中已经得到了广泛的应用。在应用中,光电传感器部分主要有光电断路器和光电开关,但在工业生产中主要使用的是光电开关,计数电路有CD系列芯片组成的,也有74系列芯片组成的,实际功能差别不大。
基本设计要求:本次设计光电计数器,要求使用红外发光二极管、红外接收管,实现计数功能,能在设定值报警,可以手动清除报警。掌握红外传感器相关知识,掌握单片机汇编语言,学会如何实现无接触计数。该系统可用于工厂生产线工件计数,通过红外光电管接收到的信号情况,由单片机程序来控制是否计数,并且到达最大值可实现报警和重新计数。
提高设计要求:要求光电发射级与接收级有1米以上的间距,能有较强的抗干扰性。能在报警后自动关闭报警并自动重新计数等。
第二章 光电计数器的系统设计
2.1 系统硬件设计
1.工作原理
检测部分使用红外被动式检测方式,考虑到抗干扰性,这里采用38kHz的调制红外信号,并使用了集红外接收、放大、鉴频于一身的一体化的接收头,大大提高了系统的灵敏度和抗干扰性。当有物体穿越光路时,接收头输出为高电平,反之则为低电平,接收头的电平信号经由一NPN三极管反相后送入CPU。为便于传感器的安装,这里采用反射式探头,当传送带将被测物体传送到检测点时,物体将探头发送的红外线调制信号反射给探头,探头接收器产生的信号送到单片机P3.2口,启动计数器开始计数,并将计数后所得的数据送给LED显示。系统的原理
框图如图1所示。
图 1 系统电路原理图
2.硬件电路的组成
本系统的硬件电路由红外线发射器、红外线接收器、电源电路以及单片机系统组成。
2.1红外线发射器 本系统的红外线发射电路由NE555产生时基振荡器振荡频率为38kHz,它驱动红外发射管VD1向外发射红外线。电路如图2所示。
图 2 红外线发射电路图
2.2红外线接收器 红外线接收单元是用SFH506— 38来完成,如图3所示。当无物体通过时红外接收二极管能够接收到信号,并经接收电路输出脉冲信号。当有物体通过时,红外接收器收到红外信号后,输出低电平,经VT0反相成高电平。将此信号送人到ATC2051单片机的P3.2口.使单片机系统开始工作。
图3 红外信号接收器
2.3单片机系统 本智能光电计数系统是利用ATC2051定时/计数器来工作的。当有物体通过时将信号挡住,会遮断红外信号,红外接收器接收不到信号。每次遮断使ATC2051单片机的P3.2产生低电平,经内部程序运算后进行加法处理,其结果通过六个LED 数码管显示出来ATC2051单片机的P1口分时输出数据(段选码),用于点亮六个数码管,ATC2051单片机的P3.0、P3.1、 P3.3 、P3.4、P3.5、P3.7则选通相应的位。如图4所示
图4 单片机系统接口图
2.1.1 各模块组成
在此系统涉及了四个模块,分别是红外发射模块、红外接收模块、单片机系统模块(包含了显示模块)、A/D转换模块ADC0809以及按键模块,红外的发射和接收模块位于生产流水线的两侧,通过感知红外线被阻断并将此信号转化为电信号输入到计算机内,由单片机实现技术功能,而单片机系统是光电计数系统的核心模块,实现的主要功能包括: 1)实现0―999范围计数,能在超出最大值后溢出报警;
2)要求使用红外发光二极管、光电管检测;
3)能在设定值报警,能在报警后延时3秒钟自动关闭报警并自动重新计数;可以手动清除报警;
4)要求光电发射管与接收管有1米以上的间距,发射器和接收器分别置于流水线两边,中间没有阻挡时发射器的红外线射到接收器,接收器接收到发射来的红外线,经反相处理使之没有信号输出,有工件经过时挡住光路,接收器失去红外线信号便输出一个脉冲信号到单片机进行计数。
因此要达到要求的功能就需要单片机控制部分要有很高的精确性和自动化,而人也可以通过键盘模块来自己设置报警, 并且能自动清除报警。各部件的有机结合实现了光电技术系统的功能。
2.1.2主要芯片元器件引脚图及功能介绍
光电技术系统采用的芯片是ATC2051,其主要特性:
·与MCS-51产品兼容
·2K字节可重编程闪存
-耐久性:1000次读/写周期
·工作电压2.7V至V
·全静态运行:0Hz至24MHz
·两级程序锁存
·128×8位内部RAM
·15个可编程I/O口
·两个16位定时器/计数器
·六个中断源
·可编程串行UART(= Universal Asynchronous Receiver Transmitter通用异步收发器)通道
·可直接驱动LED的输出
·芯片级模仿比较器
·低功耗空闲模式和微功耗模式(Power-down mode)
ATC2051是一种低电压、高性能的8位CMOS微型计算机。带2K字节的闪存和可擦可编程只读存储器(EPROM)。该器件应用爱特美尔(Atmel)的高密度非易失性技术生产,与工业级MCS51架构组相兼容。将一片通用的8位CPU与闪存集成在单块芯片上,ATC2051是一种功能强盛的微型计算机。它为许多嵌入式控制提供了高灵活性低成本的解决方案。
ATC2051的标准特性如下:2K字节闪存,128字节RAM,15个I/O口,两个16位定时器/计数器,一个五失量两级中断结构,一个全双工串行通信口,一个精准模拟比较器,芯片级振荡器和时钟电路。另外,ATC2051用静态逻辑设计,可在低至零频下工作,支持两种软件可选节能模式。空闲模式下CPU不工作,而RAM,定时器/计数器,串口和中断系统继承工作。微功耗模式(power-down mode)下保存
ATC2051是一个有20个引脚的芯片,引脚配置如图5所示。与8051相比,ATC2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。
ATC2051芯片的20个引脚功能为:
VCC 电源电压。
GND 接地。
RST 复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。
XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2 来自反向振荡放大器的输出。
P1口 8位双向I/O口。引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。
P3口 引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口同时也可为闪速存储器编程和编程校验接收控制信号
图5 ATC2051单片机引脚图
2.2 系统软件设计
为了充分实现实时在线工业检测,在处理过程中采用中断方式进行计数 发射电路始终发射红外信号,当传送带将物体送进入口时,将信号挡住,即将红外信号‘变为脉冲信号,此时中断响宜.计数器记录进料数量并设定时中断为lms,如果在进口中有其它异物通过时,它在设定的时间内不能长期保持有效.因此,中断不响应,计数器不记录异物通过,这样可防止外界的干扰 主程序流程图如6示
图 6 主程序流程图
在光电计数系统中,设计软件可实现技术初始值为999,在生产流水线中有产品通过时,红外线被阻断,红外接收器没有收到发射器的红外信号,输出高电平 。将此信号送人到ATC2051单片机的P3.2口.使单片机系统开始工作。由软件实现计数值加一,但计数值达到了设置值时系统报警,并在3秒后将发射重置信号,实现初始化计数值,同时也可以实现人为地清除报警。根据光电技术系统的功能要求,设计出系统的工作流程图7,
图7 系统工作流程图
最后是软测量效果评价 .由于工业生产过程中要求具有很高的精确性.因此对软测量效果的评价是重要的。根据软测量的效果.确定模型是否需要进行修正,哪些参数需要调整等。一旦发现软测量的效果不能满足于实际应用的需要,就
必须考虑重新构造软测量模型,即重新构造软件的设计思路,设计出满足实践需要的软测量系统
第三章 设计原理
3.1 计数测量
计数的过程其实是获取脉冲源的过程,当有物体穿越光路时,接收头输出为高电平,反之则为低电平,接收头的电平信号经由一NPN三极管反相后送入CPU当传送带将被测物体传送到检测点时,物体将探头发送的红外线调制信号反射给探头,探头接收器产生的信号送到单片机P3.2口,启动计数器开始计数,每次红外线的阻断都将转化成电信号被单片机芯片获取,在原来的数值上加1,并将计数后所得的数据送给LED显示
3.2中断方式计数
中断计数方式的实现是靠获取中断源,在MCS-51单片机中有五个可屏蔽的中断源,片内中断源三个,片外中断源两个,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序,其中外部中断源INT0(外部中断0)请求由引脚P3.2输入,一旦输入信号有效(低电平或负跳变),即CPU申请中断,如果CPU响应中断,会自动转到0003H,执行相应的中断服务子程序,INT1(外部中断1)请求由引脚P3.3输入,一旦输入信号有效,即向CPU申请中断,如果CPU响应中断,会自动跳转到0013H处,执行相应的中断服务子程序,在中断系统中涉及一些特殊寄存器的使用,这些寄存器能够控制中断。
我们把打断单片机正常工作的外部信号接到单片机的INT0引脚,经过软件对有关寄存器的设置,单片机就可知道外界信号的变化,从而中断主程序的。当系统接侧到信号由高到低的负跳变时引发中断,中断过程中不产生计数,对于外部中断源的撤除,当外部中断采用边延触发方式时,CPU响应中断后,由硬件自动清除其中的中断标志位IE0或IE1,无需采取其他措施。当外部中断源采用电平触发方式时,CPU响应中断后不会自动清除中断请求标志位IE0或IE1,同时也不能用软件清除,当CPU执行完中断程序后返回主程序,发现外部中断源位于低电平时,仍会响应低电平。即外部中断源位于低电平时,则中断标志IE0或IE1就会为“1”。在实际应用过程中根据实际情况采取软硬件配合使用的方法。
3.3串行通信接口
串行通信与并行通信不同,并行通信是一次性传送8位数据,传输快捷方便,但硬件较复杂,远距离传输成本较高,串行通信是一位一位的传送,一个字节的八位二进制数至少需要传送8次,结构也比较简单,串行通信是通过串行口来实现的,MCS-51单片机有一个全双工的异步串行接口可以用于串行数据的数据通信,串行通信的两种基本方式有异步传送方式和同步传送方式。
MCS-51单片机采用异步通信的串行通信方式,有一个全双工的串行接口电路,整个串行通信可以通过编制的程序设定,串行接口电路的内部结构如图8所示,
图8 串行口内部结构
SBUF是的两个缓冲器,主要功能存放接收到的数据和存放将要发送的数据,起缓冲作用,TXD是发送引脚,数据从TXD一位一位的向外设发送,RXD是接收引脚,数据从RXD一位一位的接收到单片机内。
第四章 软件程序设计
4.1 时间控制设置
在工业生产中为了提高工作效率,需要系统有很高的自动化并且要有很高的统计精确性,所以再设计系统时一些时间控制也显得十分重要。
4.1.1 1ms定时
计数器记录进料数量并设定时中断为lms,如果在进口中有其它异物通过时,它在设定的时间内不能长期保持有效.因此,中断不响应,计数器不记录异物通过,这样可防止外界的干扰。此系统引用晶振为12MHz的频率,设置定时1ms,即为,设置初始值X,
X=216-fosc×t/12=65536-12×1000/12=536=FC18H
源程序如下:
DELAY1ms: MOV TMOD , #10H ; 设置T1工作方式是1,定时
MOV TH1, #0FCH; 设置计数初值
MOV TL1, #018H
SETB TR1 ; 启动T1,开始计时
LP1: JBC TF1, LP2; 查询时间是否到,到则转到LP2
AJMP LP1 ; 时间没有到转LP1,继续等待
LP2: CLR TR1 ; 关闭定时计数器1
RET ; 子程序返回
4.1.2 3秒报警延时
在计数器达到了设定值时需要报警三秒,并且可以认为设定清除,因此再次延时程序中还需要设定一个按键响应语句,即有人为清除时跳出此延时。
程序功能:在晶振为12MHz的前提下,利用定时器1,延时1s。
DELAY: MOV R3, #3CH ; 设循环六十次(60的十六进制是3CH)
LP3 : MOV TH1, #03CH ; 恢复定时器基数,否则只有第一次时间是正确的
MOV TL1, #0B0H ;以后的时间是从0开始的,
LP4 : JBC TF1, LP4 ; 判断出位TF1是否为1,若为1则清0转移
JB P3.7, START; 判断人工清警按键是否按下,按下跳转至开始处开始新一轮的计数
SJMP LP3 ;
LP5 : DJNZ R3, LP3 ;循环六十次
RET ;三秒定时时间到,返回
4.2 进制转换
4.3 数码显示
4.4 总程序调试
ORG 0000H ;程序的起始地址
LJMP main ;从main开始执行
ORG 0003H ; 中断0的起始地址
LJMP INT0 ;
main: MOV P3.2,#0FFH ;作为输入口要先对该口置1
SETB EA ; 允许外部中断,中断初始化
SETB EX0
SETB IT0 ; 将IT0设为1是为边沿触发
LCALL DELAY1ms ; 中断延迟时间
RET
INT0: CLR EA ; 停止响应中断
CLR P1 ;
MOV P1, #80H ;
RETI ;
START: MOV R1, #999 ; 设置计数最大值
MOV A,#0 ; 设置初始值0
MOV DPTR,#0 ;设置初始值0
LCALL SMXS ; 将值显示
LOOP0 :
INC @DPTR ;获取脉冲信号后DPTR+1
MOV A,@DPTR
CJNE R1,A,LOOP1 ;判断是否达到了最大值999,到则跳转到LOOP1
LCALL SMXS
SJMP $
LOOP1 :JB P3.7,START ;人工按下跳转至开始处
CLR P3.4 ;警报响起
LCALL DELAY ;响3秒
SETB P3.4 ;蜂鸣器停
SJMP START ; 跳转到开始处重新计时
------------------------A/D转换-----------------------------------
AD: CLR P1.6 ; 将1.6口接ADCO809的ENABLE, 设置高阻
CLR P3.2 ; 给ALE和START上升沿锁存地址通道,内部寄存器清零
NOP ;空操作
NOP
SETB P3.2 ; 由1到0下降沿开始A/D转换
NOP
NOP
NOP
CLR P3.2 ;恢复低电平,为下一次动作做准备
JNB P1.7,$ ;检测转换结束信号,为0时等待
SETB P3.2 ; 置0809为输出允许
NOP
NOP
LCALL SMXS ; 送显示
SJMP LOOP ;执行循环
-------------------------------进制转换-----------------
--------------------三位数码显示程序----------------------------
SMXS: NOP ;
TAB: DB 0C0H,0F9H,0A4H,0B0H ;0,1,2,3显示码段
DB 99H,92H,82H,0F8H ; 4,5,6,7显示码段
DB 80H,90H ; 8,9显示码段
;
--------------------------------延时3秒-------------------------
DELAY: MOV R3, #3CH ; 设循环六十次(60的十六进制是3CH)
LP3 : MOV TH1, #03CH ; 恢复定时器基数,否则只有第一次时间是正确的
MOV TL1, #0B0H ;以后的时间是从0开始的,
LP4 : JBC TF1, LP4 ; 判断出位TF1是否为1,若为1则清0转移
JB P3.7, START; 判断人工清警按键是否按下,按下跳转至开始处开始新一轮的计数
SJMP LP3 ;
LP5 : DJNZ R3, LP3 ;循环六十次
RET ;三秒定时时间到,返回
---------------------------------定时1ms---------------------
DELAY1ms: MOV TMOD , #10H ; 设置T1工作方式是1,定时
MOV TH1, #0FCH; 设置计数初值
MOV TL1, #018H
SETB TR1 ; 启动T1,开始计时
LP1: JBC TF1, LP2; 查询时间是否到,到则转到LP2
AJMP LP1 ; 时间没有到转LP1,继续等待
LP2: CLR TR1 ; 关闭定时计数器1
RET ; 子程序返回
结论
本文介绍了一种基于ATC2051单片机的光电计数系统的设计,并已成功的用于实际系统中,需要指出的是,本文利用软件编程、这样做占用硬件资源少,成本较低,如果用于强磁强电的现场环境,考虑加以屏蔽。在项目设计的开始到结束本人一直认真对待,在制作的过程中遇到了很多困难,通过查阅相关资料逐一解决问题的同时自己也增长了知识,到最后对光电计数系统的工作原理的掌握,最终设计出了自己理解的光电计数系统
致谢
感谢指导老师的帮助,让我从对此系统的不了解到成功设计出了光电计数系统。
参考文献
1 何立民 . 单片机应用系统设计.北京:北京航空航天大学出版社,1996
2 刘畅生 .传感器简明手册及应用电路--温度传感器分册.西安:西安电子科技大学出版社,2005
3 夏路易 .电路原理图与电路板设计教程—PROTEL 99SE.北京:希望电子出版社,2002
4 李华.MCS-51系列单片机实用接口技术.北京:北京航空航天大学,1993
5 王秀珍.微型计算机A/D,D/A转换接口技术及数据采集系统.北京:清华大学出版社,2004
6 刘守义.单片机应用技术.西安:西安电子科技大学出版社,1993
7 徐爱钧.单片机高级语言C51 应用程序设计[M]. 北京:电子工业出版社,2002