基于单片机的产品自动计数器定稿.docx
《基于单片机的产品自动计数器定稿.docx》由会员分享,可在线阅读,更多相关《基于单片机的产品自动计数器定稿.docx(22页珍藏版)》请在冰豆网上搜索。
基于单片机的产品自动计数器定稿
单片机课题设计
题目:
基于单片机的产品自动计数器
姓名:
黎富强
学号:
学院:
机械与控制工程学院
班级:
机械08-3
指导老师:
蒋存波
摘要
在当今社会飞速发展的格局下,越来越多的流水线上的产品需要进行自动计数.基于单片机构成的产品自动计数器有直观和计数精确的优点,目前已在各种行业中普遍使用。
有采用机械方式的接触式触发的,有采用电子传感器这类非接触式触发的。
本文设计的计数器是采用红外对射式方式,抗干扰性好,可靠性高.本设计的指导思想是利用红外发光管发射红外线,红外接收管接收此红外线,并将其放大、整流形成高电平信号.当物挡住红外光时,接收管没有接收到红外信号,放大器将输出低电平,同时将这个电平信号送入单片机进行控制计数,并经译码驱动电路使数码管显示数值。
这样就得到要统计流水线上的产品的数量。
关键词:
自动计数、红外检测、单片机、8位数码管.
摘要…………………………………………………............................................Ⅰ
第一章绪论…………………………………………………..............................1
1.1前言………………………………………………………........1
1.2设计功能与要求……………………………………………1
1.3国内外的研究概况……………………………………………………1
1.4此次设计研究的主要内容应解决的问题……………1
第二章基于单片机构成的产品自动计数器的设计…………………………...2
2.1设计方案选择(总体框图)和原理……………………2
2.2系统各单元电路设计……………………………2
2.3.1电源供电设计.............................2
2.3.2红外线检测设计........................3
2.3.3计数、显示设计........................6
2.3系统程序设计....................................10
2.3.1程序流程图.............................10
2.3.2程序设计.............................12
2.4电路总图...............................16
第三章总结.....................................17
参考文献...................................18
致谢.......................................19
附录....................................20
第一章:
绪论
1.1、前言
在当今社会飞速发展的格局下,厂家基本采用流水线技术进行产品生产作业,而怎样对其线上的产品进行实时的、有效率的、精确的自动计数成为广大生产厂家十分关注的问题。
传统的机械式或电子式计数器(主要是用数字电路集成组件组成)电路比较复杂,元器件数量较多,故障率较高,维修比较困难,而且设置预定数值不太方便,功能不易更改且功能过于单一,适用范围较窄。
而基于单片机为核心控制的计数器有着能够实时,精确,可靠,稳定等计数优点已成为广大厂家的首选自动计数的装置。
1.2、设计功能与要求
1.整个系统有较强的抗干扰能力,随时可以进行暂停计数、复位计数操作;
2.实现一段时间产品数量的统计,计数范围:
~;
3.能够实现实时、稳定、精确地将计数值准确显示出来.
1.3、国内外的研究概况
如今的产品自动计数器大多采用非接触式的计数触发方式。
早已开发出了多种型号的专用检测芯片.而利用AT89C51为控制单元、辅以多种外围硬件搭配而成的计数装置已成为现在自动计数应用领域的潮流。
而如何提高自动计数器的实时性,抗干扰能力、稳定性是现在国内外自动计数生产厂家研究的主要课题.产品自动计数器主要用于工厂的流水线上,往往是处于高温,高噪声等极度恶劣的环境当中.而MCS-51系列单片机构成的产品自动计数器在这种环境中工作时往往会出现误动作(单片机程序跑飞)或死机(程序进入死循环).这也是基于单片机构成的产品自动计数器存在的致命问题。
1.4、此次设计研究的主要内容应解决的问题
基于单片机构成的产品自动计数器研究的主要内容包括:
如果构成检测电路、MCS-51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、MCS-51单片机的扩展。
在这个设计中主要需要解决的问题便是如何提高MCS-51单片机的抗干扰能力以及稳定性。
第二章:
基于单片机构成的产品自动计数器的设计
2.1、设计方案选择(总体框图)和原理
设计方案(系统总体框图)如图一
图一:
系统总体框图
电路的指导思路是利用红外发光管发射红外线,红外接收管接收此红外线,并将其放大、整流形成高电平信号。
当产品挡住红外光时,接收管没有接收到红外信号,放大器将输出低电平。
这个便是外部计数脉冲信号。
这个计数脉冲信号送入AT89C51单片机中进行计数控制,在经过扩展、显示驱动完成最后的显示过程。
之所以选用主要是这个方案涉及的知识面广且能达到精确、稳定的自动计数.。
2.2、系统各单元电路设计
2.2.1、电源供电电路
图二:
电源供电电路
如图二所示电源供电部分采用变压器降压、桥式整流、电容器滤波、三端稳压器LM7805稳压后供电。
电源用220V市电经变T1压器降压成9V交流电,然后经四个整流二极管(D1—D4)组成的桥式整流变成直流电压,经C1滤波后送入LM7805芯片稳压成5V直流电源供红外线发射、接收电路、AT89C51等供电.
2.3.2、外线检测部分
这个部分主要由NE555组成的红外发射电路和LM567构成的红外接收电路构成.工作原理为当红外发射二级管发出红外光,检测是否受物体遮挡,然后由红外线接收二极管将调制信号通过锁相环鉴频后输出CP计数脉冲以便单片机进行计数控制.
图三:
红外线发射电路
如图三所示,红外线发射电路以时钟定时集成芯片NE555为核心。
内部含有两个电压比较器,一个分压器,一个RS触发器,一个放电晶体管和一个功率输出级构成一个多谐振荡器。
产生一个频率在91kHz至130kHz的脉冲波(这是理论值。
由于元件偏差,以实际测量为准),通过3脚输出脉冲波,由红外线发光二极管(D1)发射出去。
频率计算方法:
F=1.443/(R1+2R2)C1
因此根据公式计算我们知道此设计中红外线发光二极管的发射频率为12.4KHZ—94.5kHZ。
发射的是脉冲波。
图四:
NE555芯片电路引脚以及芯片外型
NE555芯片引脚功能为:
引脚
功能
引脚
功能
功能
功能
引脚
功能
1脚
芯片GND
3脚
输出
5脚
控制电压
7脚
放电
2脚
触发
4脚
复位
6脚
门限(阈值)
8脚
电源电压Vcc
NE555芯片可构成三大类型的电路:
单稳态电路、双稳态电路、无稳态电路。
在本设计中使用的是间接反馈型无稳态电路。
其主要特点是振荡电路直接连接在电源上。
图五:
红外线接收电路
红外接收电路如图五所表示是以锁相环集成芯片LM567为核心,构成一个鉴频电路。
如图五所示,红外线接收二极管将感应到的脉冲信号通过电容C1耦合到三极管Q1的基极,由Q1组成的放大电路把感应信号放大约100倍后,送给LM567的3脚,由LM567完成鉴频。
如果接收信号在LM567的捕捉带宽内,8脚输出低电平;否则8脚维持高电平。
5脚,6脚上的电容、电阻决定了内部压控晶体振荡器的中心频率(f1=1/1.1R4C5)当f=f1时LM567开始工作(即构成红外接收电路)。
1脚上的电容C4和二脚上的电容C3接地构成输出滤波网络和低通滤波网络,在具体值的设置上C4通常设定为C3的两倍。
利用LM567锁相环解码芯片的好处是可以提高整个检测电路的检测灵敏度和消除太阳光等背景光的干扰,从而提高了整个检测电路的干扰能力。
如果在对射管(接收管和发射管)外加滤光片便可以更好的提高抗干扰能力。
图六:
LM567的引脚图与内部功能图
2.2.3计数、显示部分设计
图七:
计数、显示原理图
计数显示部分如图七所示。
由单片机AT89C51控制完成。
基本原理为当红外检测部分检测到有产品经过时,红外接收电路LM567芯片的8脚输出口将产生一个低电平信号,这个信号将供给单片机进行计数控制;显示部分是通过扩展8155I/0口实现,通过集成驱动芯片BIC8718完成最终的显示.
计数控制部分是将计数脉冲(负脉冲有效)送入单片机AT89C51两个中断入口的INT0入口,经过单片机内部对这个中断信号进行计数编程构成.
AT89C51与MCS-51指令系统完全兼容。
提供以下标准功能:
4K字节FLASH闪烁存储器、128字节内部RAM、32个I/O口线、2个16位定时/计数器、一个5向量两级中断、一个全双工串行通信口、片内振荡器及时钟电路。
同时AT89C51可降至0HZ的静态逻辑操作,并支持两个软件的节电工作模式。
空闲方式停止CPU的工作,但是允许RAM、定时/计数器、串行通信口及中断系统继续工作。
掉电后保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
AT89C51单片机芯片外型如图八、
图八:
AT89C51单片机外型图九:
AT89C51P3口端口功能
显示部分是通过8155芯片扩展I/O口和显示驱动芯片BIC8178以及8段数码管构成.采用的是软件译码方式。
软件译码是把各字符的段选码组织到一个表中,要显示某字符先查表得到其段选码,然后送往显示器的段码线。
单片机应用系统中多采用软件译码的动态显示。
图七中PB口输出的是段选码,PA口输出位选码。
对应于MCS——51单片机的I/O口扩展普遍的选用8155和8255系列。
选择使用8155扩展芯片。
Intel8155芯片内包含有256个字节RAM,2个8位、1个6位的可编程并行I/O口和1个14位定时器/计数器。
8155可直接与MCS-51单片机连接不需要增加任何硬件逻辑。
由于8155既有RAM又具有I/O口,因而是MCS-51单片机系统中最常用的外围接口芯片之一,8155的引脚及内部结构如图十:
图十:
8155引脚以及内部引脚图十一:
8155外部引脚图
8155芯片外部引脚图如图十五。
8155共有40个引脚,采用双列直插式封装。
各引脚功能如下:
AD7~AD0:
地址数据总路线。
单片机和8155之间的地址、数据、命令、状态信息都是通过它传送的。
/CE:
片选信号线,低电平有效。
/RD:
存储器读信号线,低电平有效。
/WR:
存储器写信号线,低电平有效、
ALE:
地址及片选信号锁存线,高电平有效,其后沿将地址及片选信号锁存到器件中。
IO//M:
I/O接口与存储器选择依赖线,高电平表示选择I/O接口,低电平选择存储器。
PA7~PA0:
A口输入/输出线。
PB7~PB0:
B口输入/输出线。
PC5~PC0:
C口输入/输出或控制信号线。
用作控制信号线时,其功能如下:
PC0:
AINTR(A口中断信号线)。
PC1:
ABF(A口缓冲器满信号线)。
PC2:
/ASTB(A口选通线)。
PC3:
BINTR(B口中断信号线)。
PC4:
BBF(B口缓冲器满信号线)。
PC5:
/BSTB(B口选通线)。
TIMERIN:
定时器/计时器输入端。
/TIMEROUT:
定时器/计数器输出端。
RESET:
复位信号线。
VCC:
+5V电源。
VSS:
地。
8155内部结构包括两个8位并行输入/输出端口,一个6位并行输入/输出端口,256个字节的静态随机存取存储器RAM,一个地址锁存器,一个14位的定时器/计数器以及控制逻辑电路,各部件和存储器地址的选择由IO//M信号决定。
当IO//M=0(低电平)时,表示AD7~AD0输入的是存储器地址,寻址范围为00H~FF。
当IO//M=1(高电平)时,表示AD7~AD0输入的是I/O接口地址,其编码如下表所示。
其中A7~A3可经译码器进行译码,产生片选信号/CE,内部寄存器和口地址由A2~A0给出。
8段数码显示管的型号选DS-2181Bx:
图十二:
LDS-2181Bx图十三:
暂停电路
图十四时钟电路(晶振)图十五带手动看门狗的复位电路
2.3、系统程序设计
2.3.1、程序流程图
图十六主程序流程图图十七主程序初始化流程图图十八中断计数程序流程图
图十九:
示子程序流程图
2.3.2、程序设计
ORG0000H;上电、复位入口地址
LJMPSTART;转向主程序初始化
ORG0003H;INT0中断入口地址
LJMPINT;转向INT0中断服务程序
ORG000BH;T0中断入口地址
LJMPSEVER;转向T0中断服务程序
ORG0030H;主程序初始化
START:
MOVSP,#60H;置堆栈指针
SETBIT0;置INT0边沿触发方式
MOVIP,#01H;置INT0为高优先级
MOVIE,#81H;CPU开中断、INT0中断
MOV78H,#00
MOV79H,#00
MOV7AH,#00
MOV7BH,#00
MOV7CH,#00
MOV7DH,#00
MOV7EH,#00
MOV7FH,#00
MAIN:
LJMPMAIN;转主程序执行,并等待中断
ORG0100H;INT0中断服务程序,中断一次,数量加1
INT:
PUSHACC;INT0中断服务程序
PUSHPAW
JNBP1.0,DISPLAY
MOVA,78H
ADDA,#1
MOV78H,A
CLRA
ADDCA,79H
MOV79H,A
CLRA
ADDCA,7AH
MOV7AH,A
CLRA
ADDCA,7BH
MOV7BH,A
CLRA
ADDCA,7CH
MOV7CH,A
CLRA
ADDCA,7DH
MOV7DH,A
CLRA
ADDCA,7EH
MOV7EH,A
CLRA
ADDCA,7FH
MOV7FH,A
LCALLDISPLAY
POPPAW
POPACC
RETI
DISPLAY:
MOVA,#B;8155初始化
MOVDPTR,#7F00H;使DPTR指向8155控制寄存器端口
MOVX@DPTR,A
MOVR0,#78H;动态显示初始化,使R0指向缓冲区首地址
MOVR3,#7FH;首选位字节送R3
MOVA,R3
LDO:
MOVDPTR,#7F01H;使DPTR指向PA口
MOVX@DPTR,A;选通显示器低位(最右端一位)
INCDPTR;DPTR指向PB口
MOVA,@RO;读要显示数
ADDA,#0DH;调整距段码表首的偏移量
MOVCA,@A+PC;查表取得段选码
MOVX@DPTR,A;段选码从PB口输出
LCALLDL1;调用1MS延时子程序
INCR0;指向缓冲区下一单元
MOVA,R3;位选码送累加器A
JNBACC.0,LD1;判断6位是否显示完毕,
RRA;未显示完,把位选数字变为下一位选字
MOVR3,A;修改后的位选字送R3
AJMPLD0;循环实现按位序依次显示
LD0:
RET
DSEG:
DB3FH,06H,5BH,4FH,66H,6DH,7DH;断码表
DB07H,7FH,6FH
DL1:
MOVR7,#02H;延时子程序
DL:
MOVR6,#0FFH
DLO:
DJNZR6,DL6
DJNZR7,DL
RET
程序说明:
R0—显示缓冲区数据指针,初值为78H
R3—位扫描寄存器,初值7F
R5、R7—减1计数器
显示缓冲区——设80C31片内RAM的78H~7FH单元位显示缓冲区,依次(从低位到高位)存放八个要显示的字符/数据在段选码地址表中的序号。
2.5、电路总图
图二十:
电路总图
第三章:
结论
在研究这个课程设计的过程当中面对很多选择:
在检测单元的选择上是选择光电传感器还是红外对射式曾经让我迷茫.在MCS-51单片机的选择上是选择内部具有4KB字节的闪烁存储器的AT89C51还是选择内部具有8KB字节的闪烁存储器的AT89C2051曾经也让我困惑不已(其实任选一款都可以实现).而最让我感到迷茫的是否利用8155进行I/O口的扩展,其实通过设计要求可以看出不难看出根本不需要对AT89C51进行扩展就可有完成0-的计数显示功能(采用7段数码管显示可以不扩展)。
而我最终还是选择了扩展是因为虽然这样让电路复杂了许多但也让我对单片机的I/O口扩展部分详细进行了重新学习和掌握。
本次设计的基于单片机构成的产品自动计数器,外加暂停电路、带手动看门狗的复位电路等功能按键,上电进行计数工作。
当生产线上每个产品通过挡住红外光时,接收管没有收到红外线信号,放大器将输出低电平脉冲,同时将这个电平脉冲信号送入AT89C51单片机中进行计数控制,并经译码驱动电路使数码管显示数值,这样实现流水线上产品数量的统计。
在工作过程中,可以随时接暂停按钮进行计数暂停;随时按复位按钮进行复位重新计数等功能。
计数器能够实现实时、稳定、可靠、精确地将计数值准确显示出来的优点,计数工作非常灵活,再外加扩展8155心片,系统存储量更大,可附加其他电路,实现更强大的功能,故通用性广。
参考文献
[1]高精度数字显示转速测试仪的研究[J]张军农机化研究2000(3)74.
[2]高可靠红外线传感器控制开关[J]陈勇仪表技术与传感器2004(5).
[3]CMOS4000系列60种常用集成电路的应用[M]魏丑君等人民邮电出版社,1995.
[4]中国集成电路大全CMOS集成电路[M]中国集成电路大全编写委员会国防工业出版社,1985.
[5]数子集成电路应用精粹[M]肖景和人民邮电出版社2002.
[6]传感器应用电路详解[M]罗四维人民邮电出版社1993.
[7]传感器应用制作入门[M]吴桂秀浙江科学技术出版社2004.
[8]单片机原理及应用李建忠西安电子科技大学出版社2002.
[9]电子线路CAD实用教程潘永雄等西安电子科技大学出版社2002.
[10]红外探测与控制电路[M]陈永莆人民邮电出版社2005.
[11]8051单片机彻底研究基础篇林伸茂人民邮电出版社2004.
致谢
本设计在选题及研究过程中得到蒋存波老师的悉心指导。
之所以能够很好地完成此次设计,更多的知识来源于蒋老师在课堂上给予我们的讲解,他不学识渊博,对专业孜孜以求,精益求精;而且在百忙之余仍然读书不辍,不断探求;为人师表,率先垂范;传道授业,呕心沥血。
他也是我们学校最早一批接触自动化类学习与研究工作之一。
在课堂上,他总是会不时地把他在研究过中遇到过的问题及解决方法讲解给我们,理论联系实际,让我们学习单片机有很大的催化作用,为此让我在此设计中也减少了许多困难。
蒋老师严谨的教学态度和坚韧的探索精神将使我受益终生,非常感谢您!
!
!
在此也感谢我们的宿友们,正是由于他们的帮助和支持,在设计过程中提出了许多宝贵的建议,证我在设计中更快的学成设计,谢谢你们!
!
!
附录:
本次毕业设计所用到的集成电路和电子元件如下: