光电传感器脉冲计数器设计Word文件下载.docx
《光电传感器脉冲计数器设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《光电传感器脉冲计数器设计Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。
![光电传感器脉冲计数器设计Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-2/4/883f8f86-061d-47ab-b86f-779c894e6af1/883f8f86-061d-47ab-b86f-779c894e6af11.gif)
传统的机械式或电子式计数器〔主要是用数字电路集成组件组成)电路比拟复杂,元器件数量较多,故障率较高,维修比拟困难,而设置预定数值不太方便,功能不易更改且功能过于单一,适用范围较窄。
而基于单片机构成的产品自动计数器有直观和计数准确的优点,目前已在各种行业中得到广泛应用。
数字计数器有多种形式,总体来说有接触式和非接触式两种,在科技开展的今天,非接触式光电计数器得到了广泛的应用,光电式传感器是其中之一。
1.2根本工作原理及框图
本系统是以单片机AT89C51为核心的脉冲计数器。
采用光电式传感器,每当物体通过一次,红外光就被物体反射,光电接收管接收一次,光电接收管的输出电压就发生一次变化,这个变化的电压信号通过放大和处理后,通过接收头输出相应的电信号[1]。
当有物体穿越光路时,接收头输出为低电平,反之那么为高电平,接收头接单片机P3.4端口,当电信号变化时,启动计数器开场计数,并将计数后所得的数据送给数码管显示。
系统的根本原理如图1所示。
图1根本工作原理框图
系统的电路图如图2所示。
图2光电脉冲计数器原理图
2相关芯片及硬件电路设计
2.1AT89C51芯片
图33种常见单片机及引脚图
AT89C51是一种带4K字节FLASH存储器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的低电压、高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容[2]。
由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。
AT89C51单片机为很多嵌入式系统提供了一种灵活性高且价廉的方案。
2.1.1AT89C51的功能特性
AT89C51提供以下标准功能:
4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个十六位定时/计数器,一个5向量两级中断构造,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式[3]。
空闲方式停顿CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停顿工作并制止其他所有部件工作直到下一个硬件复位。
2.1.2AT89C51的主要性能参数
AT89C51主要性能参数如下:
〔1〕与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〕片内振荡器和时钟电路
E18-D50NK反射式红外传感器
光电开关电路主要由光电开关管,即光电传感器是采用光电元件作为检测元件的传感器。
它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。
光电传感器一般由光源、光学通路和光电元件三局部组成[4]。
电检测方法具有精度高、反响快、非接触等优点,而且可测参数多,传感器的构造简单,形式灵活样因此,光电式传感器在检测和控制中应用非常广泛。
如下列图示为本次课程设计所采用的光电开关,其型号为E18-D50NK的反射红外传感器。
图4反射红外传感器
红外传感器输出端的原理图如下:
图5红外传感器信号输入端
红外传感器感受到外界信息时,产生上下电平,通过软件程序设置单片机内部存放器,当传感器的上下脉冲被单片机接收到时,单片机产生中断,中断产生后进入中断效劳程序,通过设置中断效劳程序,进展计数。
并通过P2.4,P23,P2.5,P2.6,P2.口计数信息传送至数码管,数码管显示计数的个数。
当需要时按下复位开关,那么计数器清零,数码管显示清零,重新开场计数。
2.3单片机最小系统电路
图6单片机最小系统
单片机最小系统,或者称为最小应用系统,,最小系统一般应该包括:
单片机、晶振电路、复位电路。
单片机的晶振电路是一种典型起振电路,分为内部时钟方式和外部时钟方式两种。
本次设计所采用的为内部时钟方式。
〔因为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合〕/12MHz〔产生准确的uS级时歇,方便定时操作〕[5]。
单片机复位电路就好比电脑的重启局部,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开场执行。
单片机也一样,当单片机系统在运行中,受到环境干扰
出现程序跑飞的时候,按下复位按钮内部的程序自动从头开场执行。
光电传感器电路
本设计使用的光电承受局部是红外光电式传感器,它是采用光电元件作为检测元件信号转换成电信号,光电传感器一般由光源、光学通路和光电元件三局部组成,其中光电传感器是型号1E8-B03M封装的红外反射传感器,E18-DS30NK光电传感器,其工作电压为5V,其传感器有三条引脚,一条接+5V,一条接GND,另一条那么是数据输出接口,正常情况下输出为高电平,当有物体遮挡时输出为低电平,本课题就是利用该传感器的这种工作原理实现的。
将数据输出端与单片机进展通信,进而实现计数功能。
2.5显示电路
图7显示电路
本课题采用四位八段数码管,该数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp〞的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到一样的字形码,但终究是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制翻开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的[6],能够节省大量的I/O端口,而且功耗更低。
其四位八段数码管显示电路图7。
3系统软件设计
本次软件的流程图如下:
图7系统的软件流程图
3.2程序设计
#include<
reg52.h>
intrins.h>
#defineucharunsignedchar
voidtimer1_init〔);
voidsmg_dis〔);
voidDelay1ms〔ucharms);
sbitP34=P3^4;
unsignedintnum=0;
ucharsmg_duanma[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
segbuf[4]={0,0,0,0};
uchardspcom,i;
/*主函数*/
voidmain〔void)
{
timer1_init〔);
P3=0xff;
while〔1)
if〔P34==0);
Delay1ms〔20);
if〔P34==0)
++num;
if〔num==9999)
num=0;
while〔~P34);
}
}
voidtimer1_init〔)
{
TMOD=0x10;
//TMOD=00000110B,使用计数器T1的模式2
TH1=〔65536-5000)/256;
TL1=〔65536-5000)%256;
EA=1;
//开总中断
ET1=1;
//允许定时器T1的中断
TR1=1;
//启动T1
}
voidKey_counter〔)interrupt3
{
smg_dis〔);
voidsmg_dis〔)
{
segbuf[0]=num/1000;
segbuf[1]=num/100%10;
segbuf[2]=num/10%10;
segbuf[3]=num%10;
P0=0xff;
P0=smg_duanma[segbuf[dspcom]];
P2=0x10<
<
dspcom;
if〔++dspcom==4)
dspcom=0;
}
voidDelay1ms〔ucharms)
{
unsignedintk;
for〔k=0;
k<
ms;
k++)
unsignedchari,j;
_nop_〔);
i=11;
j=190;
do
{
while〔--j);
}while〔--i);
4仿真
图8仿真结果
在Keiluvision3下新建工程,在工程下新建文件,完成程序的编写,并生成hex文件,在Proteus中画出电路图,进展仿真。
由于光传感器在仿真过程中无法承受光信号,不能产生相应的电信号,所以在仿真中是将光电传感器电路改为一个开关按键。
开关按键一端接地,一端接P3.4端口。
将P3.4端置为高电平,按下开关按键时,P3.4变为低电平。
从而到达光传感器接收光的效果。
仿真结果如图8所示。
总结
本文介绍了一种基于AT89C51单片机的光电脉冲计数器系统的设计,主要包括单片机的最小系统电路、显示电路和光电传感器电路。
本文利用软件编程、这样做占用硬件资源少,本钱较低。
光电传感器电路通过光的采集输出相应的上下电平即;
单片机将收到的脉冲信号通过存放器储存,同时将信号经处理,通过数码管把脉冲的数量显示出来。
在设计的开场到完毕我一直认真对待,在制作的过程中遇到了很多困难,通过查阅相关资料逐一解决问题的同时自己也增长了知识,到最后对光电计数系统的工作原理的掌握,最终设计出了自己理解的光电计数系统使我从中学习到了许多的新知识。
致谢
从拿到设计题目到设计整稿,从理论到实践,学习到了很多新的知识,也成长了好多,在此要特别感谢导师司小平的指导与帮助,在导师的指导下才能够产生了不错的设计思路,在设计过程中,遇到不少问题,都能够得到付致伟教师的指点,让设计工作得以顺利进展,在此要感谢教我们单片机的吕运鹏教师和指导设计的付致,伟同时要感谢设计制作中帮助过我的同学,特别是汪杨铭在设计过程中帮我解决了许多问题,及时帮我解惑,以及排除障碍等。
在此要感谢教师和同学们,让我在这次设计过程中增长知识,学会成长,同时我们在实践中学习,把我们的知识掌握的更加结实,也为以后找工作奠定了扎实的根底。
参考文献
[1]韩志强,姚国兴.风光互补充电控制器的研究[J].:
25-26.
[2]胡汉才.单片机原理与接口技术[M].北京:
.
[3]孙丽霞.数字电子技术[M].北京:
高等教育出版社,2006:
174-196.
[4]肖洪兵.跟我学用单片机[M].北京:
北京航空航天大学出版社,.
[5]夏继强.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2001.
[6]何立民.单片机高级教程[M].北京:
【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】