第4章MCS-51指令系统2

合集下载

第4章MCS-51单片机系统功能扩展

第4章MCS-51单片机系统功能扩展

74LS373结构示意图
74LS373的引脚
引脚说明如下: D7~D0: 8位数据输入端。 Q7~Q0: 8位数据输出端。 G:数据输入锁存控制端:当G为“1” 时,锁存器 输出端与输入端数据相同;当G由“1” 变“0” 时,数据输入锁存器中。 OE#: 输出允许端。
P0口与地址锁存器74LS373的连接
4.1 系统扩展概述
4.1.1 最小应用系统
图4.1 MCS–51单片机最小化系统 (a) 8051/8751最小系统结构图;(b) 8031最小系统结构图
4.1.2 单片机系统扩展的内容与方法
1.单片机的三总线结构
图4.2 MCS–51单片机的三总线结构形式
(1)以P0口作为低8位地址/数据总线。 (2)以P2口的口线作高位地址线。 (3)控制信号线。 *使用ALE信号作为低8位地址的锁存控制信号。 *以PSEN#信号作为扩展程序存储器的读选通信号。 *以EA#信号作为内外程序存储器的选择控制信号。 *由RD#和WR#信号作为扩展数据存储器和I/O口的 读选通、写选通信号。 尽管MCS-51有4个并行I/O口,共32条口线,但由于系 统扩展需要,真正作为数据I/O使用的,就剩下P1 口和P3口的部分口线。
锁存器8282 功能及内部结构与74LS373完全一样,只是其引脚的排 列与74LS373不同 ,8282的引脚如下图。
4.2.2 74LS244和74LS245芯片
在单片机应用系统中, 扩展的三总线上挂接
很多负载, 如存储器、并行接口、A/D接口、显
示接口等, 但总线接口的负载能力有限, 因此常
3) 采用地址译码器的多片程序存储器的扩展
例3 要求用2764芯片扩展8031的片外程序存储器,分配的 地址范围为0000H~3FFFH。

单片机原理及应用第四章课后题答案

单片机原理及应用第四章课后题答案

第四章作业答案16.MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?解:数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突;程序存储器访问指令为MOVC,数据存储器访问指令为MOVX。

程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于二者访问指令不同,控制信号不同,所以两者虽然共处于同一地址空间,不会发生总线冲突。

18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。

解:硬件连接电路图如图4.18所示。

