当EA(的反)引脚为低电平时,只读取外部程序存储器中的内容,读取的地址范围为OOOOH~FFFFH,片内的4 KB Flash程序存储器不起作用。

Vpp为该引脚的第二功能,即在对片内Flash进行编程时,VPP引脚接人编程电压。

(3) ALE/PROG(的反)(Address Latch Enable/PROGramming,30脚):ALE为CPU访问外部程序存储器或外部数据存储器提供一个地址锁存信号,将低8位地址锁存在片外的地址锁存器中。

此外,单片机在正常运行时,ALE端一直有正脉冲信号输出,此频率为时钟振荡器频率fosc的1/6。该正脉冲振荡信号可作外部定时或触发信号使用。但是要注意,每当AT89S51访问外部RAM时(即执行MOVX类指令时),要丢失一个ALE脉冲。

如果需要,可将特殊功能寄存器AUXR(地址为8EH,将在本章后面介绍)的第O位(ALE禁止位)置l,来禁止ALE操作,但在执行访问外部程序存储器或外部数据存储器指令“MOVC”或“MOVX”时,ALE仍然有效。也就是说,ALE的禁止位不影响对外部存储器的访问。

PROG(的反)为该引脚的第二功能,即在对片内Flash存储器编程时,此引脚作为编程脉冲输入端。

(4) PSEN(的反)(Program Strobe ENable,29脚):片外程序存储器的读选通信号,低电平有效。

并行I/O口引脚

(1) PO口:8位,漏极开路的双向I/O口。

当AT89S51扩展外部存储器及I/O接口芯片时,PO口作为地址总线(低8位)及数据总线的分时复用端口。

PO口也可作为通用的I/O口使用,但需加上拉电阻,这时为准双向口。当作为通用的I/O、输入时,应先向端口输出锁存器写入1。PO口可驱动8个LS型TTL负载。

(2) Pl口:8位,准双向I/O口,具有内部上拉电阻。

Pl口是专为用户使用的准双向I/O口。当作为通用的I/O口输入时,应先向端口锁存器写入l。Pl口可驱动4个LS型TTL负载。

MOSI/P1.5、MISO/Pl.6和SCK/PI.7也可用于对片内Flash存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。

(3) P2口:8位,准双向I/O口,具有内部上拉电阻。

当AT89S51扩展外部存储器及I/O口时,P2口作为高8位地址总线用,输出高8位地址。

P2口也可作为普通的I/O口使用。当作为通用的I/O输入时,应先向端口输出锁存器写入l。P2口可驱动4个LS型TTL负载。

(4) P3口:8位,准双向I/O口,具有内部上拉电阻。

P3口可作为通用的I/O口使用。当作为通用的I/O输入时,应先向端口输出锁存器写入l。P3口可驱动4个LS型TTL负载。

P3口还可提供第二功能。其第二功能定义见表2-1。

表2-1 P3口的第二功能定义

AT89S51单片机各引脚的功能解析