2020年 02月 18日 星期二
您的位置: 威廉希尔主页 > 单片机技术 >

51单片机体系结构初步分析

来源:未知     作者:威廉希尔     发布时间:2020-02-15 10:46         

  单片机有很多种,AVR、PIC、MC6805系列等,他们的体系结构不尽相同,指令集也各异,有些是CISC,有些是RISC,51单片机的指令集采用的是CISC。

  51单片机和电脑联系很大的(单片机某种程度上可以说是一台袖珍电脑),我们知道电脑由运算器、控制器、存储器(RAM)、输入设备和输出设备,各个部分由总线联接起来,联想到实际设备我们看:

  我们的电脑由一下部分组成:CPU、内存、主板、硬盘、光驱、软驱(已淘汰)、显卡、显示器、键盘和鼠标。分析一下各个设备提供的功能:

  CPU提供了运算和控制功能(随着电脑的发展和改进,显卡代替了CPU了对图形图像相关的数据的运算,主板芯片代替了部分原来由CPU提供的控制功能,例如DMA,内存控制器等)

  主板,确切地说是主板芯片,把各个部件连接起来,即总线的功能,近年来代替CPU提供一部分控制功能。

  硬盘、光驱、软驱,是保存程序的地方,几十年前电脑可能是这样工作的:插入可启动的带有操作系统的软盘(DOS、Linux等),打开电源,BIOS检查通过后,引导操作系统,进入系统后,在shell下(人机对话界面,在DOS下叫DOS界面),可以使用软盘里面保存的程序或者文件。后来硬盘和光驱代替了软盘的程序存储功能。

  一开始系统很简单的时候总线不是必须的,各个部件中需要通信的双方用导线连接在一起,举个例子,就像打局域网,两台电脑想通信,直接用一根交叉的双绞线连接就OK了,不用买交换机,但是如果另外一台电脑想加入,那么这台电脑必须和这两台电脑各自连接一根线,第四台电脑想进来,那么得连接3根线根线根线,是不是很麻烦,当然大家不会这么做,超过2台我们就用交换机了,总线的作用和这个有点类似。总线技术使得相互关系的部分通过这个公共通道连接起来,通过控制信号来区分不同组件间的通信。

  通电后,PC值为0000H,随着前面指令的取、译和执行,PC值一直改变,当PC值为2000H时,MCU通过AB找到要执行指令的,通过内部DB从程序存储器取的操作码(指令由操作码和操作数组成)是74H(是MOV汇编后的机器码),同时PC=PC+1=2001H,通过译码,发现操作码的意思是将后面的一个字节作为操作数送进累加器A,MCU通过CB发出控制信号,把程序存储器的下一个字节通过内部DB送进累加器A,同时PC=PC+1=2002H,第一个指令执行完毕。

  另外一条指令类似,通过对操作码的译码,发现操作码的意思是将后面一个字节作为操作数与累加器A中的内容相加,输出结果放进累加器A。于是发出控制信号,把程序存储器下一个字节通过内部DB送到暂存器,通过MCU进行计算,得出的结果放进累加器A。执行完PC=2004H。

  总线有一定的宽度,所以我们有8位机、16位机、32位等等。总线越宽,每次取数据越多,8位宽度每次只能取1个字节,16位是2个字节,越宽每次取越多,同样时间内执行的指令越多,所以,总线宽度是衡量MCU运算能力的重要指标。51单片机的AB宽度是16位,DB宽度是8位,CB宽度是8位,因为运算要和DB宽度有关,所以我们以DB宽度来区分不同的MCU。

  封面号文章仅代表作者本人观点,不代表封面号平台的观点,与封面号立场无关,文责作者自负。如因文章内容、版权等问题,请联系封面新闻。

      威廉希尔