8位單片機 16位 32位區(qū)別?
指CPU處理的數(shù)據(jù)的寬度,參與運算的寄存器的數(shù)據(jù)長度。
如果總線寬度與CPU一次處理的數(shù)據(jù)寬度相同,則這個寬度就是所說的單片機位數(shù)。
如果總線寬度與CPU一次處理的數(shù)據(jù)寬度不同:
1)總線寬度小于CPU一次處理的數(shù)據(jù)寬度,則以CPU的數(shù)據(jù)寬度定義單片機的位數(shù),但稱為準(zhǔn)多少位。比如著名的Intel 8088,CPU是16位但總線是8位,所以它是準(zhǔn)16位。
2)總線寬度大于CPU一次處理的數(shù)據(jù)寬度,則以CPU的數(shù)據(jù)寬度定義單片機的位數(shù)。
多少位寬不是指總線寬度,也不是存儲器的寬度,像51單片機的地址總線是16位的,但是它是8位機。像ARM的存儲器也有八位的,但是它是32位機。而是指CPU處理的數(shù)據(jù)的寬度,也就是CPU一次數(shù)據(jù)的吞吐量。比如同一條指令:MOV R0 R2
在51單片機里面,R0和R2都是8位的,所以51的CPU一次只能處理8位數(shù)據(jù)。
在ARM里面,R0和R2是32位的,所以ARM的CPU一次能處理32位數(shù)據(jù)。這就是區(qū)別。
有啥復(fù)雜的, 一句話:參與運算的寄存器的數(shù)據(jù)長度。
8位單片機的數(shù)據(jù)總線寬度為8位,通常直接只能處理8位數(shù)據(jù);
16位單片機的數(shù)據(jù)總線寬度為16位,通??芍苯犹幚?位或16位數(shù)據(jù)。
最本質(zhì)的區(qū)別是內(nèi)部CPU的字長不同,即CPU處理數(shù)據(jù)的最大位數(shù)不同,有8位和16位CPU的區(qū)別,你可以認(rèn)為是ALU、寄存器的字長等。有的32位DSP芯片其外部接口數(shù)據(jù)總線是16位的,根據(jù)這個來判斷是不行的
速度上有區(qū)別,取決于CPU、寄存器的字長。8位單片機不能直接處理16位數(shù)據(jù),要按照8位數(shù)據(jù)來處理,要分幾個過程來完成。而16位單片機,可直接處理16們數(shù)據(jù),因為其ALU,寄存器等都是16位的,可一次完成8位單片機要多步完成的動作,特別是對于數(shù)據(jù)處理,16位單片機有它的優(yōu)勢。而且16位單片機大多數(shù)據(jù)接口都為16位。
說簡單了就是16位的比8位快,8位的單片機發(fā)展時間長,且價格偏低。最重要的是在許多的應(yīng)用場合能夠勝任開發(fā)的任務(wù)。16位的單片機在功能上要比8位的強大很多,只在需要的場合使用。
你知道2進(jìn)制吧,你是否知道單片機在進(jìn)行計算的時候統(tǒng)統(tǒng)是2進(jìn)制數(shù)的運算。所以8位單片機和16位單片機的最根本區(qū)別就是,8位單片機可以同時進(jìn)行2個8位的2進(jìn)制數(shù)相加,而16位單片機則大一倍,可以同時讓2個16位的2進(jìn)制數(shù)相加。
CPU能同時處理二進(jìn)制數(shù)的位數(shù)是多少位,就稱其是多少位的計算機。也有數(shù)據(jù)總線的位數(shù)是CPU位數(shù)的一半的情況,就稱其是準(zhǔn)多少位的計算機。比如CPU是16位,數(shù)據(jù)總線也是16位,則是16位計算機;CPU是16位,數(shù)據(jù)總線也是8位,則是準(zhǔn)16位計算機。
原來是16位單片機想改用8位的替代是可以的,但電路及程序都要做相應(yīng)改變,并且改為8位機后,在功能和速度上要能夠滿足你工作的需要才行。
-
單片機
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634614 -
cpu
+關(guān)注
關(guān)注
68文章
10854瀏覽量
211570
發(fā)布評論請先 登錄
相關(guān)推薦
評論