┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |
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 指令改写?
┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |