第3章 80C51单片机的指令系统及编程
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、指令系统 ~
(1) 数据传送类指令(28条)
数据传送类指令是数据处理的最基本操作,在80C51 单片机中,数据传送类指令占得比重比较大。这类指 令一般不影响程序状态字寄存器PSW的状态。 数据传送类指令可分为:一般传送类指令、查表指
令、片外RAM访问指令、堆栈操作指令和交换指令。 片外RAM访问指令 RAM
CLR C CLR bit CPL C CPL bit SETB C SETB bit 对全部可位寻址区的每一位, 对全部可位寻址区的每一位, 均可直接进行清0、 均可直接进行清 、取反及 置1操作 操作
三、指令系统 ~
(5)位操作类指令(17条)
(3)位逻辑运算指令 条) )位逻辑运算指令(4条
1、无条件转移指令(4条) 无条件转移指令( 2、条件转移指令(8条) 条件转移指令( 3、子程序调用与返回指令(4条) 子程序调用与返回指令( 4、空操作指令(1条) 空操作指令(
三、指令系统 ~
(4)控制转移类指令(17条)
1、无条件转移指令(4条) 无条件转移指令(
三、指令系统 ~
(4)控制转移类指令(17条)
2、条件转移指令(8条) 条件转移指令( (1)累加器判0转移指令(2条) 累加器判0转移指令(
三、指令系统 ~
(2) 比 较 不 相 等 转 移 指 令 条 (4 条)
(4)控制转移类指令(17条)
三、指令系统 ~
(4)控制转移类指令(17条)
2、条件转移指令(8条) 条件转移指令( (3)减1不为0转移指令(2条) 不为0转移指令(
二、寻址方式 ~ 3、寄存器寻址
二、寻址方式 ~ 4、寄存器间接寻址
二、寻址方式 ~ 5、变址寻址
二、寻址方式 ~ 6 、相对寻址
二、寻址方式 ~ 7、位寻址
主要内容
1、单片机的指令结构 2、寻址方式
3、指令系统
4、伪指令 5、程序设计方法 6、编程实例
三、指令系统
按照指令的功能来分,可分为: (1) 数据传送类指令(29条); (2) 算术运算类指令(24条); (3) 逻辑运算类指令(24条); (4) 控制转移类指令(17条); (5) 位操作指令(17条)。
三、指令系统 ~
(1)位数据传送指令 条) )位数据传送指令(2条
MOV C, bit , MOV bit,C ,
(5)位操作类指令(17条)
;(bit)→(C) ;(C)→(bit)
位内容传递, 位内容传递,须经过位累加 器C,不存在 ,不存在MOV bit,bit , 指令
(2)位状态控制指令 条) )位状态控制指令(6条
三、指令系统 ~
(4)控制转移类指令(17条)
通常情况下,程序的执行是顺序进行的,但也可以根据需要, 通常情况下,程序的执行是顺序进行的,但也可以根据需要, 改变程序的执行顺利,这种情况称为程序的转移。 改变程序的执行顺利,这种情况称为程序的转移。
控制转移类指令可分为四类: 控制转移类指令可分为四类:
一、单片机的指令结构
(2)按照单片机执行指令所用时间的长短来分,其 111条指令可分为:(1)单周期指令(64条)、(2)双周 期指令(45条)、(3)四周期指令(2条);
一、单片机的指令结构
(3)按照指令的功能来分,可分为:(1) 数据传送类 指令(29条)、(2) 算术运算类指令(24条)、(3) 逻辑运 算类指令(24条)、(4) 控制转移类指令(17条)、(5) 位 操作指令(17条)。
第3章(1) 80C51单片机的指令 系统
主要内容
1、单片机的指令结构 2、寻址方式 3、指令系统 4、伪指令 5、程序设计方法 6、编程实例
教学要求
1、理解单片机的指令格式 2、掌握7种寻址方式 掌握7 3、能灵活运用常用指令(含伪指令) 能灵活运用常用指令(含伪指令) 4、掌握常用编程方法
主要内容
5、累加器循环移位指令(4条) 累加器循环移位指令(
RR
A
RRC A RL A
RLC A
三、指令系统 ~
习题
(3)逻辑运算类指令(24条)
1、设(P0)=(P1)=(P2)=0AAH,编程使P0口低4位 P0) P1) P2)=0AAH,编程使P0口低4 P0口低 清零,P1口低4位置1,P2口低4位取反。 清零,P1口低4位置1 P2口低4位取反。 口低 口低 2、将累加器A的低4位送到P1口的低4位,而P1的高4位 将累加器A的低4位送到P1口的低4 P1口的低 P1的高4 的高 保持不变。 保持不变。 3、设(30H)=33H,(31H)=55H,编程将30H单元高4 30H)=33H,(31H)=55H,编程将30H单元高4 ,(31H 30H单元高 位与31H单元低4位合并,存入32H单元。 位与31H单元低4位合并,存入32H单元。 31H单元低 32H单元
三、指令系统 ~
例题: 例题:
(2) 算术运算类指令(24条)
1、编程实现累加器A中的内容与寄存器R0中内容相加, 结果存入30H单元中。 2、编程实现双字节加法,设被加数存放在30H、31H单 元,加数存放在40H、41H单元,和存入50H、51H单元。
三、指令系统 ~
(3)逻辑运算类指令(24条)
三、指令系统 ~
(4)控制转移类指令(17条)
3、子程序调用与返回指令(4条) 子程序调用与返回指令( (1)子程序调用指令(2条) 子程序调用指令(
三、指令系统 ~
(4)控制转移类指令(17条)
3、子程序调用与返回指令(4条) 子程序调用与返回指令( (2)子程序返回指令(2条) 子程序返回指令(
3、指令系统 4、伪指令 5、程序设计方法 6、编程实例
二、寻址方式
操作数是指令的主要组成部分,它指出了参与操作 的数据或数据的地址。
寻找操作数地址的方式,就是寻址方式。 寻找操作数地址的方式,就是寻址方式。
80C51单片机的汇编语言共有7种寻址方式。 7
二、寻址方式 ~ 1、立即数寻址
二、寻址方式 ~ 2、直接寻址
三、指令系统 ~
(1) 数据传送类指令(29条)
1、一般传送类指令(16条) 一般传送类指令(16条 一般传送类指令
MOV为操作码 该类指令的特点是以MOV为操作码。
三、指令系统 ~
(1) 数据传送类指令(29条)
(2)以Rn为目的操作数
三、指令系统 ~
(1) 数据传送类指令(29条)
三、指令系统 ~
(1) 数据传送类指令(29条)
三、指令系统 ~
2、查表指令
(1) 数据传送类指令(29条)
通常ROM中存放两方面的内容,一是单片机执行的 程序代码,二是一些固定不变的常数 固定不变的常数(如表格数据 表格数据、 固定不变的常数 表格数据 字段代码等)。 字段代码
三、指令系统 ~
(1) 数据传送类指令(29条)
4、空操作指令(1条) 空操作指令( NOP ;(PC)+1 (PC)
三、指令系统 ~
习题
(4)控制转移类指令(17条)
1、编程判断片内RAM的30H单元中的内容是否为0,若为0,将标志位 编程判断片内RAM的30H单元中的内容是否为0 若为0 RAM 单元中的内容是否为 20.1H置 20.1H置1;若不为0,将标志位清0。 若不为0 将标志位清0 2、将片外RAM中2000H~2020H单元的内容清0。 将片外RAM中2000H~2020H单元的内容清0 RAM 单元的内容清 3、将片内RAM中从DATA单元开始的10个无符号数相加,结果送入SUM 将片内RAM中从DATA单元开始的10个无符号数相加,结果送入SUM RAM中从DATA单元开始的10个无符号数相加 单元。假设加过不超过8位二进制数。 单元。假设加过不超过8位二进制数。 4、将片外RAM的一个数据块传送到片内RAM,两者的首地址分别为 将片外RAM的一个数据块传送到片内RAM, RAM的一个数据块传送到片内RAM DATA1和DATA2,遇到传送的数据位0时停止。 DATA1和DATA2,遇到传送的数据位0时停止。
指令仅有一条,格式为MUL
AB;累加器A与B的内容相乘。
该指令的功能是将累加器A中的内容与寄存器B中无符号数相 乘,乘积的低8位留在累加器A中,高8位存放在寄存器B中. 7、除法指令 指令也仅有一条,格式为DIV AB ;累加器A除以寄存器B
该指令的功能是将累加器A中的无符号8位二进制数除以B中 的8位无符号二进制数,商的整数部分存放在累加器A中,余 数部分存放在寄存器B中。
(2) 算术运算类指令(24条)
2、带进位的加法指令
三、指令系统 ~
3、加1指令 、 指令
(2) 算术运算类指令(24条)
三、指令系统 ~
4、减法指令
(2) 算术运算类指令(24条)
三、指令系统 ~
5、减1指令
(2) 算术运算类指令(24条)
三、指令系统 ~
6、乘法指令
(2) 算术运算类指令(24条)
三、指令系统 ~
(3)逻辑运算类指令(24条)
1、逻辑与指令(6条) 逻辑与指令(
三、指令系统 ~
3、逻辑异或(6条) 逻辑异或(
(3)逻辑运算类指令(24条)
三、指令系统 ~
(3)逻辑运算类指(
三、指令系统 ~
(3)逻辑运算类指令(24条)
三、指令系统 ~
8、十进制调整指令
(2) 算术运算类指令(24条)
A ;将A中的内容调整为
该组指令只有一条,为DA BCD码的形式。
BCD码的全称是二-十进制码(Binary-Coded Decimal),是用4位二进制数来存储一位十进制数,使二 进制与十进制之间的转换变得更加方便快捷。由于十进制 数共有0、1、2…9十个数码,因此至少需要4位二进制数来 表示一位十进制数。 注意:若使用该指令,则必须放在加法指令之后。 注意:若使用该指令,则必须放在加法指令之后。
3、访问外部RAM的指令 访问外部RAM的指令 RAM
三、指令系统 ~
4、堆栈操作指令
(1) 数据传送类指令(29条)
5、字节交换指令(5条) 字节交换指令(5条 (5
SWAP
A
三、指令系统 ~
例题: 例题:
(1) 数据传送类指令(29条)
1、编程实现将#35H送到R1中,R1中的数据送给片内 RAM40H单元,片内RAM40H单元中的内容送到累加器A中。 2、编程实现片内RAM35H单元中的内容送给40H单元, P0口内容送给P2口。
1、单片机的指令结构
2、寻址方式 3、指令系统 4、伪指令 5、程序设计方法 6、编程实例
一、单片机的指令结构
1、指令的分类
80C51单片机共有111条指令,常用的分类方法有三种。 (1)按照指令所占字节的个数来分,可分为:(1)单字节指令(49 条)、(2)双字节指令(45条)、(3)三字节指令(17条);
逻辑运算的一个操作数在位 累加器C中 累加器 中,运算结果保存 在C中,另一个在给定位地 中 址中参加运算的操作数保持 不变
ANL ANL ORL ORL
C, bit , C,/ ,/bit ,/ C, bit , C,/ ,/bit ,/
;(C)∧(bit)→(C) ∧ ;(C)∧(bit)→(C) ∧ ;(C)∨(bit)→(C) ∨ ;(C)∨(bit)→(C) ∨
三、指令系统 ~
三、指令系统 ~
(1) 数据传送类指令(29条)
3、把R1中的内容送给R3。 4、编程将片外RAM中的0060H单元中的内容,送到R2中。 5、编程从程序存储器2500H单元中取出数据,送入片 内RAM的30H单元。
三、指令系统 ~
1、加法指令 、
(2) 算术运算类指令(24条)
三、指令系统 ~
一、单片机的指令结构
2、指令的格式
80C51单片机的汇编语言指令由操作码和操作数两部分组成。不 同的操作码代表不同的功能,80C51单片机汇编语言的操作码是采 用具有一定意义的英文字符来表示的,读者可根据其含义,进行 理解记忆。
一、单片机的指令结构
3、常用符号
主要内容
1、单片机的指令结构
2、寻址方式
逻辑运算类指令共24条,包括与、或、非、异或、 逻辑运算类指令共24条 包括与、 异或、 24 清零、取反及移位等操作指令。这些指令涉及累加器 清零、取反及移位等操作指令。 A时,影响奇偶标志位P,但对Cy(除带进位移位指令 影响奇偶标志位P 但对Cy( Cy 外)、AC、OV位均无影响。 )、AC、OV位均无影响。 AC 位均无影响