搜档网
当前位置:搜档网 › 51系列单片机寄存器详解

51系列单片机寄存器详解

51系列单片机寄存器详解
51系列单片机寄存器详解

AUXR:辅助寄存器

字节地址=8EH,不可位寻址

- - - WDIDLE DISRTO - - DISALE

WDIDLE:WTD在空闲模式下的禁止/允许位

当WDIDLE=0时,WDT在空闲模式下继续计数

当WDIDLE=1时,WDT在空闲模式下暂停计数

DISRTO:禁止/允许WDT溢出时的复位输出

当DISRTO=0时,WDT定时器溢出时,在RST引脚输出一个高电平脉冲

当DISRT0=1时,RST引脚为输入脚

DISALE :ALE禁止/允许位

当DISALE=0时,ALE有效,发出恒定频率脉冲

当DISALE=1时,ALE仅在CPU执行MOVC和MOVX类指令时有效,不访问外寄存器时,ALE不输出脉冲信号

AUXR1:辅助寄存器1字节地址A2,不可位寻

- - - -- - - DPS

DPS:数据指针寄存器选择位

当DPS=0时,选择数据指针寄存器DPRT0

DPRT1时,选择数据指针寄存器DPS 当=

PSW:程序状态字

CY——进位标记

AC——半进位标记

F0——用户设定标记

RS1、RS0——4个工作寄存器区的选择位。

VO——溢出标记

P——奇偶校验标记

PCON:电源控制器及波特率选择寄存器

字节地址=87H,不可位寻址

SMOD - - POF GF1 GF0 PD IDL

SMOD——波特率倍增位

GF1、GF0——用户通用标记

PD——掉电方式控制位,PD=1时进入掉电模式

IDL——空闲方式控制位,IDL=1时进入空闲方式

在AT89S51中PCON.4是电源断电标记位POF,上电是为1

IE:中断允许控制寄存器

EA:中断允许总控制位

当EA=0时,中断总禁止。

当EA=1时,中断总允许后中断的禁止与允许由各中断源的中断允许控制位进行设置。

EX0( EX1):外部中断允许控制位

当EX0( EX1)=0 禁止外中断

当EX0( EX1)=1 允许外中断

ET0(EX1):定时/计数中断允许控制位

当ET0(ET1)=0 禁止定时(或计数)中断

当ET0(ET1)=1 允许定时(或计数)中断

ET2:定时器2中断允许控制位,在AT89S52、AT89C52中

ES:串行中断允许控制位

当ES=0 禁止串行中断

当ES=1 允许串行中断

IP:中断优先级控制寄存器

PX0——外部中断0优先级设定位

PT0——定时中断0优先级设定位

PX1——外部中断1优先级设定位

PT1——定时中断1优先级设定位

PS——串口中断优先级设定位

优先级设定位2PT2——定时器SCON:串行口控制寄存器

SM0、SM1:串行口工作方式选择位

SM2:多机通信控制位

REN:允许/禁止串行口接收的控制位

TB8:在方式2和方式3中,是被发送的第9位数据,可根据需要由软件置1或清零,也可以作为奇偶校验位,在方式1中是停止位。

RB8:在方式2和方式3中,是被接收的第9位数据(来自第TB8位);在方式1中,RB8收到的是停止位,在方式0中不用。

TI——串行口发送中断请求标志位

当发送完一帧串行数据后,由硬件置1;在转向中断服务程序后,用软件清0。——串行口接收中断请求标志位RI.

。01;在转向中断服务程序后,用软件清当接收完一帧串行数据后,由硬件置T2CON:定时器控制寄存器

TF2:T2溢出标记

当T2溢出时TF2=1,TD2只能用软件清除

当RCLK=1或TCLK=1时,TF2将不置位

EXF2:T2外部标记

当EXEN2=1时,T2EX/P1.1引脚上的负跳变引起T2的捕捉/重装操作,此时EXF2=1。在T2中断允许时,EXF2=1将引起中断,EXF2只能用软件清除。在T2的向上、向下计数模式下(DCEN=1)EXF2的置位将不引起中断。

RCLK:接收时钟允许

当RCLK=1时,T2的溢出脉冲可用作串行口的接收时钟信号,适于串行口模式1、3当RCLK=0时,T1的溢出脉冲用作串行口接收时钟信号

TCLK:发送时钟允许

EXEN2:T2外部事件(引起捕捉/重装的外部信号)允许

