届基于单片机的自动停车收费系统毕业设计.docx
《届基于单片机的自动停车收费系统毕业设计.docx》由会员分享,可在线阅读,更多相关《届基于单片机的自动停车收费系统毕业设计.docx(58页珍藏版)》请在冰豆网上搜索。
![届基于单片机的自动停车收费系统毕业设计.docx](https://file1.bdocx.com/fileroot1/2022-10/29/ca2dde12-4e67-4ceb-b86e-1f5f992ee2eb/ca2dde12-4e67-4ceb-b86e-1f5f992ee2eb1.gif)
届基于单片机的自动停车收费系统毕业设计
3.1.1单片机的选择
MCS-51单片机硬件结构及其一些主要特点:
1.内部程序存储器和内部数据存储器
2.输入/输出口
MCS-51单片机内的I/O口的数量和种类较多且齐全,尤其是它有一个全双工的串行口。
3.外部程序存储器和外部数据存储器寻址空间
MCS-51可对64KB的外部数据存储器寻址且不受该系列中各种芯片型号的影响,而对程序存储器是内外总空间为64KB.
4.中断与堆栈
MCS-51有5个中断源,分为2个优先级,每个中断源的优先级是可编程的,它的堆栈位置也是可编程的,堆栈深度可达128字节。
MCS-51子系列有2个16位的定时/计数器,通过编程可以实现四种工作模式。
MCS-52子系列有3个16位的定时/计数器。
MCS-51在内部RAM中开设了四个通用工作寄存器区,共32个通用寄存器,以适应多种中断或子程序嵌套的要求。
6.指令系统
MCS-51是一个功能很强的指令系统,主要表现在MCS-51的指令系统中增添了减法、乘法、除法、比较、堆栈操作和多种位操作指令。
[5]当振荡器频率接最高12MHZ时,大部分指令执行时间为1µs,少部分为2µs,乘除指令的执行时间也只有4µs。
7.布尔处理器
特别值得一提的是MCS-51的布尔处理器。
它实际上是一个完整的一个微计算机,这个一位的微机有自己的CPU,位寄存器、I/O口和指令集。
把八位微机和一位微机结合在一起,是微机技术上的一个突破。
一位机在开关决策、逻辑电路仿真和实时测控方面非常有效,而八位机在运算处理、智能仪表常用的数据采集方面有明显的长处。
在MCS-51系列单片机中八位机和一位机(布尔处理器)的硬件资源是复合在一起的,二者相辅相成,这是MCS-51在设计上的精美之处,也是一般微机所不具备的。
[1]
3.1.289C51的引脚介绍
图3-1单片机引脚图
掌握MCS-51单片机,应首先了解MCS-51的引脚,熟悉并牢记各引脚的功能。
MCS-51系列中各种芯片的移交是互相兼容的。
制造工艺为HMOS的MCS-51的单片机都采用40只引脚的双列直插封装(DIP方式,如图所示。
目前大多树为此类封装方式。
制造工艺为CHMOS的8031/89C51/87C51除采用DIP封装方式以外,还采用方行封装方式,为44只引脚(其中4只是无用的引脚)如图上图所示。
40只引脚按其功能来分,可分为如下3类:
1.电源及时钟引脚:
Vcc、Vss;XTAL1、XTAL2。
2.控制引脚:
/PSEN、ALE、/EA、RESET
3.I/O口引脚;P0、P1、P2、P3、为4个8位I/O口的外部引脚。
下面来介绍各引脚的功能。
电源及时钟引脚
1电源引脚
电源引脚接入单片机的工作电源
(1)Vcc(40引脚):
接+5V电源。
(2)Vss(20引脚):
接地
2时钟引脚
2个时钟引脚XTAL1,XTAL2外接晶体与片内的反相放大器构成了1个振荡器,它为单片机提供了时钟信号。
2个时钟引脚也可以外接独立的晶体振荡器。
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
[8]晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
型号同样为AT89C51的芯片,在其后面还有频率编号,有12,16,20,24MHz可选。
大家在购买和选用时要注意了。
如AT89C5124PC就是最高振荡频率为24MHz,40P6封装的普通商用芯片。
根据综上分析,此次设计中的最小系统的设计采用89C51芯片作为最小系统芯片是最佳选择。
[1]
(1)XTAL1(19引脚):
接外部晶体1个引脚。
该引脚内部是1个反相放大器的输入端。
这个反相放大器构成了片内振荡器/如果采用外接晶体振荡器时,此引脚应接地。
(2)XTAL2(18引脚):
接外部晶体的另一端,在该引脚内部接至内部反相放大器的输出端。
若采用外部时钟振荡器时,该引脚接收时钟振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。
2控制引脚
此类引脚提供控制信号,有的引脚还具有复用功能。
(1)RST/Vpd(9引脚):
RST(RESET)是复位信号输入断,高电平有效。
当单片机运行时,在此引脚加上持续时间大于2个机器周期的高电平时候,就可以完成复位操作。
在单片机正常工作时,此引脚应为≦0.5V低电平。
Vpd为本引脚的第二功能,即备用电源的输入断。
当主电源Vcc发生故障,降低到某一规定值的低电平时,将+5V电源自动接入RST端,为内部RAM提供备用电源,以保证片内RAM中的信息不丢失,从而使单片机在复位后能继续正常运行。
ALE引脚输出为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。
当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器锁存的锁存控制信号。
即使不访问外部锁存器,ALE端仍有正脉冲号输出,此频率为时钟振荡频率的1/6。
如果有脉冲信号输出,则单片机基本上是完好的。
应该注意的是,每当MCS-51访问外部数据存储器时,在2个机器周期中ALE只出现1次,即丢失1个ALE脉冲。
因此,严格来说,用户不宜用ALE做精确的时钟源或定时信号。
ALE端可以驱动8个LS型TTL负载。
/PROG为本引脚的第二功能。
在对片内EPROM型单片机编程写入时,此引脚作为编程脉冲输入端
(3)/PSEN:
程序存储器允许输出控制端。
在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为读外部程序存储器的选通信号。
此引脚外接部程序存储器的/OE端。
/PSEN端可以驱动8个LS型TTL负载。
如果检查一个MCS-51单片机应用系统上电后,CPU能否正常到外部程序存储器读取指令码,可用示波器查/PSEN端有无脉冲输出。
(4)/EA/Vpp(EnableAddress/VoltagePulseofPrograming,31脚):
/EA功能为内外程序存储器选择控制端。
当/EA引脚为高电平时,单片机访问片内程序存储器,但在PC(程序计数器)值超过0FFFH时,即超出片内程序存储器的4KB地址范围,将自动转向执行外部程序存储器内的程序。
当/EA引脚为低电平时,单片机则只访问外部程序存储器,不论是否有内部程序存储器。
对于8031来说,因其无内部程序存储器,所以该引脚必须接地,这样只能选择外部程序存储器。
Vpp为本引脚的第二功能。
在对EPROM型单片机8751内EPROM固化编程时,用于施加叫高的编程电压。
[10]对于89C51,则加在Vpp引脚的编程电压为+12V或+5V。
I/O口引脚
(1)P0口:
双向8位三态I/O口,此口为地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。
(2)P1口:
8位准双向I/O口,可驱动4个LS型TTL负载。
(3)P2口:
8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。
(4)P3口:
8位准双星I/O口,双功能复用口,可驱动4个LS型TTL负载。
这里要特别注意准双向与双向三态口的差别。
P3口的第二功能
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
P1口,P2口,P3口是3个8位双向的I/O口,各口线在片内均有固定的上拉电阻。
当这3个准双向I/O口作输入口使用时,要向该口先写1,另外准双向I/O口无高阻的“浮空”状态,故称为双向三态I/O口。
[6]
3.1.389C51单片机的存储器
MCS-51单片机的存储器分为:
1)程序存储器(最大空间64K)
2)片内数据存储器(00H-1FH:
工作寄存器,只有R0、R1可作为指针使用、20H-2FH:
位寻址区、30H-7FH:
数据缓冲区)
3)特殊功能寄存器(21个)
4)位寻址空间(211位)
5)外部数据寄存器(最大空间64K)
但在逻辑上,即从用户的角度上,8051单片机有三个存储空间:
1、片内外统一编址的64K的程序存储器地址空间(MOVC)
2、256B的片内数据存储器的地址空间(MOV)
3、以及64K片外数据存储器的地址空间(MOVX)
在访问三个不同的逻辑空间时,应采用不同形式的指令(具体我们在后面的指令系统学习时将会讲解),以产生不同的存储器空间的选通信号。
程序内存ROM
寻址范围:
0000H~FFFFH容量64KB
EA=1,寻址内部ROM;EA=0,寻址外部ROM
地址长度:
16位
作用:
存放程序及程序运行时所需的常数。
七个具有特殊含义的单元是:
0000H——系统复位,PC指向此处;
0003H——外部中断0入口
000BH——T0溢出中断入口
0013H——外中断1入口
001BH——T1溢出中断入口
0023H——串口中断入口
002BH——T2溢出中断入口
内部数据存储器RAM
物理上分为两大区:
00H~7FH即128B内RAM和SFR区。
作用:
作数据缓冲器用。
图3-2是8051单片机存储器的空间结构图
图3-2
程序存储器
一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。
那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。
程序相当于给微处理器处理问题的一系列命令。
其实程序和数据一样,都是由机器码组成的代码串。
只是程序代码则存放于程序存储器中。
[1]
MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。
对于内部无ROM的8031单片机,它的程序存储器必须外接,空间地址为64kB,此时单片机的端必须接地。
强制CPU从外部程序存储器读取程序。
对于内部有ROM的8051等单片机,正常运行时,则需接高电平,使CPU先从内部的程序存储中读取程序,当PC值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。
当=1时,程序从片内ROM开始执行,当PC值超过片内ROM容量时会自动转向外部ROM空间。
当=0时,程序从外部存储器开始执行,例如前面提到的片内无ROM的8031单片机,在实际应用中就要把8031的引脚接为低电平。
[11]
8051片内有4kB的程序存储单元,其地址为0000H—0FFFH,单片机启动复位后,程序计数器的