新闻中心

EEPW首页>嵌入式系统>设计应用> 51单片机教程:单片机位操作指令

51单片机教程:单片机位操作指令

作者: 时间:2012-07-10 来源:网络 收藏

判位变量转移

JB bit,rel

JNB bit,rel

第一条是如果指定的bit位中的值是1,则转移,不然次序执行。同样,我们能这样理解这条:JB bit,标号

第二条指令请大家先自行分析

下面我们举个例程说明:

ORG 0000H

LJMP START

ORG 30H

START:MOV 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.2、P3.3,如果有一次P3.2上的按钮按下去了,则转移到L2,执行MOV P1,#00H,使灯全亮,然后又转去L1,再次循环,直到检测到P3.3为0,则转L3,执行MOV P1,#0FFH,例灯全灭,再转去L1,如此循环不已。大家能否稍加改动,将本程序用JB指令改写?


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