|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
位数指CPU处理的数据的宽度,参与运算的寄存器的数据长度。3 i2 `9 ?( U+ d. ^. B
+ R: c7 D4 X. Z9 Q' Z% [6 M) u' C) m0 }" c5 y. a
如果总线宽度与CPU一次处理的数据宽度相同,则这个宽度就是所说的单片机位数。% l: [& ^# o6 w7 z' Q
H, I) @: ~9 L8 a" s
7 K. D: p9 @+ Y' E% f如果总线宽度与CPU一次处理的数据宽度不同:
' L" e7 Y7 E6 }9 Z* ], J
5 h" L" l3 D( Q" Y# C5 u' d7 x$ M3 [ r* U; o! I- m& z
(1)总线宽度小于CPU一次处理的数据宽度,则以CPU的数据宽度定义单片机的位数,但称为准多少位。比如著名的Intel 8088,CPU是16位但总线是8位,所以它是准16位。
* u, }) ?9 A7 {# S/ X6 L- l
0 T7 \6 q' W) a* r(2)总线宽度小于CPU一次处理的数据宽度,则以CPU的数据宽度定义单片机的位数。5 u- y6 D3 D# z" \) T# E3 _1 p2 T5 T, L
( g9 F" b6 e# D9 i3 D+ v: Q. q* T+ g! w8 e9 ?; v6 N
1 j2 I5 W9 p+ n4 y) y少位宽不是指总线宽度,也不是存储器的宽度,像51单片机的地址总线是16位的,但是它是8位机。像ARM的存储器也有八位的,但是它是32位机。而是指CPU处理的数据的宽度,也就是CPU一次数据的吞吐量。比如同一条指令:MOV R0 R2
4 q4 ?% g5 u3 C- ^; r# J: I& V0 G1 \9 _# A: U" j1 R, K8 I& J
3 e- z' o/ a% g# ^4 C在51单片机里面,R0和R2都是8位的,所以51的CPU一次只能处理8位数据。6 B5 Y8 \! K- {
5 s E6 j' ~" g1 \- k( ?* C, @5 |, J" R L2 c, P9 ^
在ARM里面,R0和R2是32位的,所以ARM的CPU一次能处理32位数据。这就是区别。& S6 N( s: T$ d! S4 H# S+ e) a* f* o% h+ ^$ W- v
' a; f6 H7 `; ~7 _
有啥复杂的, 一句话:参与运算的寄存器的数据长度。
6 R$ h8 ~0 B& P \% d, ?
/ b' i& f: B; n$ a* F% H# E8位单片机的数据总线宽度为8位,通常直接只能处理8位数据;0 {# R% }+ F" i0 ?
' }0 H: ]5 X2 y4 h
2 A; l9 _% \, ]! g9 V+ m6 q16位单片机的数据总线宽度为16位,通常可直接处理8位或16位数据。. L: L! c" ?) i- p$ X6 R1 A" [ W4 n4 f. K7 @$ u8 X7 z2 ?- Z4 i% k
. B6 \6 o6 j5 h
, |* Q# o$ g3 p, p3 Y; M最本质的区别是内部CPU的字长不同,即CPU处理数据的最大位数不同,有8位和16位CPU的区别,你可以认为是ALU、寄存器的字长等。有的32位DSP芯片其外部接口数据总线是16位的,根据这个来判断是不行的) E# m* [5 B" x: H# g y3 p$ \0 m3 S4 y* @' E: f* g6 S, `; s: T/ S q0 ^
/ F, {/ L* d4 V5 V. |* y) A/ e
速度上有区别,取决于CPU、寄存器的字长。8位单片机不能直接处理16位数据,要按照8位数据来处理,要分几个过程来完成。而16位单片机,可直接处理16们数据,因为其ALU,寄存器等都是16位的,可一次完成8位单片机要多步完成的动作,特别是对于数据处理,16位单片机有它的优势。而且16位单片机大多数据接口都为16位。
+ G+ {) _, b* z' h- i) A) A: g# s
说简单了就是16位的比8位快,8位的单片机发展时间长,且价格偏低。最重要的是在许多的应用场合能够胜任开发的任务。16位的单片机在功能上要比8位的强大很多,只在需要的场合使用.- b; [ O: [+ e) B" Q a# t4 ^# {* ~8 Z2 A
# ^$ f& l. T- t, P. k
你知道2进制吧,你是否知道单片机在进行计算的时候统统是2进制数的运算。所以8位单片机和16位单片机的最根本区别就是,8位单片机可以同时进行2个8位的2进制数相加,而16位单片机则大一倍,可以同时让2个16位的2进制数相加。. }' p% S k$ O9 w) D1 _7 u& d1 ?0 A, _+ j
2 w3 B) R/ x5 T+ e1 Z8 D) w8 ~CPU能同时处理二进制数的位数是多少位,就称其是多少位的计算机。也有数据总线的位数是CPU位数的一半的情况,就称其是准多少位的计算机。比如CPU是16位,数据总线也是16位,则是16位计算机;CPU是16位,数据总线也是8位,则是准16位计算机。4 _, V/ `* ?7 B2 i3 ~1 \6 u+ O7 m5 d( Y( A, s! I
. G5 w7 o) c* V3 f# j. h* o1 a8 N. e. W1 N5 |- q, L$ O& ~* R
原来是16位单片机想改用8位的替代是可以的,但电路及程序都要做相应改变,并且改为8位机后,在功能和速度上要能够满足你工作的需要才行。" L0 a/ @- Y) `) I! G* g8 x$ Y$ J
|
|