传送。
(2)内部RAM 20H~2FH单元的位地址空间可实现位操作。
当前工作寄存器组可通过软件对PSW中的RS1,RS0位的状态设置来选择。 (3)8051的堆栈是自由堆栈,单片机复位后,堆栈底为07H,在程序运行中可任意设置堆栈。堆栈设置通过对SP的操作实现,例如用 指令MOV SP ,#30H将堆栈设置在内部RAM 30H以上单元。 (二)内部RAM高128单元
内部RAM高128单元是供给专用寄存器使用的,因此称之为专用寄存器区(也称为特殊功能寄存器区(SFR)区),单元地址为80H~0FFH。8051共有22个专用寄存器,其中程序计数器PC在物理上是独立的,没有地址,故不可寻址。它不属于内部RAM的SFR区。其余的21个专用寄存器都属于内部RAM的SFR区,是可寻址的,它们的单元地址离散地分布于80H~0FFH。表7—2为21个专用寄存器一览表。
表7—2 8051专用寄存器一览表
寄存器符号 ·ACC ·B ·PSW SP DPL DPH ·IE ·IP ·P0 ·P1 ·P2 地 址 E0H F0H D0H 81H 82H 83H A8H B8H 80H 90H A0H 寄存器名称 累加器 B寄存器 程序状态字 堆栈指示器 数据指针低八位 数据指针高八位 中断允许控制寄存器 中断优先控制寄存器 I/O口0 I/O口1 I/O口2 ·P3 PCON ·SCON SBUF ·TCON TMOD TL0 TL1 TH0 TH1 B0H 87H 98H 99H 88H 89H 8AH 8BH 8CH 8DH I/O口3 电源控制及波特率选择寄存器 串行口控制寄存器 串行口数据缓冲寄存器 定时器控制寄存器 定时器方式选择寄存器 定时器0低8位 定时器1低8位 定时器0高8位 定时器1高8位 注:带“·” 专用寄存器表示可以位操作。 (三)8051内部程序存储器(ROM)
大多数51系列单片机内部都配置一定数量的程序存储器ROM,如8051芯片内有4KB掩膜ROM存贮单元,AT89C51芯片内部配置了4KB FlashROM,它们的地址范围均为0000H~0FFFH。内部程序存储器有一些特殊单元,使用时要注意。
其中一组特殊单元是0000H~0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始执行程序。如果不是从0000H开始,就要在这三个单元中存放一条无条件转移指令,以便转去执行指定的应用程序。
另外,在程序存储器中有各个中断源的入口向量地址,分配如下: 0003H~000AH:外部中断0中断地址区 000BH~0012H:定时器/计数器0中断地址区 0013H~001AH:外部中断1中断地址区 001BH~0022H:定时器/计数器1中断地址区 0023H~002AH:串行中断地址区
中断地址区首地址为各个中断源的入口向量地址,每个中断地址区有8个地址单元。在中断地址区中应存放中断服务程序,但8个单元通常难以存下一个完整的中断服务程序,因此往往需要在中断地址区首地址中存放一条无条件转移指
令,转去中断服务程序真正的入口地址。
从002BH开始的的单元才是用户可以随意使用的程序存储器。 对程序存储器的操作作以下说明:
(1)程序指令的自主操作。CPU按照PC指针自动的从程序存储器中取出指令。
(2)用户使用指令对程序存储器中的常数表格进行读操作,可用MOVC指令实现。
五、单片机复位电路及复位状态 1.复位电路
单片机复位电路包括片内、片外两部分。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。MCS-51单片机通常采用上电自动复位和按键手动复位两种方式。如图4-3所示。
22 RST 803 1 R 805 ( a)上电复位
+5+522μF R2 200 R 图4-3
+5RST 8031 8051 C2 RST 8031 (b)按键电平复位
R1 8051 22 8751 (c)按键脉冲复位
2.单片机复位后的状态
单片机运行出错或进入死循环时,可按复位键重新运行。 3.时钟电路
(1)振荡周期 / 时钟周期:为单片机提供时钟信号的振荡源的周期。 (3)机器周期:通常将完成一个基本操作所需的时间称为机器周期。 (4)指令周期:是指CPU执行一条指令所需要的时间。一个指令周期通常含有1~4个机器周期。
八、作业:P 47页 4,6,10,11
第八讲
一、授课内容:
MCS―51系列单片机 二、授课类型:讲授 三、授课时数:2学时 四、教学目标:
掌握MCS―51系列单片机的内部结构 六、教学重、难点:
重点/难点:80C51单片机的内部结构。 七、教学设想:
借助产品、作品演示,一方面可以使课堂生动,另一方面可以腾出大量时间加强对重难点知识的讲解,增强学生对知识的理解,同时提高他们对本学科的兴趣. 八、教学过程:(板书) 一、 内部数据存储器低128单元
片内RAM(内部数据存储器)的地址范围是00H~FFH。内部数据存储器低128单元的地址范围是00H~7FH。分三个区。 (1)工作寄存器区
00H~1FH单元共32B,是4个通用工作寄存器组,每组含8个寄存器(R0~R7)。切换CPU的工作寄存器组,只要CPU执行一条单周期指令改变程序状态字PSW(特殊功能寄存器)的第3、4位,见表8-1。若程序中不需要4组工作寄存器,那么剩下的工作寄存器组所对应的单元也可以作一般的数据缓冲器使用。 表8-1 工作寄存器组的选择
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) (2)位寻址区
20H~2FH单元共16个字节。这16个RAM单元具有双重功能。它们既可以像普通RAM单元一样按字节存取,也可以单独存取,这就是位寻址。20H~2FH单元用作位寻址时,共有16×8=128位,每位分配了一个特定的地址,即00H~7FH,这些地址称为位地址,如图2.3所示。位地址在位寻址时使用。例如:把24H单元中最高位(位地址为27H)置位成1,则可以使用如下置位指令:
SETB 27H ; 27H ←1,SETB为置位指令的操作码
位地址的另一种表示方法是采用字节地址和位地址结合的表示方法。位地址05H可以表示成20H.5。 (3)用户数据区
30~7FH总共有80个RAM单元,存放用户数据或作堆栈操作使用。中断系统中的堆栈一般都设在这一区域内,MCS-51对用户数据区中的每个RAM单元是按字节存取的。
二、 内部数据存储器高128单元
在MCS-51系列单片机中,内部RAM的高128单元是供给特殊功能寄存器SFR(Special function register)使用的。所谓特殊功能寄存器是指有特殊用途的寄存器集合,也称专用寄存器。它们位于片内数据存储器之上,离散地分布在80H~FFH的地址空间范围内。
特殊功能寄存器的实际个数和单片机的型号有关:8051或8031的SFR有21个,8052的SFR有26个。
它们在80H~FFH的地址空间范围内,不为SFR占用的RAM单元实际并不存在,访问它们是没有意义的。表8-2列出了这些SFR的助记符号、名称和地址。
表8-2 特殊功能寄存器地址映像表
符号 P0# SP 名称 P0锁存器 堆栈指针 地址 80H 81H 符号 P1# 名称 P1锁存器 地址 90H 98H SCON# 串行口控制寄存器