第4章 系统硬件设计
4.1 AT89C52单片机简介
单片机是将中央处理器,随机存储器,只读存储器,定时器芯片和I/O接口电路集成于一个芯片上的微控制器。
ATMEL公司的89C52单片机,是增强型RISC内载Flash的单片机,在芯片上的Flash存储器附在用户的产品中,可随时编程,在线编程,使用户的产品设计容易,更新换代方便。89C52单片机采用增强的RISC结构,使其具有高速处理能力,在一个时钟周期内可执行复杂的指令,每MHz可实现1MIPS的处理能力。89C52单片机工作电压为2.7~6.0V,可以实现耗电最优化。89C52的单片机广泛应用于计算机外部设备,工业实时控制,仪器仪表,通讯设备,家用电器,宇航设备等各个领域。
4.1.1 AT89C52
AT89C52是一个低电压、高性能COMS 8位单片机,片内含8K bytes的可反复擦写的Flash只读程序存储器(ROM)和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为你提供许多复杂较系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。图4-1所示为DIP封装引脚图。
12
李建:基于单片机的云台控制系统设计
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTRXD/P3.0TXD/P3.1INT0/P3.2VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7AT89C52EA/VPPALE/PROGPESNINT1/P3.3P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0T0/P3.4T1/P3.5WR/P3.6RD/P3.6XTAL2XTAL1GND
图4-1 AT89C52 DIP封装引脚图
4.1.2 AT89C52各引脚功能
AT89C52为40 脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接11.0592MHz 晶振。RST(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O 脚,其功能用途由软件定义。 VCC(40脚):接+5V电压。 GND(20脚):接信号地。
RST(9脚): 复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG(30脚):当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 PSEN(29脚):程序储存允许输出是外部程序存储器的读选通信号,当AT89s52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,
13
即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。 EA/VPP(31脚):外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。 XTAL1(19脚):接外部晶振的一个引脚,且为输入端。 XTAL2(18脚):接外部晶振的另一个引脚,该引脚接地。
P0口(39~32脚):双向8位三态I/O口,在外接存储器时,与地址总线低8位及数据总线复用。P0可以驱动8个LS TTL负载。
P1口(1~8脚):具有内部上拉电阻的8位准双向I/O口,该接口输出不包含高阻态,输出不能锁存。可以驱动4个LS TTL负载。
P2口(21~28脚):具有内部上拉电阻的8位准双向I/O口,在访问外部存储器时,作为高8位地址总线。可以驱动4个LS TTL负载。
P3口(10~17脚):具有内部上拉电阻的8位准双向I/O口,P3口的8个引脚还用于专门的功能——复用双功能口。它可以驱动4个LS TTL负载。它作为第二功能使用时,其各个引脚的功能如下: P3.0(10脚)RXD:串行口接收端 P3.1(11脚)TXD:串行口发送端 P3.2(12脚)INT0:外部中断0 P3.3(13脚)INT1:外部中断1 P3.4(14脚)T0:定时/计数器0
P3.6(16脚) WR:外部数据存储器写选通信号
P3.7(17脚) RD:外部数据存储器读选通信号 特殊功能寄存器:
(1) 单片机内含有两个16位定时/计数器T0、T1。它们各自由两个独立的8位寄存器组成,分别为TH0、TL0、TH1、TL1,。
(2) TMOD用于控制定时/计数器的工作方式及4种工作模式,其中低4位为定时器T0的方式控制字,高4位为定时器T1的方式控制字。它的字节地址为89H。其各位的定义如下:
GATE C/T M1 M0 14
GATE C/T M1 MO 李建:基于单片机的云台控制系统设计
GATE是选通门,当GATE=1时,只有INT0或INT1引脚为高电平且TR0或TR1置1时,相应的定时/计数器才被选通工作。C/T是计数器/定时器方式选择位。MO和M1是操作模式选择位。
1;TCON寄存器的高四位为定时/计数器T0、T1的控制寄存器和定时/计数溢出中断标志。
2;IE寄存器用于开放或屏蔽单片机各个中断。
3;SCON寄存器用于设置串口的工作方式和查询接收、发送中断产生标志。
4;SBUF串行数据缓冲器用于存放串口中预发送或接收的数据,它由两个独立的寄存器构成,一个发送缓冲器,一个接收缓冲器,他们公用一个地址。当从SBUF取数据时,访问接收缓冲器,当写数据时,访问发送缓冲器。
4.1.3 AT89C52串口通信
单片机系统设计中,经常需要使用串口与外部进行通信,因此,串口通信部分是单片机功能模块中极为重要的一部分。
串口通信时通过串口来进行的,串口不同于并口,它的数据和控制信息是一位接一位串行地传送下去。与并口相比,虽然速度慢,但是传送距离较并口会更长,因此常用于需要常距离通信而对速度又要求不高的场合。
异步通信以帧的形式发送字符数据,每一帧信息由起始位、数据位、奇偶校验位和停止位构成。异步通信中,每传输一个字节就要使用起始位和停止位,因此传输速度有限,常用于低速场合。同步通信使用数据块传送信息,而不是字节,省去了每个字节的起始位和停止位等数据,提高了通信的速率。同步通信的每个数据块的开始使用同步字符,使接受和发送同步。与异步通信相比,同步通信发送的数据量大、速度快,常用于传输速率要求较高的场合。
AT89C52内部的串口是一个标准的全双工串口,支持四种工作方式。波特率是可变的,可由软件设置。对89C52串口的访问和设置是通过访问其相关的特殊寄存器进行的,与89C52串口相关的特殊寄存器共有3个:SCON、PCON和SBUF。 串口控制寄存器SCON
串口控制寄存器SCON只要用于设置串口的工作模式和串口中断的查询。其格式如下:
15
D7 SM0 D6 SM1 D5 SM2 D4 REN D3 TB8 D2 RB8 D1 TI D0 RI SM0、SM1:用于设置串口的工作方式。
SM2:串口多机通信控制位。
REN:允许串行接收控制。将其置为1时允许接收。
TB8: 用于设置串口工作方式2和方式3情况下要发送的第9位数据,有软件置位或复位。
RB8: 用于保存串口工作方式2和方式3情况下要接收到的第9位数据。 TI: 串口中断发送标志。当串口数据发送完毕时置位TI,同时向CPU发送串口中断请求。
RI: 串口中断接收标志。当串口数据接收到一个数据时置位TI,同时向CPU发送串口中断请求。 特殊功能寄存器PCON
特殊功能寄存器PCON仅有最高位与串口有关,SMOD,波特率选择位,SMOD的设置可以影响波特率设置的精度。 发送/接收缓冲器SBUF
串口中的发送/接收缓冲器SBUF实际上共有两个,分别为发送缓冲器和接收缓冲器,他们在物理上是完全独立的,因此可以同时进行发送和接收。两个缓冲器公用一个内存地址99H。
4.1.4 AT89C52中断系统
程序在执行过程中,允许外部或内部事件通过硬件中断程序的执行,使其转向出来外部或内部事件的中断服务中去,完成中断服务程序后,CPU继续与原来被中断的程序,这样的过程称为中断过程。能产生中断的外部或内部事件叫中断源。
1.中断源
80C52有6个中断源,它们是:
INT0:外部中断0.当IT0(TCON.0)=0时,低电平有效; IT0(TCON.0)=1时,下降沿有效。
16