设计基于单片机的产品自动计数器文档格式.docx
- 文档编号:19405199
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:18
- 大小:370.59KB
设计基于单片机的产品自动计数器文档格式.docx
《设计基于单片机的产品自动计数器文档格式.docx》由会员分享,可在线阅读,更多相关《设计基于单片机的产品自动计数器文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
电子计数器到目前为止已有30多年的发展史。
早期,设计师们追求的目标主要是扩展计数范围,再加上提高计数精度、稳定度等,这些也是人们衡量电子计数器的技术水平,决定电子计数器价格高低的主要依据.目前这些基本技术日益完善,成熟。
应用现代技术可以轻松地将电子计数器的计数上限扩展到无限大。
当今,单片微型计算机技术迅速发展,基于单片机技术开发的计数设备和产品广泛应用到各个领域,单片机技术产品和设备促进了生产技术水平的提高.企业迫切需要大量熟练掌握单片机技术并能开发、应用和维护管理这些智能化产品的高级工程技术人才.单片机以体积小、功能强、可靠性高、性能价格比高等特点,已成为实现工业生产技术进步和开发机电一体化和智能化测控产品的重要手段。
已经实现或者部分实现,但要真正完美的实现这些目标,对于设计者来说,还有许多工作要做,而不是表面看来似乎发展到头了.电子计数器是一种多功能的电子测量仪器。
它利用电子学的方法测出一定时间内输入的脉冲数目,并将结果以数字形式显示出来。
1.2设计要求
1.整个系统有较强的抗干扰能力.
2.计数范围:
000000~999999.
3.将计数值准确显示出来.
1.3国内外的研究情况
如今的产品自动计数器大多采用非接触式的计数触发方式。
早已开发出了多种型号的专用检测芯片.而利用AT89C2051为控制单元、辅以多种外围硬件搭配而成的计数装置已成为现在自动计数应用领域的潮流。
而如何提高自动计数器的实时性,抗干扰能力、稳定性是现在国内外自动计数生产厂家研究的主要课题.产品自动计数器主要用于工厂的流水线上,往往是处于高温,高噪声等极度恶劣的环境当中.而MCS-51系列单片机构成的产品自动计数器在这种环境中工作时往往会出现误动作(单片机程序跑飞)或死机(程序进入死循环).这也是基于单片机构成的产品自动计数器存在的致命问题。
1.4研究的主要内容以及存在的问题
基于单片机构成的产品自动计数器研究的主要内容包括:
如果构成检测电路、MCS-51单片机用何种方式对外部计数脉冲进行计数显示控制、LED显示驱动模块的选择、MCS-51单片机的扩展。
在这个设计中主要需要解决的问题便是如何提高MCS-51单片机的抗干扰能力以及稳定性。
2系统的总体设计
2.1、方案论证与选择
方案一、如图一
图一:
方案一
原理阐述:
专业检测芯片形成计数脉冲后送给控制单元AT89C2051单片机
通过对它片内计数、显示编程。
PS7219是专用LED显示驱动芯片可以同时驱动8个7段数码管.X2504P是一块有电源电压监控、EEPROM和看门狗定时器电路三种功能于一体的芯片,它保证了在电源接通、关断、瞬间电源电压不稳时,不会造成系统死机、数据误写或误动作,大大提高了系统的可靠性和抗干扰能力.HT7044A能够保证系统突然掉电后保护数据。
方案二、如图二
图二:
方案二
原理阐述:
红外发射电路(以NE555为核心)和红外接收电路(由LM567为核心)构成红外检测单元以及形成计数脉冲、经过AT89C51外部中断对其片内计数、显示编程、最后通过显示驱动芯片连接上LED显示器就完成了最后的计数显示.
方案三、如图三
图三:
方案三
检测单元同方案二一样、不同的便是计数显示部分.方案三使用了四合一芯片CL102.它是集译码、驱动、锁存、显示一体.
以上三个方案各有着自己的优缺点:
方案一既可完美的实现产品自动计数功能且能让系统处于异常状态和抗干扰时通过外围专用芯片得到非常好的解决.外围电路架设相对简单、在市场上属于高端自动计数产品.同时它也暴露出了一个重大问题:
由于成本太贵的原因此类产品并没有得到普及.如果用此方案进行设计只需要了解各专用芯片的引脚功能以及外围连接方法就可以实现自动计数,并没有很好的达到我们做毕业设计的目的,故方案一虽然完美,但也只有舍弃.
方案三是一个简单的产品自动计数器.价格低廉、计数精确.但在系统处于异常状态时工作十分不稳定、也是属于现在产品自动计数市场上的淘汰产品.仅用于在计数要求不高的场合中.这个方案太过于简单故不选用.
方案二便是这次毕业设计选用的方案.之所以选用主要是这个方案涉及的知识面广且能达到精确、稳定的自动计数.但也有一个致命的缺点整个系统的抗干扰能力较弱、系统掉电后不能保存数据.在系统处于异常状态时容易出现误动作或死机.这也是此设计着重解决的问题。
2.2系统总体框图和原理
系统总体框图、如图四
图四:
系统总体框图
原理:
电路的指导思想是利用红外发光管发射红外线,红外接收管接收此红外线,并将其放大、整流形成高电平信号。
当有人或物挡住红外光时,接收管没有接收到红外信号,放大器将输出低电平。
这个便是外部计数脉冲信号。
这个计数脉冲信号送入AT89C51单片机中进行计数控制,在经过扩展、显示驱动完成最后的显示过程。
3系统硬件电路设计
3.1单片机
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱很低,一般不超过10元即可。
用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!
它主要是作为控制部分的核心部件。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
3.2红外线检测部分
这个部分主要由NE555组成的红外发射电路和LM567构成的红外接收电路构成.工作原理为当红外发射二级管发出红外光,检测是否受人或者物体遮挡,然后由红外线接收二极管将调制信号通过锁相环鉴频后输出CP计数脉冲以便单片机进行计数控制.
图五:
红外线发射电路
如图五所示,红外线发射电路以时钟定时集成芯片NE555为核心。
内部含有两个电压比较器,一个分压器,一个RS触发器,一个放电晶体管和一个功率输出级构成一个多谐振荡器。
产生一个频率在91kHz至130kHz的脉冲波(这是理论值。
由于元件偏差,以实际测量为准),通过3脚输出脉冲波,由红外线发光二极管(D1)发射出去。
频率计算方法:
F=1.443/(R1+2R2)C1
因此根据公式计算我们知道此设计中红外线发光二极管的发射频率为12.4KHZ—94.5kHZ。
发射的是脉冲波。
图六:
NE555芯片电路引脚以及芯片外型
NE555芯片引脚功能为:
1脚:
芯片GND2脚:
触发3脚:
输出4脚:
复位5脚:
控制电压6脚:
门限(阈值)7脚:
放电8脚:
电源电压Vcc.
NE555芯片可构成三大类型的电路:
单稳态电路、双稳态电路、无稳态电路。
在本设计中使用的是间接反馈型无稳态电路。
其主要特点是振荡电路直接连接在电源上。
图七:
红外线接收电路
红外接收电路如图七所表示是以锁相环集成芯片LM567为核心,构成一个鉴频电路。
红外线接收二极管将感应到的脉冲信号通过电容C1耦合到三极管01的基极,由Q1组成的放大电路把感应信号放大约100倍后,送给LM567的3脚,由LM567完成鉴频。
如果接收信号在LM567的捕捉带宽内,8脚输出低电平;
否则8脚维持高电平。
5脚,6脚上的电容、电阻决定了内部压控晶体振荡器的中心频率(f1=1/1.1R4C5)当f=f1时LM567开始工作(即构成红外接收电路)。
1脚上的电容C4和二脚上的电容C3接地构成输出滤波网络和低通滤波网络,在具体值的设置上C4通常设定为C3的两倍。
利用LM567锁相环解码芯片的好处是可以提高整个检测电路的检测灵敏度和消除太阳光等背景光的干扰,从而提高了整个检测电路的干扰能力。
如果在对射管(接收管和发射管)外加滤光片便可以更好的提高抗干扰能力。
而根据《单片机原理与应用》书中可知,单片机正常工作频率为f=fx/24.(fx为晶振频率,一般为12MHZ)即0——500KHZ.8脚输出的计数脉冲频率为12.4KHZ—94.5kHZ.从而在电路设计上满足了单片机控制的基本要求。
从上面的分析上不难看出,利用NE555和LM567构成检测单元其实是种浪费现象。
市面上的主流产品计数产品在检测部分一般都用到了专用检测芯片如(EST108配合光电传感器构成,检测精度非常高)。
NE555和LM567一般广泛运用与多路红外遥控系统中(遥控距离为15—30米、如多路电灯的开关控制、多路水龙头的控制中)。
NE555和LM567构成多路遥控电路时需外加一个双稳态电路控制继电器工作(这是完成电子控制到机械控制),由于篇幅原因这里不做过多阐述。
3.3计数、显示部分
图八:
计数显示部分
计数显示部分如图八所示。
由单片机AT89C51控制完成。
基本原理为当红外检测部分检测到有产品经过时,红外接收电路LM567芯片的8脚输出口将产生一个低电平信号,这个信号将供给单片机进行计数控制;
显示部分是通过扩展8155I/0口实现,通过集成驱动芯片BIC8718完成最终的显示.
计数控制部分是将计数脉冲(负脉冲有效)送入单片机AT89C51两个中断入口的INT0入口,经过单片机内部对这个中断信号进行计数编程构成.AT89C51与MCS-51指令系统完全兼容。
提供以下标准功能:
4K字节FLASH闪烁存储器、128字节内部RAM、32个I/O口线、两个16位定时/计数器、一个5向量两级中断、一个全双工串行通信口、片内振荡器及时钟电路。
同时AT89C51可降至0HZ的静态逻辑操作,并支持两个软件的节电工作模式。
空闲方式停止CPU的工作,但是允许RAM、定时/计数器、串行通信口及中断系统继续工作。
掉电后保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
AT89C51单片机芯片外型如图九、
图九:
AT89C51单片机外型图十:
AT89C51P3口端口功能
显示部分是通过8155芯片扩展I/O口和显示驱动芯片BIC8178以及8段数码管构成.采用的是软件译码方式。
如图八所示。
软件译码是把各字符的段选码组织到一个表中,要显示某字符先查表得到其段选码,然后送往显示器的段码线。
单片机应用系统中多采用软件译码的动态显示。
图八中8155PB口输出的是段选码,PA口输出位选码。
而位选码占用的输出口线数取决于显示器位数。
3.48155部分
对应于MCS----51单片机的I/O口扩展普遍的选用8155和8255系列。
8155和8255扩展芯片都是通用可编程并行I/O口扩展芯片,40个引脚封装,在这个设计当中我们选择使用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给出。
目前数码显示驱动芯片的主流产品有:
74LS系列、CD4094+ULN2003(2803),
74HC595+ULN2003(2803),TPIC6B595,AMT9095B,AMT9595、BIC8718等。
8段数码显示管的型号有TOP-2181Ax/Bx、DS-2181Bx等。
3.5电源供电部分
图十三:
电源供电电路
如图十三所示电源供电部分采用变压器降压、桥式整流、电容器滤波、三端稳压器7805稳压后供电。
电源用220V市电经变X1压器降压成9V交流电,然后经四个整流二极管(D1—D4)组成的桥式整流变成直流电压,经C1滤波后送入7805芯片稳压成5V直流电源供红外线发射、接收电路、AT89C51等供电.
4系统的程序设计
4.1程序流程图
图十四:
主程序流程图
图十五:
中断计数程序流程图
4.2程序设计
#include<
reg52.h>
#defineucharunsignedchar
#definestaticunsignedlongint
sbitbb=P3^2;
//外部中断位声明
staticcount,shiwan,wan,qian,bai,shi,ge;
staticdisnum;
ucharcodetabledu[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
display(uchar,uchar,uchar,uchar,uchar,uchar);
delay(char);
voidmain()
{
count=0;
EA=1;
//总中断开
EX0=1;
//外部中断0开
IT0=1;
//下降沿触发
TMOD=0xf0;
TR1=1;
while
(1)
{
if(disnum==1000000)//计数值到一百万后清0
disnum=0;
display(shiwan,wan,qian,bai,shi,ge);
//显示程序
shiwan=disnum/100000;
wan=(disnum-(shiwan*100000))/10000;
qian=(disnum-(shiwan*100000)-(wan*10000))/1000;
bai=(disnum-(shiwan*100000)-(wan*10000)-(qian*1000))/100;
shi=(disnum-(shiwan*100000)-(wan*10000)-(qian*1000)-(bai*100))/10;
ge=(disnum-(shiwan*100000)-(wan*10000)-(qian*1000)-(bai*100)-shi*10)%10;
}
}
voidtim1()interrupt0
count++;
//计数++
disnum++;
//显示++
display(ucharshiwan,ucharwan,ucharqian,ucharbai,ucharshi,ucharge)
P2=0xc0;
P0=tabledu[shiwan];
P2=0x81;
delay(0);
P0=tabledu[wan];
P2=0x82;
P0=tabledu[qian];
P2=0x84;
P0=tabledu[bai];
P2=0x88;
P2=0xc0;
P0=tabledu[shi];
P2=0x90;
delay(0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 基于 单片机 产品 自动 计数器