正在加载图片...
广州周立功单片机发展有限公司Te:(020)38730916387309173870976387097Fax389305 3位操作和布尔逻辑 8051可分别对 BDATA和SFRs中128个可寻址位,32个I/0口进行位逻辑操作。可对 这些位进行与,或,异或,求补,置位,清零等操作,并可像转移字节那样转移位 列表A-1 把位地址22H中的数移入进位位中 C,23H 把位地址23H中的数和进位位中的数相或 24H,C ;把进位位中的数移入位地址24H中 可寻址位也可作为条件转移的条件,一条很有用的指令就是JBC,通过判断可寻址位 是否置位来决定是否进行转移,如果该位置位则转移,并清零该位。这条指令能够在两个 处理周期中完成,比在两个代码段中分别使用跳转和清零指令要节省一到两个处理周期 比如说,你要编写一个过程,等待P0.0置位,然后跳转,但是等待有时间限制。这样就需 要设置一个时间,时间到达后跳出查询,检测到P0.0置位后跳出,并清零P0.0。一般的 逻辑流程如下。 例A-2 Mov timeout,# TO VALUE;设置查询时间 P0.0,L1 ;P0.0置位则跳转 DJNZ timeout, L2 查询时间计数 LI: CLR P0. 0 P0.0清零 RET 退出 当使用JBC时程序如下 例A-3 Mov timeout,# TO VALUE;设置查询时间 P0.0,L1 P0.0置位则跳转并清零 DJNZ timeout, L 查询时间计数 LI: RET 退出 利用JBC不但节省了代码长度,而且使程序更加简洁美观。以后在编制代码时要习惯 使用这条指令。广州周立功单片机发展有限公司 Tel 020 38730916 38730917 38730976 38730977 Fax:38730925 6 3 位操作和布尔逻辑 8051 可分别对 BDATA 和 SFRs 中 128 个可寻址位 32 个 I/O 口进行位逻辑操作 可对 这些位进行与 或 异或 求补 置位 清零等操作 并可像转移字节那样转移位 列表 A-1 MOV C 22H 把位地址 22H 中的数移入进位位中 ORL C 23H 把位地址 23H 中的数和进位位中的数相或 MOV 24H C 把进位位中的数移入位地址 24H 中 可寻址位也可作为条件转移的条件 一条很有用的指令就是 JBC 通过判断可寻址位 是否置位来决定是否进行转移 如果该位置位则转移 并清零该位 这条指令能够在两个 处理周期中完成 比在两个代码段中分别使用跳转和清零指令要节省一到两个处理周期 比如说 你要编写一个过程 等待 P0.0 置位 然后跳转 但是等待有时间限制 这样就需 要设置一个时间 时间到达后跳出查询 检测到 P0.0 置位后跳出 并清零 P0.0 一般的 逻辑流程如下 例 A-2 MOV timeout #TO_VALUE 设置查询时间 L2 JB P0.0 L1 P0.0 置位则跳转 DJNZ timeout L2 查询时间计数 L1 CLR P0.0 P0.0 清零 RET 退出 当使用 JBC 时程序如下 例 A-3 MOV timeout #TO_VALUE 设置查询时间 L2 JBC P0.0 L1 P0.0 置位则跳转并清零 DJNZ timeout L2 查询时间计数 L1 RET 退出 利用 JBC 不但节省了代码长度 而且使程序更加简洁美观 以后在编制代码时要习惯 使用这条指令
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有