FLASH编程和校验时,P2口接收高八位地址信号和控制信号。
P3口(10~17脚):P3.0~P3.7统称为P3口。P3口是一组带有内部上拉电阻的8位双向I/O口。P3口的输出缓冲器可驱动4个TTL逻辑门电路接收输出电流。当P3口写“1”时,通过内部的上拉电阻上拉为高电平并作为输入口。此时由于外部下拉为低电平,P3口将输出电流(IIL)。除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。P3口第二功能祥见表3.2:
表 3.2 P3口第二功能表
口线 第二功能 信号名称 P3.0 RXD 串行数据接受 P3.1 TXD ——————串行数据发送 P3.2 INT0 ——————外中断0申请 P3.3 INT1 T0 外中断1申请 P3.4 定时器/计数器0计数输入 P3.5 T1 ————定时器/计数器1计数输入 P3.6 WR ————外部数据存储器写选通 P3.7 RD 外部数据存储器读选通 (3)外接晶体引脚
XTAL1(19脚):它在单片机内部是一个反向放大器的输入端,构成了片内振荡器。当采用外部时钟时,HMOS单片机的该引脚应接地;CHMOS单片机的该引脚作为外部振荡信号的输入端。
XTAL2(18脚):它在单片机内部是片内振荡器的反向放大器的输出端。当采用外部时钟时,HMOS单片机的该引脚作为外部振荡信号的输入端;CHMOS单片机的该引脚应悬空不接。
(4)控制线
ALE/PROG (30脚):地址锁存允许/编程信号。在访问片外程序存储器期间,此信号可用于控制锁存P0输出地址总线的低8位,ALE以每机器周期两次进行信号输出;在FLASH编程期间,此引脚用作编程脉冲PROG的输入端。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率fosc的1/6,可作为对外输出的时钟脉冲或用于定时目的。但要注意的是:
8
——————
——————
在访问片外数据存储器期间,ALE脉冲会跳空一个。若想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE执行MOVX,MOVC指令使ALE起作用。另外,该引脚将被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
——————
PSEN(29脚):片外程序存储器读选通信号输出端,低电平有效。在由外部程序存储器读
——————
——————
取指令或常数期间,每个机器周期内PSEN两次有效,P0口读回指令或常数。当访问内部程序存储器时,PSEN信号不跳变。
RST/VPD (9脚):RST即RESET,VPD为备用电源,该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。
当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。
————
————
————
EA/VPP(30脚):EA为片外程序存储器选用端,访问内部程序存储器控制信号。当EA端接
————
高电平时,CPU访问内部程序存储器。当EA接低电平时,则在此期间外部程序存储器(0000H - FFFFH),则强调CPU访问外部存储器,而不管程序计数器的内容是多少。此外,该引脚还用做EPROM编程电压的输入端。在编程期间,此引脚用作21V编程电源VPP的输入端。 3.2.3 AT89C51的内部结构
89C51单片机内部组成结构中包含运算器和控制器(CPU)、片内存储器、4个并行I/O接、串行口、定时/计数器、中断系统、振荡器等功能部件。其内部结构框图如图3.3所示。图中PC是程序计数器;PSW是程序状态字寄存器;DPTR是数据指针寄存器。
图3.3 AT89C51单片机内部结构框图
9
运算器和控制器
89C51的运算器和控制器功能类似于一般微机中的微处理器(CPU),是单片机的核心部件,它决定了单片机的主要功能特性。它完成逻辑算术运算并协调单片机其它各部分的工作。各种算术、逻辑运算所涉及到的寄存器包括:累加器ACC、寄存器B、暂存器1(TEMP1)和暂存器2(TEMP2)、程序状态字寄存器PSW,程序计数器PC,堆栈指针SP,数据指针寄存器DPTR等。它们位于CPU内部,又称CPU专用寄存器,以区别于I/O接口专用寄存器。
存储器
MCS-51系列单片机存储器组成是所谓的哈佛结构,存储器的组织方式与通用单片机系统不同,包含程序存储器与数据存储器,其地址空间是相互独立的,而不是程序存储器与数据存储器统一编址。在89C51单片机中,程序存储器采用EEPROM,而数据存储器采用RAM。它们又可以进一步分成内部或外部两类。
①程序存储器:程序存储器内部和外部是统一连续编址的,内部占用地址空间的低4KB,地址0000H~0FFFH,外部地址范围1000H~FFFFH,共60KB。程序存储器主要用来存放程序和常数。当程序计数器PC由内部ROM开始执行到外部ROM时,会自动寻址外接程序存储器。
程序地址空间原则上可由用户任意安排,但复位和中断源的程序入口地址在51系列单片机中是固定的,用户不能改变。入口地址见表3.3。复位后,CPU从0000H地址开始执行程序。其他地址为中断服务程序入口地址,响应某个中断时,将自动从其对应的入口地址执行中断服务程序。
表3.3 51单片机复位、中断入口地址
操 作 复位 外部中断0 定时器/计数器0溢出 外部中断1 定时器/计数器1溢出 串行口中断 定时器/计数器2溢出或T2EX端负跳变(52子系列) 入口地址 0000H 0003H 000BH 0013H 001BH 0023H 002BH ②数据存储器:MCS-51系列单片机数据存储器也有内部、外部之分。但与程序存储器不同,片内、片外存储器是分别独立编址的,片内数据存储器除RAM块外,还有特殊功能寄存器(SFR)块,其中片内数据存储器有128个字节,其编制为00H~FFH;特殊功能寄存器也占128个字节,
10
其编制为80H~FFH;二者连续而不重叠。外部RAM地址范围0000H~FFFFH,共64KB。内部存储器可直接寻址。尽管片内、片外地址空间的低256B有重叠,但寻址并不会造成混乱。这是因为片内、片外存储器使用不同的指令(MOV和MOVX)。扩展的I/O地址也占用数据存储器空间。对I/O端口操作无须特殊指令且访问程序存储器是用PESN信号选通,而访问片外数据存储器时,由RD信号(读)和WR信号(写)选通。
③寄存器区:内部数据存储器分为4个区域,数据RAM用于存放临时变量,下面介绍其他三个寄存器区:
a) 工作寄存器区:它占用地址00~FFH的32个内存单元,又分成4个区。每个区有R0~R7共8个工作寄存器。工作寄存器区的选择又由程序状态寄存器PSW的第4位和第3位(RS1和RS0)共同指定。单片机复位时,RS1和RS0为零,故指向0区。通过位操作改变RS1和RS0的值,可以方便地指向任一个区间。
b) 位寻址区:每位都有一个独立的8位地址(占据空间00~7F),共128位。此外,在专用寄存器SFR中还有一部分是可以位寻址的(有些位可能无定义)。
c) 专用寄存器区:共有21个专用寄存器SFR,位于80~FFH地址空间。这些寄存器又可以分为CPU专用寄存器和接口专用寄存器。CPU专用寄存器前面己经提过,而接口专用寄存器包括两部分。一部分就是单片机的I/O端口P0~P3,分别编址为80H、90H、A0H、B0H,共4个单元,32位,每一位都可以独立寻址。另一部分为定时/计数器,串行口、中断的一些控制寄存器。
定时/计数器
89C51有两个16位定时/计数器(T0,T1)。在定时功能中,每个机器周期定时器加1,由于l个机器周期包含12个振荡周期,因而它的计数频率为1/12,即由定时器计数到的脉冲为振荡周期频率的1/12。
在计数器功能中,在外部事件相应输入脚(T0或T1)产生负跳变时,计数器加1。由于计数器的计数过程需要2个机器周期(24个振荡周期),所以,最高的计数频率为振荡频率的1/24。
这两个定时/计数器的工作状态(定时/计数)及工作方式(方式0~方式3)的选择是由定时/计数器方式寄存器(TMOD)中的每位值所决定的。定时/计数器的控制由控制寄存器(TCON)完成。
定时/计数器
89C51有两个16位定时/计数器(T0,T1)。在定时功能中,每个机器周期定时器加1,由于l个机器周期包含12个振荡周期,因而它的计数频率为1/12,即由定时器计数到的脉冲为振荡周期频率的1/12。
在计数器功能中,在外部事件相应输入脚(T0或T1)产生负跳变时,计数器加1。由于计数器的计数过程需要2个机器周期(24个振荡周期),所以,最高的计数频率为振荡频率的1/24。
这两个定时/计数器的工作状态(定时/计数)及工作方式(方式0~方式3)的选择是由定时/
11
————
————
——————
计数器方式寄存器(TMOD)中的每位值所决定的。定时/计数器的控制由控制寄存器(TCON)完成。
中断
89C51单片机提供了6个中断源,而每一个中断源都能被程控为高优先级或低优先级。其中5个中断源包括2个外部中断和3个内部中断。两个外部中断源为INT0和INT1,外部设备的中断请求信号、掉电等故障信号都可以从INT0而和INT1引脚输入,向CPU提出中断申请,INT0和INT1的中断请求标志IE0、IE1分别设在TCON寄存器的TCON.1、TCON.3。3个内部中断源为T0、Tl溢出中断源及片内串行发送或接收中断源,T0、Tl中断请求标志TF0和TF1分别设在TCON寄存器的TCON.5、TCON.7,串行发送或接收中断标志TI或RI设在SCON寄存器的第SCON.0、SCON.1。5个中断源中的一个、几个或全部中断源的开、关由中断允许寄存器(IE)完成,而每个中断源的优先级别的高低由中断优先级控制寄存器(IP)完成。89C51单片机中断源简要特性见表3.4。
表3.4 中断源特性表
名称 外部中断 定时器0溢出中断 外部中断1 定时器1溢出中断 符号 INT0 TF0 INT1 TF1 标志符号 标志符号位置 矢量地址 优先级别 IE0 TF0 IE1 TF1 R1 串行口中断 R1+T1 T1
SCON.1 TCON.1 TCON.5 TCON.3 TCON.7 SCON.0 0023H 0003H 000BH 0013H 001BH 最低 最高 12