各芯片的地址范围为:2764(1#):0000H~1FFFH 2764(2#):2000H~3FFFH6264(1#):4000H~5FFFH 6264(2#):6000H~7FFFH图4.18 4.18题硬件连接电路图21.8255A的端口地址为7F00H~7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。

解:程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR,#7F03HMOV A,#10010100BMOVX @DPTR,ASJMP $END25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。

解:使用8255A,电路连接图如图4.25所示。

图4.25 4.25题硬件连接电路图其中,PB0~PB3接红色发光二极管,PB4~PB7接绿色发光二极管。

设MCS-51单片机主频为12MHz。

程序如下:ORG 0000HLJMP STARTORG 0030HSTART:MOV SP, #60HMOV DPTR, #7FFFH ; 数据指针指向8255A控制口MOV A, #80HMOVX @DPTR, A ; 工作方式字送8255A控制口MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口MOV A, #0FH ; 置红色发光二极管亮LP1:MOVX @DPTR, A ; 置红色发光二极管亮LCALL DELAY ; 调用1S延时子程序CPL A ; 置发光二极管亮反色SJMP LP1 ; 循环执行DELAY:MOV R7,#10 ; 1s延时子程序D1:MOV R6,#200D2:MOV R5,#248D3:NOPDJNZ R5,D3DJNZ R6,D2DJNZ R7,D1RETEND采用定时器T0方式1中断实现1s定时。

MCS-51指令系统

MCS-51指令系统
18
4、控制转移类指令(二)
无条件转移:(LJMP,AJMP,SJMP,JMP—4条) LJMP addr16 长跳转指令
——可在64K范围内跳转 AJMP addr11 绝对跳转指令
——可在指令所在的2K范围内跳转 SJMP rel 相对跳转指令
——可在当前PC-128与+127范围内跳转 JMP @A+DPTR 间接长跳转指令
1
累加器清零/取反操作 (CLR,CPL—2条)
CLR A —对累加器清零
1 Byte 1 Tm
CPL A ——对累加器按位取非 1 Byte 1 Tm 15
3、逻辑运算及移位类指令(三)
逻辑运算指令在程序中的应用(下面的例子认为Acc 的内容为9AH)
逻辑与ANL运算用于对某些位进行清0或者保留: 例: ANL A, #0FH; 则(A) = 0AH
位清零/置位指令(4条): CLR bit(或C) —— (bit或 C)“0” SETB bit(或C) —— (bit或 C)“1”
位逻辑与/或/非指令(6条): ANL C,bit(或/bit) ORL C,bit(或/bit) CPL bit (或 C) 注: “/bit”表示对bit位先取反然后再参加运算
带借位减法(SUBB):(A) ← (A)- (Cy)- (第二操作数)
10
2、算术运算类指令(三)
加1/减1操作: (INC,DEC—9条) INC, DEC与用加/减法指令做加1/减1 操作不 同之处在于INC、DEC不影响标志位。
单字节乘/除运算: (MUL,DIV—2条) 两个单字节数的乘/除法运算只在A与B之间 进行。 MUL AB: (A)与(B)相乘, 积为16位数,

MCS51单片机指令系统

MCS51单片机指令系统

第一条指令为远查表指令,可以在64K的程序存储器空间寻 址。基地址寄存器为DPTR,其意思为,DPTR里面存放的是 程序存储器中数据表格的首地址,A为数据地址的偏移量。
这条指令执行以后,以 (A)+(DPTR)的数值为地址数 据就送进A里面来了,也就是从表格首地址开始以后的第(A) 个数据被送进A了。(举例子说明)
编写好的程序都放在程序存储器中,由于一个存储地址所 指示的存储单元只能存放一字节的数据。所以,在存放指令时, 必须将指令拆分成一个一个字节进行连续存放。
比如: 实现“累加器加10H”这条指令,其机器语言为 0111010000010000, 占用了两个字节,就必须拆成两个字节 进行连续存储。
但是,用二进制来表示比较麻烦,因此,也常用十六进制来 表示如:74H 10H来表示以上这条机器语言。可见,用十六进 制表示指令比较简单,但是,指令系统有上百条指令,不易记 住。所以,一般采用容易记住的一些缩写符号来表示机器语言,
2. 在指令中直接给出操作数的地址, 这种寻址方式就属
于直接寻址方式。在这种方式中, 指令的操作数部分直接 是操作数的地址。
比如:MOV A,30H;将30H里面的数送到A里面 MOV 21H,30H;将30H里面的数存放到21H里面 在MCS -51 单片机指令系统中, 直接寻址方式中可
以访问 3 种存储器空间: (1) 内部数据存储器的低 128 个字节单元(00H~
7. 位寻址 指按照位进行的寻址操作,(前面讲的都是按字节进
行的寻址操作)。该种寻址方式中, 操作数是内部RAM单元 中20H到2FH的128个位地址以及SFR中的11个可进行 位寻址的寄存器中的位地址寻址。
比如:MOV C,20H;就是将RAM中位寻址区中20H位地 址中的内容送给C。区别与MOV A,20H;这个是将内部 RAM中20H单元的内容送给A。

大学课件MCS51单片机指令系统与汇编语言程序设计

大学课件MCS51单片机指令系统与汇编语言程序设计

ANL C, P ; (C)← (C)∧(P)
其中:P是PSW的第0位,C是PSW的第7位。
(4)字节符号地址(字节名称)加位序号的形式。对于部分特 殊功能寄存器(如状态标志寄存器PSW),还可以用其字节名 称加位序号形式来访问某一位。AC 如:
定义:操作数存放在MCS-51内部的某个工作寄存器Rn (R0~R7)或部分专用寄存器中,这种寻址方式称为 寄存器寻址。
特点:由指令指出某一个寄存器的内容作为操作数。 存放操作数的寄存器在指令代码中不占据单独的一个 字节,而是嵌入(隐含)到操作码字节中。
寻址范围:四组通用寄存器Rn(R0~R7)、部分专用 寄存器( A, B, DPTR, Cy )。
伪指令只出现在汇编前的源程序中,仅提供汇编用的某些控制 信息,不产生可执行的目标代码,是CPU不能执行的指令。
(1)定位伪指令ORG
格式:ORG n
其中:n通常为绝对地址,可以是十六进制数、标号或表达式。
功能:规定编译后的机器代码存放的起始位置。在一个汇编 语言源程序中允许存在多条定位伪指令,但每一个n值都应和前
2.2.2 直接寻址
定义:将操作数的地址直接存放在指令中,这种寻址方式称为 直接寻址。 特点:指令中含有操作数的地址。该地址指出了参与操作的数 据所在的字节单元地址或位地址。计算机执行它们时便可根据 直接地址找到所需要的操作数。
寻址范围:ROM、片内RAM区、SFR和位地址空间。P42
2.2.3 寄存器寻址
定义:指令中给出的操作数是一个可单独寻址的位地址,这种寻址 方式称为位寻址方式。
特点:位寻址是直接寻址方式的一种,其特点是对8位二进制数中 的某一位的地址进行操作。
寻址范围:片内RAM低128B中位寻址区、部分SFR(其中有83位 可以位寻址)。

第4章(第二、三讲(1)) 80C51单片机硬件基础知识)

第4章(第二、三讲(1)) 80C51单片机硬件基础知识)

4.2 80C51系列单片机外引脚功能
常用两种封装为双列直插式DIP40和方形封装式LCC44
接VCC(+5V)
P1口
P0口
复位端
控制信号
P3口 P2口 时钟端 接地端
LCC
80C51逻辑符号
80C51的40条引脚,可分为端口线、电源线和控制线三类。在绘制电路原 理图时,经常采用元器件的逻辑符号,80C51逻辑符号如图所示。
52系列单片机
8032 8752
8052
80C32
80C52
87C52
与51子系列的不同之处在于:片内数据存储器增至256B,片内 程序存储器增至8KB(8032/80C32无),有26B的特殊功能寄存 器,有3个16位定时器/计数器,有6个中断源。其他性能均与5l 子系列相同。
说明:本书所述的80C51系列单片机包括Intel公 司和其他公司的51和52子系列。内部资源超出52 子系列的单片机则称为新一代80C51系列单片机。
MCS-51系列单片机内部组成
8位CPU。 片内带振荡器及时钟电路。 128B片内数据存储器。 4KB片内程序存储器(8031/80C31无)。 程序存储器的寻址范围为64KB。 片外数据存储器的寻址范围为64KB。 21B特殊功能寄存器。 4×8根I/O线。 1个全双工串行I/O接口,可多机通信。 2个16位定时器/计数器。 中断系统有5个中断源,可编程为两个优先级。 111条指令,含乘法指令和除法指令。 布尔处理器。 使用单+5V电源。
常用特殊功能寄存器
常用特殊功能寄存器
常用特殊功能寄存器 (1)程序状态字寄存器PSW PSW是8位寄存器,用作程序运行状态的标志,字节 地址D0H,位地址格式如下所示。

单片微型计算机原理及应用_课后习题答案

单片微型计算机原理及应用_课后习题答案