当EXEN2=1时,如果T2没有作串行时钟输出(即RCLK+TCLK=0),则在T2EX/P1.1引脚跳变将引起T2的捕捉/重装操作;

当EXEN2=0时,在T2EX引脚的负跳变将不起作用

TR2:T2的启动/停止控制

C/T2:计数定时

CP/RL2:捕捉/重装选择

当CP/RL2=1且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起捕捉操作

当CP/RL2=0且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起重装操作

当CP/RL2=0且EXEN2=0时,T2的溢出将引起T2的自动重装操作

当RCLK+TCLK=1时,CP/RL2控制位不起作用,T2被强制工作于重装方式。重装方式发生于T2溢出时,常用来作波特率发生器。

TMOD:工作方式控制寄存器

GATE——门控位

当=0时,以TR0(或TR1)状态决定定时器/计数器的启动或禁止

当=1时,以TR0与INT0(或TR1与INT1)状态决定定时器/计数器的启动或禁

C/T=0 定时/计数工作方式选择位 0为定时器 1为计数器。

M1M0——工作方式选择位

M1M0=00 方式0:是13位计数结构的工作方式,其计数器由TH全部8位和TL的低位构成。5M1M0=01 方式1:是16位计数结构的工作方式,计数器由TH全部8位和TL全部8位构成。位计数器。:自动装

入8 方式2M1M0=10

M1M0=11 方式3:定时器/计数器0被拆成两个独立的8位计数器TL0和TH0。其中的各控制位和引脚

信号全归它使用。计数器0TL0既可以计数使用,又可以定时使用,定时器/

T2MOD:工作方式控制寄存器

寄存器地址0C9H,不可位寻址

------ T2OE DCEN

T2OE:定时器2输出允许位,当=1时,P1.0/T2引脚输出连续脉冲信号

DCEN:当=1时,T2配置成向上向下计数器

P3口的代替功能

寄存器地址B0H,位寻址B7H~B0H。

引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7

代替功能 RXD TXD /INT0 /INT1 T0 T1 /WR /RD

TCON:定时器控制寄存器

TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。

TR0(TR1)——定时器运行控制位

当TR0(TR1)=0 停止定时器/计数器工作

当TR0(TR1)=1 启动定时器/计数器工作

IE0(IE1)——外中断请求标志位

当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应

完成后转向中断服务时,再由硬件自动清0。

IT0(IT1)——外中断请求信号方式控制位

当IT0(IT1)=1 脉冲方式(后沿负跳有效)

当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。

TF0(TF1)——计数溢出标志位

当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。

一、10MS定时器初值的计算:

12M

晶振1.

12MHz除12为1MHz,也就是说一秒=1000000次机器周期。10ms=10000次机器周期。

65536-10000=55536(d8f0)

TH0=0xd8,TL0=0xf0

2.晶振11.0592M

11.0592MHz除12为921600Hz,就是一秒921600次机器周期,10ms=9216次机器周期。

65536-9216=56320(dc00)

TH0=0xdc,TL0=0×00

二、50MS定时器初值的计算:

1.晶振12M

12MHz除12为1MHz,也就是说一秒=1000000次机器周期。50ms=50000次机器周期。

65536-50000=15536(3cb0)

TH0=0×3c,TL0=0xb0

2.晶振11.0592M

11.0592MHz除12为921600Hz,就是一秒921600次机器周期,50ms=46080次机器周期。

65536-46080=19456(4c00)

TH0=0×4c,TL0=0×00

三、使用说明

以12M晶振为例:每秒钟可以执行1000000次机器周期个机器周期。而T 每次溢出

最多65536 个机器周期。我们尽量应该让溢出中断的次数最少(如50ms),这样对主程序的干扰也就最小。

有关中断的概念.

仔细研什么叫中断?

举例:同学正在教室写作业,忽然被人叫出去,回来后,继续写作业这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。

引入计算机中断的概念。

中断的作用:

处理断电保存,解决快速CPU与慢速外设之间的矛盾等。

对MCS-51单片机的中断系统用一句话讲叫:“五源中断,两级管理”

中断请求源(五源中断)

五个中断源:

外部中断0(/INT0) 0003H

T0溢出中断 000BH

外部中断1(/INT1) 0013H

T1溢出中断 001BH

串口中断入口地址 0023H

有了中断请求,如何通知CPU?

通过中断请求标志位来通知CPU。

研究一下生活中的中断,对于我们学习单片机的中断也很有好处。

