┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |
MOV C , BIT
MOV BIT , C
这组指令的功能是实现位累加器( CY )和其它位地址之间的数据传递。
例: MOV P1.0,CY ; 将 CY 中的状态送到 P1.0 引脚上去(如果是做算术运算,我们就可以通过观察知道现在 CY 是多少啦)。
MOV P1.0,CY ; 将 P1.0 的状态送给 CY 。
CLR C ; 使 CY=0
CLR bit ; 使指令的位地址等于 0 。例: CLR P1.0 ; 即使 P1.0 变为 0
SETB C ; 使 CY=1
SETB bit ; 使指定的位地址等于 1 。例: SETB P1.0 ; 使 P.0 变为 1
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=1 , P1.0 等于 1 (灯灭),则执行完本指令后 CY=0 ,而 P1.0 也是等于 1 。
可用下列程序验证:
ORG 0000H
AJMP START
ORG 30H
START : MOV 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
这个的功能大家自行分析吧,然后对照上面的例程,编一个验证程序,看看你相得对吗?
JC rel
JNC rel
第一条指令的功能是如果 CY 等于 1 就转移,如果不等于 1 就顺序执行。那么转移到什么地方去呢?我们可以这样理解: JC 标号,如果等于 1 就转到标号处执行。这条指令我们在上节课中已讲到,不再重复。
第二条指令则和第一条指令相反,即如果 CY=0 就转移,不等于 0 就顺序执行,当然,我们也同样理解: JNC 标号
┊ 网站导航 ┊ 管理登陆 ┊ 免责声明 ┊ 问题反馈 ┊ 友链说明┊本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正! 不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作! ![]() ![]() ![]() ![]() ![]() ![]() 本站学习交流群:138..158(高级群1-满)、77930286(高级群2)、61804809(群3) Copyright© MCUSY All Rights Reserved 本站网警备案号: WZ36040002485 ICP备案证书号:粤ICP备09034963号 |