
2、程序计数器是用于存放下一条指令所在单元的地址的地方。当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。此后经过分析指令,执行指令。完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。
是用来指示下一条要执行的指令在程序的哪一个地址位置的寄存器。当处理器执行指令时,PC会自动递增指向下一个指令的地址位置。即,在执行当前指令的过程中,PC会指向下一条指令的地址位置,以便处理器能够顺序地执行程序中的指令。同时,当程序需要跳转到其他地址位置时,PC也可以通过被修改来指向跳转的地址,从而实现对程序的控制流程的控制和调度。
因此,程序计数器是单片机中一个非常重要的寄存器,它决定了CPU执行指令的顺序和流程,直接影响程序的正确性和运行效率。
x0为启动按钮,x1为停止按钮。y0~y7为8盏灯。程序在按下启动按钮后,灯1先亮,1秒(T0延时)后灭,1秒后(T1延时)灯2亮,依次循环。当按下x1后,循环结束。
按下x0后,m0得电为1并自保持,此时1秒计时器T0计时,1秒后T0常开点闭合1秒计时器T1计时,再过1秒T1计时结束常闭点断开T0线圈,
T0失电复位并断开T0常开点,此时T1线圈也失电复位,T1常闭点又闭合,T0得电重复上述计时过程。
第二个程序块:
当M0为1时,在T0触点的上升沿来时k3M10这个二进制数乘以2再写入k3M10中。
K3M10代表M10~M21共12个辅助继电器的组合,那么可以将K3M10看作是一个二进制数。程序未启动时,M10~M21均为0,那么这个二进制数为0;当程序启动时,在下一个程序块中利用了M0的上升沿置位M10,此时M10~M21为1,当T0触点的上升沿来时k3M10(此时为1)这个二进制数乘以2再写入k3M10中(写入后为2),2在二进制数中为10,此时M10失电,M11得电,可以认为M10把"1"交给了M11,以此类推。当第8个M17得电时,完成了一次循环。下一个T0上升沿来到时,M18得电,M17失电。此时下面的程序块利用了M18的上升沿重新置位M10并且将M18复位。这样程序又从M10得电开始循环下去了。
这个程序块的作用就是每次T0的上升沿来到时,“1”在M10~M17之间转移。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)