AT89S51与MCS-51产品指令系统完全兼容,包括128B内部RAM、32个I/O口线、看门狗(WDT)、两个数据指针、两个16位定时/计数器、一个5向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路。同时AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
1 AT89S51的硬件部件和特性
AT89S51的各功能部件通过片内单一总线连接而成,如图2-20所示。CPU对各种功能部件的控制是采用特殊功能寄存器SFR的集中控制方式。
图2-20 AT89S51单片机片内结构
AT89S51完全兼容AT89C51,在充分保留原来软、硬件条件下,完全可以用AT89S51直接代换。1个全双工的异步串行接口,可进行串行通信,还可与多个单片机构成多机系统。
P0口在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1、P2、P3口都是一个带内部上拉电阻的8位双向I/O口,输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作为输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流IIL。Flash编程和程序校验期间,P1接收低8位地址。除了作为一般的I/O口线外,更重要的用途是它的第二功能,见表2-9。P2口Flash编程或校验时,P2亦接收高位地址和其他控制信号。P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
表2-9 P1口第二功能
P1.5/MOSI、P1.6/MISO和P1.7/SCK可用于对片内Flash存储器串行编程和校验,它们分别是串行数据输入、输出和移位脉冲引脚。
注意:准双向口与双向口的差别。准双向口仅有两个状态,而P0口作为总线使用,口线内无上拉电阻,处于高阻“悬浮”态,故P0口为双向三态I/O接口。准双向I/O接口则无高阻的“悬浮”状态。另外,准双向口作为通用I/O的输入口使用时,一定要先写入“1”。(www.xing528.com)
特殊功能寄存器有26个,对片内各功能部件管理、控制和监视,是各个功能部件的控制寄存器和状态寄存器,映射在片内RAM区80H~FFH内。
2 时钟引脚
1)XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路输入端。用片内振荡器时,该脚接外部石英晶体和微调电容。外接时钟源时,该脚接外部时钟振荡器的信号。
2)XTAL2(18脚):片内振荡器反相放大器的输出端。当使用片内振荡器时,该脚连接外部石英晶体和微调电容。当使用外部时钟源时,本脚悬空。
3 控制引脚
RST复位信号输入,在引脚加上持续时间大于两个机器周期的高电平,可使单片机复位。正常工作,此脚电平应不大于0.5V。当看门狗定时器溢出输出时,该脚将输出长达96个时钟振荡周期的高电平。注意,每当AT89S51访问外部RAM时(执行MOVX类指令),要丢失一个ALE脉冲。若需要,可将特殊功能寄存器AUXR(地址为8EH)的第0位(ALE禁止位)置1,来禁止ALE操作,第0位DISRT0位默认为RESET输出高电平打开状态。但执行访问外部程序存储器或外部数据存储器指令“MOVC”或“MOVX”时,ALE仍然有效,即ALE禁止位不影响对外部存储器的访问。当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。要注意的是,每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令,ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。程序储存允许输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H~FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程电压VPP。
4 堆栈指针SP
堆栈指针SP的内容指示出堆栈顶部在内部RAM块中的位置。它可指向内部RAM的00H~7FH的任何单元。AT89S51的堆栈结构属于向上生长型的堆栈(即每向堆栈压入1字节数据时,SP的内容自动增1)。单片机复位后,SP中的内容为07H,使得堆栈实际上从08H单元开始,考虑到08H~1FH单元分别是属于1~3组的工作寄存器区,所以在程序设计中要用到这些工作寄存器区最好在复位后且运行程序前,把SP值改置为60H或更大的值,避免堆栈区与工作寄存器区发生冲突。
如图2-21所示为AT89S51的存储器结构和地址空间,虚线部分是单片机片内存储器。数据存储器和程序存储器的最大存储空间都是64KB,其中片内数据存储器只有128B,片内程序存储器有4KB。另外,片内还分布着一些特殊功能寄存器(SFR)。随着单片机片内程序存储器容量的不断加大,在很多情况下不需要片外扩展,故而信号引脚必须接高电平。
图2-21 AT89S51存储空间分布图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。