嵌入式 > 技术百科 > 详情

三分钟了解8位16位32位单片机的区别

发布时间:2020-06-17 发布时间:
|

今天我们来谈谈8位单片机与16位32位区别。

多少多少位?定义是什么?

指CPU处理的数据的宽度,参与运算的寄存器的数据长度。

如果总线宽度与CPU一次处理的数据宽度相同,则这个宽度就是所说的单片机位数。

如果总线宽度与CPU一次处理的数据宽度不同:

1)总线宽度小于CPU一次处理的数据宽度,则以CPU的数据宽度定义单片机的位数,但称为准多少位。比如著名的Intel8088,CPU是16位但总线是8位,所以它是准16位。

2)总线宽度大于CPU一次处理的数据宽度,则以CPU的数据宽度定义单片机的位数。

多少位宽不是指总线宽度,也不是存储器的宽度,像51单片机的地址总线是16位的,但是它是8位机。像ARM的存储器也有八位的,但是它是32位机。而是指CPU处理的数据的宽度,也就是CPU一次数据的吞吐量。比如同一条指令:MOVR0R2

在51单片机里面,R0和R2都是8位的,所以51的CPU一次只能处理8位数据。

在ARM里面,R0和R2是32位的,所以ARM的CPU一次能处理32位数据。这就是区别。

有啥复杂的,一句话:参与运算的寄存器的数据长度。

8位单片机的数据总线宽度为8位,通常直接只能处理8位数据;

16位单片机的数据总线宽度为16位,通常可直接处理8位或16位数据。

最本质的区别是内部CPU的字长不同,即CPU处理数据的最大位数不同,有8位和16位CPU的区别,你可以认为是ALU、寄存器的字长等。有的32位DSP芯片其外部接口数据总线是16位的,根据这个来判断是不行的

速度上有区别,取决于CPU、寄存器的字长。8位单片机不能直接处理16位数据,要按照8位数据来处理,要分几个过程来完成。而16位单片机,可直接处理16们数据,因为其ALU,寄存器等都是16位的,可一次完成8位单片机要多步完成的动作,特别是对于数据处理,16位单片机有它的优势。而且16位单片机大多数据接口都为16位。

说简单了就是16位的比8位快,8位的单片机发展时间长,且价格偏低。最重要的是在许多的应用场合能够胜任开发的任务。16位的单片机在功能上要比8位的强大很多,只在需要的场合使用。

8位单片机,典型的是51系列的,再高级点用AVR、pic的,功能方面,似乎都不会很复杂,一般可能是控制类的多一下。一般不跑嵌入式OS。

16位的单片机,我接触的主要是MSP430,感觉16位的单片机比较尴尬,高不成低不就,要求低一点,8位MCU就够,高级点不如用32位MCU。一般不跑嵌入式OS。16位就不说了。

32位的,就高级点了,一般能跑嵌入式OS,例如ucos2,ucos3,uclinux等等,能做更多复杂的功能。用OS和不用OS的话,编程的思路差异比较大。功能一般有面向控制的,也有简单消费类电子的。

 

原来是16位单片机想改用8位的替代是可以的,但电路及程序都要做相应改变,并且改为8位机后,在功能和速度上要能够满足你工作的需要才行。


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
用于MAX7456随屏显示器SPI