《单片微型计算机原理及应用》习题参考答案姜志海刘连鑫王蕾编著电子工业出版社目录第1章微型计算机基础 (2)第2章半导体存储器及I/O接口基础 (4)第3章MCS-51系列单片机硬件结构 (11)第4章MCS-51系列单片机指令系统 (16)第5章MCS-51系列单片机汇编语言程序设计 (20)第6章MCS-51系列单片机中断系统与定时器/计数器 (26)第7章MCS-51系列单片机的串行口 (32)第8章MCS-51系列单片机系统扩展技术 (34)第9章MCS-51系列单片机键盘/显示器接口技术 (36)第10章MCS-51系列单片机模拟量接口技术 (40)第11章单片机应用系统设计 (44)第1章微型计算机基础1.简述微型计算机的结构及各部分的作用微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大部分组成。

运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。

通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入、输出设备则称为计算机的外部设备(简称外设)。

由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU(Central Process Unit)。

2.微处理器、微型计算机、微型计算机系统有什么联系与区别?微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上的一个独立芯片。

它具有解释指令、执行指令和与外界交换数据的能力。

其内部包括三部分:运算器、控制器、内部寄存器阵列(工作寄存器组)。

微型计算机由CPU、存储器、输入/输出(I/O)接口电路构成,各部分芯片之间通过总线(Bus)连接。

以微型计算机为主体,配上外部输入/输出设备、电源、系统软件一起构成应用系统,称为微型计算机系统。

第4章 MCS-51单片机汇编语言程序设计

第4章 MCS-51单片机汇编语言程序设计
开始
程序清单:
送转移地址序号
A,R3 ;取序号 A ;序号乘2 DPTR, #JTAB ;32个子程序 首地址送DPTR JMP @A+DPTR ;根据序号转移 JTAB: AJMP ROUT00 ;32个子程序首地址 AJMP ROUT01 … MP: MOV RL MOV AJMP ROUT31
第 四 章 MCS-51 单 片 机 汇 编 语 言 程 序 设 计
【例4-1】
双字节二进制数求补。
程序说明:对R3(高8位)、R2(低8位)中的二进制定 点数取反加1即可得到其补码。
开始
程序清单:
BINPL:MOV A,R2 CPL A ADD A,#01H MOV R2,A MOV A,R3 CPL A ADDC A,#00H MOV R3,A RET ;低位字节取反 ;加1 ;低位字节补码送R2 ;高位字节取反 ;加进位 ;高位字节补码送R3
散转生成正确偏移号
置换指令地址表首址
转入R3指示的程序
AJMP
……
AJMP
第 四 章 MCS-51 单 片 机 汇 编 语 言 程 序 设 计
3.循环程序
包括:循环初始化、循环处理、循环控制
开始 置初值 循环体 循环结束? Y 循环修改 N 循环体 循环结束? N Y 结束 循环修改 结束 开始 置初值
;调用查表子程序 ; 暂存R1中 ;调查表子程序 ;平方和存A中 ;等待
取第一个数→A 调查表子程序 结果存入R1 取下一个数→A 调查表子程序 两数平方相加 存结果
子程序清单:
SQR: INC A ;加RET占的一个字节 MOVC A,@A+PC ;查平方表 RET TAB: DB 0,1,4,9,16 DB 25,36,49,64,81 END

MCS-51汇编语言程序设计

MCS-51汇编语言程序设计

01:31
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
2
本章目录
4.2.1 顺序结构程序 4.2.2 分支结构程序 4.2.3 循环结构程序 4.2.4 查表程序 4.2.5 子程序 4.3 汇编语言程序设计实例 习题与思考题
4.1 程序设计概述 4.1.1 程序设计的步骤 4.1.2 程序设计的方法 4.1.3 汇编语言的规范 4.1.4 汇编语言程序编辑和 汇编 4.2 结构化程序设计方法
01:31
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
15
4.1.3 汇编语言的规范
(5)定义字伪指令 )定义字伪指令DW
[标号:] 标号: DW 16位二进制数表 16位二进制数表
---伪指令 伪指令DW 伪指令
功能: DW 指令是在程序存储器 ( ROM ) 中 , 从指定的 指令是在程序存储器( 功能 : DW指令是在程序存储器 ROM) 地址单元开始,定义若干个16位数据 一个16位数 位数据。 地址单元开始,定义若干个16位数据。一个16位数 要占两个存储单元,其中高8位存入低地址单元, 要占两个存储单元, 其中高 8位存入低地址单元, 位存入高地址单元。 低8位存入高地址单元。 例如: 例如: ORG 1100H 1100H TAB : DW 1234H, 0ABH 10 1234H, 以上伪指令经汇编以后, 将对从1100H 以上伪指令经汇编以后 , 将对从 1100H 开始的若 干内存单元赋值。 干内存单元赋值。
01:31
单片机原理与接口技术(第2版).李晓林.电子工业出版社
返回目录
16
4.1.3 汇编语言的规范
例如:ORG 1100H 例如: TAB :DW 1234H, 0ABH 10 (1100H)=12H (1101H)=34H (1102H)=00H (1103H)=ABH (1104H)=00H (1105H)=0AH

MCS-51单片机指令系统教程(2)

MCS-51单片机指令系统教程(2)

