当前位置:文档之家› 89C51单片机硬件结构和原理

89C51单片机硬件结构和原理

第1部分 89C51单片机硬件结构和原理1. 89C51单片机片内包含哪些主要逻辑功能部件?答:89C51单片机是个完整的单片微型计算机。

芯片内部包括下列硬件资源:(1)8位CPU;(2)4KB的片内Flash ROM。

可寻址64KB程序存储器和64KB外部数据存储器;(3)256B内部 RAM/SFR;(4)21个 SFR;(5)4个8位并行I/O口P0~P3(共32位I/O线);(6)一个全双工uart的异步串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通讯;(7)两个16位定时器/计数器;(8)5个中断源,两个中断优先级;(9)内部时钟发生器。

2. 89C51的EA端有何用途?答:作外部程序存储器地址允许输入端和固化编程电压输入端。

3. 89C51的存储器分哪几个空间?如何区别不同空间的寻址?答:89C51存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间:(1)64KB的程序存储器地址空间:0000H~FFFFH,其中0000H~0FFFH为片内4KB的Flash ROM地址空间,1000H~FFFFH为外部ROM地址空间;(2)256B的内部数据存储器地址空间,00H~FFH,分为两大部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;(3)64KB的外部数据存储器地址空间:0000H~FFFFH,包括扩展I/O地址空间。

MCS-51单片机存储器三类空间地址存在重叠,单片机设计了不同的数据传送指令符号来区分:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM 指令用MOV。

4. 简述89C51片内RAM的空间分配。

答:89C51内部256B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区、特殊功能寄存器组区。

