光电传感器脉冲计数器设计_第1页
光电传感器脉冲计数器设计_第2页
光电传感器脉冲计数器设计_第3页
光电传感器脉冲计数器设计_第4页
光电传感器脉冲计数器设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、光电传感器脉冲计数电路设计摘 要本文基于AT89C51单片机设计了一个结构简单、性能稳定反射式光电计数器,可实现脉冲实时计数功能。系统采用型号为E18-D50NK的红外传感器为信号采集装置,将光信号转换成电信号,经单片机处理后显示在数码管上。当系统出现锁死情况时可以通过复位键调整,直至系统正常工作。关键词:AT89C51, 光电计数器, E18-D50NK 目 录1 绪论11.1 课题描述11.2 基本工作原理及框图12 相关芯片及硬件电路设计22.1 AT89C51芯片2 AT89C51的功能特性3 AT89C51的主要性能参数32.2 E18-D50NK反射式红外传感器42.3 单片机最小

2、系统电路52.4 光电传感器电路52.5 显示电路63 系统软件设计63.1 系统的软件运行流程图73.2 程序设计74 仿真10总 结12致 谢13参考文献141 绪论1.1 课题描述在当今社会飞速发展的今天,越来越多的流水线上的产品和各种公共场所需要进行实时的、有效的、精确的自动计数。传统的机械式或电子式计数器(主要是用数字电路集成组件组成)电路比较复杂,元器件数量较多,故障率较高,维修比较困难,而设置预定数值不太方便,功能不易更改且功能过于单一,适用范围较窄。而基于单片机构成的产品自动计数器有直观和计数精确的优点,目前已在各种行业中得到广泛应用。数字计数器有多种形式,总体来说有接触式和非

3、接触式两种,在科技发展的今天,非接触式光电计数器得到了广泛的应用,光电式传感器是其中之一。1.2 基本工作原理及框图本系统是以单片机AT89C51为核心的脉冲计数器。采用光电式传感器,每当物体通过一次,红外光就被物体反射,光电接收管接收一次,光电接收管的输出电压就发生一次变化,这个变化的电压信号通过放大和处理后,通过接收头输出相应的电信号1。当有物体穿越光路时,接收头输出为低电平,反之则为高电平,接收头接单片机P3.4端口,当电信号变化时,启动计数器开始计数,并将计数后所得的数据送给数码管显示。系统的基本原理如图1所示。电源数码管显示单片机AT89C51红外检测电路图1 基本工作原理框图系统的

4、电路图如图2所示。图2 光电脉冲计数器原理图2 相关芯片及硬件电路设计2.1 AT89C51芯片图3 3种常见单片机及引脚图 AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容2。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。AT89C51单片机为很多嵌

5、入式系统提供了一种灵活性高且价廉的方案。2.1.1 AT89C51的功能特性AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个十六位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式3。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。2.1.2 AT89C51的主要性能参数AT89C51主要性能参数如下:(1

6、)与MCS-51 兼容(2)4K字节可编程FLASH存储器(3)寿命:1000写/擦循环(4)数据保留时间:10年(5)全静态工作:0Hz-24MHz(6)三级程序存储器锁定(7)28×8位内部RAM(8)32可编程I/O线(9)两个16位定时器/计数器(10)5个中断源(11)可编程串行通道(12)低功耗的闲置和掉电模式(13)片内振荡器和时钟电路2.2 E18-D50NK反射式红外传感器光电开关电路主要由光电开关管,即光电传感器是采用光电元件作为检测元件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。光电传感器一般由光源、光学通路和光

7、电元件三部分组成4。电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活样因此,光电式传感器在检测和控制中应用非常广泛。如下图示为本次课程设计所采用的光电开关,其型号为E18-D50NK的反射红外传感器。图4 反射红外传感器红外传感器输出端的原理图如下:图5 红外传感器信号输入端 红外传感器感受到外界信息时,产生高低电平,通过软件程序设置单片机内部寄存器,当传感器的高低脉冲被单片机接收到时,单片机产生中断,中断产生后进入中断服务程序,通过设置中断服务程序,进行计数。并通过P2.4,P23,P2.5,P2.6,P2.口计数信息传送至数码管,数码管显示计数的个数。

