基于单片机的光电计数器的设计Word格式.docx
《基于单片机的光电计数器的设计Word格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的光电计数器的设计Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
九.参考文献……………………………………………………………14
十.附录…………………………………………………………………15
一.设计题目:
基于单片机的光电计数器的设计
在大量产品的生产中,为及时掌握产品的装箱率、日产量等指标,需要在产品生产线的多个环节上安装计数器,每当产品通过计数器时,就会被计数器的传感器检测到,产品个数自动加1,并在显示器上显示出来。
本次设计基于单片机的工业产品自动计数器
基于单片机构成的产品自动计数器研究的主要内容包括:
如果构成检测电路,MCS-51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、MCS-51单片机的扩展。
在这个设计中主要需要解决的问题便是如何提高MCS-51单片机的抗干扰能力以及稳定性。
二.设计要求:
(1)数码管可以显示产品个数(0-99),自由设定产品报警个数(比如8),当产品数目是8的个数时,发出报警(蜂鸣器响)。
(2)独立设计电路,应包括单片机最小系统、红外光电开关、数码管显示部分。
将计数值准确的显示出来
(3)三人一组,每组选一个组长。
三.题目分析:
基于单片机构成的产品自动计数器研究的主要内容包括:
如果构成检测电路、MCS-51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、MCS-51单片机的扩展。
采用光电式传感器是非常必须的,它是一种非接触式电子传感器。
这种计数器在工厂的生产流水线上作产品统计,有着其他计数器不可取代的优点。
在此所做的分析均是对题目的整体分析,对整体电路分成块,我们做一一分析、提出方案。
对于电源部分,就是把交流电网
的电压变为所需要的电压值,然后通过整流电路将交流电压变成脉动的直流电压。
L78、79系列集成稳压器是一种有广泛用途的三端集成稳压器。
W78系列三端集成稳压电路具有固定输出正电压,L79系列三端集成稳压电路具有固定输出负电压。
这两个系列稳压器都具有较完善的短路和限流保护、过热保护和调整管安全工作区保护电路,因而他的工作是比较可靠的。
字母后面的数字表示输出电压,电压等级:
5V、6V、8V、12V、15V、18V、24V。
实验中要求工作电源为220V交流电,而芯片供电应为5V,因此我们选用L7805,作为稳压芯片。
在本次试验中,也可用专用稳压器提供+5V电源。
红外光电传感器采用E18-B03N1型号,该红外光电传感器使用简单,有三根引脚,棕色接VCC正极,蓝色接GND负极,黑色接单片机P3.3口。
红外传感器没有检测到外部信号时处于高电平状态,当检测到外部物体时有高电平状态变为低电平状态,通过与单片机连接单片机I/O接收检测的高低电平变化。
对于复位电路,常用的复位电路有分立元件复位电路和专用集成复位电路。
其中分立元件复位电路有上电复位电路和上电复位加手动复位电路两种,在实际应用中,单片机系统常常需要人工干预,强制系统复位,一般常用具有手动复位功能的上电复位电路。
单片机常用的显示器件包括发光二级管(LED)、数码管和液晶显示模块等。
数码管是由多个LED作为笔画字段的组合型显示器件,使用时通过点亮不同的LED组合成不同的数码字型。
数码管的显示分为静态显示和动态显示,由于静态显示浪费单片机的端口,所以采用动态显示,数码管的动态显示是通过程序在运行过程中对每一位数码管轮流驱动,交替点亮实现的。
利用了人眼视觉停留的原理,只要时间够短就会觉得一直在点亮。
数码管再点亮时必须有驱动电路,常用的有74LS240、ULN2003等。
对于单片机的计数并不是利用单片机的内部定时器
计数器,而是用“INC”指令当外部来一个中断时对单片机内部某一工作寄存器(比如R0)里面的数加一,然后对其进行除法运算便可以得到现在产品装箱的个数等。
当然也可以模仿不同进制加法的运算过程,把个位的进制设置为小箱子里产品的个数,十位的进制设置为大箱子里小箱子里的个数。
通过“DJNZ”指令判断箱子是否装满。
报警部分可以有蜂鸣器构成,通过改变输入蜂鸣器电流平均值的大小来改变其声音的大小、通过改变此信号的频率来改变其音频的大小。
由于蜂鸣器外加电压的大小不能改变,所以要改变声音的大小只能通过PWM调试,其方法有三种,最常用的是定频调宽法,因为这种方法不能是系统引起“共振”。
若改变信号的频率,可以蜂鸣器的音频,但怕某一音频的频率和系统的固有频率相同。
所以我们不改变蜂鸣器的音频,只改变其声音的大小。
即使用PWM调制原理来时报警声音不同,可以应用单片机延时、循环来做到。
另一方面,工厂在加工产品是声音都非常大,报警用蜂鸣器感觉有点不太适合,可以采用闪光电路,但是由于篇幅有限,不做说明。
至此,单元电路已经全部了解,上面的电路块看似没有多大的联系,其实对于整体电路来说是缺一不可的,电源部分为整个电路供电、红外发射和接收部分是整个信息的来源、单片机是核心、振荡电路是单片机的“心脏”、而报警电路是系统的输出信号。
四.整体构思:
通过题目的分析,整体方案框图如下:
图1.方案框图
对于上面的方案框图,有下面不同单个电路的方案。
(1)红外接收电路不同方案的选取
方案一:
图2.检测原理图
如图2所示,四只管子位于同一平面内,发射管A、B分别对准接受管A、B,产品的尺寸应大于发射管A与接受管B之间的距离。
计数器内部设一标志,产品未进入发射管A与接受管A之间时,两束光线均被接收,管A、B均导通,标志置0,当产品继续运动遮挡住一束光线时,标志不变。
当同时遮挡住两束光线时,标志置1。
当产品离开,两束光线未遮挡时,标志置0,这时计数器个数加1。
由于产品遮挡住一束光线时,标志不变,因此产品进入传感区域发生抖动时,不会影响标志,从而保证准确计数。
但是,电路较复杂,成本高,不利于集成。
方案二:
图3.检测原理图
如图3所示,两只管子位于同一平面内,产品的尺寸应大于发射管与接受管之间的距离。
计数器内部设一标志,产品未进入发射管与接受管之间时,光线没有接收,标志置0。
当有产品经过时,光线被接收,标志置1。
这种方法不仅节省光电开关,还方便固定,利于集成。
通过上面的比较,我们采用方案二,因为方案二不仅节省元件,利于集成,而且在安装时不需要在产品两边都安装光电器件,避免了因产品的宽度不同,使得计数器不通用。
(2)电源电路的选取
为使模块稳定工作,须有可靠电源。
我们考虑了两种电源方案:
方案一:
采用独立的稳压电源。
此方案的优点是稳定可靠,且有各种成熟电路可供选用;
缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。
采用单片机控制模块提供电源。
改方案的优点是系统简明扼要,节约成本;
缺点是输出功率不高。
综上所述,我们选择第二种方案。
(3)显示器件的选取
该系统要求完成倒计时、信息提示等功能。
这种方法最常用,但当点亮多个数码管是,电路复杂,编程困难。
对于发光二极管,虽然电路、编程简单,但是显示的数量太少,另一方面,不利于获取显示信息。
综上所述,用数码管显示。
五.具体实现:
电路由光电管电路,单片机系统,蜂鸣器报警电路,数码管显示部分、复位电路组成。
图4.系统总图
简单执行过程如下:
红外传感器感受到外界信息时,产生高低电平,通过软件程序设置单片机内部寄存器,当传感器的高低脉冲被单片机接收到时,单片机产生中断,中断产生后进入中断服务程序,通过设置中断服务程序,进行计数。
并通过P0口将计数信息传送至数码管,数码管显示计数的个数。
当需要置位是按下复位开关,则计数器清零,数码管显示清零,重新开始计数。
具体实现如下:
1、光电传感器
光电开关电路主要由光电开关管,即光电传感器是采用光电元件作为检测元件的传感器。
它首先把被测量的变化转换成光信号的变化,然后借助光电元件进一步将光信号转换成电信号。
光电传感器一般由光源、光学通路和光电元件三部分组成。
电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活多样,因此,光电式传感器在检测和控制中应用非常广泛。
如下图示为本次课程设计所采用的光电开关,其型号为E18-B03N1封装的反射红外传感器
图5.红外传感器实物图
原理如下:
原理图如下:
图6.红外传感器原理图
2、单片机系统
单片机最小系统是此设计的核心部位,红外传感器所产生的外部脉冲经单片机进行译码而计数的,并且通过对单片机内部进行编译,使外部中断信号通过数码管显示出来,并实现计数功能。
一个典型的单片机最小系统一般由时钟电路、复位电路、片外RAM、片外ROM、按键、数码管、液晶显示器、外部扩展接口等部分组成.
而对于这次的设计单片机最小系统基本电路图如下:
图7.单片机系统工作电路图
(1)、时钟源电路
单片机内部具有一个高增益反相放大器,用于构成振荡器。
通常在引脚Tell和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构如图中Y1、C1、C2。
可以根据情况选择6MHz或24MHz等频率的石英晶体,补偿电容通常选择30pF左右的瓷片电容。
(2)、复位电路
单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。
上电复位要求接通电源后,自动实现复位操作。
手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。
其结构如图中R1、C3和K1。
上电自动复位通过电容C1充电来实现。
手动按键复位是通过按键将R3与VCC接通来实现。
图8.复位电路图
(3)、计数的电路
由单片机STC89C52控制完成。
基本原理为当红外检测部分检测到光时,红外接收电路输出口将产生一个高电平信号,这个信号将供给单片机进行计数控制;
显示部分是通过P0和P2口实现。
计数控制部分是将计数脉冲送入单片机STC89C52中断入口的INT0入口,经过单片机内部对这个中断信号进行计数编程构成。
STC89C52与MCS-52指令系统完全兼容。
提供以下标准功能:
4K字节FLASH闪烁存储器、128字节内部RAM、32个I/O口线、三个16位定时/计数器、一个5向量两级中断、片内振荡器及时钟电路。
同时STC89C52可降至0HZ的静态逻辑操作,并支持两个软件的节电工作模式。
空闲方式停止CPU的工作,但是允许RAM、定时/计数器及中断系统继续工作。
掉电后保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
STC89C52单片机芯片引脚图:
图9.STC89C52单片机外型图10.STC89C52端口功能
显示部分是通过上拉电阻以及8段数码管构成.采用的是软件译码方式。
软件译码是把各字符的段选码组织到一个表中,要显示某字符先查表得到其段选码,然后送往显示器的段码线。
单片机应用系统中多采用软件译码的动态显示P0口输出的是段选码,P2口输出位选码。
而位选码占用的输出口线数取决于显示器位数。
(4)数码管显示电路
数码管显示部分采用一个两位八段数码管,可以显示计数范围0—99。
该数码管为共10个管脚,分别是:
a、b、c、d、e、f、g、h、com1、com2。
其中abcdefgh为八位段码,com1、com2为公共端为位选,而单片机应用系统中多采用软件译码的动态显示P0口输出的是段选码,P2口输出位选码。
从而显示实时数字。
该数码管为共阳极数码管当用NPN型三极管驱动时,当基极为高电平时三极管导通,位选打开。
三极管C极集电极接+5V电源,发射极与数码管两com口相连,基极接单片机片P2口,通过对P2口附高低电平来控制位选,当P2口为高电平时,三极管道通,进而使得数码管com口为高电平。
数码管显示与驱动数码管原理图如下所示:
图11.数码管显示电路
(5)报警电路
报警部分电路图如图12所示,通过改变输入蜂鸣器电流平均值的大小来改变其声音的大小、通过改变此信号的频率来改变其音频的大小。
事实上电路中不接入三极管也能实现报警的作用,但是声音特别小,三极管在电路中起到放大电流的作用。
图12:
报警电路
六.单片机系统程序设计:
其主程序图如上所示:
图13:
主程序图
汇编语言如下:
ORG0000H
LJMPMAIN
ORG0003H
LJMPINTO
ORG1000H
MAIN:
SETBEA
SETBEX0
SETBIT0
MOVR0,#0
MOVR1,#0
MOVR3,#0
MOVSP,#60H
XS:
MOVA,#02H
MOVP2,A
MOVDPTR,#TAB
MOVA,R0
MOVCA,@A+DPTR
MOVP0,A
ACALLDELAY
MOVA,#01H
MOVP2,A
MOVA,R1
MOVP0,A
LJMPXS
DEL:
MOVR6,#20
DEL1:
MOVR7,#25
DEL2:
DJNZR7,DEL2
DJNZR6,DEL1
RET
INTO:
INCR3
MOVA,R3
MOVB,#10
DIVAB
MOVR0,A
MOVR1,B
JZOUT
MOVB,#8
MOVA,B
CJNEA,#0,L3
CLRP3.6
AJMPL4
L3:
SETBP3.6
L4:
MOVA,R3
CJNEA,#99,OUT
LJMPMAIN
TAB:
DB0C0H,0F9H,0A4H,0B0H
DB099H,092H,082H,0F8H
DB080H,090H,
OUT:
RETI
END
分析程序可知,主要功能即当计数为8的倍数时蜂鸣器报警一次,当计数满100,则计数器自动清零,重新计数。
七.在实验室实现过程中遇到的问题及排除措施:
这次实验的调试过程,我们主要遇到了以下几个方面的问题:
(1)电源部分联接测试过程,电源线、地线“短路”。
联接电源部分的过程当中,为了测试是否有连线错误,我们将万用表的蜂鸣档分别连接在电路板的电源线和地线上,发现经常会响一下后停止。
检查后我们认为电路并没有连错,经过分析,判断原因是突然给跨接在正负极两端的电容一个电压跳变,电容瞬间导通而造成的结果。
联接完成后,电路无误,电源可以正常使用。
(2)显示器显示不明显。
由于单片机最小系统的P2口接位码处的电流太小,不能使显示器显示,需要增加上三极管放大电流即可,增加之后,显示器正常明亮显示。
(3)段码P0口处为什么接上拉电阻呢
P0口外接上拉电阻,是由于P0口是三态门,无上拉电阻的话,无法输出电平。
加上之后可以扩大电流。
八.设计心得体会:
经过紧张而有辛苦的两周的课程设计结束了……
这次课设虽然是短暂的,但却让我学到了很多东西。
学到了除了书本之外的很多东西,同时让我们将理论和实际相结合。
在课程设计期间我学到了很多知识和技巧,而最重要的就是学到了科学试验中的不可缺少的毅力和耐心。
说实话,课程设计真的有点累.然而,当我们四个人着手清理自己的设计成果,漫漫回味这2周的心路历程,一种少有的成功喜悦即刻使倦意顿消.虽然这是我刚学会走完的第一步,也是人生的一点小小的胜利。
通过课程设计,使我深深体会到,干任何事都必须耐心,细致.课程设计过程中,许多计算有时不免令我感到有些心烦意乱:
有几次因为不小心我接线出错,只能毫不情意地重来.但一想起老师平时对我们耐心的教导,想到今后自己应当承担的社会责任,想到世界上因为某些细小失误而出现的令世人无比震惊的事故,我不禁时刻提示自己,一定呀养成一种高度负责,认真对待的良好习惯.这次课程设计使我在工作作风上得到了一次难得的磨练。
本次的设计工作是在我尊敬的赵老师的悉心指导下完成的。
从论文的选题到具体每一步的设计思想和实现思想,无不渗透着赵老师给予我的关怀和帮助。
他为我本次设计提出了各方面的指导性意见,为我提供各方面的重要资料。
在此期间,赵老师严谨的治学态度、谦逊的品德、深奥的知识和丰富的实践经验使我受益匪浅。
这将是我一生的财富。
最后我还要感谢***、**等同学,他们始终是我的重要合作者和实际工作中的指导老师,对我思维的开阔和实验方法的改进提出了不少宝贵的建议和启发,在此也深表感谢,感谢我的朋友和同学,是你们给我的支持和帮助才让我完成了我的设计。
九.参考文献:
[1]倪晓军、章韵编,清华大学出版社,单片机原理与接口技术教程,2009
[2]康华光主编,高等教育出版社,电子技术基础(数字部分),2005
[3]康华光主编,高等教育出版社,电子技术基础(模拟部分),2005
[4]常建、程续鸿编,西安电子科技大出版社,传感器原理及工程应用,2008
[5]陈伟,基于单片机的产品自动计数器,宜宾学院,2007
十.附录
原理图如下: