cpu另外一个构成部分是控制器,除了控制器,还包括一些时序电路,还有一些基本的时钟电路,控制器主要的包括哪些部分,它是cpu的一个神经中枢,相当于是它主要包括定时与控制逻辑,定时与控制逻辑的基本时序来自哪?它来自时钟晶振,由时钟晶振来提供基本时序,再通过定时与控制,除了定时与控制逻辑电路之外还包括指令寄存器,指令译码器,然后呢,程序计数器pc,ph和dpl,程序计数器也是一个16位的寄存器,但是它不是特殊功能寄存器,它只是在16位的物理寄存器,是一个独立的16位的寄存器,不在特殊功能寄存器里面,但是它也是一个独立的寄存器,是16位的技术指针,这样可以发现它包括地址寄存器,还包括缓冲器,程序代码是存放在rom当中。
单片机刚开始执行程序的时候会给pc指针,叫做程序计算器,装入一个地址,也就是说我们rom当中的第一条指令的地址,在上电初始化的时候,会放在pc指针当中,pc指针默认的指向是0000这个单元,0000这个地址就是pc指针默认的上电指向,里面放着第一条指令,程序计数器从这个地址当中,从这里面取出这条指令它去执行,它每执行一条指令,会发现pc增量器,它每取出一个指令字节,pc的就会自动的加一,也就是指向了下一条指令的地址,就是说它每执行一条指令pc它会自动加一来指向下一条指令的地址,它会根据你这个指令占了几个字节来自己调整,使指令能够顺利的顺序执行,顺序执行的过程当中。
如果执行到了一些转移指令,或者说是一些子程序调用的指令,或者说是中断指令,pc才会转到它所需要的地方去继续执行,否则都是按照这种方式顺序的执行指令,cpu就是通过pc指针当中的地址,来从rom当中读取指令,它首先通过pc指针把这个指令读出来,它会放到这个指令寄存器当中,然后它要通过指令译码器去进行译码,它要知道这个指令是干什么的,这个指令最终转换的都是1001这些东西,它要对它进行译码,形成各种控制信号,这些控制信号在于单片机的时钟振荡器所产生的时钟脉冲所提供的时钟基准的控制,有条不紊地按照一定的时间节拍变化来进行工作。
想学单片机的朋友,可以私信我,我可以发一些资料给大家作为参考学习的内容,有问题的朋友也可以在评论区评论,或者私信我,尽量帮大家解决朋友们提出的问题,谢谢大家,最后祝看帖的各位朋友身体健康,万事顺利,回复林北有惊喜,实用干货拿到手软
cpu去rom当中读指令,把这个rom指令的地址放到程序计数器pc中,pc每读一条指令,它会自动的加一来执行,指向下一个指定的地址,就能够按照这种方式按照顺序的执行指令,当指令当中牵扯到了跳转指令,或者是循环指令,还有比如说按照这种程序的调用,子程序的调用,或者说是中断,它就能够转移到相应的位置去执行,实际上它的最终转移的也是把它这个程序的地址传递给了pc指针,它把指令取出来,就从rom当中把指令取出来。
首先会放到指令寄存器当中,然后通过指令寄存器传给指令译码器进行译码,译码之后就知道这是一个什么样的指令,发控制信号,形成控制信号之后由时钟产生的时钟脉冲的时序电路来控制,形成一定的时间节拍,也就是在这个时间节拍的控制下,有条不紊的去执行代码,去执行这个程序去工作,在工作的过程当中牵扯到数据,它要去rom中找数据,找到数据通过累加器或者暂存器送到alu中进行运算,运算的结果再保存到lc当中,要么传递给其它的部件,要么通过控制逻辑来控制我其它的部件去进行工作,这个就是它大概的工作过程。
程序计数器,单片机上电的时候实际上就是指向这个单元,实际上这个程序是怎么运行的?单片机上电的时候pc指针指向,pc指针永远指向的是下一条即将执行的这个指令的地址,这个里面可以有代码,这个代码从003到比如说到0030,中断向量的入口地址一般是不建议存放用户程序代码,代码一般从30h开始执行,比如说代码从30开始存代码,程序下pc指针上电的时候指向这个单元,这个单元里面的主程序,比如说main函数在这,一般会在这个位置放一条跳转指令,比如说放了一个跳转指令占两个字节,就可以通过跳转指令跳到这个位置去进行,一旦跳到这实际上是把这个地址放到了pc指针当中,每执行一条指令,pc会加一指向下一条。
可以发现整个程序的控制就是靠pc指针当中的地址来进行控制,包括子程序的调用,分支或者跳转指令,中断函数等等都是靠pc指针来实现的,所以pc指针比较重要,它是一个16位的寄存器,它的寻址范围是64k,也就是二的十六次方,rom最大的扩展空间,最大的存储容量也就是64k。
数据指针dptr主要适用于做外部数据存储器,或者说是外部程序存储器扩展的时候,用查表指令的时候,外部的ram,或者rom拓展的时候需要用到dptr来寻址,来寻找外部的这个单元当中的内容,首先要找到地址,然后再找里面的内容,这个主要是也是用于引导数据传送。
这一期主要总结,51单片机是8位的cpu,同时赠送了一个位处理器,还有就是它的功能主要是读取指令和执行指令,怎么样去读取指令和执行指令的同时了解了它的基本的结构,cpu是由运算器和控制器来构成,运算器由哪些部分构成,控制器由哪些部分构成,它是怎么样有条不紊地去去rom当中读取指令又怎么样执行指令。
这一期分享就到这,希望对大家有些许帮助,对文章内容感兴趣的朋友可以进入我的主页翻看一下以往的华维单片机编程林北的相关内容,喜欢的帮忙收藏点个赞哦,以上文章内容仅代表个人观点,不喜勿喷,谢谢大家的支持与鼓励!
卡塔尔航空将推迟波音777飞机的退役时间
使用STM32定时器PWM功能时的小问题
根据文件图或者实物,怎样来进行PCB原理图反推?
一文看懂2020小米开发者大会
新唐科技M482KIDAE控制器简介
51单片机一些关于CPU的理论知识
恩智浦ARM微控制器上的以太网吞吐量三种不同测量方案的介绍
基于区块链技术的DrXin健康管理产业生态系统介绍
蓝牙基带数据传输机理分析
一文弄懂信源编码是什么
电量变送器的常见故障
谁将是5G时代的赢家
基于tls协议的mqtt broker介绍
宜百利-挑选油烟机排烟管有妙招
中国联通提出四点倡议共创美好数字新时代
小米云服务表示查找手机功能已进行优化
数字生活逐渐走向数字疗法
物联网的网络和安全问题,该如何解决
l6561典型应用pfc电路
降低PCB设计中噪声与电磁干扰24条