8位單片機 16位 32位區別?
如果總線寬度與CPU一次處理的數據寬度相同,則這個寬度就是所說的單片機位數。
如果總線寬度與CPU一次處理的數據寬度不同:
1)總線寬度小于CPU一次處理的數據寬度,則以CPU的數據寬度定義單片機的位數,但稱為準多少位。比如著名的Intel 8088,CPU是16位但總線是8位,所以它是準16位。
2)總線寬度大于CPU一次處理的數據寬度,則以CPU的數據寬度定義單片機的位數。
多少位寬不是指總線寬度,也不是存儲器的寬度,像51單片機的地址總線是16位的,但是它是8位機。像ARM的存儲器也有八位的,但是它是32位機。而是指CPU處理的數據的寬度,也就是CPU一次數據的吞吐量。比如同一條指令:MOV R0 R2
在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位的強大很多,只在需要的場合使用。
你知道2進制吧,你是否知道單片機在進行計算的時候統統是2進制數的運算。所以8位單片機和16位單片機的最根本區別就是,8位單片機可以同時進行2個8位的2進制數相加,而16位單片機則大一倍,可以同時讓2個16位的2進制數相加。
CPU能同時處理二進制數的位數是多少位,就稱其是多少位的計算機。也有數據總線的位數是CPU位數的一半的情況,就稱其是準多少位的計算機。比如CPU是16位,數據總線也是16位,則是16位計算機;CPU是16位,數據總線也是8位,則是準16位計算機。
原來是16位單片機想改用8位的替代是可以的,但電路及程序都要做相應改變,并且改為8位機后,在功能和速度上要能夠滿足你工作的需要才行。
-
單片機
+關注
關注
6037文章
44558瀏覽量
635302 -
cpu
+關注
關注
68文章
10863瀏覽量
211763
發布評論請先 登錄
相關推薦
評論