了解CPU,是为了便于我们今后对单片机软件的编程有一个方向性的把握,我们可以更好的知道程序在执行过程中,它的每一段代码在干着一件什么样的事,它的时序是什么样的,从而提升我们对CPU更有效的利用。
对于stm8单片机的CPU,它有六个寄存器,我们需要了解里面有着重要功能的几个(直接和我们写代码相关联),知道它们的作用。
1累加器:A。8位通用目的寄存器,用于算术运算、逻辑运算以及数据 *** 作的 *** 作数及结果。
2索引寄存器(X和Y)。16位,用于寻址,也可用作数据 *** 作的暂存器以及用于像乘除法这样的 *** 作。
3程序计数器(PC)。24位,用于存储CPU下一条要执行指令的地址。
图1 CPU的寄存器
4堆栈指针(SP)。16位,用于在中断调用或子程序调用时存储CPU的上下文(程序计数器,关键寄存器,相关函数的参数及局部变量,等等)。下图显示了入栈出栈顺序。
图2 入栈出栈顺序
如果我们自己在相应软件下写代码进行debug模式时,可以看到CPU中各寄存器的运行状况,这是一个参考了。
最后,我们了解CPU的一个不常用的寄存器:CFG_GCR(是否我们想使用其SWIM功能)。通常我们使用SWIM功能用于下载程序使用。如果我们恰好想要使用其IO口模式,可以在此处配置。
普通单片机实现多路模拟量的数据采集、显示需要:
外部连接一个多通道输入的ADC芯片,单片机按照一定的周期驱动模拟开关切换到不同的模拟通道,设计模数转换控制器的控制程序,可以进行定时模拟信号采集和显示。
扩展资料:
单片机基本结构及作用:
1、运算器
运算器由运算部件——算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。
ALU能完成对这两个数据进行加、减、与、或、比较大小等 *** 作,最后将结果存入累加器。
运算器有两个功能:
执行各种算术运算。
执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
运算器所执行全部 *** 作都是由控制器发出的控制信号来指挥的,并且,一个算术 *** 作产生一个运算结果,一个逻辑 *** 作产生一个判决。
2、控制器
控制器由程序计数器、指令寄存器、指令译码器、时序发生器和 *** 作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的 *** 作。其主要功能有:
从内存中取出一条指令,并指出下一条指令在内存中的位置。
对指令进行译码和测试,并产生相应的 *** 作控制信号,以便于执行规定的动作。
指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。
3、主要寄存器
累加器A
累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个 *** 作数;运算后,用于保存所得的和、差或逻辑运算结果。
数据寄存器DR
数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。
指令寄存器IR和指令译码器ID
指令包括 *** 作码和 *** 作数。
指令寄存器是用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。
当系统执行给定的指令时,必须对 *** 作码进行译码,以确定所要求的 *** 作,指令译码器就是负责这项工作的。其中,指令寄存器中 *** 作码字段的输出就是指令译码器的输入。
程序计数器PC
PC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。
地址寄存器AR
地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写 *** 作完成为止。
显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。
参考资料来源:百度百科-单片机
51单片机:Ri(i=0,1,27)是内部数据RAM,Rn与Ri所指相同,分别位于4组通用寄存器中,共占用数据RAM的32个地址单元(00H~1FH)程序计数器PC在物理上是独立的,它不属于特殊内部数据存储器块中。PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。PC本身并没有地址,因而不可寻址,用户无法对它进行读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按我们的要求去执行。
以上就是关于16位CPU在进行堆栈 *** 作时,分别用到的寄存器有哪些全部的内容,包括:16位CPU在进行堆栈 *** 作时,分别用到的寄存器有哪些、单片机如何实现多路模拟量的数据采集、显示、单片机中 对指令 *** 作时 Ri Rn PC 各是什么意思。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)