片外数据 存储器 64KB
1,访问片内RAM20H存储单元; MOV A,20H
2,访问片外RAM存储单元; MOV R0,#20H MOVX A,@R0
0000H
3,尽管片内与片外的RAM单元 的00H-FFH地址相重叠但由 于指令的不同不会发生地址
混乱。
片外数据存储器 64KB个字节
返回
2.2.5 变址寻址
由操作码和操作数(或操作数地址)构成指令的结构。
举例:MOV A,#0FFH
ADD A,R0
返回
2.1.2 指令的三种表示形式:
指令的表示形式是识别指令的标志。
1,二进制的表示形式:(以“累加器的内容+08H”为例) 00100100B 操作码 OP (加法) 00001000B 操作数DATA(08H)
乘法指令 16位寄存器DPTR加一
从表中可见,指令的字节数与指令周期不是对等的关系 返回
2.1.4 指令的分类
MCS-51单片机的指令如果按功能划分可以分为五类: 1,数据传送类指令:完成数据在单片机内部之间的传送。
分为8位数和16位两种。除了奇偶位外,指令的执行对 PSW无影响。
2,算术运算指令:用于操作数之间的加、减、乘除运算。 【特点】:多数情况下:操作数之一在累加器A中,结果 也保留在A中,运算结果要影响PSW(进位标志、奇偶和 溢出标志等)。
“机器码”后才能为CPU所识别和执行。 3,三种不同的表示方法适用于不同的场合。
返回
本章内容都以汇编的形式介绍指令系统。
2.1.3 指令的字节数
在MCS-51单片机的指令系统中,因指令操作码和操作数 的不同,指令(在存储器中)长度也各不相同。
分为单字节、双字节和三字节。

第4章 MCS-51单片机汇编语言程序设计(2)

第4章 MCS-51单片机汇编语言程序设计(2)
START:MOV DPTR,#TAB : MOV A,R7 ADD A,R7 MOV R3,A MOVC A,@A+DPTR
XCH A,R3 INC A MOVC A,@A+DPTR MOV DPL,A MOV DPH,R3 CLR A JMP @A+DPTR TAB DW DW A0 A1
…………. DW AN
INC
DPTR
MOVX A,@DPTR SUBB A,R7 JNC XCH BIG1 A,R7
BIG0:INC DPTR
实现程序如下: 实现程序如下
START:CLR C : MOV DPTR,#ST1 , MOVX A,@DPTR , MOV R7,A
MOVX @DPTR,A RET BIG1:MOVX A,@DPTR SJMP BIG0
实现程序如下: 实现程序如下 MOV 30H, 20H ANL 30H,#00011111B MOV A,21H SWAP A RL A ANL A,#11100000B ORL 30H,A
第4章 MCS-51单片机汇编语言程序设计
实现程序如下: 实现程序如下 例 A,@R1 ADDC4.3 做3个字节的 无符号的加法. 无符号的加法.设一个加 MOV R0,#52H , MOV @R0,A 数存放在内部RAM 50H、 RAM的 数存放在内部RAM的50H、 MOV R1,#55H , DEC R0 51H、52H单元中 单元中, 51H、52H单元中,另一 DEC R1 RAM的53H、 MOV A,@R0 个加数存放在RAM 个加数存放在RAM的53H、 MOV A,@R0 54H、55H单元中 单元中, 54H、55H单元中,相加 ADD A,@R1 结果存内部RAM的50H、 结果存内部RAM的50H、 RAM ADDC A,@R1 51H、52H单元 单元, 51H、52H单元,均从高 MOV @R0,A 字节开始存放, 字节开始存放,进位存放 MOV 00H,C 在位寻址区的00H位中。 00H位中 在位寻址区的00H位中。 MOV @R0,A DEC DEC R0 R1

单片机指令系统

单片机指令系统

