3.7 -3.8 位操作类指令、伪指令(课件)-《单片机技术与应用》(高教版第二版) 同步精品课堂
|
25页
|
95人阅读
|
1人下载
精品
内容正文:
单片机技术与应用
-第15课时-
高教版第二版
位操作类指令、伪指令
教学目标
了解位操作类指令和伪指令在单片机编程中的作用
掌握位操作类指令的分类、格式、操作功能、字节数和机器周期数
熟悉位地址的不同表示方法
能够运用位操作类指令和伪指令进行简单的程序设计
教学重难点
位操作类指令的功能和使用
常用伪指令的功能和使用场景
位逻辑操作指令和位条件转移指令的灵活运用
让我们一起开启单片机的学习之旅。
导入新课
在单片机控制系统中,常常需要对线路的通断、继电器的吸合与释放等进行控制,这就涉及到位操作。同时,在汇编程序设计中,伪指令可以帮助我们更好地组织程序和数据。
MCS - 51系列单片机有哪些涉及位操作类运算符的指令和伪指令呢?
它们各自的功能和特点是什么?
让我们一起开启单片机的学习之旅。
新知讲授
概述
位操作类指令也称布尔变量操作指令,以位为单位进行运算和操作,以位累加器(借用进位标志CY)为中心展开。
MCS-51单片机中能够进行位寻址的区域有两部分
一部分是内部RAM的位寻址区(字节地址20H - 2FH单元中连续的128位,位地址00H - 7FH);
另一部分是在SFR中,字节地址能被8整除的专用寄存器的各位,其位地址从8OH~OFFH,中间有少数位未被定义,不能按位寻址。
位操作类指令
这类指令的助记符有MOV、CLR、CPL、SETB、ANL、ORL、JC、JNC、JB、JNB、JBC共11种操作助记符。
新知讲授
汇编语言中位操作指令中位地址有以下4种表示形式:
1. 位传送指令(见表)
1. 直接位地址表示,如D5H。
2. 点表示(说明寄存器及其位),如PSW.5。
3. 位名称表示,如直接用F0表示。
4. 用户定义名称表示,如用户定义用FLG代替F0,则指令中可用FLG表示F0标志位。
位操作类指令
指令助记符 操作功能 字节数 机器周期数
MOV C,bit C←-(bit) 2 1
MOV bit,C bit-(C) 2 1
新知讲授
位传送指令
【例0】将20H.0传送到25H.3中。
【程序】
MOV C,20H.0
MOV 25H.3,C 或者
这里的00H和2AH是位地址,而不是存储单元字节地址。
位操作类指令
MOV C,00H
MOV 2BH,C
该指令将源操作数指定的位变量传送到目的操作数指定的位单元,一个操作数为位地址(bit),另一个为位累加器C。
新知讲授
位逻辑操作指令指令
位逻辑运算指令共有6条。分别实现位地址单元内容或取反后的值与进位位内容“与”操作,位地址单元内容或取反后的值与进位标志位的内容“或”操作、位地址单元内容或进位标志位的取反。
位操作类指令
指令名称 指令助记符 操作功能 字节数 机器周期数
位逻辑 操作指令
ANL C,bit ANL C,/bit C←-(C)人(bit)
C←(C)A(/bit) 2
2 2
2
ORL C,bit ORL C,/bit C←-(C)V(bit)
C-(C)V(/bit) 2
2 2
2
新知讲授
位状态控制指令
位控制转移指令共有6条,分别是清0、取反、置位,执行结果不影响其他标志位。
位操作类指令
指令名称 指令助记符 操作功能 字节数 机器周期数
位状态控 制指令
CLR C
CLR bit C-0
bit←-0 1
2 1
1
CPL C
CPL bit C←(/C)
(bit)←(/bit) 1
2 1
1
SETB C
SETB bit C←-1
bit-1 1
2 1
1
新知讲授
位条件转移指令
位控制转移指令共有5条:1)以C状态为条件的转移指令(两条)、2)以位状态为条件的转移指令共有3条
位操作类指令
指令助记符 操作功能 字节数 机器周期数
JC rel
JNC rel
JB bit,rel
JNB bit,rel
JBC bit,rel 若(CY)=1,则(PC)←(PC)+2+rel转移 若(CY)=0,则顺序执行
若(CY)=0,则(PC)←(PC)+2+rel转移 若(CY)=1,则顺序执行
若(bit)=1,则(PC)←(PC)+3+rel转移 若(bit)=0,则顺序执行
若(bit)=0,则(PC)←(PC)+3+rel转移 若(bit)=1,则顺序执行
若(bit)=1,则(PC)←(PC)+3+rel转移 且(bit)←-0
若(bit)=0,则顺序执行 2
2
3
3
3 2
2
2
2
2
新知讲授
位条件转移指令 - 示例
参考程序如下:
ADD A,R0
JC CAR
CLR 00H
CAR: CPL A
位操作类指令
【例】:编写程序,完成以下功能:两个数相加,若有进位则和取反,若无进位则将00H位清0。
新知讲授
位操作指令综合示例
参考程序如下:
MOV C,P1.1
ORL C,P1.2
CPL C
ANL C,P1.0
MOV P1.5,C
位操作类指令
【例】:利用位操作指令,实现如图所示逻辑电路功能。
MOV F0,C
MOV C,P1.3
ANL C,/P1.4
ORL C,F0
新知讲授
概述
伪指令不要求单片机做任何操作,也没有对应的机器码,不产生目标程序,不影响程序的 执行,仅仅是一些能够帮助进行汇编的指令。
它主要用来指定程序或数据的起始位置,给出一 些连续存放数据的地址,为中间运算结果保留一部分存储空间,以及表示源程序结束等。 单片机中有如下几 种 常 用 的 伪 指 令 。
1. 设置目标程序起始地址伪指令ORG
2. 结束汇编伪指令END
3. 定义字节伪指令DB
4. 定义字伪指令DW
伪指令概述
应用
5. 预留存储空间伪指令DS
6. 等值伪指令EQU
7. 位地址定义伪指令BIT
8. 数据地址赋值伪指令DATA
表明标号为START的目标程序从2000H单元开始存放,START具有2000H地址值。一个源程序可多次使用ORG指令,但地址应从小到大,不允许程序段重叠。若不用ORG指令,程序从0000H单元开始存放。
新知讲授
(1)设置目标程序起始地址伪指令ORG
格式:[符号:]ORG 地址(用十六进制数表示)
功能:规定其后目标程序或数据块的起始地址。
例如:
ORG 2000H
START:MOV A,#30H
伪指令概述
表明标号为START的目标程序从2000H单元开始存放,START具有2000H地址值。一个源程序可多次使用ORG指令,但地址应从小到大,不允许程序段重叠。若不用ORG指令,程序从0000H单元开始存放。
表明标号为START的目标程序从2000H单元开始存放,START具有2000H地址值。一个源程序可多次使用ORG指令,但地址应从小到大,不允许程序段重叠。若不用ORG指令,程序从0000H单元开始存放。
新知讲授
(2)结束汇编伪指令END
格式:[符号:]END
伪指令概述
END 是汇编语言源程序的结束标志。在END 以后所写的指令都不予处理。一个源程序只 能有一个END 命令,否则就有一部分指令不能执行。
(3)预留存储空间伪指令DS
该伪指令的功能是从标号地址开始,保留若干个字节的内存空间以备存放数据。保留的字节单元数由表达式的值决定。
格式:[标号:]DS 表达式
表明标号为START的目标程序从2000H单元开始存放,START具有2000H地址值。一个源程序可多次使用ORG指令,但地址应从小到大,不允许程序段重叠。若不用ORG指令,程序从0000H单元开始存放。
新知讲授
(4)定义字节伪指令DB
格式:[标号:]DB 项或项表
功能:把项或项表的数据存人从标号地址开始的连续存储单元中
例如:
ORG 2000H
TAB1: DB 30H,8AH,7FH,73
DB'5','A','BCD'
伪指令概述
由 ORG 2000H得 TAB1的地址为2000H, 因此,以上伪指令经汇编后,将对2000H 开始 的连续存储单元赋值。
表明标号为START的目标程序从2000H单元开始存放,START具有2000H地址值。一个源程序可多次使用ORG指令,但地址应从小到大,不允许程序段重叠。若不用ORG指令,程序从0000H单元开始存放。
新知讲授
(5) 定义字伪指令DW
格式:[标号:]DW 项或项表
DW 伪指令与DB 相似,但用于定义字的内容。汇编时,机器自动按高8位先存入,低8 位在后的格式排列。例如:
ORG 1500H
TAB2: DW 1234H,80H
伪指令概述
汇编以后:(1500H)=12H,(1501H)=34H,(1502H)=00H,(1503H)=80H。
表明标号为START的目标程序从2000H单元开始存放,START具有2000H地址值。一个源程序可多次使用ORG指令,但地址应从小到大,不允许程序段重叠。若不用ORG指令,程序从0000H单元开始存放。
新知讲授
(6) 等值伪指令EQU
格式:标号: EQU 项
功能:将指令中的项值赋予EQU 前面的标号。项可以是常数、地址标号或表 达式
例如:
TAB1:EQU 1000H
TAB2:EQU 2000H
伪指令概述
汇编以后:TAB1 、TAB2 分别具有值1000H 、2000H。用 EQU 伪指令对某标号赋值后,该标 号的值在整个程序中不能再改变。
表明标号为START的目标程序从2000H单元开始存放,START具有2000H地址值。一个源程序可多次使用ORG指令,但地址应从小到大,不允许程序段重叠。若不用ORG指令,程序从0000H单元开始存放。
新知讲授
(7)位地址定义伪指令BIT
格式:标号: BIT 位地址
功能:将位地址赋予BIT 前面的标号,经赋值后可用该标号代替BIT 后面的位地址。
例如:
PLG:BIT FO
AI:BIT P1.0
伪指令概述
经以上伪指令定义后,在程序中就可以把FLG 和 AI 作为位地址来使用。
表明标号为START的目标程序从2000H单元开始存放,START具有2000H地址值。一个源程序可多次使用ORG指令,但地址应从小到大,不允许程序段重叠。若不用ORG指令,程序从0000H单元开始存放。
新知讲授
(8)数据地址赋值伪指令DATA
格式:字符名称 DATA 表达式
功能:将位地址赋予BIT 前面的标号,经赋值后可用该标号代替BIT 后面的位地址。
伪指令概述
该伪指令的功能是将表达式指定的数据地址赋予规定的字符名称。该指令与 EQU 相似, 只是可先使用后定义,放在程序开头、结尾均可。
随堂检测1
位操作类指令的操作对象有哪些?
答案:位操作类指令的操作对象是内部RAM的位寻址区,即字节地址为20H~2FH单元中连续的128位(位地址为00H~7FH),以及SFR中可以进行位寻址的各位。
伪指令ORG和END的作用分别是什么?
答案:ORG的作用是规定其后目标程序或数据块的起始地址;END是汇编语言源程序的结束标志,END之后的指令不予处理。
练一练
随堂检测2
位传送指令MOV C,bit和MOV bit,C的功能分别是什么?
答案:MOV C,bit的功能是将位地址(bit)的值传送到位累加器C中;MOV bit,C的功能是将位累加器C的值传送到位地址(bit)中。
定义字节伪指令DB和定义字伪指令DW的区别是什么?
答案:DB用于把项或项表的数据存入从标号地址开始的连续存储单元,存储的是字节数据;DW用于定义字的内容,汇编时按高8位先存入,低8位在后的格式排列。
练一练
师生互动
1
请各小组讨论,在实际编程中,如何合理运用位操作类指令和伪指令来优化程序结构和提高编程效率。
课题小结
1. 位操作类指令
位操作类指令、伪指令
2. 伪指令
位传送指令
位状态控制指令
位逻辑操作指令
位条件转移指令
设置目标程序起始地址伪指令ORG
结束汇编伪指令END
定义字节伪指令DB
定义字伪指令DW
预留存储空间伪指令DS
等值伪指令EQU
位地址定义伪指令BIT
数据地址赋值伪指令DATA
谢谢观看
THANKS
Lavf58.46.101
$