AT89C51的特点文档格式.docx

上传人:b****7 文档编号:22164129 上传时间:2023-02-02 格式:DOCX 页数:22 大小:30.53KB
下载 相关 举报
AT89C51的特点文档格式.docx_第1页
第1页 / 共22页
AT89C51的特点文档格式.docx_第2页
第2页 / 共22页
AT89C51的特点文档格式.docx_第3页
第3页 / 共22页
AT89C51的特点文档格式.docx_第4页
第4页 / 共22页
AT89C51的特点文档格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

AT89C51的特点文档格式.docx

《AT89C51的特点文档格式.docx》由会员分享,可在线阅读,更多相关《AT89C51的特点文档格式.docx(22页珍藏版)》请在冰豆网上搜索。

AT89C51的特点文档格式.docx

00

01

10

11

寄存器组选择控制位

组0被选择,数据寄存器地址00H~07H

组1被选择,数据寄存器地址08H~0FH

组2被选择,数据寄存器地址10H~17H

组3被选择,数据寄存器地址18H~1FH

 

溢出标志位,用于符号数运算的溢出。

当运算结果次高位向最高位产生进位,而最高位不产生进位时溢出位置1,否则溢出位置零

通用标志位

奇偶校验标志位。

每一指令周期由硬件设置/清零以指示累加器A中“1”位的个数:

偶数个“1”置0,奇数个“1”则置1

4.堆栈指针SP

AT89C51单片机允许用户内部RAM的任一连续区域作为堆栈区。

AT89C51C51型内部RAM为128字节。

AT89C51C51型为256字节,所以堆栈指针SP为8位寄存,指示堆栈栈顶。

压入堆栈时SP先自动加工厂,将欲压栈的数据压入SP所指示的单元。

出栈时将SP所指示的栈顶地址单元内数据弹出,然后SP自动减肥,因而SP总是指向栈顶。

在芯片复位或上电后,栈指针SP总是初始化指向07H单元,所以第一个压入堆栈的数据放08H单元中,并以此为起始单元。

堆栈指针SP的内容可以编程,从而再定位到内部数据存储器RAM的任意位置。

5.16位数据指针DPTR

DPTR是一个独特的16位地址寄存器。

它可以指向64K字节范围的任一地址单元。

它分为二个独立的8位数据指针:

DPH和DPL。

它的功能是存放16位地址,用于间接调用(CSLL)、转移(JMP)以及外部数据传送和查表指令。

6.程序计数器PC

PC的内容是要执行的下一条指令的地址,它决定程序执行的次序。

指令周期是这样进行的:

