




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 44 51单片机寄存器总结 8051单片机的存储器结构 MCS-51单片机在物理结构上有四个存储空间: 1、片内程序存储器 2、片外程序存储器 3、片内数据存储器 4、片外数据存储器 但在逻辑上,即从用户的角度上 , 8051单片机有三个存储空间: 1、片内外统一编址的 64K 的程序存储器地址空间 2、 256B的片内数据存储器的地址空间 2 / 44 3、以及 64K 片外数据存储器的地址空间 在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同的存储器空间的选通信号。 程序内存 ROM 寻址范围: 0000H FFFFH 容量 64KB EA = 1,寻址内部 ROM; EA = 0,寻址外部 ROM 地址长度: 16位 作用: 存放程序及程序运行时所需的常数。 七个具有特殊含义的单元是: 0000H 系统复位, PC指向此处; 0003H 外部中断 0入口 000BH T0溢 出中断入口 3 / 44 0013H 外中断 1 入口 001BH T1溢出中断入口 0023H 串口中断入口 002BH T2溢出中断入口 内部数据存储器 RAM 物理上分为两大区: 00H 7FH即 128B内 RAM 和 SFR 区。 作用:作数据缓冲器用。 程序存储器 一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写 的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器。程序相当于给微处理器处理问题的一系列命4 / 44 令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。 MCS-51 具有 64kB 程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无 ROM的 8031 单片机,它的程序存储器必须外接,空间地址为 64kB,此时单片机的端必须接地 。强制 CPU从外部程序存储器读取程序。对于内部有 ROM 的 8051 等单片机,正常运行时,则需接高电平,使 CPU 先从内部的程序存储中读取程序,当 PC 值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。 当 =1 时,程序从片内 ROM 开始执行,当 PC 值超过片内 ROM容量时会自动转向外部 ROM空间。 当 =0时,程序从外部存储器开始执行,例如前面提到的片内无 ROM的 8031单片机,在实际应用中就要把 8031的引脚接为低电平。 8051片内有 4kB的程序存储单元,其地址为 0000H 0FFFH,单片机启动复位后,程序计数器的内容为 0000H,所以系统将从 0000H单元开始执行 程序。但在程序存储中有些特殊的单元,这在使用中应加以注意: 5 / 44 其中一组特殊是 0000H 0002H 单元,系统复位后, PC 为0000H,单片机从 0000H 单元开始执行程序,如果程序不是从 0000H 单元开始,则应在这三个单元中存放一条无条件转移指令,让 CPU直接去执行用户指定的程序。 另一 组特殊单元是 0003H 002AH,这 40 个单元各有用途,它们被均匀地分为五段,它们的定义如下: 0003H 000AH 外部中断 0中断地址区。 000BH 0012H 定时 /计数器 0中断地址区。 0013H 001AH 外部中断 1中断地址区。 001BH 0022H 定时 /计数器 1中断地址区。 0023H 002AH 串行中断地址区。 可见以上的 40 个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。从上面可以看出,每个中断服务程序只有 8 个6 / 44 字节单元,用 8个字节来存放一个中断服务程序显然是不可能的。因此以上地址单元不能用于存放程序的其他内容,只能存放中断服务程序。但是通常情况下,我们是在中断响应的地址区安放一条无条件转移指令,指向程序存储器的其它真正存放中断服务程序的空间去执行 ,这样中断响应后, CPU读到这条转移指令,便转向其他地方去继续执行中断服务程序。 可知, 0000H-0002H,只有三个存储单元, 3 个存储单元在我们的程序存放时是存放不了实际意义的程序的,通常我们在实际编写程序时是在这里安排一条 ORG指令,通过 ORG指令跳转到从 0033H开始的用户 ROM区域,再来安排我们的程序语言。从 0033 开始的用户 ROM 区域用户可以通过 ORG 指令任意安排,但在应用中应注意,不要超过了实际的存储空间,不然程序就会找不到。 数据存储器 数据存储器也称为随机存取数据存储器。数据存储器分为内部数据存储和外部数据存储。 MCS-51内部 RAM有 128 或 256个字节的用户数据存储,片外最多可扩展 64KB的 RAM,构成两个地址空间,访问片内 RAM用 “MOV” 指令,访问片外 RAM7 / 44 用 “MOVX” 指令。它们是用于存放执行的中间结果和过程数据的。 MCS-51的数据存储器均可读写, 部分单元还可以位寻址。 MCS-51 单片机的内部数据存储器在物理上和逻辑上都分为两个地址空间,即: 数据存储器空间; 特殊功能寄存器空间; 这两个空间是相连的,从用户角度 而言,低 128单元才是真正的数据存储器。下面我们就来详细的与大家讲解一下: 低 128单元: 片内数据存储器为 8 位地址,所以最大可寻址的范围为 256个单元地址,对片外数据存储器采用间接寻址方式, R0、 R1和 DPTR 都可以做为间接寻址寄存器, R0、 R1 是 8 位的寄存器,即 R0、 R1的寻址范 围最大为 256个单元,而 DPTR 是 16位地址指针,寻址范围就可达到 64KB。也就是说在寻址片外数据存储器时,寻址范围超过了 256B,就不能用 R0、 R1 做为间接寻址寄存器,而必须用 DPTR 寄存器做为间接寻址寄存器。 8 / 44 从上我们可以得到, 8051单片机片内 RAM 共有 256 个单元,这 256 个单元共分为两部分。其一是地址从 00H 7FH 单元为用户数据 RAM。从 80H FFH地址单元为特殊寄存器单元。从图 1中可清楚地看出它们的结构分布。 1、通用寄存器区 在 00H 1FH 共 32 个 单元中被均匀地分为四块,每块包含八个 8 位寄存器,均以 R0 R7 来命名,我们常称这些寄存器为通用寄存器。这四块中的寄存器都称为 R0 R7,那么在程序中怎么区分和使用它们呢?聪明的 INTEL工程师们又安排了一个寄存器 程序状态字寄存器来管理它们, CPU 只要定义这个寄存的 PSW的 D3和 D4位,即可选中这四组通用寄存器。对应的编码关系如下表所示。惹程序中并不需要用 4组,那么其余的可用做一般的数据缓冲器, CPU 在复位后,选中第 0 组工作寄存器。 组 RS1 RS0 R0 R1 R2 R3 R4 R5 R6 R7 1 9 / 44 2 3 0 0 0 1 1 0 1 1 00H 08H 10H 18H 01H 09H 11H 19H 02H 10 / 44 0AH 12H 1AH 03H 0BH 13H 1BH 04H 0CH 14H 1CH 05H 0DH 15H 11 / 44 1DH 06H 0EH 16H 1EH 07H 0FH 17H 1FH 2、位寻址区 片内 RAM 的 20H 2FH 单元为位寻址区,既可作为一般单元用字节寻址,也可对它们的位进行寻址。位寻址区共有 16个字节, 128个位,位地址为 00H 7FH。位地址分配如下表所示: RAM位寻址区地址表 12 / 44 单元地址 MSB 位地址 LSB 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H 2DH 6FH 6EH 6DH 6CH 6BH 6AH 69H 68H 2CH 67H 66H 65H 64H 63H 62H 61H 60H 2BH 5FH 5EH 5DH 5CH 5BH 5AH 59H 58H 2AH 57H 56H 55H 54H 53H 52H 51H 50H 29H 4FH 4EH 4DH 4CH 4BH 4AH 49H 48H 28H 47H 46H 45H 44H 43H 42H 41H 40H 27H 3FH 3EH 3DH 3CH 3BH 3AH 39H 38H 26H 37H 36H 35H 34H 33H 32H 31H 30H 13 / 44 25H 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 24H 27H 26H 25H 24H 23H 22H 21H 20H 23H 1FH 1EH 1DH 1CH 1BH 1AH 19H 18H 22H 17H 16H 15H 14H 13H 12H 11H 10H 21H 0FH 0EH 0DH 0CH 0BH 0AH 09H 08 H 20H 07H 06H 05H 04H 03H 02H 01H 00H 8051单片机的存储器结构 MCS-51单片机在物理结构上有四个存储空间: 1、片内程序存储器 2、片外程序存储器 14 / 44 3、片内数据存储器 4、片外数据存储器 但在逻辑上,即从用户的角度上, 8051单片机有三个存储空间: 1、片内外统一编址的 64K 的程序存储器地址空间 2、 256B的片内数据存储器的地址空间 3、以及 64K 片外数据存储器的地址空间 在访问三个不同的逻辑空间时,应采用不同形式的指令,以产生不同的存储器空间的选通信号。 程序内存 ROM 寻址范围: 0000H FFFFH 容量 64KB EA = 1,寻址内部 ROM; EA = 0,寻址外部 ROM 15 / 44 地址长度: 16位 作用: 存放程序及程序运行时所需的常数。 七个具有特殊含义的单元 是: 0000H 系统复位, PC指向此处; 0003H 外部中断 0入口 000BH T0溢出中断入口 0013H 外中断 1 入口 001BH T1溢出中断入口 0023H 串口中断入口 002BH T2溢出中断入口 内部数据存储器 RAM 16 / 44 物理上分为两大区: 00H 7FH即 128B内 RAM 和 SFR 区。 作用:作数据缓冲器用。 下图是 8051 单片机存储器的空间结构图 程序存储器 一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中 。 MCS-51 具有 64kB 程序存储器寻址空间,它是用于存放用户程序、数据和表格等信息。对于内部无 ROM的 8031 单片机,它的程序存储器必须外接,空间地址为 64kB,此时单片机的端必须接地。强制 CPU从外部程序存储器读取程序。对于内部有 ROM 的 8051 等单片机,正常运行时,则需接高电平,17 / 44 使 CPU 先从内部的程序存储中读取程序,当 PC 值超过内部ROM的容量时,才会转向外部的程序存储器读取程序。 当 =1 时,程序从片内 ROM 开始执行,当 PC 值超过片内 ROM容量时会自动转向外部 ROM空间。 当 =0时,程序从外部存储器开始执行,例如前面提到的片内无 ROM的 8031单片机,在实际应用中就要把 8031的引脚接为低电平。 8051片内有 4kB的程序存储单元,其地址为 0000H 0FFFH,单片机启动复位后,程序计数器的内容为 0000H,所以系统将从 0000H单元开始执行程序。但在程序存储中有些特殊的单元,这在使用中应加以注意: 其中一组特殊是 0000H 0002H 单元,系统复位后, PC 为0000H,单片机从 0000H 单元开始执行程序,如果程序不是从 0000H 单元开始,则 应在这三个单元中存放一条无条件转移指令,让 CPU直接去执行用户指定的程序。 另一组特殊单元是 0003H 002AH,这 40 个单元各有用途,它们被均匀地分为五段,它们的定义如下: 18 / 44 0003H 000AH 外部中断 0中断地址区。 000BH 0012H 定时 /计数器 0中断地址区。 0013H 001AH 外部中断 1中断地址区。 001BH 0022H 定时 /计数器 1中断地址区。 0023H 002AH 串行中断地址区。 可见以上的 40 个单元是专门用于存放中断处理程序的地址单元,中断响应后,按中断的类型,自动转到各自的中断区去执行程序。从上面可以看出,每个中断服务程序只有 8 个字节单元,用 8个字节来存放一个中断服务程序显然是不可能的。因此以上地址单元不能 中断使能寄存器 通过设置中断使能寄存器 IE 的 EA 位 使能所有中断 每个中断源都有单独的使能位 可通过软件设置 IE 中相应的使能位在任何时候使能或禁能中断 中断使能寄存器 IE 的19 / 44 各 位如下所示 中断使能寄存器 IE 可位寻址 EA 使能标志位 置位则所有中断使能 复位则禁止所有中断保留 ET2 定时器 2 中断使能 ES 串行通信中断使能 ET1 定时器 1 中断使能 EX1 外部中断 1 使能 ET0 定时器 0 中断使能 EX0 外部中断 0使能 8051 支持两个中断优先级 有标准的中断机制, 低优先级的中断只能被高优先级的中断所中断 ,而高优先级的中断不能被中断。 中断优先级寄存器 每个中断源都可通过设置中断优先级寄存器 IP 来单独设置中断优先级 如果每个中断源的相应位被置位 则该中断源的优先级为高 ,如果相应的位被复位 , 则该中断源的优先级为低 , 如果你觉得两个中断源不够用 ,别急以后我会教你如何增加中断优先级 表 A-5 示出了 IP 寄存器的各位 此寄存器可位寻址 IP寄存器 可位寻址 20 / 44 PT2 定时器 2中断优先级 PS 串行通信中断优先级 PT1 定时器 1中断优先级 PX1 外部中断 1 优先级 PT0 定时器 0 中断优先级 PX0 外部中断 0 优先级 电源控制 PCON 8051 的 CHMOS 版本可通过软件设 置两种节电方式 空闲模式和低功耗模式 设置电源控制寄存器 PCON 的相应位来进入节电方式 置位 IDLE 进入空闲模式 空闲模式将停止程序执行 RAM 中的数据仍然保持 晶振继续工作 但与 CPU 断开 定时器和串行口续工作 , 发生中断将退出中断模式 执行完中断程序后 将从程序停止的地方继续指令的执行 通过置位 PDWN 位来进入低功耗模式 低功耗模式中晶振将停止工作 因此 定时器和 串行口都将停止工作 至少有两伏的电压加在芯片上 因此 RAM 中的数据仍将保存 退 出低功耗模式只有两种方式 上电或复位 SMOD 位可控制串行通信的波特率 将使由定时器 1 的溢出率或晶振频率产生的波特率 翻倍 置位 SMOD 可使工作于方式 1 2 3 定时器产生的波特率翻倍 当使用定时器 2 产生 21 / 44 波特率时 SMOD将不影响波特率 电源控制寄存器 PCON 不可位寻址 SMOD 串行口通信波特率控制位 置位使波特率翻倍 - 保留 - 保留 - 保留 GF1 通用标志位 GF0 通用标志位 PDWN 低功耗标志位 置位进入低功耗模式 IDLE 空闲标志位 置位进入空闲模式 PSW处理器状态 处理器的状态保存在状态寄存器 PSW 中 状态字中包括进位位 用于 BCD 码处理的辅 助进位位 , 奇偶标志位 , 溢出标志位 , 还有前面提到的用于寄存器组选择的 RS0 和 RS1 , 0 组从地址 00H 开始 1 组从地址 08H 开始 2 组从地址 10H 开始 3 组从地址 18H 开始 这些地址都可通过直接或间接方式进行寻址 PSW 的结构如下 AC 辅助进位标志位 F0 通用标志位 RS1 寄存器组选择位高位 RS0 寄存器组选择位低位 OV 溢出标22 / 44 志位 USR 用户定义标志位 P 奇偶标志位 定时器控制寄存 器 TCON 可位寻址 TR1 定时器 1 控制位 置位时定时器 1 工作 复位时定 时器 1 停止工作 TF0 定时器 0 溢出标志位 定时器 0 溢出时置位 处理器响应中断后清除该位 TR0 定时器 0 控制位 置位时定时器 0 工作 复位时定时器 0 停止工作 IE1 外部中断 1 触发标志位 当检测到 有从高到低的跳变电平时置位 处 理器响应中断后 由硬件清除该位 IT1 中断 1 触发方式控制位 置 位时为跳变触发 复位时为低电平触发 IE0 外部中断 1 触发标志位 当检测到 有从高到低的跳变电平时置位 处 理器响应中断后 由硬件清除该位 IT0 中断 1 触发方式控制位 置位时为跳变触发 复位时为低电平触发 定时器控制寄存器 TMOD-不可位寻址 23 / 44 定时器 0 GATE 当 GATE置位时 定时器仅当 TR=1并且 INT=1 时才工作 如果 GATE=0 置位 TR 定时器就开始工作 C/T 定时器方式选择 如果 C/T=1 定时器以计数方式工作 C/T=0 时 以 定时方式工作 M1 模式选择位高位 M0 模式选择位低位 串行控制寄存器 SCON -可位寻址 SM1 串行模式选择 SM2 多机通讯允许位 当模式 0 时 此位应该为 0 模式 1 时 当接收到停止位时 该位将置位 模式 2 或模式 3 时 当接收的第 9 位数据为 1时 将置位 REN 串行接收允许位 TB8 在模式 2 和模式 3 中 将被发送数据的第 9 位 RB8 在模式 0中 该位不起作用 在模式 1中 该位为接收24 / 44 数据的停止位 在模 式 2 和模式 3 中 为接收数据的第 9 位 TI 串行中断标志位 由软件清零 RI 接收中断标志位 有软件清零 51单片机存储类型 Keil 允许使用者指定程序变量的存储区 这使使用者可以控制存储区的使用 编译器 可识别以下存储区 51单片机寄存器功能一览表 21个特殊功能寄存器不连续地分布在 128个字节 的 SFR存储空间中,地址空间为 80H-FFH,在这片 SFR 空间中,包含有128个位地址空间,地址也是 80H-FFH,但只有 83 个有效位地址,可对 11个特殊功能寄存器的某些位作位寻址操作。 在 51 单片机内部有一个 CPU 用来运算、控制,有四个并行I/O 口,分别是 P0、 P1、 P2、 P3,有 ROM,用来存放程序,有 RAM,用来存放中间结果,此外还有定时 /计数器,串行I/O 口,中断系统,以及一个内部的时钟 电路。在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器。这样的特殊功能寄存器 51单片机共有 21个25 / 44 并且都是可寻址的列表如下 (其中带 *号的为 52 系列所增加的特殊功能寄存器): 分别说明如下: 1、 ACC-是累加器,通常用 A表示 这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在 ACC中的缘故吧。它的名字特殊,身份也特殊,稍后在中篇中我们将学到指令, 可以发现,所有的运算类指令都离不开它。自身带有全零标志 Z,若 A 0则 Z 1;若 A0 则 z 0。该标志常用作程序分枝转移的判断条件。 2、 B-一个寄存器 在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。 3、 PSW-程序状态字。 这是一个很重要的东西,里面放了 CPU工作 时的很多状态,借此,我们可以了解 CPU 的当前状态,并作出相应的处理。它的各位功能请看下表: 26 / 44 下面我们逐一介绍各位的用途 CY:进位标志。 8051中的运算器是一种 8 位的运算器, 我们知道, 8 位运算器只能表示到 0-255,如果做加法的话,两数相加可能会超过 255,这样最高位就会丢失,造成运算的错误,怎么办?最高位就进到这里来。这样就没事了。有进、借位, CY 1;无进、借位, CY 0 例: 78H+97H AC:辅助进、借位 (高半字节与低半字节间的进、借位 )。 例: 57H+3AH F0:用户标志位 由用户决定什么时候用,什么时候不用。 RS1、 RS0:工作寄存器组选择 位 通过修改 PSW 中的 RS1、 RS0 两位的状态,就能任选一个工作寄存器区。这个特点提高了 MCS-51 现场保护和现场恢复的速度。对于提高 CPU的工作效率和响应中断的速度是很有利的。若在一个实际的应用系统中,不需要四组工作寄存器,那么这个区域中多余单元可以作为一般的数据缓冲器使用。 0V:溢出标志位 运算结果按补码运算理解。有溢出, OV=1;无溢出, OV 0。27 / 44 什么是溢出我们后面的章节会讲到。 P:奇偶校验位 它用来表示 ALU 运算结果中二进制数位 “1” 的个数的奇偶性。若为奇数,则 P=1,否则为 0。运算结果有奇数个 1, P 1;运算结果有偶数个 1, P 0。 例:某运算结果是 78H,显然 1 的个数为偶数,所以 P=0。 4、DPTR-数据指针 可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。分成 DPL(低 8位 )和 DPH(高 8位 )两个寄存器。用来存放 16位地址值,以便用间接寻址或变址寻址的方式对片外数据 RAM或程序存储器作 64K字节范围内的数据操作。 5、 P0、 P1、 P2、 P3-输入输出口寄存器 这个我们已经知道,是四个并行输入 /输出口的寄存器。它里面的内容对应着管脚的输出。 6、 IE-中断充许寄存器 可按位寻址,地址: A8H 28 / 44 ? EA : EA=0 时,所有中断禁止; EA=1 时,各中断的产生由个别的允许位决定 ? ? ? ? ? ? ? - :保留 ET2:定时 2 溢出中断充许 ES :串行口中断充许 ET1:定时 1 中断充许 EX1:外中断 INT1 中断充许 ET0:定时器 0 中断充许 EX0:外部中断 INT0的中断允许 7、 IP-中断优先级控制寄存器 可按位寻址,地址位 B8H ? ? ? ? - :保留 - :保留 29 / 44 PT2:定时 2 中断优先 PS :串行口中断优先 ? ? ? ? PT1:定时 1 中断优先 PX1:外中断 INT1中断优先 PT0:定时器 0 中断优先 PX0:外部中断 INT0的中断优先 8、 TMOD-定时器控制寄存器 不按位寻址,地址 89H ? GATE :定时操作开关控制位,当 GATE=1时, INT0或 INT1引脚为高电平,同时 TCON中的 TR0 或 TR1控制位为1 时,计时 /计数器 0 或 1 才开始工作。若 GATE=0,则只要将 TR0或 TR1控制位设为 1,计时 /计数器 0或 1就开始工作。 ? C/T :定时器或计数器功能的选择位。 C/T=1为计数器,通过外部引脚 T0 或 T1 输入计数脉冲。 C/T=0 时为定时器,由内部系统时钟提供计时工作脉冲。 30 / 44 ? M1 、 M0: T0、 T1工作模式选择位 9、 TCON-定时器控制寄存器 可按位寻址,地址位 88H ? TF1:定时器 T1溢出标志,可由程序查询和清零,TF1也是中断请求源,当 CPU响应 T1中断时由硬件清零。 ? TF0:定时器 T0溢出标志,可由程序查询和清零,TF0也是中断请求源,当 CPU响应 T0中断时由硬件清零。 1、定时器 /计数器的方式寄存器 TMOD TMOD是一个 8 位的特殊功能寄存器,对应的地址是 89H,不可位寻址。 A主要完成三个功能: *确定选择定时器还是计数器; *选择何种工作方式; *是否借用外中断控制定时器和计数器的启停; 31 / 44 B TMOD 的低 4 位是控制 T0 的字段; TMOD 的高 4 位是控制T1的字段 C控制字的格式和含义 a、 GATE() 分为两种情况: GATE=0,定时器的启停和 INT1无关,只取决 于 TR0; GATE=1,定时器的启停不仅要由 TR0 来控制,而且要 INT1引脚的控制,只有二者都为高电平时定时器 才开始工作; b、 C/T() 分为两种情况: C/T=0,用作定时器; C/T=1,用作计数器; 32 / 44 d、 M1(), M0() 用 M1,M0 来控制定时器 /计数器的 4 种工作方式 : *方式 0: M1=0,M0=位定时 /计数方式 *方式 1: M1=0,M0=位定时 /计数器 *方式 2, M1=1,M0=位初值自动重新装入的 8位定时 /计数器 *方式 3, M1=1,M0=1.仅适用于 T0,分为两个 8 位计数器,T1停止计数 2、定时器 /计数器控制寄存器 TCON TCON是 一个 8 位的特殊功能寄存器,对应的地址为 88H,可为寻址。 A 控制字的格式和含义 a、 TF1(),TF0()-T1、 T0计数溢出标志位 33 / 44 当计数器计数溢出时,该位 置 “1” 。使用查询方式时,此位作为状态位供 cpu查询,但应注意在查询该位有效后应以软件方法及时将该位清 “0” 。使用中断方式时,此位作为中断申请标志位,进入中断服务程序后由硬件自动清 0. b、 TR1(),TR0()-计数运行控制位 TR1(TR0)=1,启动定时 /计数器工作的必要 条件,还与 GATE位的状态有关。 TR1(TR0)=0,停止定时 /计数器工作。 该位可由软件置 1 或清 0. c、 IE1(),IE0()-外部中断 INT1()、 INT0()的中断请求标志位。当有外部的中断请求时, INT1(INT0)=1(有硬件完成 ),在 cpu 响应中断后,由硬件将 IE1(IE0)清 0. d、 IT1(),IT0()-INT1(INT0)触发方式控制位可由软件进行置位和复位。 IT0(IT1)=0,INT0(INT1)为低电平触发方 式; 34 / 44 IT0(IT1)=1,INT0(INT1)为负跳变触发方式; 3、中断允许寄存器 IE 在 51 中断系统中,中断的允许或禁止是由片内可进行位寻址的 8 位中断允许寄存器 IE来控制的 EA():总开关,如果它等于 0,则所有中断都不允许; ES():串行口中断允许; ET1:定时器 1中断允许; EX1:外中断 1中断允许; ET0:定时器 0中断允许; EX0;外中断 0中断允许; 4、 5个中断源的优先级 单片机的中断服务入口地址如下,它们的自然优先级由高到35 / 44 低排列。 外中断 0: 0003H; 定时器 0: 000BH; 外中断 1: 0013H; 定时器 1: 001BH; 串口: 0023H; 采用 c51的编程语言,该语言中断服务函数的完整语法如下: 返回值 函数名称【模式】【重入】 interrupt n 【 using n】 interrupt 对应的是中断源的编号,而【 using】决定了使用寄存器的组号。这里,需要对寄存器 的组号进行简单的解释。51 系统中有 4 个寄存器组,具体的位置取决于 psw 的两位RS0、 RS1的设置。当运行一个中断任务时,采用不同的寄存器组。在 c51中,寄存器组的选择就取决于 using 后的变量的指定,变量位 03的整数。 36 / 44 在这里给出不同中断服务程序的 c51程序写法: *外中断 INT0-void intsvr0(void) interrupt 0 using 1 *定时 /计数器 T0-void timer0(void) interrupt 1 using 1 *外中断 INT1-void intsvr0(void) interrupt 2 using 1 *定时 /计数器 T1-void timer0(void) interrupt 3 using 1 *串口中断 -void serial0 interrupt 4 using 1 P3口的代替功能 TCON:定时器控制寄存器 TR0 定时器运行控制位 37 / 44 当 TR0 0 停止定时器 /计数器工作 当 TR0 1 启动定时器 /计数器工作 IE0 外中断请求标志位 当 CPU 采样到出现有效中断请求时,此位由硬件置 1。在中断响应完成后转向中断服务时,再由硬件自动清 0。 IT0 外中断请求信号方式控制位 当 IT0=1 脉冲方式 当 IT0 0 电平方式此位由软件置 1 或清 0。 TF0 计数溢出标志位 当计数器产生计数溢出时,此位由硬件置 1。当转向中断服务时,再有硬件自动清 0。计数溢出的标志位的使用有两种情况:采用 中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。 38 / 44 TMOD:工作方式 控制寄存器 当 0时,以运行 TR0启动或禁止定时器、计数器 当 1 时,以 TR0*/INT0 启动或禁止定时器、计数器 GATE 0 以 TR0 启动定时器 GATE 1 以 INT0 启动定时器 C/T 0 定时 /计数工作方式选择位 M1M0 工作方式选择位 T2MOD:工作方式控制寄存器 DCEN:当 1时, T2配置成向上向下计数器 T2CON:定时器控制寄存器 TF2: T2溢出标记 当 T2溢出时 TF2 1, T
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年长春市市直事业单位公开招聘高层次人才(4号)(17人)考前自测高频考点模拟试题及答案详解(全优)
- 2025河南郑州大学第三附属医院招聘160名考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025江苏南通市崇川区卫生系统面向毕业生招聘备案制高层次卫生人才15人考前自测高频考点模拟试题附答案详解
- 2025广东佛山市顺德区乐从第一实验学校临聘教师招聘模拟试卷及完整答案详解
- 2025年甘肃省平凉市崆峒区殡仪馆招聘合同制工作人员模拟试卷及答案详解(名校卷)
- 2025年福建省福州市长乐区行政服务中心管理委员会招聘2人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年4月第二批永州市本级就业见习岗位招聘14人模拟试卷及一套参考答案详解
- 2025内蒙古鄂尔多斯市康巴什区青年就业见习计划招募模拟试卷及一套完整答案详解
- 2025年宝应县公安局招聘警务辅助人员30人模拟试卷含答案详解
- 2025春季黑龙江哈尔滨“丁香人才周”尚志市事业单位引才招聘98人考前自测高频考点模拟试题及答案详解(有一套)
- 红楼梦第九回课件
- 2025民航西藏空管中心社会招聘14人(第1期)笔试参考题库附带答案详解(10套)
- 2025年职业病医师资格认证考试
- Unit4《Lesson 3 I am proud of my father》教案-2025-2026学年冀教版(三起)(2024)小学英语四年级上册
- 消防队伍管酒治酒课件
- 医学继续教育管理办法
- 夜间驾驶知识课件
- 动荡变化中的春秋时期
- 2025辅警考试题库(含答案)
- QGDW10212-2019电力系统无功补偿技术导则
- 牛奶面包食品配送服务 投标方案(技术方案)
评论
0/150
提交评论