首页 接线图文章正文

总线的三种控制方式

接线图 2023年01月26日 09:41 260 admin

  MCS-51单片机有丰富的位操作指令,可以把大量的硬件组合逻辑用软件来代替,这样可以方便地应用于各种逻辑控制,主要用于控制线路通、断,继电器的吸合与释放等。位操作指令如表所示。

  总线的三种控制方式  第1张

  总线的三种控制方式  第2张

  (1)位修正指令

  位修正指令包括: 位清零指令CLR、位置1指令SETBJ 位取反指令CPL。

  (2) 位逻辑运算指令

  位逻辑运算指令与字节逻辑运算指令相似。其中“/b it”表示取反后在进行逻辑运算。

  (3) 位数据传送指令

  位数据传送指令与字节数据传送指令相似。

  (4)位条件转移类指令

  位条件转移类指令与字节条件转移类指令相似,地址偏移量re 1的计算方法相同。

  总线的三种控制方式  第3张

  (1) 短调用指令

  短调用指令ACALL指令的目标地址是11位。在调用子程序时,该指令与AJMP指令类似,要求调用子程序的入口地址与ACALL指令后面指令的第一个字节在同一个2 K页面的程序存储器区域中。

  (2)长调用指令

  长调用指令LCALL指令的目标地址是16位。可在64 K程序存储器区域范围内调用任何一个子程序。

  (3) 子程序返回指令

  子程序返回指令RET,功能是使CPU从子程序返回到主程序的断点处,使主程序继续执行。

  (4) 中断返回RETI

  中断返回指令RET I,功能是使CPU从中断服务子程序返回主程序的断点处,同时清除相应的中断状态寄存器,开发中断。

  (5) 空操作指令

  执行空操作指令NOP,除PC内容加1外,不影响任何标志位和其他寄存器。NOP指令常用来产生一个机器周期的延迟。

  调用及回过程:主程序调用了子程序,子程序执行完之后必须再回到主程序继续执行,不能“一去不回头”,那么回到什么地方呢?是回到调用子程序的下面一条指令继续执行

  总线的三种控制方式  第4张

  调用指令

  LCALL addr16 ;长调用指令

  ACALL addr11 ;短调用指令

  上面两条指令都是在主程序中调用子程序,两者有一定的区别,但在开始学习单片机的这些指令时,能不加以区别,而且能用LCALL 标号,ACALL 标号,来理解,即调用子程序。

  返回指令则说了,子程序执行完后必须回到主程序,如何返回呢?只要执行一条返回指令就能了,即执行 ret指令

  单片机在调用子程序时,进行了怎样的堆栈操作

  栈: 在函数调用时,第一个进栈的是主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。

  当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。

  堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。

  单片机中如何调用写好的子程序?

  使用调用指令LCALL 可以去调用已经编写好了的子程序。

  使用格式:

  LCALL 子程序名字(即子程序的首地址 用符号表示 叫符号地址)

  例如:现有一个子程序

  YS1MS: MOV R7,# 4

  LL1: MOV R6,#200

  LL2: DJNZ R6,LL2

  DJNZ R7,LL1

  RET

  可以在主程序中 调用子程序

  LCALL YS1MS

版权与免责声明

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

标签: 总线 机器人

发表评论

接线图网Copyright Your WebSite.Some Rights Reserved. 备案号:桂ICP备2022002688号-2 接线图网版权所有 联系作者QQ:360888349