第3章 MCS?51系列单片机硬件结构
1.MCS?51系列单片机内部有哪些主要的逻辑部件?
MCS?51单片机是在一块芯片上集成了CPU、RAM、ROM、定时器/计数器和多种I/O功能部件,具有了一台微型计算机的基本结构,主要包括下列部件:
一个8位的CPU、一个布尔处理机、一个片内振荡器、128B的片内数据存储器、4KB的片内程序存储器(8031无)、外部数据存储器和程序存储器的寻址范围为64KB、21个字节的专用寄存器、4个8位并行I/O接口、一个全双工的串行口、2个16位的定时器/计数器、5个中断源、2个中断优先级、111?条指令、片内采用单总线结构。
2.MCS?51单片机设有4个8位并行端口,实际应用中8位数据信息由哪个端口传送?16位地址线怎样形成?P3口有何功能?
8位数据信息由P0口传送。
P2口形成地址大高8位,P0口结果锁存器形成地址的低8位。 P3口除具有一般的输入/输出功能,还具有第2功能:
P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD 串行口输入端 TXD 串行口输出端 INT0 外部中断0请求输入端,低电平有效 INT1 外部中断1请求输入端,低电平有效 T0 定时器/计数器0计数脉冲输入端 T1 定时器/计数器1计数脉冲输入端 WR 外部数据存储器及I/O接口写选通信号输出端,低电平有效 RD 外部数据存储器及I/O接口读选通信号输出端,低电平有效 3.MCS?51单片机内部RAM区的功能结构如何分配?4组工作寄存器使用时如何选择?位寻址区域的字节范围是多少?
MCS?51单片机片内RAM共有128B,字节范围为00H~7FH,可分为工作寄存器区、位寻址区、数据缓冲区共3个区域。 (1)工作寄存器区
00H~1FH单元为工作寄存器区。工作寄存器也称通用寄存器,用于临时寄存8位信息。工作寄存器分成4组,每组都是8个寄存器,用R0~R7来表示。程序中每次只用一组,其余各组不工作。使用哪一组寄存器工作,由程序状态字PSW中的PSW.3(RS0)和PSW.4(RS1)两位来选择,其对应关系如表所示。
PSW.4(RS1) 0 0 1 1 PSW.3(RS0) 0 1 0 1 工作寄存器组的选择表
当前使用的工作寄存器组 R0~R7 0组(00H~07H) 1组(08H~0FH) 2组(10H~17H) 3组(18H~1FH) 该区域当不被用做工作寄存器时,可以作为一般的RAM区使用。 (2)位寻址区
20H~2FH单元是位寻址区。这16个单元(共计16 × 8 = 128位)的每一位都赋予了一个位地址,位地址范围为00H~7FH。位地址区的每一位都可当做软件触发器,由程序直接进行位处理。通常可以把各种程序状态标志、位控制变量存入位寻址区内。
00H…07H 08H…0FH 10H…17H 18H…1FH 20H 21H 22H 23H 24H 25H 26H 27H 28H 29H 2AH 2BH 2CH 2DH 2EH 2FH 30H…7FH 0组 1组 2组 3组 07 0F 17 1F 27 2F 37 3F 47 4F 57 5F 67 6F 77 7F 工作寄存器区 06 0E 16 1E 26 2E 36 3E 46 4E 56 5E 66 6E 76 7E 05 0D 15 1D 25 2D 35 3D 45 4D 55 5D 65 6D 75 7D 04 0C 14 1C 24 2C 34 3C 44 4C 54 5C 64 6C 74 7C 03 0B 13 1B 23 2B 33 3B 43 4B 53 5B 63 6B 73 7B 02 0A 12 1A 22 2A 32 3A 42 4A 52 5A 62 6A 72 7A 01 09 11 19 21 29 31 39 41 49 51 59 61 69 71 79 00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78 位 寻 址 区 数据缓冲区 该区域当不被用做位寻址区时,可以作为一般的RAM区使用。 (3)数据缓冲区
30H~7FH是数据缓冲区,即用户RAM,共80个单元。
由于工作寄存器区、位寻址区、数据缓冲区统一编址,使用同样的指令访问,这三个区的单元既有自己独特的功能,又可统一调度使用。因此,前两个区未使用的单元也可作为用户RAM单元使用,使容量较小的片内RAM得以充分利用。
4.特殊功能寄存器中哪些寄存器可以位寻址?它们的字节地址是什么? 参看表3-6.
5.简述程序状态字PSW中各位的含义。
程序状态字PSW是一个8位寄存器,它保存指令执行结果的特征信息,为下一条指令或以后的指令的执行提供状态条件。PSW中的各位一般是在指令执行过程中形成的,但也可以根据需要采用传送指令加以改变。其各位定义如图所示。
PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 P C AC F0 RS1 RS0 OV —— ① 进位标志C(PSW.7)
在执行某些算术运算类、逻辑运算类指令时,可被硬件或软件置位或清零。它表示运算结果是否有进位或借位。如果在最高位有进位(加法时)或借位(减法时),则C = 1,否
则C = 0。
② 辅助进位(或称半进位)标志位AC(PSW.6)
它表示两个8位数运算,低4位有无进(借)位的状况。当低4位相加(或相减)时,若D3位向D4位有进位(或借位),则AC = 1,否则AC = 0。在BCD码运算的十进制调整中要用到该标志。
③ 用户自定义标志位F0(PSW.5)
用户可根据自己的需要为F0赋予一定的含义,通过软件置位或清零,并根据F0 = 1或0来决定程序的执行方式,或系统某一种工作状态。
④ 工作寄存器组选择位RS1、RS0(PSW.4、PSW.3)
可用软件置位或清零,用于选定当前使用的4个工作寄存器组中的某一组。 ⑤ 溢出标志位OV(PSW.2)
做加法或减法时由硬件置位或清零,以指示运算结果是否溢出。在带符号数加减运算中,OV = 1表示加减运算超出了累加器所能表示的数值范围(–128~+127),即产生了溢出,因此运算结果是错误的。OV = 0表示运算正确,即无溢出产生。
执行乘法指令MUL AB也会影响OV标志,当积大于255时,OV = 1,否则OV = 0;执行除法指令DIV AB也会影响OV标志,如B中所存放的除数为0,则OV = 1,否则0V = 0。
⑥ 奇偶标志位P(PSW.0)
在执行指令后,单片机根据累加器A中1的个数的奇偶自动将该标志置位或清零。若A中1的个数为奇数,则P = 1,否则P = 0。该标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。
6.简述MCS?51单片机程序存储器的几个特殊入口地址的含义。 0000H:程序入口地址
0003H:外部中断0中断服务程序入口地址
000BH:定时器/计数器0溢出中断服务程序入口地址 0013H:外部中断1中断服务程序入口地址
001BH:定时器/计数器1溢出中断服务程序入口地址 0023H:串行口发送/接收中断服务程序入口地址
7.位地址7FH与字节地址7FH有何区别?位地址7FH具体在内存中的什么位置? 二者存储的数据位数不一样。位地址7FH存放一位二进制数,字节地址7FH存放8为二进制数。
位地址7FH具体在内存中字节地址为20H的最高位上。 8.复位的作用是什么?复位后单片机的状态如何?
计算机在启动运行时都需要复位,这就使CPU和系统中的其他部件都处于一个确定的
初始状态,并从这个状态开始工作。
单片机的复位都靠外部电路实现。MCS?51单片机有一个复位引脚RST,高电平有效。它是施密特触发输入(对于CMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后,该引脚上出现两个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS?51便保持复位状态。此时ALE、PSEN、P0、P1、P2、P3口都输出高电平。RST变为低电平,退出复位状态,CPU从初始状态开始工作。复位操作不影响片内RAM的内容,复位以后内部寄存器的初始状态如表3-7所示。
9.试分别说明程序计数器PC和堆栈指针SP的作用。复位后PC和SP各为何值? 程序计数器PC是一个16位专用寄存器,其内容表示下一条要执行的指令的地址。复位后为0000H。
MCS?51单片机的堆栈是在片内RAM中开辟的一个专用区。堆栈指针SP是一个8位专用寄存器,用来存放栈顶的地址。进栈时,SP自动加1,将数据压入SP所指定的地址单元;出栈时,将SP所指示的地址单元中的数据弹出,然后SP自动减1。因此SP总是指向栈顶。复位后为07H。
10.MCS?51单片机设置4组工作寄存器,开机复位后,CPU使用的是哪组寄存器?它们的地址如何?CPU如何改变当前工作寄存器组?
第0组。字节地址为00H~07H。 通过PSW的RS1、RS0来改变。
工作寄存器组的选择表
PSW.4(RS1) 0 0 1 1 PSW.3(RS0) 0 1 0 1 当前使用的工作寄存器组 R0~R7 0组(00H~07H) 1组(08H~0FH) 2组(10H~17H) 3组(18H~1FH)
11.什么是时钟周期、机器周期和指令周期?当外部的振荡频率是8MHz时,8051单片机的机器周期为多少?
MCS?51单片机的时序由下面4种周期构成。 (1)振荡周期
振荡周期是指为单片机提供定时信号的振荡源的周期。 (2)状态周期(时钟周期)
两个振荡周期为一个状态周期,用S表示。两个振荡周期作为两个节拍分别称为节拍P1和节拍P2。在状态周期的前半周期P1有效时,通常完成算术逻辑运算;在后半周期P2有效时,一般进行内部寄存器之间的传输。
(3)机器周期
CPU执行一条指令的过程可以划分为若干阶段,每一阶段完成某一项基本操作,如取指令、存储器读/写等。通常把完成一个基本操作所需要的时间称为机器周期。 (4)指令周期
指令周期是指执行一条指令所占用的全部时间,它以机器周期为单位。MCS?51系列单片机除乘法、除法指令是4机器周期指令外,其余都是单周期指令和双周期指令。若用12MHz晶体振荡器(晶振),则单周期指令和双周期指令的指令周期时间分别是1μs和2μs,乘法和除法指令为4μs。
通过上面的分析,我们可以看出,外部晶振的二分频是MCS?51单片机的内部时钟周期,6个时钟周期构成了单片机的机器周期。
如果单片机的外部晶振是8MHz,则其内部的机器周期是1.5μs。
12.已知PSW = 10H,则工作寄存器R0的地址是 10H ,R4的地址是 14H 。 13.MCS?51单片机复位后,程序计数器PC = 0000H ,堆栈指针SP = 07H 。 14.MCS?51单片机内部RAM的寄存器区共有 32 个单元,分为 4 组寄存器,每组 8 单元。
15.MCS?51单片机的4个I/O接口的作用是什么?三总线是如何分配的?为什么说能作为I/O使用的一般只有P1口?
P0口形成数据总线;P2口形成地址的高8位,P0口经过锁存器形成地址的低8位;P3口形成控制总线。
在具有外部扩展的时间,需要用到数据总线、地址总线和控制总线,而三总线占用了P0、P2、P3口,可以单独使用的只有P1口。