单片机第三章分析
第三章 MCS-51单片机的寻址方式和指令系统
由此可把数据传送指令分成三部分
(一)内部数据传送(通用传送指令)
1.以A为目的操作数
MOV A,Rn MOV A,@Ri ;A← (Rn) ;A←((Ri))
双字节
11101rrr 1110011i
MOV A,direct ;A←(direct) 11100101 direct
MOV A,#data ;A←#data 例: MOV A,@R1 若(R1)=20H,(20H)=62H 结果:(A)=62H 11100100 data
指令MOVC A,@A+DPTR;执 行示意图
结果:(ACC)=64H
六、相对寻址
以当前PC的内容为基准,加上指令给出的 偏移量(rel)形成新的PC值(转移地址) 的寻址方式。
转移地址=目的地址 =当前(PC)+rel
目的地址=PC当前值十rel 目的地址=转移指令的PC值+2(或3)十rel 目的地址=转移指令地址+转移指令字节数+rel
单周期:64 双周期:45 四周期:2
若fosc=12MHz, 大多指令执行 仅1μs
按照指令的功能分5大类
一、数据传送类指令(29条) 二、算术运算类指令(24条) 三、逻辑操作类指令(24条) 四、控制转移类指令(17条) 五、位操作类指令 (17条)
在描述指令系统的功能时,常用符号介绍:
@——间址符号,如@Ri,@DPTR 13. / ——位操作数的前缀,表示对该位操作 数取反,如/bit。 14. (×)——由×寻址的单元中的内容。 15. ((X))——由X的内容作为地址的存 储单元的内容。 16. ← ——箭头右边的内容取代箭头左边的 内容。
12.
一、数据传送类指令(29条)
单片机 第三章课件
第六讲课题:第三章MCS-51指令系统一教学目的:了解指令系统概述、熟练掌握数据传送指令教学难点、重点:指令的用法作业:实验预习I、课程复习、引入单片机硬件方面的内容告一段落,以下开始学习指令系统II、本课内容第三章MCS-51指令系统3.1概述●计算机能直接识别的只能是由0和1编码组成的指令,这种编码称为机器码或称为机器语言指令●由机器码编制的计算机能识别和执行的程序称为目标程序。
●每一条指令包含两个基本部分:操作码和操作数。
操作码表明指令要执行的操作性质;操作数说明参与操作的数据或数据所存放的地址。
●MCS-51机器语言指令有单字节指令,双字节指令和三字节指令三种格式1.单字节指令单字节指令格式由8位二进制编码表示,有两种形式:(1)8位编码全表示操作码。
例:NOP(2)8位编码中包含操作码和寄存器编码,例如:MOV A ,Rn 11101xxx xxx=0~72.双字节指令MOV A, # DATA 74H DATA 三字节指令三字节指令格式中第一个字节为操作码,其后两个字节为操作数。
例如:MOV direct, #DATA 75H direct DATA一条汇编语言指令中最多包含 4 个区段, 如下所示:[标号:]操作码助记符[操作数][,操作数][;注释]例:START: MOV A, #0F0H ;将F0H赋值给A寄存器4 个区段之间要用分隔符分开:标号与操作码之间用“:”隔开,操作码与操作数之间用空格隔开,操作数与注释之间用“;”隔开, 如果操作数有两个以上,则在操作数之间要用逗号“,”隔开(乘法指令和除法指令除外)。
注意:所有标点、空格都不能是中文标点!::;;,,3.2 寻址方式●有操作数的指令中,操作数可能在指令、寄存器、存储器、I/O接口中●地址:寄存器,存储器和I/O接口进行的编号寄存器一般可以用寄存器名表达I/O接口和程序存储器以及外部数据存储器用16位地址表达内部RAM用8位地址表达●指令中所规定的寻找操作地址的方式称为寻址方式。
第3章 STC15F2K60S2单片机的基本结构
D5 F0
D4 D3 D2 RS1 RS0 OV
D1 F1
D0 P
AC(PSW.6):辅助进位标志位 当执行加/减法指令时,如果低四位数向高 四位数产生进/借位,则AC置“1”,否则清 零。
10:15:52
11/109
位号 D7 D6 符号 CY AC
D5 F0
D4 D3 D2 RS1 RS0 OV
10:15:52
12/109
位号 D7 D6 符号 CY AC
D5 F0
D4 D3 D2 RS1 RS0 OV
D1 F1
D0 P
ቤተ መጻሕፍቲ ባይዱ
RS1,RS0(PSW.4~PSW.3):工作寄存 器组选择控制位,其详细介绍见后续内容。 OV(PSW.2):溢出标志位。指示运算过 程中是否发生了溢出,在执行指令过程中 自动形成。
10:15:52
3/109
以目前市场上常见的8051内核单片机STC15F2K60S2为例, 说明单片机的内部结构。STC12C5A60S2单片机主要集成 了以下资源:
增强型8051内核,单时钟机器周期,速度比传统8051内核单片机 快8~12倍 60KB Flash程序存储器;1KB数据Flash;2048字节的SRAM 3个16位可自动重装载的定时/计数器(T0、T1、T2) 可编程时钟输出功能 至多42根I/O口线 2个全双工异步串行口(UART) 1个高速同步通信端口(SPI) 8通道10位ADC 3通道PWM/可编程计数器阵列/捕获/比较单元 内部高可靠上电复位电路和硬件看门狗 内部集成高精度R/C时钟,常温工作时,可以省去外部晶振电路。
10:15:52
15/109
(2)控制器 控制器是CPU的大脑中枢,包括定时控 制逻辑、指令寄存器、译码器、地址指针 DPTR 及 程 序 计 数 器 PC 、 堆 栈 指 针 SP 、 RAM地址寄存器、16位地址缓冲器等。
第三章MCS51系列单片机指令系统及汇编语言程序设计
SJMP rel ;PC+ 2 + rel→PC 短转移指令为一页地址范围内的相对转移指令。因为rel为1字节补码 偏移量,且SJMP rel指令为2字节指令,所以转移范围为-126D~+ 129D 【4】间接转移指令
表3.4 程序存储器空间中的32个基本2K地址范围
0000H~07FFH 0800H~0FFFH 1000H~17FFH 1800H~1FFFH 2000H~27FFH 2800H~2FFFH 3000H~37FFH 3800H~3FFFH 4000H~47FFH 4800H~4FFFH 5000H~57FFH
3. 寄存器寻址
以通用寄存器的内容为操作数的寻址方式。通用寄存 器包括:A,B,DPTR,R0~R7。其中,R0~R7必须在 工作寄存器组之中。
例如:INC R0 ;(R0)+1→R0
需要注意的是,A和B既是通用寄存器,又是具有直 接地址的特殊功能寄存器。
4. 寄存器间接寻址
以寄存器中的内容为地址,该地址中的内容为操作数的寻址方式。能够 用于寄存器间接寻址的寄存器有:R0,R1,DPTR,SP。其中,R0,R1必 须在工作寄存器组之中,SP仅用于堆栈操作。
MCS-51单片机共有111条指令,按功能分类, MCS-51指令系统可分为5大类:
➢ 数据传送类指令(共29条) ➢ 算术操作类指令(共24条) ➢ 逻辑操作类指令(共24条) ➢ 控制转移类指令(共17条) ➢ 布尔变量操作类指令(共17条)
1.数据传送类指令(共29条)
以累加器A为目的操作数类指令(4条)
第3章 51单片机指令系统
3.1.3 堆栈操作指令
(1)入栈指令:
PUSH direct; SP ← SP+1, (SP) ← (direct)
入栈操作:栈指针SP+1指向栈顶的上 一个空单元,将直接地址direct寻址的单元 内容压入当前SP所指示的堆栈单元中。 (本操作不影响标志位)
例3-3 在中断响应时,SP=09H,数据 指针DPTR的内容为0123H。执行下列指令 后:
MOV @Ri , A ; (Ri)←A MOV @Ri , direct ; (Ri)←(direct) MOV @Ri , data ; (Ri)←#data 上述指令将累加器A,直接地址单元内 容或立即数送到Ri间接寻址单元中。由于内 容较多,下面需要说明:
累加器A是个使用最多的寄存器,MCS-51单 片机以A为中心体系结构。绝大部分指令均需通 过A送到ALU进行运算,结果存于A中,有些指令 仅在A中进行。 直接地址direct ,8位直接地址可寻址0~255个 单元。对于8051则直接寻址内部RAM0~127地址 空间的单元及128~255地址空间的特殊功能寄存 器。这里需注意128~255地址空间很多单元开始 时无定义,对无定义单元进行读/写,则读数不定, 欲写入的数将丢失。 间接寻址@Ri,@间接寻址的符号,是以Ri 的内容作为地址进行寻址,亦即Ri的内容不是操 作数,而是地址。此地址所对应的单元内容才是 所要找的操作数。间接寻址的寻址范围与直接寻 址相同(0~255)。直接寻址单元在编程时就已 明确,而间接寻址单元是在程序运行中明确。
[物理]单片机3第三章寻址方式
北京化工大学 信息科学与技术学院 郭 青
1
第三章
本章重点
寻址方式
80C51指令系统
指令格式
操作结果及对标志位影响
3.1
111条指令
概述
29 24 24 17
数据传送类指令 数学运算类指令
分类
逻辑运算类指令 控制转移类指令
位操作指令
17
单字节指令 按指令长度分类
双字节指令
三字节指令 12个振荡周期 64
COUNT:PUSH DPH; 保护DPTR内容
PUSH DPL;
MOV DPTR,#TABLE ;赋表首地址给DPTR
MOVC A, @A+DPTR
; POP DPL; 根据A中内容查表 恢复DPTR内容 返回主程序
POP DPH
RET;
ORG 1000H TABLE:DB 00 DB 01 DB 04 DB 09 DB 16 DB 25 DB 36 DB 49 DB 64 DB 81
19
3.3.1 数据传送类指令
按操作方式,分为三种: 数据传送 数据交换 栈操作
一、普通传送类指令 格式: MOV (目的操作数),(源操作数) 操作码助记符 操作: 将源操作数单元内容,传送到目的操作数 单元中,源操作数内容不变。不影响标志 位Cy,AC和OV。
操作数的组合关系
1、立即数的传送 MOV A, #data MOV Rn, #data (A) (Rn) #data #data
d:MOV direct,#data
将8位立即数送入由direct直接寻址的地 址单元中。 direct:00H~FFH,8位二进制地址码
寻址内部RAM(00H~7FH)及SFR
第3章MCS-51单片机的内部资源及应用
MOV P0, A ANL P0, #data ORL P0, A
(2)读端口数据方式: CPU读入的这个数据并非端口引脚线 上的数据。读端口数据可以直接读端口。例如,下面的指 令均可以从P1口输入数据,这是锁存器上的数据。
2.P2口
P2口常用做外部存储器的高8位地址 口。当不用做地址口时,P2口也可作为 通用I/O口,这时它也是一个准双向I/O 口。不必外接上拉电阻就可以驱动任何 MOS驱动电路,且只能驱动4个TTL输 入。P2口的位结构如右图所示。
3.P1口
P1口常用做通用I/O口,它也是一 个标准的准双向I/O口,不必外接上拉 电阻就可以驱动任何MOS驱动电路, 且只能驱动4个TTL输入。P1口的位结 构如右图所示。
制。
(3)中断允许控制寄存器IE (0A8H)
EA
ES ET1 EX1 ET0 EX0
(3)中断允许控制寄存器IE (0A8H)
中断与子程序的最主要区别:子程序是预先安排好的,中断 是随机发生的。
中断涉及的几个环节:中断源、 中断申请、开放中断、保护 现场、中断服务、恢复现场、中断返回。
2. 中断源
中断源是指引起中断的设备或事件,或发出中断请求的源头。
3. 中断的分类
中断按功能通常可分为可屏蔽中断、非屏蔽中断和软件中断三类。 可屏蔽中断是指CPU可以通过指令来允许或屏蔽中断的请求。 非屏蔽中断是指CPU对中断请求是不可屏蔽的,一旦出现,CPU必须响应。 软件中断则是指通过相应的中断指令使CPU响应中断。
1.I/O口直接用于输入/输出
在I/O口直接用做输入/输出时,CPU既可以把它们看做数据口,也可以看 做状态口,这是由用户决定的。
第三章 单片机的指令系统
MOV @Rj, #data MOV direct, #data MOV DPTR, #data
(EX2)
数据传送指令(四) 第四类——片外数据存储器访问指令
可访问片外RAM的0~FFH地址共256个单元:
MOVX
MOVX
A,
@Ri,
@Ri
A
; i = 0, 1
; i = 0, 1
可访问片外RAM的整个空间0~FFFFH地址的单元: MOVX MOVX A, @DPTR A
@DPTR,
(EX3)
数据传送指令(五)
第五类——程序存储器访问指令(查表指令)
MOVC
MOVC
A, @A+DPTR
A, @A+PC
(INDXADDRESS.ASM)
数据传送指令(六)
第六类——数据交换指令
XCH
XCH XCH
A,
A, A,
Ri
@Rj direct
;i =0~7
; j = 0 ,1
第三章 指令系统(一)
一、单片机的编程语言
⑴机器语言 以二进制代码形式表示指令、程序
⑵汇编语言 用助记符表示操作码,字符表示操作数的指令。
⑶高级语言 面向过程的语言,与硬件无关,如BASIC、C等。
⑷汇编语言和高级语言的结合 (5)学习汇编语言的意义 ①开发实时性强的系统时,直接应用汇编语言或在C中嵌入 汇编语言进行开发; ②通过汇编语言学习,更好掌握单片机的硬件结构,为应用 C语言编制高效率的单片机程序打好基础。
51单片机的最小系统
AT89C51
30pF
+5V
12M 30pF 2.2K
R1
17 16
(单片机完整课件PPT)第三章
寻址范围包括:
(1)内部RAM中的位寻址区。位有两种表示方法,例如, 40H;另一种是单元地址加上位,例如,(28H).0,指 的是28H单元中的最低位。它们是等价的。 (2)特殊功能寄存器中的可寻址位
可寻址位在指令中有如下4种的表示方法:
a. 直接使用位地址。例如PSW.5的位地址为0D5H。
b. 位名称的表示方法。例如:PSW.5是 F0 标志位,可使 用F0表示该位。 c.单元地址加位数的表示方法。例如 :(0D0H).5。 d.特殊功能寄存器符号加位数的表示方法。例如:PSW.5。
课堂练习:
指出下列指令中划线的操作数的寻址方式: Mov r0,#60h Mov a,30h Mov a, @r0 Movc a, @a+dptr Cjne a,#00h,one Cpl c Mov c,30h
如: MOV
A,Rn
;(Rn)→A,n=0~7
表示把寄存器Rn的内容传送给累加器A
寻址范围:ACC,B,DPTR,PSW,R0~R7,C
三、存储器寻址 寻址空间:64K 外RAM、64K ROM、128B 内RAM
1.直接寻址方式
操作数直接以单元地址的形式给出: MOV A,40H 寻址范围:内部RAM的256个单元 2.寄存器间接寻址方式 寄存器中存放的是操作数的地址 在寄存器的名称前面加前缀标志“@” 如: MOV A,@Ri ;i=0或1
单片机原理与应用技术
厦门理工学院电子与电气工程系 陈志英
第3章 单片机汇编语言编程技术
机器语言:是计算机可以识别和直接执行的语言,它是由一 组二进制代码组成。 汇编语言:是用助记符代替机器语言的操作码,用16进制 数代替二进制代码。 高级语言:是采用类似自然语言并与具体计算机类型基本无
单片机-第三章
间接寻址寄存器前缀, @Ri, @ 间接寻址寄存器前缀,如@Ri,@A+DPTR (X) X中的内容。 中的内容。 寻址的单元中的内容。 ((X)) 由X寻址的单元中的内容。 箭头右边的内容被箭头左边的内容所取代。 → 箭头右边的内容被箭头左边的内容所取代。
单片机原理及接口技术——自动化系 单片机原理及接口技术——自动化系
单片机原理及接口技术——自动化系 单片机原理及接口技术——自动化系
MCS-51单片机指令系统 第3章 MCS-51单片机指令系统
本章主要介绍MCS-51汇编语言的指令系统。 本章主要介绍MCS-51汇编语言的指令系统。 MCS 汇编语言的指令系统 MCS-51的基本指令共111条 的基本指令共111 MCS-51的基本指令共111条 单字节指令; (1) 单字节指令; 按指令所占的字节来分: 双字节指令; 按指令所占的字节来分: (2) 双字节指令; 三字节指令。 (3) 三字节指令。 按指令的执行时间来分: 按指令的执行时间来分: 1个机器周期 12个时钟振荡周期 指令64 个机器周期( 个时钟振荡周期) 64条 (1) 1个机器周期(12个时钟振荡周期)指令64条 2个机器周期 24个时钟振荡周期 指令45 个机器周期( 个时钟振荡周期) 45条 (2) 2个机器周期(24个时钟振荡周期)指令45条 4个机器周期只有乘 除两条指令的执行时间为(48个时 个机器周期只有乘、 (3) 4个机器周期只有乘、除两条指令的执行时间为(48个时 钟振荡周期)。 钟振荡周期)。 12MHz晶振 机器周期为1 晶振: 12MHz晶振:机器周期为1µs。
单片机原理及接口技术——自动化系 单片机原理及接口技术——自动化系
;A←(Rn) ;A←(direct) ;A←((Ri)) ;A←#data
单片机课件第三章输入输出端口
LED0闪烁的代码(一)
#include <reg51.h> #define LED_ON 0 #define LED_OFF 1 void delay (unsigned int i); sbit LED0 = P1 ^ 0; void main(void) { for(;;) { LED0 = LED_ON; /* Turn on LED0 */ delay(16); /* Wait for about 16*1000 clock */ LED0 = LED_OFF; /* Turn off LED0 */ delay(16); /* Wait for about 16*1000 clock */ } /* for(;;) */ } /* main */
P0、P1、P2和P3口的功能(一)
I/O(Input and Output Port)即输入输 出口,是单片机最基本也是最重要的组成 部分,主要用于数字信号的捕获和控制。 51系列单片机共有4个I/O端口,分别为 P0,P1,P2和P3。此4个端口都可以作为 单独的输入或输出口使用,即每个I/O引 脚都可以作为输入口使用,也可以作为输 出口使用。
键盘检测源代码
#include <reg5l. h> # define uchar unsigned char #define uint unsigned int void dims (void); uchar kbscan(void); void main (void) { uchar key: for(;;) { key=kbscan(); dlms(); } } void dlms (void) { uchar i; for(i=200;i>0;i--); }
51单片机 第三章指令系统
10
3.2.5 变址寻址方式
1.
变址寻址方式是以程序计数器PC或数据指针 DPTR作为基址寄存器,以累加器A作为变址寄 存器,它们两者内容之和为有效地址。 寻址范围:
程序存储器空间。
2.
3.
变址寻址方式的指令只有3条:
⑴ MOVC A, @A+DPTR ⑵ MOVC A, @A+PC ⑶ JMP @A+DPTR ; 查表指令 ; 查表指令 ; 散转指令
⑴ 低128个存储单元,8-bit二进制数表示地址。 ⑵ 特殊功能寄存器,用直接地址或称号表示。
2.
3.
例如,指令 MOV A, 30H
; A ← (30H)
8
3.2.3 寄存器间接寻址方式
1.
寄存器间接寻址时,指令中给出的寄存器为地 址指针。 寻址范围:
⑴ 片内和片外RAM 256单元,用R0或R1间接寻址。
34
4.
除法
整数部分
DIV AB
A
被除数
X B
除数
商
A
B
余数部分
除数为0,商的A和B内容不确定,且(OV)=1 。 标志Cy总是被清0。 例: 若(A)=FBH(251),(B)=12H (18),执行指令 DIV AB 之后,(A)=0DH, (B)=11H,(OV)=0,(Cy)=0。
35
3.3.3 逻辑运算及移位类指令
例: 若(A)=C3H,(R0)=AAH,执行指令 ANL A, R0 之后,(A)=82H。
37
逻辑或 源操作数与直接地址单元内容相或
ORL direct, A #data
源操作数与累加器A的内容相或
03.10 第三章 - 单片机指令系统(条件转移类指令LJMP、AJMP、SJMP、JMP、JZ、DJNZ、CJNE、RET、RETI)
09:42
单片机技术
12
第三章:MSC-51 单片机指令系统
3.10.2 - 条件转移类指令
❖ 理解条件的概念 ❖ 掌握JZ、JNZ的特点和用法 ❖ 掌握DJNZ的特点和用法 ❖ 掌握CJNE的特点和用法
09:42
单片机技术
13
3.10.2 条件转移指令(JZ、DJNZ、CJNE)
❖ 1.判A转移指令(JZ、JNZ)
09:42
单片机技术
4
3.10 控制转移类指令 ❖ 控制转移类指令分类
▪ 无条件转移指令: 指执行此类指令,程序将无条件转移到目的地址
包括:LJMP 、AJMP 、SJMP 、JMP
Long(长-64KB)Absolutely(绝对-2KB)Short(短-256B)Jump(跳)
▪ 条件转移指令:
指程序需满足某种条件时,才转移到目的地址,否则顺 序执行下一条指令。
包括:JC、JB、JBC、JZ、DJNZ、CJNE
09:42
单片机技术
5
3.10.1 无条件转移指令(LJMP、AJMP、SJMP、JMP)
❖ 1.长转移指令(LJMP)
▪ 格式:LJMP addr16 ;PC =(PC)+ 3
;PC ← addr15~0 ▪ 范围:216B = 64KB,(0000H~FFFFH)
▪ 格式:JZ rel ;当A = 00H时转向rel,PC' =(PC)+ 2+rel ;否则顺序执行,PC' =(PC)+ 2
▪ 格式:JNZ rel ;当A ≠ 00H时转向rel,PC' =(PC)+2+rel ;否则顺序执行,PC' =(PC)+ 2
单片机原理和运用_第三章答案解析
第三章单片机的汇编语言与程序设计习题1.设内部RAM中59H单元的内容为50H,写出当执行下列程序段后寄存器A,R0和内部RAM中50H,51H单元的内容为何值?MOV A,59HMOV R0,AMOV A,#00HMOV @R0,AMOV A,#25HMOV 51H,AMOV 52H,#70H解: MOV A,59H ; A=50HMOV R0,A ; RO=50HMOV A,#00H ; A=00HMOV @R0,A ; 50H=00HMOV A,#25H ; A=25HMOV 51H,A ; 51H=25HMOV 52H,#70H ; 52H=70H所以:A=25H R0=50H ; 50H=00H 51H=25H2.请选用合适的指令对P0口内容做修改(例如使P0.0~P0.3不变,P0.4~P0.7为0)。
解: MOV A,P0ANL A,0fhMov P0,A3.试问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。
解:访问外部数据存储器指令有:MOVX @DPTR,A MOVX DPTR,#0100H MOV @DPTR,AMOVX A,@DPTR MOVX DPTR,#0200H MOV A,@DPTRMOVX A,@Ri MOVX A,@R0MOVX @Ri,A MOVX @RI,A访问程序存储器指令有:MOVX A,@A+PCMOVX A,@A+DPTR4.设堆栈指针SP中的内容为60H,内部RAM中30H和31H单元的内容分别为24H 和10H,执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?PUSH 30HPUSH 31HPOP DPLPOP DPHMOV 30H,#00HMOV 31H,#0FFH解:PUSH 30H ;61H=24HPUSH 31H ;62=10H SP=62HPOP DPL ;DPL=10HPOP DPH ;DPH=24H SP=60HMOV 30H,#00H ;30H=00HMOV 31H,#0FFH ;31H=0FFH5.设(A)=40H,(R1)=23H,(40H)=05H。
单片机第三章
2.中断服务程序的编写
中断入口→保护现场→ 中断服务主体程序→ 恢复现场→设置计数 器、串行口的有关参数→ RETI 。
[例题2] 设8051外部中断源接
读P3口引脚 拆分成2个 4位BCD码 求和
P1口输出
3.I/O口扩展外部锁存器——扩展输入设备
软件设计:通过中断方式读取数据:
MOV DPTR, #7FFFH MOVX A, @DPTR ; DPTR指向74LS373端口,地址为7FFFH ; 读入数据到A中
3.2 MCS-51单片机的中断系统
中断服务子程序中: P1.0=1 → SD=0 →Q=1 → INT0 =1。
指令如下:
ANL P1,#0FEH (或CLR P1.0 ) ;
ORL P1, #01H ( SETB P1.0 ) ;
3.2.3
MCS-51中断系统的编程
1.中断初始化设置
IE→ IP → IT0/IT1→设置计数器、串行口的相关参数。
ORG 0000H LJMP START ; 转入主程序,START为主程序地址标号 ORG 0003H LJMP INT00 ; 转外中断中断服务程序 ORG 000BH LJMP T00 ; 转定时器T0中断服务程序 ORG 0030H START: …… ; 主程序开始
(3)中断响应时间 中断响应时间为3~8个机器周期,有同级或高级中断服务时 会延长中断响应时间。
或采用字节型指令:ANL SCON, #0FCH
(3)外部中断请求的撤除 IE0或IE1在CPU响应中断时硬件自动复位。 两种触发方式的中断请求撤除的方法不同。
负边沿触发方式: CPU通过检测
电平触发方式: CPU检测到
INT0(或 INT1)引脚上的负边
单片机原理及应用第三章课后答案
单片机原理及应用第三章课后答案第一节:单片机的概念和发展历程单片机是一种集成了处理器、存储器和各种输入输出接口的微型计算机系统。
它具有体积小、功耗低、功能强大等特点,广泛应用于各个领域。
单片机的发展经历了几个重要的阶段。
首先,20世纪70年代,中小型计算机开始出现,但体积庞大、功耗高,不适合实际应用。
之后,单片机技术的出现解决了这个问题,使得计算机系统可以被集成到一个芯片中。
1980年代,单片机开始应用于各种电子设备中,如家电、汽车等。
如今,随着技术的不断进步,单片机的功能更加强大,应用范围更为广泛。
第二节:单片机的工作原理单片机主要由CPU、存储器和外设接口等组成。
CPU是单片机的核心,负责指令的执行和数据的处理。
存储器主要用于存储程序和数据。
外设接口用于连接各种输入输出设备,如键盘、显示器、传感器等。
单片机的工作原理可以简单地描述为以下几个步骤:首先,单片机从存储器中获取指令,解析指令并执行相应的操作。
其次,单片机将处理的结果存储到存储器或输出到外设中。
最后,单片机不断地重复执行这些步骤,实现各种功能。
第三节:单片机的应用领域单片机广泛应用于各个领域,以下是几个典型的应用领域:1. 家电控制:单片机可用于控制家电设备,如空调、洗衣机、冰箱等。
通过编程,实现设备的自动化控制和智能化管理。
2. 工业自动化:单片机在工业领域中起着重要作用。
它可以实现生产线的自动化控制、监测和数据采集等功能,提高生产效率和质量。
3. 汽车电子:单片机在汽车中应用广泛,如引擎控制单元(ECU)、车载娱乐系统、车载导航系统等。
它可以实现发动机控制、车辆诊断、多媒体播放等功能。
4. 智能家居:单片机在智能家居中发挥着重要作用。
通过连接各种传感器和执行器,单片机可以实现家居设备的智能化控制,如灯光控制、门窗监测、安防系统等。
第四节:常见的单片机类型和特点1. 8051系列:8051是一种经典的单片机系列,具有成熟的开发环境和丰富的资源。
第三章 AT89S51单片机的结构和原理.
P2.7 28
14 P3.4/T0
P2.6 27
15 P3.5/T1
P2.5 26
16 P3.6/WR
P2.4 25
17 P3.7/RD
P2.3 24
18 XTAL2
P2.2 23
19 XTAL1
P2.1 22
20 GND
P2.0 21
12 13 P3.6/WR 14 P3.7/RD 15 XTAL2 16 XTAL1 17 GND 18 NC 19 P2.0 20 P2.1 21 P2.2 22 P2.3
二、AT89S51单片机的片外总线结构
I/O
1 P1.0
2 P1.1
3 4 5 6 7 8 10 11 12 13
P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RXD TXD INT0 INT1
14 T0
CB
15 16 17 18 19 ALE 30 31 29 9
T1 WR RD XTAL2 XTAL1 ALE/PROG EA/VP PSEN RESET
(外部中断0) (外部中断1) T0(定时器0的计数输入) T1(定时器1的计数输入) (外部数据存储器写脉冲) (外部数据存储器读脉冲)
第二节 AT89S51单片机的引脚及片 外总线结构
一、AT89S51单片机芯片引脚描述
1 P1.0
Vcc 40
2 P1.1
P0.0 39
3 P1.2
P0.1 38
图3-4 P1口的一位结构图
单片机的引脚(P0口)
P0.0—P0.7: 双向I/O (内置场效应管上拉)
寻址外部程序存储器时分时作为双向8位数据口 和输出低8位地址复用口;不接外部程序存储器 时可作为8位准双向I/O口使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1900H。程序最后转到1900H继
单片续机第执三章行分析。
二.条件转移指令 本小类共有8条。它们都在满足条件的情形下
…
…
K
间。
B
0000 1111 1111 1111B
单片机第三章分析
2.长转移(64KB地址内)指令 LJMP addr16
三字节指令。机器码的第一字节02H;第二字 节为地址的高8位;第三字节为地址的低8位。 指令的操作表达式为:
(PC)(PC)+3 (PC) addr16
单片机第三章分析
3.相对短转移(-128~+127B地址内)指令
(页面地址),低8位是页内地址。 • 同一页的各单元页数相同,页内地址从0排到255。
单片机第三章分析
1.绝对转移(2KB地址内)指令
AJMP addr11
双字节指令。 机器码第一字 节的高半字节
a10 a9 a8 0 a7 a6 a5 a4
0 001 a3 a2 a1 a0
是页数乘以2,低半字节是1,第二字节是页 内地址。
单片机第三章分析
例如,已知累加器A的内容为0、2、4、6、8五个偶数 中的一个,又标号TAB的真实地址为1800H,试剖 析下列程序段的执行结果。
MOV DPTR,#TAB JMP @A+DPTR
当(A)=0时,程序转 到1800H处,执行 AJMP 100H
…
1800
TAB:
AJMP AJMP
100H 200H
表3-5给出地址高3位、页数、机器码第一字 节的高半字节的对应关系。
Байду номын сангаас
单片机第三章分析
MCS-51系列单片机可寻址64KB地址空间,而寻址 64KB地址空间需要16位地址码, 一个16位地址码如 果低11位不变,高5位可有25=32种变化。只给出地 址码低11位,实际对应了64KB地址空间中32个单元 的地址。也就是说转移到这32个地址中任意一个地 址的指令机器码是完全一样的。
在执行该指令后,程序将仍转回此该指令继续 执行,于是将不断地执行这一指令,计算机不 做其他工作,进入单等片机待第三状章分析态。
4.相对长转移(64KB地址内)指令 JMP @A+DPTR
单字节指令。机器码为73H。 指令的操作表达式为:
(PC) (A)+(DPTR)
指令的执行结果不会改变DPTR及A中原来的内 容。
别注意的“特殊 0000 0000 0000 0000B
2
情形”的图示。
…
…
K
AJMP指令与目 的地址不在同一
0000 0111 1111 1111B
E1
B
个2KB地址空间, 0000 1000 0000 0000B FF
AJMP指令转向下 0000 1000 0000 0001B
2
一个2KB地址空
第六节 程序转移指令
归入本类的操作指令有17条。程序转移类指令共 有16条,可进一步细分为无条件转移、条件转移、 调子等3小类。
位条件转移指令,留在本章第七节位操作类指令 中介绍。 另有一条NOP指令,机器码是00H,执行该指令时 机器不完成任何有意义的操作,故称为空操作指 令。 除NOP指令执行时间为1个机器周期外,所有程序 转移类指令的执行时单间片机第都三章是分析2个机器周期。
SJMP rel 双字节指令。机器码的第一字节为80H;第二
字节为相对地址值,也称相对偏移量。
指令的操作表达式为: (PC)(PC)+2 (PC) (PC)+相对地址
在用汇编语言编程时,指令中的相对地址rel 往往用要转移目的地址的标号(符号地址) 表示。在机器汇编时,可自动算出相对地址 值,而手工汇编时单片,机第则三章需分析要自己计算。
一.无条件转移指令
本小类共有4条。前2条是绝对转移指令,后2 条是相对转移指令。本小类指令执行的结果, 一定改变程序的顺序执行,发生转移。
页的概念:
• 将2KB的地址空间分成大小相等的8块,每块称之为 一页。
• 每一页包含256个地址连续的内存单元。 • 表示2K的地址空间要11位地址码,高3位是页数
AJMP 100H指明转移地址的低 11位同为理0,01当0(0A0)0分0别00=02B、; 而这4、时6的、P8C,值程是序18最02后H,以二进
AJMP 300H 制写转出到的1A高005H位、为1B00000H1、1B,合在
AJMP 400H 一起1C为00H、1D00H继续执
AJMP 500H 000行1 。1001 0000 0000B,即
单片机第三章分析
在编程手工汇编时,我们首先判断目的地址 与本指令下面一条指令是否在同一个2KB地 址空间,在同一个2KB地址空间,就可以使 用AJMP指令,将16位目的地址码的低11位作 为AJMP指令的操作数;若不在同一个2KB地 址空间,就要改用其他的转移指令。
单片机第三章分析
对教材中要求特
单片机第三章分析
MCS-51系列单片机可寻址64KB地址空间,因此可分 成32个2KB。这里在每个地址连续的2KB地址空间中, 所有单元地址码的高5位都是一样的,地址码低11位 从0排到2047。
指令的操作为:(PC)(PC)+2
(PC10~0) addr11 第一个操作表达式表示PC当前值为排在这条无条件 转移指令的下一条指令的地址,第二个操作表达式 表示PC值高5位不变,低11位按指令给出的11位地址 变更。所以转移的目的地址与本指令下面一条指令 在同一个2KB地址空间,而不是其他31个2KB地址空 间。
如指令 AJMP 11111111111B 的机器码是E1 FF。
转移的地址随16位地址中高5位的变化,可以是 07FFH(当高5位为00000B时)、 0FFFH(当高5位为 00001B时)、 17FFH(当高5位为00010B时) 、 1FFFH(当高5位为00011B时)……。然而指令在具 体执行时,只能是转移到这32个地址其中之一。究 竟是哪个地址,和这条指令所在的地址有关。
在用汇编语言编程时,用字符 $ 表示本条指令 的地址,这样当前PC值就等于 $+2。
∵ ($+2) + rel=目的地址
∴ rel =目的地址-$-2
注:当指令机器码为三字节时,当前PC值就等 于 $+3,计算rel就要减3。
例如,写出指令SJMP $的机器码,并剖析执行 该指令的结果。
rel=$-$-2=-2=FEH,机器码为80H、FEH。