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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第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如何

相关文档
最新文档