输入输出端口,外接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 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次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:外部数据存储器读选通信号 特殊功能寄存器:
第11页
(1) 单片机内含有两个16位定时/计数器T0、T1。它们各自由两个独立的8位寄存器组成,分别为TH0、TL0、TH1、TL1,。
(2) TMOD用于控制定时/计数器的工作方式及4种工作模式,其中低4位为定时器T0的方式控制字,高4位为定时器T1的方式控制字。它的字节地址为89H。其各位的定义如下: GATE C/T M1 M0 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只要用于设置串口的工作模式和串口中断的查询。其格式如下:
第12页
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时,下降沿有效。
INT1:外部中断1.当IT1(TCON.2)=0时,低电平有效; IT1(TCON.2)=1时,下降沿有效。 TF0:定时/计数器T0益处中断。 TF1:定时/计数器T1益处中断。 TF3:定时/计数器T2益处中断。
第13页
RX,TX:串行中断。 2.中断相关寄存器IE和IP
51单片机有两种中断优先级,其中每一个中断源的优先级都可以有程序设定。中断源的中断要求能否得到响应,受允许中断寄存器IE中各位的控制。它们的优先级由中断优先级寄存器IP的各位确定,同一优先级内的各中断源同时要求中断时,以内部的查询逻辑来确定响应次序。
允许中断寄存器IE的各位定义如下:
MSB LSB EA — ET2 ES ET1 EX1 ET0 EX0 EA 是总中断允位。EA=0时,禁止所有中断;EA=1时,则每个中 断源被允许还是被禁止,由各自的允许位确定;
ET2:是定时器2中断允许位。ET2=0,禁止定时器2中断;
ES:是串行口中断允许位。ES=0,禁止串行口中断; ET1:是定时器1中断允许位; EX1:是外部中断1允许位;
ET0: 是定时器0中断允许位; EX0: 是外部中断0允许位。
中断优先级寄存器IP的各位定义如下:
MSB — — PT2 PS PT1 PX1 PT0 LSB PX0 PT2: 是定时器2中断优先级设定位; PS:是串行口中断优先级设定位; PT1:是定时器1中断优先级设定位; PX1:是外部中断1优先级设定位; PT0:是定时器0中断优先级设定位; PX0:是外部中断0优先级设定位。
4.2 单片机系统
本设计的所用的单片机系统其实就是单片机最小系统,所谓最小系统就是能是单片机正常工作的最少配置。本此设计的单片机系统由AT89C52单片机、复位电路、时钟电路和电源电路组成,如图4-2所示。
第14页
图4-2 单片机最小系统
4.2.1 复位电路
复位操作完成单片机片内电路的初始化,是单片机从一种确定的状态开始运行。当单片机的复位引脚RET出现5ms以上的高电平时,单片机就完成了复位操作。复位操作通常有2中基本形式:上电复位、开关复位。常用的上电且开关复位电路如图4-2中所示。上电后,由于电容充电,使RET持续一段高电平时间。当单片机已在运行中时,按下复位键也能使RET持续一段时间的高电平,从而实现上电且开关复位的操作。 4.2.2 时钟电路
单片机的时钟信号用来提供单片机内各种操作的时间基准。单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器,振荡方式所得的时钟信号比较稳定,所以在本设计中就是采用内部振荡方式。晶振选用11.0592MHz。内部振荡方式如图4-2中所示。 4.2.3 电源电路
电源设计部分如图4-3所示。因为单片机需要的是5V的电源,而输入的是9-12V的电源,所以需要这个稳压电路把9-12V稳压到5V,电源电路设计为采用7805线性稳压,图中电容是起到滤波的作用,一个发光二极管作电源指示灯。
第15页