最新版基于51单片机的流水线产品计数器设计毕业设计Word文档格式.docx
《最新版基于51单片机的流水线产品计数器设计毕业设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《最新版基于51单片机的流水线产品计数器设计毕业设计Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
AbstractIII
第1章绪论1
1.1、本论文的背景和意义1
1.2、主要方法和研究进展1
1.3、主要内容1
1.4、结构安排1
第2章整体设计方案2
2.1、设计方案选择2
2.2、设计方框图2
第3章硬件设计及功能3
3.1、基本介绍3
3.2、AT89C52引脚功能4
3.3、STC89c52系统结构图5
3.4、STC89c52的复位与时钟6
3.5、STC89c52单片机的基本工作电路6
3.6、本次设计的部分电路7
3.7、74HC573芯片7
3.8、显示电路8
第4章软件设计10
4.1、Proteus软件10
4.2、KeilC51软件10
4.3、软件设计流程图:
11
致谢11
结论13
参考文献14
附录1电气原理图15
附录2PCB图与3D视图16
附录3源程序17
附录4仿真效果图19
第1章绪论
1.1、本论文的背景和意义
随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越来越广,随之而来的竞争也越来越激烈。
过硬的技术也成为众多生产厂商竞争的焦点之一。
厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。
现在计数器的种类以增加到:
电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。
计数器的应用范围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制线、制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、食品、国防、包装、配料、石油、化工、发电、机床、仪表、自动化控制等行业。
1.2、主要方法和研究进展
主要方法是通过自己所学的知识来设计的,利用单片机与外围电路来共同达到所要设计的目的,但是该电路还是有很大的升级空间与拓展。
1.3、主要内容
主要内容有方案的选择与设计,介绍了两款(KeiluVision4软件与ISIS7Professional软件)辅助软件,阐述AT89C52单片机内部结构及其最小系统的组成,74HC573锁存器的使用与作用以及LED数码管的结构与驱动方法等。
1.4、结构安排
首先阐述了数字计数器在日常生活中的重要性,其次介绍硬件结构及其设计方法与软件的设计流程,最后根据硬件与流程图设计出相应的程序及代码。
第2章整体设计方案
2.1、设计方案选择
方案一:
采用多种数字逻辑电路来实现逻辑控制、主门、门控、计数单元的设计要求,这样设计的电路整体比较复杂,而且不宜完成发挥部分的功能要求。
所以方案一不采用。
方案二:
可以采用FPGA来实现逻辑控制、主门、门控、计数单元的设计要求,并且设计方便,但由于对FPGA的技术原理掌握不够熟练,所以放弃方案二。
方案三:
系统采用AT89C52为核心的单片机控制系统,实现原理图中的逻辑控制、主门、门控、计数的设计要求。
单片机计数器的方式控制寄存器TMOD中的GATE位=1时,可以很方便的进行INT0引脚的外部输入信号的时间间隔测量。
且单片机的控制电路很容易实现扩展,比如语音模块、测温I2C模块、时钟模块、AD模块等。
故采用方案三。
2.2、设计方框图
第3章硬件设计及功能
3.1、基本介绍
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。
其引脚排列与PDIP封装如下图所示。
引脚排列PDIP封装
主要功能特性:
1、兼容MCS51指令系统
2、8k可反复擦写(大于1000次)FlashROM;
3、32个双向IO口;
4、256x8bit内部RAM;
5、3个16位可编程定时计数器中断;
6、时钟频率0-24MHz;
7、2个串行中断,可编程UART串行通道;
8、2个外部中断源,共8个中断源;
9、2个读写中断口线,3级加密位;
10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;
11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。
3.2、AT89C52引脚功能
VCC:
单片机的供电电压4V-5.5V,最佳工作电压为5V。
GND:
单片机的接地引脚。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALEPROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EAVPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
P0端口[P0.0-P0.7]P0是一个8位漏极开路型双向IO端口,端口置1(对端口写1)时作高阻抗输入端。
作为输出口时能驱动8个TTL。
对内部Flash程序存储器编程时,接收指令字节;
校验程序时输出指令字节,要求外接上拉电阻。
在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)数据总线,访问期间内部的上拉电阻起作用。
P1端口[P1.0-P1.7]P1是一个带有内部上拉电阻的8位双向I0端口。
输出时可驱动4个TTL。
端口置1时,内部上拉电阻将端口拉到高电平,作输入用。
对内部Flash程序存储器编程时,接收低8位地址信息。
P2端口[P2.0-P2.7]P2是一个带有内部上拉电阻的8位双向I0端口。
对内部Flash程序存储器编程时,接收高8位地址和控制信息。
在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。
而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。
P3端口[P3.0-P3.7]P2是一个带有内部上拉电阻的8位双向I0端口。
对内部Flash程序存储器编程时,接控制信息。
除此之外P3端口还用于一些专门功能,具体如表1-1所示。
P3引脚
兼用功能
P3.0
串行通讯输入(RXD)
P3.1
串行通讯输出(TXD)
P3.2
外部中断0(INT0)
P3.3
外部中断1(INT1)
P3.4
定时器0输入(T0)
P3.5
定时器1输入(T1)
P3.6
外部数据存储器写选通WR
P3.7
外部数据存储器写选通RD
表1-1 P3端口引脚第二功能
3.3、STC89c52系统结构图
图1-1是MCS-52系列单片机的内部结构示意图。
图1-1
3.4、STC89c52的复位与时钟
MCS-52单片机具有两种复位方式,如图1-2所示。
上电复位手动复位
图1-2
MCS-52单片机时钟信号源连接如图1-3所示。
内部时钟信号源外部时钟信号源
图1-3
3.5、STC89c52单片机的基本工作电路
单片机的基本工作电路也称为单片机的最小系统,如图1-4所示。
图1-4
3.6、本次设计的部分电路
本次设计的按键控制分为两部分,按键控制电路如图1-5所示。
模拟计数控制计数清零控制
图1-5
本次设计的数据采集部分如图1-6所示。
图1-6
3.7、74HC573芯片
原理说明:
74HC573的八个锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,IO通道,双向总线驱动器和工作寄存器。
74HC573
特点:
·
三态总线驱动输出
置数全并行存取
缓冲控制输入
使能输入有改善抗扰度的滞后作用
PINNo引脚号
SYMBOL符号
NAMEANDFUNCTION名称及功能
1
OE
3StateoutputEnableInput(ActiveLOW)3态输出使能输入(低电平)
2,3,4,5,6,7,8,9
D0toD7
DataInputs数据输入
Q0toQ7
3StateLatchOutputs3态锁存输出
11
LE
LatchEnableInput锁存使能输入
10
GND
Ground接地(0V)
20
VCC
PositiveSupplyVoltage电源电压
74Hc573引脚功能表
3.8、显示电路
显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有:
发光二极管LED显示器、液晶LCD显示器、CRT显示器等。
LED显示器是现在最常用的显示器之一,如下图所示。
LED显示器的符号图共阳式、共阴式LED数码管的符号图
发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。
分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
LED数码管有共阳、共阴之分。
图是共阳式、共阴式LED数码管的原理图和符号.
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。
采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。
LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。
对于多位LED显示器,通常
都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。
图3-6数码管动态扫描的硬件连接示意图
数码管使用条件:
a、段及小数点上加限流电阻
b、使用电压:
段:
根据发光颜色决定;
小数点:
根据发光颜色决定
c、使用电流:
静态:
总电流80mA(每段10mA);
动态:
平均电流4-5mA峰值电流100mA
数码管使用注意事项说明:
(1)数码管表面不要用手触摸,不要用手去弄引脚;
(2)焊接温度:
260度;
焊接时间:
5s
(3)表面有保护膜的产品,可以在使用时撕下来。
第4章软件设计
4.1、Proteus软件
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC101216182430DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
4.2、KeilC51软件
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
致谢
论文的完成标志着我的大专三年即将结束,也意味着,新的生活又将开始了。
最近的半年则并行着找工作和写论文。
其间的起起伏伏、悲喜得失,今天想来仍旧唏嘘不已。
所幸我没有被失败击垮。
自信、坚强、乐观的态度让我坚持到了最后,并且争取了最好的结局。
通过悉心设计,在指导教师的耐心指导下,我完成了毕业设计的工作。
此次的毕业设计是我们三年来专业知识的综合运用,是对我们能力的综合考核。
这不仅涉及到对基本原理的理解,也涉及到对问题的分析能力。
通过本次毕业设计,让我对我国电子软件有了新的认识。
这也使我认识到了自己知识的匮乏和能力的有限。
从而激励我在今后的学习和工作中更要努力的学习和不断的充实自己。
在这里我尤其感谢老师。
在您的耐心指导下,我才能成功的完成这次的毕业设计,在写论文时老师严格的要求我们,培养我们强烈的责任心和工作学习的积极性,并且耐心的解答论文中出现的问题。
他还为我们指明了论文方向,校定论文方向。
在他的要求下,我不仅完成了整个设计和论文,更重要的是锻炼了我分析问题和独立思考的能力。
最后,我再一次表达我对领导以及教过我所有的老师最衷心的感谢,是你们在我前进的道路上给以引导,并无私的教给我许多专业知识以及做人的道理。
再次,让我对所有的老师及所有帮助过我的同学们致以最崇高的敬意。
“长风破浪会有时,直挂云帆济沧海。
”这是我最喜欢的诗句。
就用这话作为这篇论文的一个结尾,也是一段生活的结束。
希望自己能够记取少年时的梦想,永不放弃。
结论
本设计介绍了一种基于AT89C2052单片机的智能化光电计数系统的设计,并已成功的用于实际系统中,需要指出的是,本课程设计利用软件编程、这样做不仅占用硬件资源少,而且成本较低,如果用于强磁强电的现场环境,考虑到要加以屏蔽。
在项目设计的开始到结束本人一直认真对待,在制作的过程中遇到了很多困难,通过查阅相关资料和咨询张斌老师已逐一解决问题的同时自己也增长了加深了关与光电转换,汇编语言的深化,单片机基础知识的认识理解领悟,到最后对光电计数系统的工作原理的掌握,最终设计出了自己理解的智能化光电计数系统。
参考文献
[1]彭伟.《单片机c语言程序设计实训100例:
基于8051+Proteus仿真》
电子工业出版社,2011年.
[2]郭天祥.《新概念51单片机C语言教程:
入门、提高、开发、拓展全攻略》电子工业出版社,2009年.
[3]喻宗泉.《单片机原理与应用技术》西安电子科技大学出版社,2005年.
[4]刘松.曹金玲《单片机技术与应用》机械工业出版社,2011年.
[5]于晓平.《数字电子技术》清华大学出版社,2010年.
附录1电气原理图
本次设计的整体原理图如下图所示。
附录2PCB图与3D视图
PCB图
PCB的3D视图
附录3源程序
一、源程序代码
#include<
reg52.[]={0x3F,0x06,0x5B,0x4F,
0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};
共阴数码管编码
ucharcodewei[]={0x07,0x0b,0x0d,0x0e,};
uintcount=0;
***************延时函数****************
voiddelay(uintx)
{
uinti,j;
for(i=x;
i>
0;
i--)
for(j=110;
j>
j--);
}
***************显示函数****************
voidxianshi()
uchara;
buffer_counts[3]=count1000;
buffer_counts[2]=count%1000100;
buffer_counts[1]=count%10010;
buffer_counts[0]=count%10;
for(a=0;
a<
4;
a++)
{
P2=wei[a];
位码
P0=duan[buffer_counts[a]];
段码
delay
(1);
延时
}
***************主函数****************
voidmain()
EA=1;
开总中断
IT0=1;
下降沿触发
EX0=1;
开外部中断0
while
(1)
xianshi();
调用显示函数
if(count==10000)如果产品达到10000个
count=0;
将计数值清零
if(K3==0)如果K3按下
将计数值清零
***************外部中断0处理服务程序****************
voidEX_INT0()interrupt0
count++;
附录4仿真效果图
当前计数值为20个