第一、什么可以引起中断,生活中很多事件可以引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了….等等诸如此类的事件,我们把可以引起中断的称之为中断源,单片机中也有一些可以引起中断的事件,8031中一共有5个:两个外部中断,两个计数/定时器中断,一个串行口中断。

第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,你该先做那样呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。如果不是这两者(即不等电话,也不是等人上门),你可能会按你通常的习惯去处理。总之这里存在一个优先级的问题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生的情况,比如你正接电话,有人按门铃的情况,或你正开门与人交谈,又有电话响了情况。考虑一下我们会怎么办吧。

第三、中断的响应过程:当有事件产生,进入中断之前我们必须先记住现在看书的第几页了,或拿一个书签放在当前页的位置,然后去处理不同的事情(因为处理完了,我们还要回来继续看书):电话铃响我们要到放电话的地方去,门铃响我们要到门那边去,也说是不同的中断,我们要在不同的地点处理,而这个地点通常还是固定的。计算机中也是采用的这种方法,五个中断源,每个中断产生后都到一个固定的地方去找处理这个中断的程序,当然在去之前首先要保存下面将执行的指令的地址,以便处理完中断后回到原来的地方继续往下执行程序。具体地说,中断响应可以分为以下几个步骤:

、保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。1.2、寻找中断入口,根据5个不同的中断源所产生的中断,查找5个不同的入口地址。以上工作是由计算机自动完成的,与编程者无关。在这5个入口地址处存放有中断处理程序(这是程序编写时放在那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行到)。

3、执行中断处理程序。

4、中断返回:执行完中断指令后,就从中断处返回到主程序,继续执行。

究竟单片机是怎么样找到中断程序所在位置,又怎么返回的呢?我们稍后再谈。MCS-51中断系统的结构:

8031单片机的中断系统简单实用,其基本特点是:有5个固定的可屏蔽中断源,3个在片内,2个在片外,它们在程序存储器中各有固定的中断入口地址,由此进入中断服务程序;5个中断源有两级中断优先级,可形成中断嵌套;2个特殊功能寄存器用于中断控制和条件设置的编程。

中断系统的结构:

5个中断源的符号、名称及产生的条件如下。

INT0:外部中断0,由P3.2端口线引入,低电平或下跳沿引起。

INT1:外部中断1,由P3.3端口线引入,低电平或下跳沿引起。

T0:定时器/计数器0中断,由T0计满回零引起。

T1:定时器/计数器l中断,由T1计满回零引起。

TI/RI:串行I/O中断,串行端口完成一帧字符发送/接收后引起。

整个中断系统的结构框图见下图一所示。

由图一可见,外部中断有下跳沿引起和低电平引起的选择;串行中断有发送(TI)相接收(R1)的区别;各个中断源打开与否,受中断自身的允许位和全局允许位的控制,并具有高优先级和低优先级的选择。

中断请求源:

(1)外部中断请求源:即外中断0和1,经由外部引脚引入的,在单片机上有两个引脚,名称为INT0、INT1,也就是P3.2、P3.3这两个引脚。在内部的TCON 中有四位是与外中断有关的。

IT0:INT0触发方式控制位,可由软件进和置位和复位,IT0=0,INT0为低电平为负跳变触发方式。这两种方式的差异将在以后再谈。INT0,IT0=1触发方式,IE0:INT0中断请求标志位。当有外部的中断请求时,这位就会置1(这由硬件来完成),在CPU响应中断后,由硬件将IE0清0。

IT1、IE1的用途和IT0、IE0相同。

(2)内部中断请求源

TF0:定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置位TF0。当CPU响应中断后,再由硬件将TF0清0。

TF1:与TF0类似。

TI、RI:串行口发送、接收中断,在串口中再讲解。

中断系统的控制寄存器:

中断允许寄存器IE

中断屏蔽

在中断源与CPU之间有一级控制,类似开关,其中第一级为一个总开关,第二级为五个分开关,由IE控制。

在MCS-51中断系统中,中断的允许或禁止是由片内可进行位寻址的8位中断允许寄存器IE来控制的。见下表

其中EA是总开关,如果它等于0,则所有中断都不允许。

ES-串行口中断允许

ET1-定时器1中断允许

EX1-外中断1中断允许。

ET0-定时器0中断允许

中断允许。0-外中断EX0.

如果我们要设置允许外中断1,定时器1中断允许,其它不允许,则IE可以是

相关主题