CPU把PC的内容放在地址总线(片内或片外)上,CPU把指令字(可能是多字节指令——从存储器取出,这时PC自动增量,PC内容指出下一条指令地址。

例如指令是三字节的,则每取一个字节,PC就增1;

取出三字节指令后,PC仍指向下一条指令地址。

如此不断执行。

一般指令是按顺序执行的。

若要改变正常的次序,必须把新的数据送入PC,这叫做转移。

必须注意AT89C51系列的PC不在特殊功能寄存SFR中,指令不能直接访问。

振荡器及时钟电路

复位电路

2.4.2具有第二功能的I/O口引脚

P3口的8位是双向功能的(AT89C51C52类还有P1口的2位),它们除正常的并行I/O功能外,还可用作特殊的第二功能(也称变异功能)。

有第二功能的I/O口各位如下表所示。

表2具有第二功能的I/O口

I/O引脚

第二功能

P3.0

RXD——串行数据输入端(异步)或串行数据输入/输出端(同步)

P3.1

TXD——串行数据发送端(异步)或串行时钟输出端(同步)

P3.2

INT0——外部中断0请求输入/定时器0选通控制

P3.3

INT1——外部中断1请求输入/定时器1选通控制

P3.4

T0——计数器0的外部输入端

P3.5

T1——计数器1的外部输入端

P3.6

WR——外部数据存储器写控制,把来自P0口的数据字节锁入外部数据存储器

P3.7

RD——外部数据存储器读控制,把外部数据存储器

AT89C51系列单片机的I/O口作输入时,一定要按单片机使用手册上的要求,先向I/O口写入“1”,否则I/O口工作不正常,这里再强调一下。

低地址RAM区中的00~1FH单元共同社32个单元为工作寄存器区,共分四组,每组8个8位寄存器,称为工作寄存器组0~工作寄存器组3。

在某一时刻只能选用其中一个组工作(通过程序状态字PSW的工作寄存器选择位来选择)。

从20H~2FH共16个字节单元,这16个字节单元既可字节寻址也可位寻址,位地址从00H~7FH,共128位。

从30H~7FH共80个字节单元,为字节寻址的内部RAM区(也称用户RAM区)。

AT89C51系列单片机设有七种寻址方式,即:

寄存器寻址。

直接寻址。

寄存器间接寻址。

立即寻址。

基址寄存器加变址寄存器间接寻址。

相对寻址。

位寻址。

序号

寻址方式

相应存储器空间

1

寄存器寻址

R0~R7,ACC,B,Cy(位),DPTR

2

直接寻址

内部RAM低地址128字节和特殊功能寄存器

3

寄存器间接寻址

内部RAM(@R1,@R0,SP)外部数据存储器(@R1,@R0,@DPTR)

4

立即寻址

程序存储器立即数

5

基址寄存器加变址寄存器间接寻址

程序存储器(@A+DPTR,@A+PC)

6

相对寻址

以PC的当前值为基地址+指令中给出的偏移量=有效转移地址。

转移范围:

PC当前值的+127~+128字节

7

位寻址

参内部RAM或特殊功能寄存器的某些单元进行位寻址

1TMOD和TCON寄存器

在AT89C51单片机中有二个SFR,即TMOD和TCON寄存器,用来设定定时/计数器的工作方式和有关功能。

当用指令来设定TMOD和TCON时,其内容锁存在这二个寄存器中,而在下个指令的第一个机器周期的S1P1时发生作用。

这二个SFR各位的含义及功能说明如下。

1.定时器方式寄存器TMOD

定时器方式寄存器TMOD的格式如下:

位序号

GATE

C/T

M1

M0

TMOD

M1M0

工作方式

功能说明

输入时钟

内部(定时吕器)

外部(计数吕器)

00

方式0

13位定时/计数器

fosc/(12×

32)

Fosc/(24×

01

方式1

16位定时/计数器

fosc/12

fosc24

10

方式2

具有8位重装的8位定时/计数器

11

方式3

定时/计数器0用作一个8位定时/计数器和一个8位定时器。

定时/计数器1停止

C/T:

选择定时方式或计数方式。

当。

C/T=1时为计数方式;

当C/T=0时为定时方式。

GATE:

门控制。

置“1”时,只有当INT0

(1)引脚为高电平且TR0

(1)置“1”时才运行定时器0

(1);

清“0”时,只要TR0

(1)位置“1”就运行定时器0

(1)。

低4位用于定义定时/计数吕器0,高4位用于定义定时/计数吕器1。

复位时TMOD的所有位均清0。

2.定时器控制寄存器——TCON

定时器控制寄存器的格式如下为:

位序号76543210

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TCON

其中:

TF1:

定时器1溢出中断请求标志。

当定时器1溢出时由硬件置1,当主机响应中断,程序

转向中断程序时,由硬件清0。

TR1:

定时器具运行控制行。

由软件置位/复位来开启或关闭定时器1。

TF0:

定时器0溢出中断请求标志。

当定时器0溢出时由硬件置1,当主机响应中断,程序

转向中断服务程序时,由硬件清0。

TR0:

定时器0运行控制位。

由软件置位/复位来开启/关闭定时器0。

IE1:

外中断定跳变中断请求标志。

当检测到INT0引脚上发生由1→0跳变,且IT1=1时,

由硬件置位IE1;

当主机响应中断,程序转向中断服务程序时,由硬件清0IE0。

IT1:

用软件置位/清0来选择外中断定的跳变/电平触发中断请求。

如果IT1=1,外中断由

跳变触发,前一周期INT1上为高电平,紧接后一个周期为低电平,即INT1上的跳

变触发产生中断请求;

如果IT1=0,则由INT1上的低电平触发产生中断请求。

IT0:

用软件置位/清洗来选择外中断定的跳变/电平触发中断请求。

选择原理同IT1。

2.2.7串行接口

AT89C51的串行I/O为全双工接口,即接收和发送可以同时进行。

它有接收缓冲器,在读出前一个数据字节时,能开始接收第二个数据字节。

如果在第二个字节已接完毕,而第一个字节尚未被读出,则将丢失其中的一个字节,读出SBUF实际就是从接收寄存器中读取信息。

串行I/O有4种工作方式(一种同步方式,三种异步方式),这可通过对SCON控制编程来选择。

串行接口控制寄存器SCON的格式如下:

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

SCON

这个寄存器的内容不仅是方式选择位和控制位,还有发送和接收时的第九数据数(TB8、RB8)和串行口中断位(TI、RI)。

下面详细说明:

SM0、SM1确定串行口的工作方式:

SM0SM1工作方式功能说明波特率

00方式0同步工作方式1/12fOSC

01方式110位可变(定时器溢出率/N)

10方式211位1/64或1/32fOSC

11方式311位可变(定时器溢出率/N)

SM2:

允许方式2和3的多机通讯控制位。

在方式2和3中,如SM2由软件置为1,则接收到的第9位数据(RB8)为0时不启动接收中断标志RI(RI=0)。

在方式1中,如SM2=1,则只有在接收到有效停止位时才启动RI,没有接收到的效停止位,则RI清0(不启动)。

在方式0中,SM2应为0。

REN:

允许串行I/O接收控制位。

软件置位(REN=1时允许接收,启动串行口的接收器RDX,开始接收数据。

软件复位(REN=0)时,则禁止接收。

TB8:

方式2和3中,要发送的第9位数据,按需要由软件进行置位或清0。

例如可用作数据的奇偶校验位。

RB8:

方式2和3中,是接收到的第9位数据。

在方式1中,若SM2=0,则RB8是接收到的停止位,在方式0中,不使用RB8。

TI:

发送中断标志。

在方式0的串行发送第8位结束时,由硬件置位。

CPU响应中断后,必须用软件清“0”。

在其它方式中,则在停止位开始时置位,必须用软件清“0”。

RI:

接收中断标志。

方式0串行接收到第8位结束时由硬件置位。

在其它方式中,串行接收到停止位的中间时刻硬件置位(例外情况见SM2的说明)。

必须用软件清0。

复位时SCON的所有位都清0。

2.8.1中断源的说明

下面将5个中断请求源说明如下:

INT0:

外部中断0请求,低电平有效。

它由P3。

2引脚输入(第二功能)。

在第个机器周期的S5P2采样P3。

2引脚,并置位或清0SFR中IE的EXO标志。

INT1:

外部中断1请求,低电平有效。

3引脚输入(第二功能),在每个机器周期S5P2采样P3。

3引脚,并置位或清0SFR中IE的EXI标志。

定时器0溢出中断:

当定时器0产生溢出,置位内部定时器0中断请求标志TF0,请求中断处理。

定时器1溢出中断:

当定时器1产生溢出,置位内部定时器1中断请求标志TF1,请求中断处理。

串行中断:

当完成一串行帧的接收/发送时,置位内部串行中断请求标志TI(发送)或RI(接收),请求中断处理。

2.8.2中断允许寄存器IE

是否允许中断由中断允许寄存器IE中的各位决定,通过软件对IE中各位的编程,可分别控制各个中断也可实现总的允许中断或禁止中断的控制、IE寄存器的格式如下:

EA

__

ET2

ES

ET1

EX1

ET0

EX0

IE

EA(IE·

7):

禁止所有中断。

当EA=0,则禁止所有中断响应。

当EA=1,则各中断源的允许或禁止取决于各自中断允许位的状态(置位或清0)。

-(IE·

6):

保留,无意义。

ET2(IE·

5):

允许或禁止定时器2(52型)的溢出和捕获中断。

ET2=0,禁止中断;

ET2=1,允许中断。

ES(IE·

4):

允许或禁止串行口的中断。

ES=0,禁止中断;

ES=1,允许中断。

ET1(IE·

3):

允许或禁止定时器1的溢出中断。

ET1=0,禁止中断;

ET1=1,允许中断。

EX1(IE·

2):

允许或禁止外中断1(INTI)的中断。

EX1=0禁止中断;

EX1=1,允许中断。

ET0(IE·

1):

允许或禁止定时器0的溢出中断。

ET0=0,禁止中煌;

ET0=1,允许中断。

EX0(IE0):

允许或禁止外中断0(INT0)的中断,EX0=0,禁止中断;

EX0=1,允许中断。

2.8.3中断优先级

AT89C51系列单片机的中断具有两级优先级。

每一个中断源都可以通过对中断优先级寄存器IP中的相应位置位或清0,编程为两级中断中的任一级——高优先级或低优先级,置1为高优先级,清0为低优先级。

低优先级可被高优先级所中断,但不能被另一个低优先级中断所中断。

高优先级中断不能被任何中断所中断。

为了实现这些规定,中断系统中设有二个不可寻址的优先级状态触发器,其中一个用来指出正在服务于高优先级中断,并阴止所有其它中断的响应。

另一个则指出正在服务于低优先级中断,并阻止除高优先级中断以外的其它中断的响应。

当同时接收到几个优先级相同的中断请求时,则由内部查询次序来确定响应哪一个中断请求。

因此,在每个中断级中又有按查询次序的中断优先次序。

查询次序如下:

1.IE0(外中断INT0)最先查询

2.TF0(定时器0溢出中断)

3.IE1(外中断INTI)

4.TF1(定时器1溢出中断)

5.RI+TI(串行口中断)

6.TF2+EXF2(定时器2溢出中断)最后查询

这种“同级内的优先次序”仅用来解决相同优先级中断源同时请求中断的情况,而不能中断正在执行的同优先级的中断。

中断优先级寄存器IP的格式始下:

PT2

PS

PT1

PX1

PT0

PX0

IP

中断优先级寄存器IP中各位功能说明如下:

PT2(IP·

定义定时器2的中断优先级。

通过编程设置PT2=1为高优先级中断,PT2=0为低优先级中断。

PS(IP·

定义串行口中断优先级。

通过编程设置PT1=1为高优先级中断,PS=0为低优先级中断。

PT1(IP·

定义定时器1中断优先级。

通过编程设置PT=1为高优先级中断,PT1=0为低优先级中断。

PX1(IP·

定义外中断定(INT1)的优先级。

通过编程设置PX1=1为高优先级中断,PX1=0为低优先级中断。

PT0(IP·

定义定时器0中断优先级。

通过编程设置PT0=1为高优先级中断,PX0=0为低优先级中断。

PX0(IP·

0):

定义外中断0(INT0)优先级。

通过编程设置PX0=1为高优先级中断,PX0=0为低优先级中断。

2.8.4中断执行的过程

CPU在每个机器周期的S5P2状态采样中断标志,而在下一个机器周期对采样到的中断进行查询。

如果在前一个机器周期的S5P2有中断标志置位,则在查询周期内便会查询到并按优先级进行中断处理。

中断系统将产生一个长调用(LCALL)指令,控制程序转入相应的中断服务程序。

硬件生成LCALL指令被下列条件所封锁:

1.一个同级或高一级的中断正在处理中。

2.当前周期(即查询周期)不是执行当前指令的最后一个周期。

3.当前正在执行的指令是返回(RETI)指令或对IE或IP寄存器进行读/写指令。

上述三个条件的任一个都能封锁转向中断服务程序的长调用。

其中每二条是保证把当前指令执行完,第三条是保证在当前执行的是返回(RETI)指令或对寄存器IE、IP进行读/写的指令时,必须至少再执行完一条指令之后才响应。

中断查询在每个机器周期中重复执行,所查询到的值为前一个机器周期的S5P2时采样到的中断标志。

这里需注意的是:

如中断标志被置位,但因上述条件之一而未被响应,或上述封锁条件已撤消后标志位已不再存在(已不是置位状态)时,被拖延的中断就不再被响应。

也就是说,对中断标志置位后,未能及时响应转入中断服务程序的状态不作记忆。

每个查询周期都重新进行。

中断源向量地址

IE0(外部中断0)0003H

TF0(定时器0溢出中断)000BH

IE1(外部中断1)0013H

TF1(定时器1溢出中断)001BH

RI+TI(串行口是中断)0023H

IF2+EXF2(定时器2中断)002BH

中断服务程序从向量地址处开始执行,直到执行返回(RETI)指令时为止。

RETI指令的执行,一方面通知中断控制系统,该中断服务程序已经执行完毕;

另一方面将原压入堆栈保护的断点地址(PC值)从栈顶弹出装入程序计数器(PC),使被中断的程序继续从断点处恢复执行。

AT89C51系列设有二条返回指令RETI和RET。

返回指令RET虽然也能使程序返回到原被中断的地方继续往下执行,但它不通知断控制系统,致使中断控制系统误认为仍在继续执行中断服务程序。

因此,中断返回一定要用RETI指令,而不能用RET代替。

助记符

说明

字节

振荡器周期

算术运算类

ADD

A,Rn

加寄存器至累加器

12

A,direct

加直接地址内容至累加器

A,@Ri

加间接RAM内容至累加器

A,#data

加立即数至累加器

ADDC

带进位加寄存器至累加器

带进位加直接地址内容至累加器

带进位加间接RMA内容至累加器

带进位加立即数至累加器

SUBB

带借位从Acc减寄存器

A,#Ri

带借位从Acc减直接地址内容

带借位从Acc减间接RMA内容

A

带借位从Acc减立即数

INC

Acc增1

Rn

寄存器增1

Direct

直接地址内容增1

间接RAM内容增1

DEC

Acc减1

寄存器减1

直接地址内容减1

@Ri

间接RMA内容减1

DPTR

数据指针增1

24

MUL

AB

A乘B

48

DIV

A被B除

DA

累加器十进制调整

逻辑运算类

ANL

寄存器与Acc相与

直接地址内容与Acc相与

间接RMA内容与Acc相与

立即数与Acc相与

Direct,A

Acc与直接字节相与

DIRECT,#data

立即数与直接字节相与

ORL

寄存器与Acc相或

直接地址内容与Acc相或

间接RMA内容与Acc相或

立即数与Acc相或

立即数与直接地址内容相或

Direct,#data

寄存器与Acc相异或

XRL

直接地址内容与Acc相异或

间接RAM内容与Acc相异或

立即数与Acc

Acc与直接地址内容相或

立即数与直接地址内容相异或

清零Acc

CLR

取反Acc

CPL

Acc向左移位

RLC

通过进位位Acc向左移位

RR

Acc向右移位

RRC

通过进位位Acc向右移位

S

内高低4位互换

数据传送类

MOV

寄存器内容传送至Acc

直接地址内容传送至Acc

间接RAM内容Acc

立即数传送至Acc

Rn,A

Acc内容传送至寄存器

Rn,direct

直接地址内容传送至寄存器

Rn,#data

立即数传送至寄存器

Acc内容传送至直接地址

Direct,Rn

寄存器内容传送至直接地址

Direct,direct

直接地址内容传送到直接地址

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小学作文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1