② 外部传送指令
指令格式: 指令格式:
目的操作数和源操作数 中必须有一个是A 实现片外数据存储器和A累加器之间的数据传送。 实现片外数据存储器和A累加器之间的数据传送。
MOVX 目的操作数,源操作数 目的操作数,
例:位地址的表示方法(4种) 40H 位地址的表示方法( MOV C,40H ;
28H 设指令执行前 C = 1,位地址 ,C 40H 存储器单元如图, 执行指令后, C 40H 存储器单元如图 , 执行指令后 ,–MOV EA29H = 0 ?
–MOV 20H ,C 位编语言: 汇编语言: A, MOV A,R0 R6, MOV R6,#32H 40H, MOV 40H,#100H
11101000 机器语言: 机器语言: E8H 7E 32H 75 40 64H 01111110 00110010 01110101 01000000 01100100
例:顺序执行下列指令序列,求每一步执行结果。 顺序执行下列指令序列,求每一步执行结果。 ;A= 30H A, MOV A,#30H ;(4FH)= 30H 4FH, MOV 4FH,A R0, MOV R0,#20H ;R0= 20H @R0, MOV @R0,4FH ;(20H)= 30H 21H, MOV 21H,20H ;(21H)= 30H 例:用两种寻址方式实现,将片内RAM 60H单元的数据 用两种寻址方式实现,将片内RAM 60H单元的数据 传送给累加器A 传送给累加器A。 解: MOV A,60H MOV R0,#60H R0, A, MOV A,@R0
注意:数值前加#符号表 注意:数值前加# 示该数是立即数
● 变址寻址方式是单片机中用于访问程序存储器的 变址寻址方式是单片机中用于访问程序存储器 程序存储器的 寻址方式。 寻址方式。 数据在程序存储器 程序存储器中 ● 数据在程序存储器中,指令给出的寄存器中为数 据的基地址和偏移地址。( 据的基地址和偏移地址。(数据地址 = 基地址 + 偏移地

单片微机原理系统设计与应用课后部分习题答案

单片微机原理系统设计与应用课后部分习题答案

单⽚微机原理系统设计与应⽤课后部分习题答案第⼆章 MCS-51单⽚机硬件结构2-5. 8051单⽚机堆栈可以设置在什么地⽅?如何实现?答:8051单⽚机堆栈可以设置在内部RAM中。

当系统复位时,堆栈指针地址为07H,只要改变堆栈指针SP的值,使其为内部RAM中地址量,就可以灵活的将堆栈设置在内部RAM中。

2-16. 8051单⽚机内部数据存储器可以分为⼏个不同的区域?各有什么特点?2-21.复位后,CPU内部RAM各单元内容是否被清除?CPU使⽤的是哪⼀组⼯作寄存器?它们的地址是什么?如何选择确定和改变当前⼯作寄存器组?答:复位并不清除CPU内部RAM单元中内容,掉电会清除内部RAM 中内容。

复位以后因为PSW=00H,所以选择⼯作寄存器0区,所占地址空间为00H-07H。

⼯作寄存器组可以查询PSW中的RS1(PSW.4)和RS0(PSW.3)来确定,改变当前RS1和RS0的值即可改变当前⼯作寄存器组。

2-22.指出复位后⼯作寄存器组R0-R7的物理地址,若希望快速保护当前⼯作寄存器组,应采取什么措施?答:复位⼯作寄存器组R0-R7的物理地址为00H-07H。

如希望快速保护当前⼯作寄存器组,可以通过改变PSW中RS1(PSW.4)和RS0(PSW.3)的当前值来完成。

第三章 MCS-51指令系统3-6.设系统晶振为12MHz,阅读下列程序,分析其功能,并⼈⼯汇编成机器代码。

答:因为AJMP指令必须有PC指针地址,所以本题解题时设程序开始地址为1000H。

本程序完成功能是使P1.0⼝输出⽅波:T=2*((3*250+2+2)*10+1+2+2)=15090us=15.09ms翻译成机器语⾔的难点在于AJMP⼀句,根据AJMP指令代码可知,该指令为2个字节,⾼8为字节构成为“A10A9A800001”,低8位字节构成为“A7-A0”。

⼜有设置了程序起始地址为1000H,很容易可以写出各指令的地址,AJMP的绝对转移⽬标地址为1002H,A10=0、A9=0、A8=0,所以机器代码为“01 02”,⽬标地址在2区,因为A15-A11为“00010”。

单片机原理及应用 第4章 MCS-51单片机系统的扩展技术

单片机原理及应用 第4章 MCS-51单片机系统的扩展技术

2.数据存储器典型扩展电路
6264的地址范围为:0000H~1FFFH。
[例题] 在上页图的数据存储器扩展电路中,将片内RAM 以50H单 元开始的16个数据,传送片外数据存储器0000H开始的单元中。
程序如下:
ORG 1000H MOV R0, #50H MOV R7, #16 MOV DPTR, #0000H AGAIN: MOV A, @R0 MOVX @DPTR, A INC R0 INC DPTR DJNZ R7, AGAIN RET END ; 数据指针指向片内50H单元 ; 待传送数据个数送计数寄存器 ; 数据指针指向数据存储器6264的0000H单元 ; 片内待输出的数据送累加器A ; 数据输出至数据存储器6264 ; 修改数据指针 ; 判断数据是否传送完成
4.2.1
程序存储器扩展
单片机内部没有ROM,或虽有ROM但容量太小时,必须扩 展外部程序存储器方能工作。最常用的ROM器件是EPROM 1. 常用EPROM程序存储器 EPROM主要是27系列芯片,如:2764(8K)/27128(16K) /27256(32K)/27040(512K)等,一般选择8KB以上的芯片作为 外部程序存储器。
4.2.3 MCS-51对外部存储器的扩展
下图所示的8031扩展系统中,外扩了16KB程序存储器(使用两片 2764芯片)和8KB数据存储器(使用一片6264芯片)。采用全地址译码方 式,P2.7用于控制2―4译码器的工作,P2.6, P2.5参加译码,且无悬空地 址线,无地址重叠现象。 1# 2764, 2# 2764, 3# 6264的地址范围分别为:0000H~1FFFH, 2000H~3FFFH, 4000~5FFFH。
MOV DPTR, #7FFFH ; 数据指针指向74LS377 MOV A, 60H ; 输出的60H单元数据送累加器A MOVX @DPTR, A ; P0口将数据通过74LS377输出

单片机原理及接口技术 梅丽凤 习题解答(课后答案)

单片机原理及接口技术 梅丽凤 习题解答(课后答案)

单片机原理及接口技术教材习题全部解答第1章绪论1-1解答:第一台计算机的研制目的是为了计算复杂的数学难题。

它的特点是:计算机字长为12位,运算速度为5 000次/s,使用18 800个电子管,1 500个继电器,占地面积为150 m2,重达30 t,其造价为100多万美元。

它的诞生,标志着人类文明进入了一个新的历史阶段。

1-2解答:单片微型计算机简称单片机。

一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。

1-3解答:单片机的发展大致经历了四个阶段:第一阶段(1970—1974年),为4位单片机阶段;第二阶段(1974—1978年),为低中档8位单片机阶段;第三阶段(1978—1983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。

1-4解答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;Motorola公司的6801、6802、6803、6805、68HC11系列产品;Zilog公司的Z8、Super8系列产品;Atmel公司的AT89系列产品;Fairchild公司的F8和3870系列产品;TI公司的TMS7000系列产品;NS公司的NS8070系列产品;NEC公司的μCOM87(μPD7800)系列产品;National公司的MN6800系列产品;Hitachi公司的HD6301、HD63L05、HD6305。

1-5解答:(1)8031/8051/8751三种型号,称为8051子系列。

8031片内没有ROM,使用时需在片外接EPROM。

8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。

8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。

(2)8032A/8052A/8752A是8031/8051/8751的增强型,称为8052子系列。

单片机第4章

单片机第4章

中断响应及处理过程 保护断点 寻找中断源 中断处理 中断返回 保护断点和寻找中断源都是由硬件自动完成的,用户不用考虑。
4.2 MCS 51中断系统
MCS-51提供了5个中断源,2个中断优先级控制,可实现2个中断 服务嵌套。可通过程序设置中断的允许或屏蔽,设置中断的优先级。 CPU在每个机器周期的S5P2期间,会自动查询各个中断申请标志位, 若查到某标志位被置位,将启动中断机制。 MCS-51的中断源 5个中断源: 外部中断源(中断标志为IE0和IE1 ) 由P3.2端口线引入,低电平或下降沿引起。
4 MCS® 51单片机中断系统
4.1 中断系统概念
4.2 MCS 51中断系统 4.3 MCS 51中断响应过程 4.4 MCS 51中断系统编程 4.5 MCS 51外部中断扩展
4.1 中断系统概念
中断是指CPU执行正常程序时,系统中出现特殊请求,CPU暂时中 止当前的程序,转去处理更紧急的事件(执行中断服务程序),处理完 毕(中断服务完成)后,CPU自动返回原程序的过程。 作用:采用中断技术可以提高CPU效率、解决速度矛盾、实现并行 工作、分时操作、实时处理、故障处理、应付突发事件,可使多项任务 共享一个资源(CPU)。 中断与子程序的最主要区别:子程序是预先安排好的,中断是随机 发生的。 中断涉及的几个环节:中断源、中断申请、开放中断、保护现场、 中断服务、恢复现场、中断返回。
EX0/EX1/ET1/ET0/ES :分别是INT0/INT1、T0/T1、串行口的中断允 许控制位。 =0 :禁止中断; =1 :允许中断。 EA:总的中断允许控制位(总开关): =0 :禁止全部中断; =1 :允许中断。
中断优先级控制寄存器IP(0B8H)
PX0/PX1:INT0/INT1优先级控制位: =0 :属低优先级; =1 :属高优先级。 PT0/PT1:T0/T1中断优先级控制位: =0 :属低优先级; =1 :属高优先级。 PS1:串行口中断优先级控制位: =0 :属低优先级; =1 :属高优先级。

MCS-51单片机的指令集(分类)

MCS-51单片机的指令集(分类)
RET
子程序返回
1
24
RETI
中断返回
1
24
AJMP addr11
绝对短转移
2
24
LJMP addr16
长转移
3
24
SJMP rel
相对转移
2
24
JMP @A+DPTR
相对于DPTR的间接转移
1
24
JZ rel
累加器为零转移
2
24
JNZ rel
累加器非零转移
2
24
CJNE A,direct,rel
累加器与直接地址单元比较,不等则转移
2
12
MOV direct,Rn
寄存器内容送入直接地址单元
2
24
MOV direct,direct
直接地址单元中的数据送入直接地址单元
3
24
MOV direct,@Ri
间接RAM中的数据送入直接地址单元
2
24
MOV direct,#data8
8位立即数送入直接地址单元
3
24
MOV @Ri,A
累加器内容送入间接RAM单元
DEC @Ri
间接RAM内容减1
1
12
MUL A,B
A乘以B
1
48
DIV A,B
A除以B
1
48
DA A
累加器进行十进制转换
1
12
3、逻辑操作类指令
助记符
功能说明
字节数
振荡周期
ANL A,Rn
累加器与寄存器相“与”
1
12
ANL A,direct
累加器与直接地址单元相“与”

mcs-51指令系统

mcs-51指令系统

0000H 0700H …… …… ACALL Addr7-0 …… …… 2KB 2KB
一2KB范围内
ORG 07FFH
PC
07FFH
0801H 0810H 0FFFH 1000H 1100H
ACALL 0700H
ACALL 0810H ORG 1100H ACALL 1700H ACALL 0FFFH
ORL 对某些位置位 ORL P1,#00110010B ;P1口的1,4,5位置为1

A的低3 位送P1口,P1口高5位不变 ANL A,#O7H ANL P1,#0F8H ORL P1,A
XRL 对某些位取反 XRL P1,#00110001B ;P1口的0,4,5位取反
4.5 控制转移指令
00010010 2 addr 8-15 addr 0-7 (SP)=#07H SUBRTN的实际地 (PC)#0123H+#3=#0126H (SP)#07H+#1=#08H ((SP))=(08H)#26H (SP)#08H+#1=#09H ((SP))=(09H)(01H) (PC)#5678H
转移指令通过பைடு நூலகம்写PC的当前值,从而改变CPU执行 程序的顺序,使程序发生跳转。 按转移条件分类:

1)无条件转移:
执行无条件转移指令,程序无条件转移到指定处。 2)条件转移: 指令中给出转移条件,执行指令时,先测试条件,若 满足条件,则程序収生转移,否则,仍顺序执行程序。
4.5.1无条件转移指令
4.3 算术运算指令
例:被乘数3个字节,存在42H,41H,40H单元,乘数存在
R4中,将积存放到53H,52H,51H,50H中。

MCS-51单片机应用教程 第4章

MCS-51单片机应用教程 第4章

3. 方式1或方式3的波特率 在这两种方式下,串行口波特率是由定时器的溢出率 决定的,因而波特率是可变的。波特率的公式为:
2SMOD 波特率= 定时器T1溢出率 32
定时器T1的溢出率计算公式为: f osc 1 定时器T 1 溢出率= K ( ) 12 2 -初值
式中: K为定时器T1的位数;若定时器T1方式0,则 K=13;若定时器T1方式1,则K=l6;若定时器T1方 式2或方式3,则K=8。
2. 串行口控制寄存器SCON SCON是可以进行位寻址ห้องสมุดไป่ตู้8位控制寄存器,地址 为98H。SCON的各位的定义和功能如下:
SCON.7 SM0
.6 SM1
.5
.4
.3
.2 RB8
.1 TI
SCON.0 RI
SM2 REN TB8
SM0、SM1: 串行口工作方式选择位(内容见 4.2.2节)。 SM2: 多机通信控制位。具体用法见4.3.3节。 REN: 串行接收允许位。由软件置位或清除。软 件置1时,串行口允许接收,清零后禁止接收。 TB8: 在方式2和方式3中是发送的第9位数据。 RB8: 在方式2和方式3中是接收的第9位数据。 TI: 发送中断标志位。发送结束时由硬件置位。 该位必须用软件清零。 RI: 接收中断标志位。结束接收时由硬件置位。 该位必须用软件清零。
2. 同步方式 将一大批数据分成几个数据块,数据块之间用同步 字符予以隔开,而传输的各位二进制码之间都没有 间隔,所以同步方式是按数据块传送数据的,一次 可以传送完一大批数据。 同步方式中,每一位数据占用的传输时间都是相等 的,接收机的接收时钟应该和发送机的发送时钟以 及传送的码元同步。图4-2(b)中给出了典型的数据 格式。与图4-2(a)相比,同步通信方式的数据格式 中没有两帧之间的空闲时间,也没有一帧之内的识 别标志位。显然这种方式可以大大提高通信速度, 常用于高速计算机的大容量数据通信。

4_MCS51指令系统2

4_MCS51指令系统2
XCH @来自i XCHD12A
Rn
direct
堆栈操作指令
1. 入栈指令 汇编指令格式 PUSH direct 操 作 SP ← (SP)+1, (SP) ← (direct) 注意:堆栈指针SP先加 先加1,并指向栈顶的上一个空单元, 注意:堆栈指针 先加 ,并指向栈顶的上一个空单元,然后再 将直接地址(direct)寻址的单元内容压入当前 所指示的堆 寻址的单元内容压入当前SP所指示的堆 将直接地址 寻址的单元内容压入当前 栈单元中。该操作不影响标志位P。 栈单元中。该操作不影响标志位 。 2. 出栈指令 汇编指令格式 机器指令格式 操 作 POP direct D0H direct direct ← ((SP)), SP ← (SP)-1 注意:先将堆栈指针(SP)所指示的内部 所指示的内部RAM(栈顶 单元中内容送 栈顶)单元中内容送 注意:先将堆栈指针 所指示的内部 栈顶 再将栈指针(SP)减1并回 入由直接地址寻址的单元中,然后再将栈指针 入由直接地址寻址的单元中,然后再将栈指针 减 并回 送SP。该操作不影响标志位 。 。该操作不影响标志位P。
2. 半字节交换指令 汇编指令格式 机器指令格式 XCHD A,@Ri D6H~D7H ~ 注意:该操作只影响标志位P。 注意:该操作只影响标志位 。
高 4位
低 4位
高 4位
低 4位
操 作 (A)0~3 ↔ ((Ri))0~3 ~ ~
11
SW P A
交换指令
3. 累加器半字节交换指令 汇编指令格式 机器码格式 SWAP A C4H 注意:该操作不影响标志位P。 注意:该操作不影响标志位 。
A
@A+DPTR 变址 远程查表 ROM 64KB
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

* EQU定义的字符名称必须先定义后使用,而DATA定义的字符名可 以先使用后定义。
* 用EQU可以把一个汇编符号赋给字符名称,如上例中的R1,而 DATA只能把数据赋给字符名。 AA EQU R1
1
23
动力与电气工程系:许景辉
(8).BIT 位定义命令
功能:
格式: 例如:
用于给字符名称赋以位地址。
1 动力与电气工程系:许景辉
缺点: 必须对编写的程序进行加工和翻译,才能变成能够
被计算机识别和处理的二进制代码程序。仍然是面向机器的 语言,使用起来还是比较繁琐费时,通用性差。 用汇编语言等非机器语言书写好的符号程序称汇编语言源程 序。 (3)高级语言:与自然语言相近并为计算机所接受和执行的 计算机语言称为高级语言,它是面向用户的语言。
ROM中的内容 … 41H(A) 6EH(n)
1002H
1003H 1004H 1005H
04H
09H 10H 19H
1022H格)
61H(a) 70H(p) 70H(p)
1006H
1007H 1008H 1009H
1
24H
31H 40H 51H
1026H
MOV R0,#40H 3) 存储器操作数(单元地址)
MOV
1
A,20H
9
动力与电气工程系:许景辉
4.1.4单片机指令格式
单片机指令长度:变长指令(长度是不定的) 一字节指令(49条) (1)操作码和操作数占一个单元,如:INC DPTR 指令码:1010 0011 (2)指令的操作数在寄存器中,而寄存器编码只需3位2进制,故可 挤在一个字节 如: MOV A,Rn 指令码:1110 1rrr (rrr通用寄存器二进制编码)
7
西北农林科技大学水利与建筑工程学院
动力与电气工程系:许景辉
注释:指令功能说明。 ① 注释属于非必需项,是为便于阅读而对指令功能作的说明 和注解。 ② 注释必须以“;”开始。 分界符:
西北农林科技大学水利与建筑工程学院
8
动力与电气工程系:许景辉
4.1.3 操作数的类型 1) 立即数 MOV A,#30 2) 寄存器操作数 MOV B,A
概述
(1)机器语言:是用二进制代码表示的,能被计算机直接识别和
4.1.1 计算机语言 执行的一种机器指令的集合。
优点:灵活、能被计算机直接执行、速度快等。
缺点:直观性差,很容易出错,通用性很差。 (2)汇编语言:是一种用助记符表示的仍然面向机器的计算机语言, 又将其称为符号语言。 优点:用符号代替了机器指令代码,简化了编程过程,而且助 记符与指令代码一一对应,基本保留了机器语言的灵活性。占用的内存 空间少,运行速度快。
; 空操作语句
DATA1:
DB DB END
0, 1, 4, 9, 16, 25, 36, 49, 64, 81 “An apple!”
ORG 1020H
DATA2:
1
17
动力与电气工程系:许景辉
单元地址 0FFFH 1000H 1001H
ROM中的内容 … 00H 01H
单元地址 101FH 1020H 1021H
字符名称 BIT 位地址
AAA
BBB
BIT
BIT
40H
50H
其中“位地址”可以是绝对地址,也可以是符号地址。
例如: MOV
Cy, AAA
1
24
动力与电气工程系:许景辉
3.1.3 寻址方式 指令执行是对操作数而言,只有找到操作数才能处理, 操作数在指令中可以是其本身,也可是其所在地址,故须 确定如何找到操作数,这就是寻址。
运行使用。汇编时对这些单元不赋值。
格式: [标号:] DS 16位数表
例: ADDRTABL: DS 20
例:
ORG 8100H
DS
08H
注意:对MSC-51单片机来说,DB、DW、DS命令只能对程序存储器使用, 不能对数据存储器使用。
1
21
动力与电气工程系:许景辉
(6) EQU(Equate) 赋值命令 功能:用于给字符名称赋予一个特定值。赋值以后,其值在整个过程中 有效。 格式:
字符名称
EQU
赋值项
“赋值项”:可以是常数、地址、标号或表达式。
例如:
X Y Z AA
EQU 20 EQU 30 EQU X+Y EQU R1
22
MOV MOV
A, #X A, X
1
动力与电气工程系:许景辉
(7) DATA 数据地址赋值命令 格式:字符名称 DATA 项
功能:与EQU基本类似,但有以下差别。
功能:用于终止源程序的汇编工作。 格式:
[标号:] END
一个源程序只能有一个END命令。后面的不予执行。
1
15 动力与电气工程系:许景辉
3) DB(Define Byte) 定义数据字节命令
功能:用于从指定的地址单元开始,在程序存储器中定义
字节数据。
例4-1 分别从ROM的1000H和1020H单元开始,按顺序存
西北农林科技大学水利与建筑工程学院
28
动力与电气工程系:许景辉
3.立即寻址 (标志符号#) 操作数在指令中直接给出。 MOV A,#data MOV A,#3AH
◎都为8位数,但有唯一的16位立即数。MOV DPTR,#data16 ◎为了与直接寻址区别,在立即数前需加“#”标志。
西北农林科技大学水利与建筑工程学院
27
动力与电气工程系:许景辉
2.直接寻址(直接给出地址) 操作数以单元地址形式给出 MOV A,3AH 寻址范围: 只有8位,所以只限内部RAM。 (1)低128位单元。 (2)专用寄存器(单元地址、寄存器符号) (3) 位地址空间。 内部 RAM 例:MOV A,3AH
A 88H 88H 3AH
指令基本格式 [标号:]操作码 [目的操作数][,源操作数][;注释] START:MOV A,#30H ;将立即数30H传送至A中 MOV DPTR,#5678H ;将立即数5678H传送至DPTR 方括符[ ]表示可选项
操作码:表示指令的操作功能。 ① 操作码用助记符表示,它代表了指令的 操作功能。 ② 操作码是指令的必需部分,是指令的核 心,不可缺少。
放0~9中每个整数的平方值和字符串“An apple!”。
C语句 char square[ ]={0, 1, 4, 9, 16, 25, 36, 49, 64, 81} ; char string[ ]=“An apple!”;
1
16
动力与电气工程系:许景辉
ORG 0000H
START:
NOP
ORG 1000H
注意: DB和DW定义的数表,数的个数不得超
过80个。如果数据的数目较多时,可使用多个定义命
令。 在 MCS-51程序设计应用中,常以DB定义数据 ,以DW定义地址。
1
20
动力与电气工程系:许景辉
(5) DS(Define Storage) 定义存储区命令 功能:用于从指定地址开始,保留指定数目的字节单元为存储区,供程序
ORG 1100H
单元地 址 10FFH 1100H
ROM中的 内容 … 34H
1101H 1102H
1103H 1104H 1105H 1109H
78H 00H
10H 0FFH 0FFH …
DATA2: DW
3478H, 10H, -1
西北农林科技大学水利与建筑工程学院
19
动力与电气工程系:许景辉
第 4章 MCS-51指令系统
西北农林科技大学水利与建筑工程学院
1
动力与电气工程系:许景辉
4.1 概述 指 令:供用户使用的单片机软件资源 指令系统:计算机能执行的指令集合,是由硬件厂商定义的 单片机使用: 机器语言 汇编语言 C语言
西北农林科技大学水利与建筑工程学院
2
动力与电气工程系:许景辉
4.1
相对寻址
西北农林科技大学水利与建筑工程学院
26
动力与电气工程系:许景辉
1.寄存器寻址方式: 操作数在寄存器时,指定寄存器名称用来得到操作数 MOV A,Rn 寻址范围: *通用寄存器,R0~R7(共32个但每次只能是8个。用PSW 中的RS1、RS0控制) *部分专用寄存器:A、B、DPTP
西北农林科技大学水利与建筑工程学院
标号: (1)1-8个字母/数字组成(以字母开头), 不能用汇编语言中定义的符号,不能重复 定义。 (2)指令前的标号代表该指令的地址,是用 符号表示的地址,用于一段功能程序的识 别标记或控制转移地址。 (3)标号必须用冒号“ :”与;操作码分隔。
5
西北农林科技大学水利与建筑工程学院
动力与电气工程系:许景辉
① 我的信在 他那!找信

注:找信是寻找信的“地址”!
西北农林科技大学水利与建筑工程学院
25
动力与电气工程系:许景辉
退货(买西装): 立即寻址 到开元找王经理退货 直接寻址 到开元找售后服务部门经理退货 寄存器寻址 到卖衣服的店找售后服务经理办公室退货 到买衣服的店找售后服务办公室联系经理退货 找12315 变址寻址 寄存器间接寻址 找买衣服店长+(下属分管售后的人)
1027H 1028H 1029H
18
6CH(l)
65H(e) 21H(!) …
动力与电气工程系:许景辉
4. 定义字数据伪指令DW 格式:[标号:] DW 字数据表 功能: 与DB类似,但DW定义的数据项为 字,包括两个字节,存放时高位在低单元, 低位在高单元。 例如: ORG 1000H DATA:DW 324AH,3CH ; 表示从1000H单元开始的地方存放数据32H, 4AH,00H,3CH(3CH以字的形式表示为 003CH)。
相关文档
最新文档