8、当需要时按下复位开关,则计数器清零,数码管显示清零,重新开始计数。2.3 单片机最小系统电路图6 单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。 单片机的晶振电路是一种典型起振电路,分为内部时钟方式和外部时钟方式两种。本次设计所采用的为内部时钟方式。典型的晶振取11.0592MHz(因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)5。单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重

9、启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。2.4 光电传感器电路 本设计使用的光电接受部分是红外光电式传感器,它是采用光电元件作为检测元 件信号转换成电信号,光电传感器一般由光源、光学通路和光电元件三部分组成,其中光电传感器是型号1E8-B03M封装的红外反射传感器,E18-DS30NK光电传感器,其工作电压为5V,其传感器有三条引脚,一条接+5V,一条接GND,另一条则是数据输出接口,正常情况下输出为高电平,当有物体遮挡时输出为低电平,本课题就是利用该传感器的这种工作原理实现的。将数据输出端与

10、单片机进行通信,进而实现计数功能。2.5 显示电路图7 显示电路本课题采用四位八段数码管,该数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受

11、控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的6,能够节省大量的I/O端口,而且功耗更低。其四位八段数码管显示电路图7。3 系统软件设计3.1系统的软件运程图本次软件的流程图如下:图7 系统的软件流程图3.2 程序设计#include<reg52.h>#include<intrins.h>#define uchar unsigned charvoid timer1

12、_init();void smg_dis();void Delay1ms(uchar ms);sbit P34=P34;unsigned int num=0; uchar smg_duanma10 =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;segbuf4=0,0,0,0;uchar dspcom,i;/*主函数*/void main(void)timer1_init();P3=0xff;while(1) if(P34=0); Delay1ms(20);if(P34=0) +num; if(num=9999)num=0; while(P

13、34); void timer1_init() TMOD=0x10; / TMOD=0000 0110B,使用计数器T1的模式2 TH1=(65536-5000)/256; TL1=(65536-5000)%256; EA=1; /开总中断 ET1=1; /允许定时器T1的中断 TR1=1; /启动T1 void Key_counter() interrupt 3 TH1=(65536-5000)/256;TL1=(65536-5000)%256;smg_dis(); void smg_dis() segbuf0=num/1000;segbuf1=num/100% 10;segbuf2=num

14、/10%10;segbuf3=num%10; P0=0xff; P0=smg_duanmasegbufdspcom;P2=0x10<<dspcom; if(+dspcom = 4)dspcom = 0; void Delay1ms(uchar ms) unsigned int k;for(k=0;k<ms;k+)unsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;dowhile (-j); while (-i);4 仿真图8 仿真结果在Keil uvision3下新建工程,在工程下新建文件,完成程序的编写,并生成

15、hex文件,在Proteus中画出电路图,进行仿真。由于光传感器在仿真过程中无法接受光信号,不能产生相应的电信号,所以在仿真中是将光电传感器电路改为一个开关按键。开关按键一端接地,一端接P3.4端口。将P3.4端置为高电平,按下开关按键时,P3.4变为低电平。从而达到光传感器接收光的效果。仿真结果如图8所示。总 结本文介绍了一种基于AT89C51单片机的光电脉冲计数器系统的设计,主要包括单片机的最小系统电路、显示电路和光电传感器电路。本文利用软件编程、这样做占用硬件资源少,成本较低。光电传感器电路通过光的采集输出相应的高低电平即;单片机将收到的脉冲信号通过寄存器储存,同时将信号经处理,通过数码

16、管把脉冲的数量显示出来。在设计的开始到结束我一直认真对待,在制作的过程中遇到了很多困难,通过查阅相关资料逐一解决问题的同时自己也增长了知识,到最后对光电计数系统的工作原理的掌握,最终设计出了自己理解的光电计数系统使我从中学习到了许多的新知识。 致 谢从拿到设计题目到设计整稿,从理论到实践,学习到了很多新的知识,也成长了好多,在此要特别感谢导师司小平的指导与帮忙,在导师的指导下才能够产生了不错的设计思路,在设计过程中,遇到不少问题,都能够得到付致伟老师的指点,让设计工作得以顺利进行,在此要感谢教我们单片机的吕运鹏老师和指导设计的付致,伟同时要感谢设计制作中帮助过我的同学,特别是汪杨铭在设计过程中帮我解决了许多问题,及时帮我解惑,以及排除障碍等。在此要感谢老师和同学们,让我在这次设计过程中增长知识,学会成长,同时我们在实践中学习,把我们的知识

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论