2927|0

362

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

位及位操作指令(2) [复制链接]

2. 位修正指令


  1. 位清0指令


CLR C ;使CY=0
CLR bit ;使指令的位地址等于0。例:CLR P1.0 ;即使P1.0变为0


  2.位置1指令

SETB C ;使CY=1
SETB bit ;使指定的位地址等于1。例:SETB P1.0 ;使P.0变为1


  3. 位取反指令


CPL C ;使CY等于原来的相反的值,由1变为0,由0变为1
CPL bit ;使指定的位的值等于原来相反的值,由0变为1,由1变为0
例:CPL P1.0
以我们做过的实验为例,如果原来灯是亮的,则执行本指令后灯灭,反之原来灯是灭的,执行本指令后灯亮。


  • 位逻辑运算指令
  • 位与指令

    ANL C,bit ;CY与指定的位地址的值相与,结果送回CY
    ANL C,/bit ;先将指定的位地址中的值取出后取反,再和CY相与,结果送回CY,但注意,指定的位地址中的值本身并不发生变化。
    例:ANL C,/P1.0
    设执行本指令前,CY=1P1.0等于1(灯灭),则执行完本指令后CY=0,而P1.0也是等于1
    可用下列程序验证:
    ORG 0000H
    AJMP START
    ORG 30H
    STARTMOV SP#5FH
    MOV P1#0FFH
    SETB C
    ANL C/P1.0
    MOV P1.1,C ;将做完的结果送P1.1,结果应当是P1.1上的灯亮,而P1.0上的灯还是不亮。
  • 位或指令

ORL C,bit
ORL C,/bit
这个的功能大家自行分析吧,然后对照上面的例程,编一个验证程序,看看你相得对吗?
  • 位条件转移指令
  • CY转移指令

    JC rel
    JNC rel
    第一条指令的功能是如果CY等于1就转移,如果不等于1就顺序执行。那么转移到什么地方去呢?我们可以这样理解:JC 标号,如果等于1就转到标号处执行。这条指令我们在上节课中已讲到,不再重复。
    第二条指令则和第一条指令相反,即如果CY=0就转移,不等于0就顺序执行,当然,我们也同样理解: JNC 标号
  • 判位变量转移指令

JB bit,rel
JNB bit,rel
第一条指令是如果指定的bit位中的值是1,则转移,否则顺序执行。同样,我们可以这样理解这条指令:JB bit,标号
第二条指令请大家先自行分析
下面我们举个例子说明:
ORG 0000H
LJMP START
ORG 30H
STARTMOV SP#5FH
MOV P1#0FFH
MOV P3#0FFH
L1: JNB P3.2,L2 ;P3.2上接有一只按键,它按下时,P3.2=0
JNB P3.3,L3 ;P3.3上接有一只按键,它按下时,P3.3=0
LJM P L1
L2: MOV P1,#00H
LJMP L1
L3: MOV P1,#0FFH
LJMP L1
END
把上面的例子写入片子,看看有什么现象………
.
.
按下接在P3.2上的按键,P1口的灯全亮了,松开或再按,灯并不熄灭,然后按下接在P3.3上的按键,灯就全灭了。这像什么?这不就是工业现场经常用到的“启动”、“停止”的功能吗?
怎么做到的呢?一开始,将0FFH送入P3口,这样,P3的所有引线都处于高电平,然后执行L1,如果P3.2是高电平(键没有按下),则顺序执行JNB P3.3,L3语句,同样,如果P3.3是高电平(键没有按下),则顺序执行LJMP L1语句。这样就不停地检测P3.2P3.3,如果有一次P3.2上的按键按下去了,则转移到L2,执行MOV P1#00H,使灯全亮,然后又转去L1,再次循环,直到检测到P3.30,则转L3,执行MOV P1#0FFH,例灯全灭,再转去L1,如此循环不已。
大家能否稍加改动,将本程序用JB指令改写?
此帖出自单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表