各区域的特性如下:(1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。

当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。

如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。

(2)20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。

当然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。

(3)30H~7FH为堆栈、数据缓冲区。

(4)80H~FFH高128字节的RAM有21个特殊功能寄存器(SFR)。

访问SFR只允许使用直接寻址方式。

其中11个具有位寻址能力,它们的字节地址正好被8整除。

5. 简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。

答:20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH;还有80H~FFH高128字节的RAM有11 个SFR具有位寻址能力,它们的字节地址正好被8整除,如PO、P1、P2、P3、TCON、SCON、IE、IP、PSW、A、B。

6. 如何简捷地判断89C51正在工作?答:用示波器看/PSEN端有脉冲输出。

7. 89C51如何确定和改变当前工作寄存器组?答:通过查看PSW的RS0和RS1位确定哪一组工作寄存器为当前工作寄存器组。

通过用户用软件改变RS0和RS1值的组合,以切换当前选用的工作寄存器组。

8. 89C51 P0口用作通用I/O口输入时,若通过TTL“OC”门输入数据,应注意什么?为什么?答:当P0口作输入口使用时,应先向口锁存器写入全1,此时P0口的全部引脚浮空,可作为高阻抗输入。

从P0口硬件图可知,在读入端口引脚数据时,由于输出驱动FET(T2)并接在引脚上,如果FET(T2)导通,就会将输入的高电平拉成低电平,从而产生误读。

所以,在端口进行输入操作时,应先向端口锁存器写入1。

9. 读端口锁存器和“读引脚”有何不同?各使用哪种指令?答:读端口锁存器,使用“读-修改-写”指令,如执行“ANL P0,A”指令,它不直接读引脚上的数据,而是CPU先读P0口D锁存器中的数据;当“读锁存器”信号有效时,三态门缓冲器1开通,Q端数据送入内部总线和累加器A中的数据进行逻辑与操作,结果送回P0端口锁存器。

这样避免错读引脚上的电平信号的可能性。

“读引脚”使用“MOV A,PO”。

10. 89C51 P0~P3口结构有何不同?用作通用I/O口输入数据时,应注意什么? 答:89C51 P0~P3口结构相同之处:P0~P3都是准双向I/O口,做输入时,必须先向相应端口的锁存器写入“1”。

不同之处:P0口的输出级与P1~P3口不相同,它无内部上拉电阻,不能提供拉电流输出,而P1~P3口则带内部上拉电阻,可以提供拉电流输出。

当P0口作通用I/O口使用时,需外接上拉电阻才可输出高电平;但做地址/数据总线时,不需要外接上拉电阻。

P1~P3口作通用I/O口使用时,均不需要外接上拉电阻。

11. 89C51单片机的EA信号有何功能?在使用80C31时,EA信号引脚应如何处理?答:EA/V PP是双功能引脚,功能如下:(1)EA接高电平时,在低4KB程序地址空间(0000H~0FFFH),CPU执行片内程序存储器的指令,当程序地址超出低4KB空间(1000H~FFFFH)时,CPU将自动执行片外程序存储器的指令。

(2)EA接低电平时,CPU只能执行外部程序存储器的指令。

80C31单片机内部无ROM,必须外接程序存储器。

因此,8031的EA引脚必须接低电平。

12. 89C51单片机有哪些信号需要芯片引脚以第2功能的方式提供?答:RXD、TXD、/INTO、/INT1、T0、T1、/WR、/RD这些信号引脚以第2功能的方式提供。

13. 内部RAM低128字节单元划分为哪3个主要部分?各部分主要功能是什么? 答:89C51内部128B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区。

各区域的特性如下:(3)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器R0~R7。

当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两位来确定。

如果实际应用中并不需要使用工作寄存器或不需要使用4组工作寄存器,不使用的工作寄存器组的区域仍然可作为一般数据缓冲区使用,用直接寻址或用Ri的寄存器间接寻址来访问。

(4)20H~2FH为可位寻址区域,这16个字节的每一位都有一个地址,编址为00H~7FH。

当然,位寻址区也可以用作字节寻址的一般数据缓冲区使用。

(3)30H~7FH为堆栈、数据缓冲区。

14. 使单片机复位有几种方法?复位后机器的初始状态如何?答:单片机的复位有上电自动复位和按钮手动复位两种。

使用时应注意,上电复位的最短时间应保证为振荡周期建立时间加上两个机器周期的时间;当单片机运行程序出错或进入死循环时,可用按钮复位来重新启动。

复位后,把PC初始化为0000H,使单片机从0000H单元开始执行程序。

在SFR中,除P0~P3的复位值为FFH、堆栈指针SP为07H、SBUF内为不定值外,其余的寄存器全部清零。

15. 开机复位后,CPU使用的是哪组工作寄存器?它们的地址是什么?CPU如何确定和改变当前工作寄存器组?答:单片机开机复位后,CPU使用的是0组寄存器,0组R0~R7的地址是00H~07H。

通过用户用软件改变RS0和RS1值的组合,以切换当前选用的工作寄存器组。

16. 程序状态寄存器PSW的作用是什么?常用标志有哪些位?作用是什么?答:程序状态字寄存器PSW:是一个8位寄存器,用来存放当前指令执行后操作结果的某些特征,以便为下一条指令的执行提供依据。

定义格式如下。

其中,CY:进借位标志;AC:辅助进借位标志; F0:软件标志;OV:溢出标志;F1:用户标志位;P:奇偶校验标志; RS1、RS0:工作寄存器组选择(如表所示)。

17. 位地址7CH与字节地址7CH如何区别?位地址7CH具体在片内RAM中的什么位置?答:字节地址是片内RAM的单元地址,而位地址是片内RAM单元的某一位。

7CH字节地址RAM的7CH单元,而7CH位地址是RAM 2FH单元中的D4位。

18. 89C51单片机的时钟周期与振荡周期之间有什么关系?什么叫机器周期和指令周期?答:时钟周期为最基本的时间单位。

振荡周期是晶振的振荡周期,是最小的饿时序单位。

一个时钟周期为振荡周期的2倍。

机器周期则是完成某一个规定操作所需的时间。

指令周期是指执行一条指令所占的全部时间。

通常一个指令周期含1~4个机器周期。

19. 一个机器周期的时序如何划分?答:一个机器周期为6个时钟周期,共12个振荡周期,依次可表示为S1P1、S1P2、…、S6P1、S6P2。

2 0. 什么叫堆栈?堆栈指针SP的作用是什么?89C51单片机堆栈的容量不能超过多少字节?答:堆栈是在片内RAM中专门开辟出来的一个区域,数据的存取是以"后进先出"的结构方式处理的。

实质上,堆栈就是一个按照"后进先出"原则组织的一段内存区域。

堆栈指针SP的作用,是用来指示保存内容的存储地址,可指向89C51片内的00H~7FHRAM的任何单元。

89C51单片机堆栈的容量不能超过128个字节。

21. 89C51有几种低功耗方式?如何实现?答:89C51有两种低功耗方式,分别是待机(休闲)方式和掉电方式。

置PCON中的D0位即IDL为“1”,单片机即进入待机(休闲)方式;置D1为即PD为“1”,则进入掉电方式。

22. PC与DPTR各有哪些特点?有何异同?答:PC是16位程序计数器(Program Counter),它不属于特殊功能寄存器范畴,程序员不以像访问特殊功能寄存器那样来访问PC。

PC是专门用于在CPU取指令期间寻址程序存储器。

PC总是保存着下一条要执行的指令的16位地址。

通常程序是顺序执行的,在一般情况下,当取出一个指令(更确切地说为一个指令字节)字节后,PC自动加1。

如果在执行转移指令、子程序调用/返回指令或中断时,要把转向的地址赋给PC。

DPTR是16位数据指针寄存器,它由两个8位特殊功能寄存器DPL(数据指针低8位)和DPH(数据指针高8位)组成,DPTR用于保存16位地址,作间址寄存器用,可寻址外部数据存储器,也可寻址程序存储器。

相关主题