51单片机之位操作指令SETB、CPL等


前言

  1. 位操作指令只能对片内RAM可位寻址的空间进行操作;
  2. 在片内RAM 字节地址 20H~2FH共计16字节128位,其对应 位地址00H~70H的128位空间地址;
  3. 此外特殊功能寄存器(SFR)中有11个可以位寻址共计88位(准确说需要再去除6位,共计82位);
  4. 对于判定SFR是否可以寻址,可利用其字节地址的十进制表达是8的倍数,或者字节地址的十六进制以0或8结尾的特性来判断其可以位寻址;
  5. 通过指令来判断源操作数与目的操作数是位地址还是字节地址
  6. 位操作指令可以操作位地址或字节地址,但位地址只能通过位操作指令来操作,其他指令是控制1B(一个字节),不适合位地址,只有位操作指令是操作1b(一位);
  7. 51单片机是利用布尔处理机来处理位变量的指令集;
  8. 位操作指令的定义:处理对象为位变量的指令集,包括变量传送、逻辑运算、控制程序转移等指令。

例 设位地址10H(即字节地址22H的第一位)内容为0
MOV C 10H
SETB 20H
MOV 20H, #FFH

  • MOV C 10H和SETB 20H两个都是位操作,MOV 20H, #FFH不是位操作指令;
  • MOV C 10H:表示将(10H) = 0送入CY(进位标志位);
  • SETB 20H:表示将位地址20H(即字节地址24H的第一位)置1;
  • MOV 20H, #FFH:表示将字节地址20H设置为FFH,即位地址00H~07H共8b全设置为1,8个1。

一、位数据传送指令

MOV英文全称: Move


MOV C, bit

目的:将位地址bit的内容送入CY位中

MOV bit, C

目的:将位CY的内容送入位地址bit中

助记符功能对标志位影响字节数周期数
POVACCY
MOV C, bit(bit) -> C×××21
MOV bit, C(C) -> bit××××22

例 设位地址10H的内容为0,C中的内容为1

  • MOV C, 10H:表示 位地址10H的内容送入C中,(10H) = 0 -> C,C清零;
  • MOV 10H, C:表示将C中内容送入位地址10H中,© = 1 -> 10H。

二、位修正指令

CLR英文全称:Clear
SETB英文全称:Set Bit
CPL英文全称:Complement


CLR X

目的:对位进行清零

SETB X

目的:对位进行置一

CPL X

目的:对位进行取反,原先是1就变为0,原先是0就变为1

助记符功能对标志位影响字节数周期数
POVACCY
CLR C0 -> C×××11
CLR bit0 -> bit×××21
SETB C1 -> C×××11
SETB bit1 -> bit×××2
CPL C/(C) -> C×××11
CPL bit/(bit) -> bit×××21

例 设位地址10H的内容为1,C中的内容为1

  • CLR C:表示将C清零;
  • CLR 10H:表示将位地址10H清零:
  • SETB C:表示将C置数(置一);
  • SETB 10H:表示将位地址10H置数;
  • CPL C:表示将C取反,/( C ) = 0 -> C;
  • CPL 10H:表示将位地址10H取反,/(10H) = 0 -> 10H
    SETB bit命令常用于开中断和启动定时器/计数器,如SETB ET0表示启动定时器/计数器T0

三、位逻辑运算指令

ANL英文全称:AND Logic
ORL英文全称:OR Logic


ANL C, X

目的:将累加器A中的内容与直接地址中的内容进行逻辑与运算

ORL C, X

目的:将累加器A中的内容与直接地址中的内容进行逻辑或运算

直接位地址中的数,在指令执行前后没有发送变化

助记符功能对标志位影响字节数周期数
POVACCY
ANL C, bit(C) ^ /(bit) -> C×××12
ANL C, /bit(C) ^ (bit) -> C×××22
ORL C, bit(C) V (bit) -> C×××12
ORL C, /bit(C) V /(bit) -> C×××22

例 设位地址10H的内容为0,C中的内容为1

  • ANL C, 10H:表示位将C中的内容与10H中的内容进行与逻辑操作,最后将结果1存放在C中;
  • ANL C, /10H:表示位将C中的内容与10H中的内容取反后进行与逻辑操作,最后将结果0存放在C中;

例 设位地址10H的内容为0,C中的内容为0

  • ORL C, 10H:表示位将C中的内容与10H中的内容进行或逻辑操作,最后将结果存0放在C中;
  • ORL C, /10H:表示位将C中的内容与10H中的内容取反后进行或逻辑操作,最后将结果存1放在C中;

51单片机之系统指令

51单片机之逻辑运算指令ANL、ORL、XRL等

51单片机之数据转移指令MOV、MOVX、MOVC等

51单片机之控制转移指令SJMP、LJMP等

51单片机之算术运算指令ADDC、SUBB等


:将位条件转移指令放入条件转移指令中;

由本人水平有限,文章难免有错误,望告知

  • 53
    点赞
  • 276
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值