|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、为什么51单片机爱用11.0592MHZ晶振?
) R4 [) n n; g8 x( S. p% X6 I% L0 o4 U
1 h* i* M2 \8 z M! O其一:因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。
3 H0 ]& u D1 o7 W. Y B6 h3 l" Z0 D6 H9 L6 Q/ L
6 y2 D$ o; I5 Z+ J# t ~" e, v# ^( Q3 A: c9 S) N( g+ Z: U3 H% o# m, l8 o
其二:用11.0592晶振的原因是51单片机的定时器导致的。用51单片机的定时器做波特率发生器时,如果用11.0592Mhz的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12Mhz晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用STC90C516 晶振12M 波特率9600,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。这也就是串口通信时大家喜欢用11.0592MHz晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。用12MHz,最高也就4800,而且有0.16%误差率,但在允许范围,所以没多大影响。. i: V7 a3 L% G, ^$ _
) J( l2 l/ W" f# d8 m/ A l V/ t) v; K. K
( X8 r6 c& [! p8 H7 P
# T8 J) K- n- B二、在设计51单片机系统PCB时,晶振为何被要求紧挨着单片机? a- X/ j6 y! S' l8 a1 k5 W8 O+ a+ \# m: `. v% g
1 S; s1 z/ F# ?2 j) _: T, j0 d; L( _% ]$ I9 i0 J4 E3 J: E
0 e L& R. o6 _6 O9 p
原因如下:晶振是通过电激励来产生固定频率的机械振动,而振动又会产生电流反馈给电路,电路接到反馈后进行信号放大,再次用放大的电信号来激励晶振机械振动,晶振再将振动产生的电流反馈给电路,如此这般。当电路中的激励电信号和晶振的标称频率相同时,电路就能输出信号强大,频率稳定的正弦波。整形电路再将正弦波变成方波送到数字电路中供其使用。- _$ K6 U0 m5 Z& S! H; g/ M: v/ e$ ~- R$ [/ T; j
; k# ] D3 F Q5 ]6 `& q- {
( @) S1 | W# E
问题在于晶振的输出能力有限,它仅仅输出以毫瓦为单位的电能量。在 IC(集成电路) 内部,通过放大器将这个信号放大几百倍甚至上千倍才能正常使用。
$ P* n0 W1 R; I0 c' b, Z$ a$ c% {( f5 g+ j0 N7 s2 x. O( }; L x: G
2 q0 m1 ?) H/ Q, E2 O) u; Z0 n晶振和 IC 间一般是通过铜走线相连的,这根走线可以看成一段导线或数段导线,导线在切割磁力线的时候会产生电流,导线越长,产生的电流越强。现实中,磁力线不常见, 电磁波却到处都是,例如:无线广播发射、电视塔发射、手机通讯等等。晶振和IC之间的连线就变成了接收天线,它越长,接收的信号就越强,产生的电能量就越强,直到接收到的电信号强度超过或接近晶振产生的信号强度时,IC内的放大电路输出的将不再是固定频率的方波了,而是乱七八糟的信 号,导致数字电路无法同步工作而出错。
5 r+ A4 i, ^9 D" M9 Y* t. E0 Z' G7 b" b+ x; _ X1 |; D
% y: I: E4 W) q1 p
* n2 s5 t+ {: O) {" W: d# E所以,画PCB(电路板)的时候,晶振离它的放大电路(IC管脚)越近越好。4 e- k6 e, k5 w h7 z3 q- r5 S# [1 ]7 L# [6 F
$ R) I/ i n* t8 M% \1 V Y; t+ X3 u" g; m
w I0 d: y) L; C4 @
三、单片机电路晶振不起振原因分析
9 d4 v# Z8 T" x* m7 ~' ]) ~( x7 G! M& p, N; _( J9 h! F- \ ?& C
( p# h& S0 a- o8 G- k0 Z1 k
- r3 {# h# v. ^* [3 @遇到单片机晶振不起振是常见现象,那么引起晶振不起振的原因有哪些呢?
4 A+ z: ]) P* ^$ R6 [+ x) w6 I1 a: ?7 h4 ^# z- w
$ g* p, L; U" }/ S% {5 c① PCB板布线错误;②单片机质量有问题;③ 晶振质量有问题;④负载电容或匹配电容与晶振不匹配或者电容质量有问题;⑤PCB板受潮,导致阻抗失配而不能起振;⑥ 晶振电路的走线过长;⑦晶振两脚之间有走线;⑧外围电路的影响。- v/ v1 j" I! M& @- \2 }
$ B! m) [6 ]: A. j% q' f$ l4 x7 Q/ q2 Q6 |" ]" H; i
! q: B, A$ v0 h+ E: M& ]- R4 B1 V( t6 M, j
解决方案,建议按如下方法逐个排除故障:* C6 B/ @5 g$ Y! s6 C9 i: {5 t
2 }6 |' k, E) [1 h/ ?/ o' w2 `5 M9 s6 P. N d- F3 T# g! l4 A0 [+ W. t1 j& B
' ?/ Q( L1 V+ O① 排除电路错误的可能性,因此可以用相应型号单片机的推荐电路进行比较。② 排除外围元件不良的可能性,因为外围零件无非为电阻,电容,很容易鉴别是否为良品。③ 排除晶振为停振品的可能性,因为不会只试了一二个晶振。④试着改换晶体两端的电容,也许晶振就能起振了,电容的大小请参考晶振的使用说明。⑤在PCB布线时晶振电路的走线应尽量短且尽可能靠近IC,杜绝在晶振两脚间走线。9 D; P2 k, W# r2 `* J' O: i" i/ I
2 ]+ T+ S; O" [: N z# s4 S+ Q( p+ I
$ T+ ?6 q4 e, T' \8 e* C: F* W+ `' {7 K+ h; A4 L- F
四、51单片机时钟电路用12MHZ的晶振时那电容的值是怎样得出来的?拿内部时钟电路来说明吧!
" F+ X( o) r# C4 U+ G7 ?( I! U1 z6 `4 J
- o( [ ?8 c( ]% l) ^. V2 q/ Z
其实这两个电容没人能够解释清楚到底怎么选值,因为22pF实在是太小了。这个要说只能说和内部的振荡电路自身特性有关系,搭配使用,用来校正波形,没有人去深究它到底为什么就是这么大的值。" y7 A% @6 Q" D1 o y& ^+ J: [# r9 R4 S; x1 ]% H/ s9 ?% K
- r8 |# Y$ @/ r. d: L
4 C' ]+ Y) b4 [/ q8 {+ P
, g7 n+ g$ w* g3 w五、单片机晶振电路中两个微调电容不对称会怎样?相差多少会使频率怎样变化?在检测无线鼠标的接受模块时,发现其频率总是慢慢变化(就是一直不松探头的手,发现频率慢慢变小)晶振是新的!" m/ F; x9 E( a2 P' O4 l
0 V$ n* j) C1 r6 n D0 ^; R' ?2 ~3 j% K+ A; g3 [1 X+ k& @3 K' V( K
5 C1 J" P. o. h5 [1 b* q( n1 Z
- j! m# `& i4 u$ Y& w6 a电容不对称也不会引起频率的漂移,说的频率漂移可能是因为晶振的电容的容量很不稳定引起的,可以换了试,换两电容不难,要不就是的晶振的稳定性太差了,或者测量的方法有问题。& M- K( {1 y+ Y8 o' P
2 Q+ X0 ^5 V+ \" R0 D) ?- E$ a* h- z3 z5 R) @( O! _
0 v9 O% ~ M* ?1 M( V. G7 W
六、单片机晶振与速度的疑问,执行一条指令的周期不是由晶振决定的吗。那么比如51单片机和MSP430,给51接高速晶振,430接低速的,是不是51跑的要快?是不是速度单片机速度仅仅与晶振有关,关键是单片机能不能支持那么大的晶振?& y* i( @" y, X1 H; y6 I
1 c1 a+ L0 v: K$ Z( Y- x3 E, R" s, R& J0 m' N- E; ^& C
8 [9 u- |' n3 F/ s& |7 v n
每个单片机的速度是受到内部逻辑门电平跳变速度限制的。两个芯片同时使用同样的晶振,比如12M的。因为AVR是RISC指令集,它在同样外部晶振频率下,比51要快。
, K/ @! v0 Q) f& i/ w2 b! c/ C+ i% Z- k2 |) ~- i) n ^: |- R3 x1 h. A3 P
/ R O$ G, G }8 @6 Y
比如,51最快能接40M,AVR是16M的晶振。$ ?' f8 B7 d: b! P6 G' z! q y; @9 s8 \, t+ U8 O
9 y7 ?" j: `" @/ v6 Y
, U$ s% p, I5 J) X) s* a1 m8 x2 T5 |2 n, z7 N" a) n( ^- f
STC89C52大都用12MHz晶振,但由于其12个时钟周期才是一个机器周期,相当于其主频只有1MHz。1 B7 p5 v: `0 ^
7 j7 K. p+ K! B
$ C7 G5 f" j4 ?! GMSP430采用RISC精简指令集, 430单片机若采用内部DCO震荡可达21MHz主频。单个时钟周期就可以执行一条指令,相同晶振,速度较51快12倍。
5 ?9 ?4 @& w; u* ^8 M; ?, d7 [$ B' m. Z' V' j
- N+ \ m: K* T5 _ p. r; |( e5 J& `- P$ H0 v! f+ u1 X
对于一个51,给它用更高的晶振,速度会快些。但是对于高级的单片机就不一样了。高级单片机内部,一般都是有频率控制寄存器的,所以,简单的增加晶振,可能达到单片机的极限,导致跑飞。
, R& Y' t- R' l# n w$ X( H0 B, e: O# G; L
" v, d. r+ \* w( A' u* t
七、请问:有什么方法可以确定某一款单片机在某一大小的晶振下是否能正常工作?$ E% |* d7 |* ?/ U+ R- P
9 {+ Y# Y' U$ k% i" u, w4 A) h* v! [0 |6 z9 Z0 g: e( `! t/ @% T7 l( V/ L0 `3 f# t
晶振选择太高不太合适,具体晶振上限是多少,恐怕测不出来,只能按照人家单片机的要求,一般STC系列单片机上限是35M或40M,stc单凭上写的有,如STC11F16XE 35I-LQFP44G其中35I就是晶振最高35M的工业级芯片。
2 k2 I! d4 F( ^# a1 U9 ?
+ I) |% S: k; f2 V6 \1 D1 [4 H4 Z( [7 l% o- C4 z) \9 Y+ V9 o4 v9 ]; W
超过上限会出现什么样的问题,没有测试过,一般晶振选择12M的比较多,如果选择STC 1T指令的,就相当于12*12=144M的晶振。如果用于串口通信,建议选用11.0592M的或22.184M,选择晶振最主要还是参照人家的说明书。. g: q+ Q/ c( X
4 o" {* |7 L# B/ a/ H/ w/ }- }8 P" |: x- B
, {9 q9 G) X" N z9 v% a% G' y7 L) T. Q' Z) @6 s0 y3 b! ?/ R$ y/ S& |" J3 p
八、4个AT89C51单片机能否用一个12M的晶振使其都正常工作?一个采用内部时钟方式,其余三个用外部方式...那四个都用内部方式可以不(将4个单片机都并联在一个晶振上)?, {, P& H5 B# c" Y# j* e' z E$ s1 O5 d1 d. T' i
- T0 t' t9 I1 h( N( e1 V" `4 R0 X* s. X
% v/ ` A K, l) j5 E/ T E
0 s8 p% D& l+ @& Z8 K# e& A4 s# i可以,其中一个正常接晶振,他的XTAL2输出接到另外三个的XTAL1输入上。0 ^5 W- x6 W# W* I* m) J% D. V' A; j
9 V7 G4 i/ Z; c2 I$ d; ?8 Q' {" z! U/ U h
4 I9 n1 d, }, L1 r4 o* U九、单片机的运行速度和晶振大小的关系,若单片机的最高工作频率是40M,晶振是否可以选择24M或更高,但不超过40M,这样单片机的运行速度是否大增?长期在此工作频率下对单片机是否有不良影响?单片机对晶振的选择的原则是怎样的?4 L5 C7 s0 ~3 T( U# Q( J0 Z# o
2 D" C8 Z) p, J- K
! e3 y' H* ]- s/ @* D# p" ^0 a! x: @/ o' ^& k1 p" c2 s6 B& X; r: r& Z9 h' ?1 e8 |
当然是有影响的,单片机的工作速度越快,功耗也越大,受干扰也会越厉害,总之最高能跑40M的,跑不超过40M的是没有问题的,只是对相关的技术(如PCB的设计元件的选取等)会高去很多。2 R5 b9 o6 F' k; [) \* W) f) b: r' k$ C4 ~" M
& I/ V3 {& I4 U
# A* z! l( I9 ^! Z( s
$ q; m! a% c. A: ]3 b十、89c51单片机的复位电路中常采用12MHZ的晶振,实际上市场上稍小于12MHZ,为什么呢?( b3 y; T8 L9 d5 D4 N
9 Q1 E/ X" E' u7 s% V
- x4 j' E* Z- x. F+ Q7 l( f7 \* ~4 k' m3 M( Y# E
/ g. s- E: O0 {9 b答:需要串口通讯时一般是用11.0582MHZ的,这样波特率才好算。 I E8 \3 ~9 }+ ^2 L
3 i3 I8 y, O0 b2 s2 M
) r$ x6 O1 Z6 ]/ @5 S1 o f ]" W( A% m# x6 N- M s c% l6 ]0 h4 }
用12MHZ的工作周期就容易计算。" p. a0 g! T5 G& `9 F5 K/ S- c$ P* b) v5 C1 I3 l2 }
( x2 y: G* [, [7 C' d
2 R+ x& ^6 s! b$ C8 |& u& ^1 ?4 K3 S
V5 [0 K* q! y, J+ H. v十一、单片机晶振上电不起振,但是手碰一下晶振就起振了,为什么?怎么判断单片机晶振是否起振呀?5 @3 x0 R' [7 \5 o, ^1 i
* {7 T( X6 ^" O, Y7 q$ Y& i. V8 F6 N1 n, v$ w- @" N: Y) i& F5 F. S
/ s' p& T$ W& C看看晶振配的电容焊了没有,值有没有错误? V/ g1 N% p" C1 L* U! z+ L9 d" R
+ G4 D! i M/ U+ ~" Q1 T2 ]' e) q! d1 k
$ @7 q8 A3 r# s$ `+ A* ~' B6 v
( y8 J* \0 |3 k& N) ~( |( |最简单是用示波器,另外可以看一下电源是否正常。( T) ?0 `% k0 B; G0 j( @6 l2 P8 k, f# p2 ^" q
+ a& Z; z/ z: G3 K0 t5 U$ {) g" K1 Q! `3 G, {3 z' v H7 E; c- Q2 ?& }
: Z4 m5 G0 @! {2 X' g
0 s. M+ n0 X: J( p, R) s; }$ _0 g十二、怎样判断单片机外部晶振有没有起振?STC89C52单片机本来是好好的后来不行了,换了个晶振就好了。但是过了几个小时后又不行了,是怎么回事。还有就是怎样判断晶振是否起振?0 D6 [+ v) ~7 Y5 B/ ?0 M
& x: j( G& y5 O9 R6 s/ b5 X0 X9 p# \9 |" x( F: S$ g( ^
: e* _9 ^( {* D) w8 |
①先换一块单片机试试,问题还在则排除单片机;②可能是虚焊造成的,这点要注意;③用STC89C52也碰到过类似的问题,换了块晶振就OK 了,好像STC起振不橡AT89S52那么顺。其实对于STC89C52可以直接看30脚(ALE),接个灯,起振一下子就能看出来了。
* \0 }3 X" g: y) \1 H0 D; S7 s
: Z, c, C: [! L5 Z2 E: ? L
十三、51单片机晶振上接的电容大小该如何选择?是晶振越大,电容值也要大一些吗,一般常用多大的。有人说常用的从15-33pf,具体如何选择效果最好?比如分别用一个6M和12M的晶振,用多大电容更合适?" t0 t4 e: z( B% E/ C5 d9 t+ n7 Y2 H- x% u2 x$ Q o
- ]3 ^) l4 Y' u
1 ~% V: p1 a- K+ ]7 Z. s5 A
0 p6 q6 Z3 G5 Q9 F5 Z+ {$ z- s15-33pf都可以,一般用的是15P和30P 晶振,大小影响不大。常用的4M 和12M 以及11.0592M和20M 24M 都用的30P,单片机内部有相应的整形电路,不必担心。+ n% o# w' }0 Q; j4 b4 X
) S! V3 n8 I/ w3 d1 C$ q3 G* {$ W" {+ X% n6 w9 {
* ]% T2 l ~0 F9 P9 P2 ]) B" d3 S8 u" {9 o
十四、没有程序的空白单片机,外部晶振能起振么?" }2 q G {" {0 d+ {9 p; M8 Y/ I, J) D& E, S9 D
* S) i. e( O/ h9 f) z/ z
2 g, M/ M# h$ L b2 a! W
没有内部晶振的单片机,外部晶振可以起振,如传统类MS51系列单片机有内部晶振的单片机,外部晶振不会起振,需要对外部晶振进行配置后才会起振,如果不对外部晶振进行配置仍使用内部晶振,如silicon lab系列C8051F020单片机。5 L* v7 r3 ~ ~# p: S8 R0 B. W
7 K" C O( o) T& n# J& u# G- O2 h' X' l% u* t6 ]& m
, b( t8 S! z) _: W+ F9 A2 Y7 h: W( e8 f8 c E4 |
十五、为什么at89c52 P1.0输出2.5v电压,单片机好像未工作,晶振波形是不规则的正弦波可不可以?线路板没有达到预想效果,发光二极管一直亮,感觉还是单片机的问题,P1.0输出2.5v电压,看门狗用的X5045,怎么回事?( `% V0 ]1 Y; g, Z+ g3 _
. l, u' H0 |5 v. F$ F$ I* f+ h2 l/ x3 q& p: c% A/ R
1 `+ x. B C- D" q9 F8 {8 X3 @将看门狗拿掉,暂时做成最小系统,既只有电源、8952、晶振和两只30P左右的电容。% g( P2 G) u H5 M' f( E
' o' L: u2 J' f: k% _* e0 `
8 y- w9 d9 z$ ?: b' [) c' R1 \% b$ R7 D* S5 g8 T3 M$ A3 F/ K( w8 |2 c4 b
①将P1.0口置1,测试该口的电压是否在2.5V以上;' q4 A) W t8 B" V1 ~
9 L" t3 T; Q4 G. t3 H; y D
* J" ^6 Y6 J1 L9 h- R4 F
, D5 M1 n$ t' r# i, Z②将P1.0口置0,测试改口电压是否约为0V。& k- V1 ?* @3 Q- q3 q0 f$ f X z6 b" t% b# l
% o* G$ K1 f4 Z" O4 B0 @+ r7 X m- d# R8 {0 D7 S0 A; ~
: Q$ @7 k: A; T9 O8 v# w& u是的话就是OK的,否则就要看看电源电压、晶振、8952了。电源电压是5+、-0.25V,且纹波一定要小! A% G9 g9 o8 h$ b$ j5 x
& U. J( |; p5 @7 h
, Y2 Y. E/ r- i7 L- g0 a. z6 G' U3 J9 S7 D( G! J4 q2 N9 t
十六、制作max232下载单片机,工作电压都正常,要外加晶振嘛?% s7 o: S" C! @( x* m' v# u( E: \2 S8 M$ O: s9 P4 ^
4 m* K, T9 Q4 h5 y: e% E5 p( a8 R
9 E# {6 v7 G2 N" I& H
当然要加,如果没有外加晶振,那么单片机的时钟电路就没有了,导致单片机串口就不能进行数据传输了,最终这个下载器具就不能下载程序了。. E5 ^! A" q; B' _/ C& U$ ]/ Y& ?% [" S
; F1 ^# O2 T/ y3 P ^" E4 i
7 w& P( [# o4 \4 v6 B5 d6 B十七、若89c52单片机使用外接晶振,应如何设置?+ ~$ B: x' I7 ~; S3 c6 E. L, j5 G0 M
# H- Q7 \5 p9 B+ h! m
' B& B+ F/ i6 k7 _" _. U1 \, ?. W6 Z+ m4 S7 W7 a8 t. b2 m$ X8 k% n6 i
晶振的两个管脚各接一个20~30pf的电容后分别接入单片机的XTAL1和XTAL2,两个电容的另一端并接后接地即可,不再需要任何设置6 S8 |7 O9 R0 [: ~3 R/ q9 Y5 h
1 o6 O B' g! c u
8 e; | J) W/ i7 ~) C9 x十八、晶振的原理,如何产生正弦信号的,详细一点,从电路方面分析?- q; q# U: J* j5 [. l" O8 k4 V9 W8 N; c; [7 Q
+ n1 {3 |: |6 b( p1 o6 \# F, r+ d6 t" `! v% q. P1 W- X
8 h o" o$ h$ k+ y. F e
# x* v2 O7 ^$ b: d* b晶体可以等效为一个电感,与里面的电容形成振荡回路,能量从电感慢慢到电容,再从电容慢慢到电感,周而复始形成振荡。正半周是电容的充放电过程,负半周是电感的充放电过程。
2 y+ p7 O6 a( v6 q9 e2 u! p: Z: f( q. J; K R8 @+ q
# K) o/ u6 ]2 N2 Q& k% f
7 ^" t( @, Q: J十九、现在要用52单片机做一个交通灯电路。要求是红灯,绿灯30s,黄灯3s。循环变化。那么外界晶振怎样选择?单指令周期多少比较合适?图中外接的两个电容的作用是什么?大小多少合适?
4 f4 o1 ?% F; N# }' p5 t/ f( ?. D! a* t
" m: H5 e' g( v) S0 |; M3 U: s G" f5 t+ M
; y% [% R$ Y) |! }; P3 U& V& Q如果选择晶振的话,那两个电容值可以选择:30加减10PF左右的(频率在0~33MHZ之间);" S7 i1 O6 R( m6 c; P) R+ B
/ t. x8 u6 \5 L, w! g6 ?. I% K' T, y& D# C1 S+ f n
; U, R0 E8 f) j) K; w" n1 e2 _+ b! O' c) o
如果选择陶瓷晶振的话,电容值可以选择:40加减10PF左右的(频率在1.2~12MHZ)振荡器应尽量靠近电容。指令周期是可以算的,这个是有公式的!& {1 U7 I" r7 A' }1 |) l9 W( p) |
, v/ ?- P$ A5 E2 S: J9 l
3 l" D: K& [4 f1 y& y" W! ?; r! o4 }/ X
二十、89c52单片机 晶振频率才12兆,太小了,怎样能改大晶振频率?* [- F& V6 U& L: p
1 f( G6 t( W) W" ^1 H( q, w: W5 d7 |8 y. N- S W4 Y
外接18.432或者24MHz的晶振。或者换4T的W77E58单片机,这样相当于把工作频率提高3倍。或者换1T的DS89C4XX单片机,这相当于把工作频率提高8倍!用1T的STC12C5A60S2单片机也有这样的效果。. b+ \% U* b( E9 Y4 k2 Y1 u1 x" ]; a1 T& ?4 t1 o" |
9 s5 m/ l! _1 @* r0 ]/ Y2 t& F
6 ]/ q- S8 i. D2 n( v
二十一、单片机不能正常工作,晶振问题?如何去检查晶振正常还是不正常?另外看到说晶振跟两个小电容要离得很近,几乎都没剪引脚(就是买回来多长就多长)就插上去了,这个也有关系吗?+ p3 j% [+ z1 M9 P7 S! O& O5 _* z! R) ]$ |& y
1 y$ G" r; j! g, A% ]
# W0 J* `, d7 L
用万用表测量单片机连接晶振的两个引脚,正常起振的状态下电压大概比供电电压的1/2略低一些,如果其中一个或全部引脚为电源电压或零就表明没起振。那个引脚长些一般不会有什么影响,相比之下接地更关键些,两个谐振电容接地端到单片机的电源地要尽量近些。+ G' ?4 X2 B0 J! Q! _" b8 [% P3 B N
% W- c C' C, l1 h: G
$ j1 b" t, D {% ^+ G0 M( J4 O: {' O& O
" [9 m6 M1 a& W* }8 a- M二十二、22pf或30pf电容到底有什么作用?
1 ?% W1 y0 H' f& b- |; p! `9 e$ q. N# S9 _# H6 P! b9 X3 [! Q, X" ?& f9 p
% T7 V( o4 E3 Y j6 `! X8 e# E0 Y6 C4 A& E4 p
- H! @* [6 ?; E$ l刚学单片机的学长告诉我单片机的晶振电路中就是用22pf或30pf的电容就行,听人劝吃饱饭吧,照着焊电路一切ok,从没想过为什么,知其所以然而不知其为什么所以然,真是悲哀。后来,我才懂得反思,调整,我对自己持有怎么的学习态度和应该如何付诸于行动有了新的理解,这远比单纯的交给我一些知识要好很多。2 D1 |+ F# S5 ` c: b" n2 L: M8 Z* o F9 n
3 h' K+ e3 }2 D5 m
0 N# K* x- E Z, Y% s2 O/ y1 ?6 N1 u+ y; C0 M# R/ h# d% O0 v/ Z( g' F
说起这个小知识点本人还有这么个经历呢也顺便和大家一块儿分享一下吧。话说我曾经帮一女生做东西,其实超级简单就是个ATMEGAL16单片机的温度采集系统,我焊工虽然一般但给女生帮忙么,还是比较用心的应该没问题的,事实却不尽人意焊出来的最小系统竟然不好使,我用万能表把电路查了几遍也没找出错误,然后就怀疑是不是单片机就锁死了,换了几块单片机也不好使,自己还一直认为我在同一届的同学中算还学得可以的,真是有点可笑,最后发现,在我原件短缺的情况下我糊里糊涂把两个0.1uf的电容焊在了晶振电路中,导致晶振不起振所以整个电路就表现为不好使,换成22pf的电容马上就好使了,当时其实应该马上弄明白,但我却没有予以理睬实属不应该。老师说得对我们确实缺少打破沙锅问到底的精神......7 i# ~% D; F+ k6 N2 A7 ~5 h! K
7 G x) s8 @: S* @2 B2 N% m
7 D Q$ }6 U4 ~0 z$ J让我们一起来看看到底晶振电路中为什么用22pf或30pf的电容而不用别的了。7 K2 n7 Q' ?) {5 }. p
- [6 `; y: d( D0 ?! C. _0 ]6 T B/ W4 k1 e) g4 M* T; y! h2 h" F4 O7 g8 ^4 [
7 [: \+ M' }9 N6 ~- y
5 t5 p) J, a9 K6 E0 P6 }2 Z0 y其实单片机和其他一些IC的振荡电路的真名叫“三点式电容振荡电路”,如下图& k: ~* v* l5 s- h
k3 v1 s0 E6 k& B8 t$ l2 R9 @+ S: z9 b2 x/ K W" w
/ a3 C( s' }; N; T" p, A% M& P& T$ N3 H1 G% m3 U! q5 Q. Y: w+ D
( ~- P+ y* E# g" F& |3 U- }& e3 t6 m9 O1 P, h6 f
5 C" m& k$ l8 a+ z9 `- ?1 X! u( P! o* ~9 Q3 P1 Z8 O! y3 s- U0 {1 ]9 O" C/ W
Y1是晶体,相当于三点式里面的电感,C1和C2就是电容,5404非门和R1实现一个NPN的三极管,接下来分析一下这个电路。
- \+ t# D1 L( e3 J2 U7 Q" d7 z) F2 j8 B, l' A( A
5404必需要一个电阻,不然它处于饱和截止区,而不是放大区,R1相当于三极管的偏置作用,让5404处于放大区域,那么5404就是一个反相器,这个就实现了NPN三极管的作用,NPN三极管在共发射极接法时也是一个反相器。
+ s* b. k! q2 |0 g3 x j) Y- o3 J5 q. w- i5 W
0 P* ~) D5 z2 \0 B大家知道一个正弦振荡电路要振荡的条件是,系统放大倍数大于1,这个容易实现,相位满足360度,与晶振振荡频率相同的很小的振荡就被放大了。接下来主要讲解这个相位问题:) w! e( ~4 d+ {, n" {9 f6 F6 F% t- `# E& Y/ n
& n g) i; r* |. J4 k! K5404因为是反相器,也就是说实现了180°移相,那么就需要C1,C2和Y1实现180°移相就可以,恰好,当C1,C2,Y1形成谐振时,能够实现180移相,这个大家可以解方程等,把Y1当作一个电感来做。也可以用电容电感的特性,比如电容电压落后电流90°,电感电压超前电流90°来分析,都是可以的。当C1增大时,C2端的振幅增强,当C2降低时,振幅也增强。有些时候C1,C2不焊也能起振,这个不是说没有C1,C2,而是因为芯片引脚的分布电容引起的,因为本来这个C1,C2就不需要很大,所以这一点很重要。接下来分析这两个电容对振荡稳定性的影响。2 p$ n. V7 R0 u: H: I) d& R! k3 W+ }. `3 p1 a3 @) @( Q
* m8 F5 f! j2 t4 J; O* l" M& y( @
因为5404的电压反馈是靠C2的,假设C2过大,反馈电压过低,这个也是不稳定,假设C2过小,反馈电压过高,储存能量过少,容易受外界干扰,也会辐射影响外界。C1的作用对C2恰好相反。因为我们布板的时候,假设双面板,比较厚的,那么分布电容的影响不是很大,假设在高密度多层板时,就需要考虑分布电容。+ X8 R5 m: }. A, ^% Q" d& a, X# E, C4 }
% o/ ~1 y3 N3 {4 p% r- l! Q; g
0 ]# I3 L; }( l& I7 Z: Q' j- z, r# P( e$ D9 ]: C
有些用于工控的项目,建议不要用无源晶振的方法来起振,而是直接接有源晶振。也是主要由于无源晶振需要起振的原因,而工控项目要求稳定性要好,所以会直接用有源晶振。在有频率越高的频率的晶振,稳定度不高,所以在速度要求不高的情况下会使用频率较低的晶振。. K* G8 a4 j! V4 w/ I; H# Q; L7 @! A ?! v( r
. O: a! R6 r: _2 u8 @5 S/ o) k) x+ i& C8 _% Y, L3 S P. N
* S7 K7 p: E' @- _2 _二十三、单片机晶振电路中两个微调电容不对称会怎样?相差多少会使频率怎样变化?我在检测无线鼠标的接受模块时,发现其频率总是慢慢变化(就是一直不松探头的手,发现频率慢慢变小)晶振是新的!6 ]" E5 G9 A5 H, R$ T/ o+ |8 S7 Y, B+ \ Z/ R) ?) b* P! Q
0 y* Y) ^3 P8 I6 v/ k2 r' N
6 q( J9 A' z+ N& a! U, A) c) h1 }* ?4 J W) A+ G& E2 g( q1 h
: z: u2 K# a) Z8 K! Y
答:电容不对称也不会引起频率的漂移,你说的频率漂移可能是因为晶振的电容的容量很不稳定引起的,你可以换了试,换两电容不难,要不就是你的晶振的稳定性太差了,或者你测量的方法有问题.( ^) ]! M* q0 P
' r; b9 b; E; x& ^" Y) ~$ h+ F9 _: M9 l5 `/ `% ^) e+ b. ], X
: g8 j. w6 }- I; Q, z: F4 M) C
二十四、晶振为何被要求紧挨着IC,单片机晶振不起振?
$ }: C) P, C5 o9 \: c* m8 S8 r9 _9 M& H% q
+ o& I- E, e% z% f: n z( f答:原因如下:
0 g( h0 Q# d: i4 K# W2 m% O9 f. J+ f4 @7 ?; D! \
4 C8 [' {4 Z7 z( W( U) V4 b# h, R" m* p s5 m$ u
晶振是通过电激励来产生固定频率的机械振动,而振动又会产生电流反馈给电路,电路接到反馈 后进行信号放大,再次用放大的电信号来激励晶振机械振动,晶振再将振动产生的电流反馈给电路,如此这般。当电路中的激励电信号和晶振的标称频率相同时,电 路就能输出信号强大,频率稳定的正弦波。整形电路再将正弦波变成方波送到数字电路中供其使用。" Y$ Q8 e& M$ P- y7 ^& \/ v% m
& ?3 h. A2 g* S" R+ @ \. |7 a' ^- F4 Z7 O8 d& P
问题在于晶振的输出能力有限,它仅仅输出以毫瓦为单位的电能量。在 IC(集成电路) 内部,通过放大器将这个信号放大几百倍甚至上千倍才能正常使用。. C% B, c; D8 u
: r5 K. u- Z' w$ D% j i9 P- W晶振和 IC 间一般是通过铜走线相连的,这根走线可以看成一段导线或数段导线,导线在切割磁力线的时候会产生电流,导线越长,产生的电流越强。3 f" v/ N9 V& ?7 p" x3 y
! q) s$ g* Z: X& r5 c1 }& S. i$ |- {- [& F0 j; `
+ ]* G! E1 ^! ]8 {- a7 {7 ?9 R, t2 F* i! D0 g$ _
现实中,磁力线不常见,电磁波却到处都是,例如:无线广播发射、电视塔发射、手机通讯等等。晶振和IC之间的连线就变成了接收天线,它越长,接收的信号就 越强,产生的电能量就越强,直到接收到的电信号强度超过或接近晶振产生的信号强度时,IC内的放大电路输出的将不再是固定频率的方波了,而是乱七八糟的信 号,导致数字电路无法同步工作而出错。) ?& j) f2 j$ f p( I2 E& V0 W
3 K. ]5 _! ~+ \ t, a$ l7 t. `, t9 Q0 y6 @2 k- L7 x$ t
. f6 h/ }, X" H$ k$ e9 ^6 V' y' P7 H6 c, M: E) o
所以,画PCB(电路板)的时候,晶振离它的放大电路(IC管脚)越近越好。$ Q D) F3 u7 L. @) {( u
g2 A' J. f' n* `2 W
/ z- [* |- _# T$ l$ `6 u/ V2 K! P5 R! i$ x+ {1 ? v5 K+ ~6 w6 p) @0 v7 U! R, }! {5 r) y
二十五、4个AT89C51单片机能否用一个12M的晶振使其都正常工作?一个采用内部时钟方式,其余三个用外部方式...那我四个都用内部方式可以不(将4个单片机都并联在一个晶振上)?
3 m. V+ A, m6 ?3 n% x8 g& q4 k& l+ ]) |4 s" O1 j& _2 S
5 `! @7 w2 M3 }' U) y9 I答:可以,其中一个正常接晶振,他的XTAL2输出接到另外三个的XTAL1输入上。
4 m' A$ D1 d. D) F$ C
& F+ ?: K8 f( E/ X/ W
' {- K" L$ x0 E/ k0 W/ a5 ]二十六、AT89C51单片机4兆的晶振能不能启动?
+ f5 C- B" X, V& y& Q+ D; e( ~! x- E1 Z; m( ~
. ^4 `- ~& W; I8 }$ e+ S! V P) y4 f0 x7 d/ L" X2 _( P
. _2 r! a- c$ x: Q& o9 h' O- Z; y- ?% k8 g; o5 O/ e7 A3 E4 X: t
答:当然可以,看看datasheet吧,我估计1M的都可以,. c2 p+ y3 ?$ B) w! @
! y+ V5 t# ?3 Q5 M( n7 ^/ c9 y, c# j! q8 E3 e$ k% V, D- U8 R
6 s& }0 { m* B& w! P
还有的单片机如2051可能还能低,
( B0 f: g( z% ~. f. I R* a% o6 S5 ]& t& }. D9 r# B: j, C# `4 L
* q$ P/ }0 L. g1 d3 f+ E/ D% i6 s
台系日系有的可以到32.768kHz。' H0 A* r8 p$ G R6 m* {3 l
+ j4 z2 Z. R" K0 T1 f7 h4 G+ O* V7 [% d4 Q) P# C2 j
5 b) X8 S" D9 i3 E8 l; y5 t& G% @, P' o+ ?7 b; Q
二十七、怎样判断单片机外部晶振有没有起振?我的STC89C52单片机本来是好好的后来不行了,我换了个晶振就好了。但是过了几个小时后又不行了,是怎么回事。还有就是怎样判断晶振是否起振?7 D" O1 f9 `$ W2 \: z
' q f" [- [7 a9 B* v9 E+ k) M$ ~/ T1 [ O, Q, R* M: z0 C4 e. V1 q- u( a
: I6 L0 `; o# ]" n答: 第一点:先换一块单片机试试,问题还在则排除单片机;
) U1 ]0 ]- | j* P. s, I' P9 P" t( T& H J% J7 T2 G& A
" D6 q& F( `$ ^' O4 H. Y: h* k2 t* p6 r1 e! ?' J* C6 j+ Q
) f6 Z2 C5 P( T7 r6 H" V7 `9 D
9 P/ j9 y' H. b$ w% v第二点:可能是虚焊造成的,这点要注意;3 f( C y5 M8 @6 I6 y# R( M
a& [( o- D) j* K" x! m' o. ]7 O/ {
" n) u. G- D- Y$ |; M# {2 H$ x+ A
第三点:我用STC89C52也碰到过类似的问题,换了块晶振就OK了,好像STC起振不橡AT89S52那么顺。* o# T; U8 ]: G. U
/ Q% a6 E7 s8 p, }4 A# t5 [7 `5 v* o. C0 i# u, N) C6 B, b9 E+ r! m, |6 z: s2 W8 A# x- G! ?1 p
其实对于STC89C52可以直接看30脚(ALE),接个灯,起振一下子就能看出来了。' v' f, w9 Z3 ?* o% ~4 h" N+ H5 O
4 L% d/ f- n# y( z* [( b+ y3 @6 v$ U0 f" H4 M: {3 D& r3 ?; ]
) B7 X& Q+ g! ^: ^$ J5 F8 m
4 ?) Y5 u( ] q, d/ W5 @0 f
二十八、我用msp430的单片机,可是外部的两个晶振总是无法起振,没用。请问是什么原因?线路连接是对的,32768HZ没有接外接电容。8M的晶振接56PF的电容。
- f- l* N! K) `. T V- d1 ]6 L+ A$ }* N. D+ b$ H& p8 { c; J3 N+ d6 [$ r
! b0 a! {; o9 X( V' R7 G2 j
5 l0 c! ?* ]9 o答:32.768K的晶振接两个30P的电容试试,还有8M的晶振的电容也换成30P的。
2 ?5 \* D9 D. H q7 T% h
% z) ?; v' r* f- s$ P$ S1 m( o6 M4 a5 [( Y0 b. G4 ~; G& n3 y: j$ G
* B5 O! B) h7 |二十九、MSP430单片机8MHz的晶振,计数器TAR增加一次 需要多少时间?, W+ L: B3 w0 J. C: e
& L- j( y' w9 [- t* b: v% p# w/ f8 I3 I) C
, D0 L5 p9 d, D _3 L! J8 Y$ A; o% X$ {$ O' P) `, }- _: p1 `; c0 I; h: A+ d
1 j( D6 U, m6 e答:MSP430单片机的晶振频率可以自己设置的,是使用外部晶振还是内部振荡器做始终源,还有MCLK,SMCLK,ACLK的选择,分不分频等都有影响 我现在有点忘了,不过你可以看看文档,计数器是使用mclk,smclk,ACLK的哪一个,在判断是否分频设置,一般在1Mhz TAR加一次是1us,那么8M是1/8us自己算吧。# Q/ D2 Q# s# e* m) ~
% f$ N/ o6 _8 D' ? i8 A' K( E; |
' P& Q2 s8 z2 C9 {三十、如果MSP430单片机不初始化晶振,那么单片机用什么作为时钟?DCO的频率大概是多少呢?: c9 b+ |! r+ X8 |
' t$ q" w9 ^- ?0 S$ X. w- W. ]5 c! n8 f' _- B: Y& g
# c4 w: x) O+ D3 A
9 e, Y, i5 S, n* ]- q答:内部DCO,不同系列的DCO默认频率不同,要参看手册。4系列的好像是1M。6 b! i& u1 X/ m6 o; V8 ~% [; S; k: Y! @2 a6 @
# o% I* y+ h" L! l
* r/ r: L# Y% Y: x2 [! g4 ?" Q( P8 G6 C! r
三十一、DSPic30f6014单片机能够烧写程序,却不能运行。晶振没有起振(换过了也没用),复位电压测量为5v,电源正常,(是成熟产品,只是偶尔会出现这种情况)& L m: n- i8 ~) ?$ R9 d1 L. f/ j7 |+ j F4 d$ \4 h' D8 w
* o+ h9 \ r6 z- K( ?8 U2 C
! Y$ P! l0 i2 R7 K o& s# d3 f/ _3 L/ U$ W6 i+ {+ O
0 X* U* O) r6 R( s. X" U) a- `+ k答:* B! R7 H5 A- A: L) M" v. h$ b7 _/ \: I$ ?
5 m' i5 `) g( Y. C5 Z: p$ b0 K! `6 s- U6 d$ `8 I) @( x" q
* I- X% o( z& T3 r01、重新检讨振荡电路所用零件(晶振与电容)及晶振附近的pcb布局4 f/ x) T% b/ X3 b
02、检查配置位是否正确8 j! C; J/ v9 L! P0 }
; u, P/ _ |2 I8 t03、还可找 FAE 谘询8 b* H2 T# i6 `4 X# |
, `6 u2 \# ~5 a- L, J# o& k5 l
9 M& b# X0 n2 R三十二、单片机测试晶振电压时会对工作状态有影响吗?
2 n2 _" R" M' B; j4 }; p8 d7 m, C0 ]/ i/ t
% Z4 c0 x* F# p$ N
我的51单片机从P2口连了两个发光二极管,正常时是只有一个亮。我插上电源后,结果两个都亮了。于是我就测量晶振电压,但是我黑表笔接地,红表笔一碰晶振引脚时,两个发光二极管中,就有一个会熄灭,一放开就两个都亮。1 S# [+ |9 f' m6 A+ A3 n. H4 e4 G
' F8 o' K' x4 F5 s" {' k( D
1 p ~0 h: J' r& ^8 B' ~2 {* {' A( u5 z6 j' _- b* G2 [$ _; M4 P! G" B- u |7 C+ w
每次刚插电源的时候,两个晶振引脚分别时1.9V,1.5v,但是稍微过了一会儿,两个引脚就分别成了5.4V和0.02V了。& c, u$ U4 e8 b) _5 ~4 ~7 {' J+ N, m: ?" _4 I+ {2 ^$ G
- j: \6 `7 s- ^4 ?6 }0 l" R/ m$ h( z' c* H( H8 s2 I; u
: L# V9 S) [. ?, A8 a* e" S/ z+ W& s1 j% s
答:会有一点影响,对频率会有影响,严重的会导致晶振停振。因为你万用表一加上去相当于在振荡电路上又并上或串上了分部电容电阻电感等,就影响到了原来电路的状态。6 V: U# V+ D+ p. W/ p, ]- J) ?* \
) E7 L: M$ ]7 _% T5 `6 k: P+ F H& {7 g
! M- r- d" T4 y# O! p
三十三、静态工作点对晶振振荡有什么影响?, v @6 i3 @# O z" `( O7 H6 g8 `: G5 l1 r3 r; B4 U( i* O
! K7 F4 R3 H4 n9 q% k0 N; B' ^1 V" h
答: 具有高Q值的晶振对放大器的选择并不敏感,但在过驱动时很容易产生频率漂移(甚至可能损坏)。影响振荡器工作的环境因素有:电磁干扰(EMI)、机械震动与冲击 r0 F( x( Q2 ]6 O2 `9 Q7 q2 H- W2 s8 O* C3 F- n' }( E
3 z' A1 d/ D, r+ I: R l: Q/ X" k" [. ~1 ^% S0 ]
$ c% h$ G0 R- @( u- k
$ X5 y% O" h8 Q' M, w* ^+ F$ {8 Z5 C9 U' k. r4 t/ B: V* _7 e8 k7 ~1 [$ I
三十四、我用的是外置4M晶振加两个30pf瓷片电容,用示波器测频率正常,但峰峰值有的板子是6V左右,有的是3V左右,板子功能正常但我怕电压低的不稳定。
( Y a3 L/ n# J/ d# h" ]" v- k3 `& r. I/ ~% o" J
! X" M! i/ ?: [6 ~" d D3 s2 W6 r8 |- i% j
( E6 i$ S% Z' [' S" a% N2 Y答: 没关系的.峰峰值不同是电容和晶振的参数离散导致的.只要正常工作,就可以.单片机里面都有放大处理的,它们都是放大展成方波来使用的.峰峰值多高都没用.0 ~- z9 G$ ]3 W8 z6 y
4 ]8 B: _- m4 C, l& m4 F# c4 Q3 L$ k' B/ X
, Y- W ^6 H4 N% g你那电压高的倒应该看看,pic一般工作电压是5V,怎么振荡器会进来这么高电压?
Z, i6 U6 ?# T% W$ H y- Q2 c1 u0 D* S
5 c- Q+ c3 A* \, [& @$ _
我一般都是在CPU晶振输入端串联一个电阻使用的。
: b$ ^3 \% m0 ~! k3 J( F4 r4 o; S+ } g2 w, L% ^1 G9 ^5 d- s
6 Y* \- z4 Z" c4 l: f/ z7 X; c, }2 {三十五、pic单片机 AD采样程序 有源晶振应该如何选择?& G3 j' C2 \, ~7 j% Q; J6 s" i* O, n, j$ {1 B; o/ y# m5 f0 L
& z' }+ m5 w5 D& t" f* T) |
9 u$ Q! D1 ^8 ~5 d8 h
如果使用片内振荡器,是不是必须要外接谐振器?
# L2 D/ e3 V* Q) G" _0 L9 h% O* S4 Y0 |3 ~1 k% s, ~. ?3 F$ Z$ Y+ F
# l5 O% Z# Z0 H' h
我如果外接有源晶振,选用那种频率较好?我听说4MHz的并不理想。外接20MHz的可以吗?这个是怎样选择的啊。& x. t) q+ u* f; d- _' t5 z- V \, u0 W$ u- T; g: I7 {
P/ V: z) D% P6 N. f. V! Y
2 h. G! b: u# R3 C4 d1 ]% H6 X" T ?9 {# I" v: k
" E5 \7 o2 Z3 F4 R+ k答:用片内振荡器不需要外接谐振器。; f! N3 h% k, e
+ X% U6 A+ u! C& Y; Y( g( H* A8 Z; r! b: _9 f! l- {% B) A7 N8 @0 I3 i* m' L
* S9 n; ], Y A, C2 o如果你的单片机只做AD采集转换,那就不需要太高的频率,内部4Mhz振荡器即可。
" [0 |1 p) H4 s+ L$ A! \9 k# _5 J& f( u$ Y4 d' C1 e6 a+ S4 p$ _2 c6 C& v( c
0 X. G% V% |: H. a8 q4 U9 i- f
. R& e1 V+ ~' J1 ~2 C+ y& h; `- \但如果还要做其他对时序要求较严的工作比如说总线通信,那就要考虑使用外部振荡器,因为内部振荡器的误差太大(即使校准了还有1%的误差) ,而用多大的晶振要看工作要求,频率越高单片机功耗越大。但只做AD的话,4M够了。& Y5 v* l# O5 z+ r% |) Y" z! r, q
; Y9 {" o3 }1 D0 V
% r, u; s/ v$ x+ J# a9 c% S E. |2 k6 p% \6 |; V
三十六、大家好。我想问个pic单片机的问题:晶振频率不一样。编译器自己带的库延时函数延时一样吗?比如晶振20MHZ delayus(1)和5MHZ delayus(1)是同是1us吗?
2 e: o& W% G* [! U% R5 H5 F
5 _9 k8 ]4 L# ?8 d# c6 i
& x; e$ F5 d Q4 l1 y* i答: 应该一样.( P( O* V1 E& ^0 J# }/ `0 G
! \% c1 h0 n& T8 a) p. _4 L8 {, x$ \7 o2 F+ f. s, Q7 _' p$ c" c' T
* q0 S5 o" Z2 C v0 b) o+ B1 e) Z因为频率不一样,编译时候你的设置不一样,编译时候自然计算需要的倍数,参数就不一样了.
/ T* A: L8 Z0 ]! X( {9 E/ W8 ?
, K4 d: A g9 N' _) l* a2 o' \( Q9 ^* v! n' g$ E5 K
2 C, k0 \' z( D但可能因为频率除不尽的缘故,有一点点差异5 ^1 w D4 S% c5 h1 k$ H- h5 t
& f* P7 w; \/ u1 W; g a. w8 A$ u0 ^, g. Q4 X
2 f0 ]/ ]4 ^7 |5 H1 Y$ o0 w
7 A) W2 [% A8 B4 j+ E' G" c, T; f8 R; D/ {! r! l$ O+ W3 n! S2 Z5 i1 A0 E& {7 t# ~4 c
三十七、单片机外接24M的晶振,1ms的基准延时函数用C语言怎么写?* J+ w; {* j1 L2 D- |, [7 l _( k8 v, X1 R
' H; Z, I% b8 M# t
- Y9 c8 O. {& a8 D6 y- F8 N- a- C' q, P* M( m
/ _' j) L) k& ]! B/ H答:" }. c* \( E. V
8 b* R K9 E5 A0 L! l/ P6 `) t ^+ B6 ~! Q" C5 `( O3 h
! ?+ w) v$ w8 |. e X1 I. o8 T( v1 `2 S' h
" K, l- o T5 \6 G' o
) C; V% O' ], [定时器T0 工作方式1 晶振频率24MHz
# H' L6 _! z0 r* Z# ?/ D定时器最大定时时间(us):32768. K7 R# r' \0 h3 ^" J+ e+ j% ^+ q }$ M/ ~+ l6 k$ J! j7 I) }
定时器最小定时时间(us):0.5% l- K H- v6 l- L1 y
【1ms精确定时C51代码】/ U/ l* ]/ j- ^ B! C9 q
3 }4 @6 I. q0 D+ s
, I) e% l) X, i! `& u6 E# a
) i& R) a# H4 |! A* t9 O7 S9 P) G6 B" I/ P8 q# z# `$ c* f. @- s) y" O t3 z
- / I. r: O8 T7 O: n' l7 Y
' T( U) H; e* k void T0_init(void) //定时器初始化{TMOD |= 0x01;TH0 = 0xf8; //设置定时器计数初值,定时1000usTL0 = 0x33;IE |= 0x82; //打开总中断TR0 = 1; //启动定时器}void T0_intservice(void) interrupt 1 //定时器中断服务{TH0 = 0xf8; //重装载定时器计数初值TL0 = 0x33;//这里可以插入其他处理程序,不会影响定时器工作}& s( ]( h' k- ^. L0 _
三十八、单片机24M晶振可以测量20MHZ的信号吗: H- |! h( l# o! ^2 e# v+ O( b2 U7 C
0 K9 U. [0 M% a% D/ x- ~
) Y. q& Z8 u1 N) d
- a5 S6 j K9 A4 Q* b) J l8 P4 L8 p% k/ P0 B6 ] j" ~5 g N; N P
答 :要看用什么单片机了。有些单片机执行一条指令需要两个机器周期以上的。那肯定测量不到20MHZ的信号。' Z; z3 I/ s$ t+ V0 Y+ k
7 ^* Q6 u- C% B3 n
6 H. H; |7 }0 j5 j6 \% |! A+ b5 s2 ?, Y/ F* y: k) Z" W
& d+ ]6 w1 K- d. y0 k* ^" K9 I' \: o# E, v( G- J
三十九、用单片机的晶振电路产生信号和555计时器产生信号哪个更好?' j1 }+ N- ]) L7 U$ L. g8 Q. y
+ _; N1 u3 k# z7 S: r9 a/ G4 b$ u6 ~5 `- h4 n" Q( e* N: }- ^! G D a
/ b( N* V" O% r4 u4 I- Q1 F+ k; \
5 c; W# ~1 Y/ i/ x* V1 i# ?8 z8 X答:一般来说,晶振的稳定性好于RC震荡器。
' M" l, c; y! K0 F/ X" Z* c( y! j6 F- C* I: W3 f
( t' u; A0 y0 |9 o/ [) k1 e1 i8 j7 ~8 D7 g0 t+ x, ]4 A1 }: X% G9 z6 v8 y
四十、11.0952的晶振和单片机哪些引脚连接能起作用?电源和18B20应该和单片机的哪些引脚相连呢?RT,要把单片机从实验板上引出来,应该怎么连接?1602LCD的液晶该怎么和单片机相连呢?每次从仿真上连出来都是只有背光和黑点,但是不显示已经烧录的程序。1 ^, U4 S0 j( K7 R) D& U" L
" Q1 i3 _ b8 w) q% r5 T
1 x2 w8 e* @7 h2 S- O" j* c H; |. q/ Q# a. @. v
5 e7 e& A$ e" }9 d$ H' L: S答:晶振接单片机x1(或者叫XTAL1)和x2(或者叫XTAL2)引脚。
- Z% N6 b6 d! I, e5 j4 G" q8 A/ A1 h4 w
3 b& @4 q+ ]- T
# E U4 Y/ F) ]. t- L2 a电源接单片机的VCC和GND。. Z6 r& J0 v) N0 \& f3 y J; I% \! p! C2 a1 R7 ~
( F4 X: p- o0 i1 B' d6 r# B9 S3 _) P4 Y
18b20电源脚接电源上,中间的数据线可以单片机的任意io口。具体控制是靠程序完成的。( [. U# ?1 s( _8 H
) J$ [# c2 C4 p8 ^# u) F& T' \: [: ?
: ]; m! ^' ^. J2 r& `2 r4 T* r
3 i( [/ N2 d' O3 M0 b0 W: i" B/ j6 W; l! N0 q: ?# C7 ]' Y8 ~0 u4 l5 W( j E2 g
1602的数据线接单片机io(比如51单片机的P1口),其它的控制线rw,reset,cs等可以接单片机的任意io口。. C4 Z$ @5 n$ D. f! ]( v" Y/ g# B6 \. E! ^7 j
7 q7 c2 _# p3 G4 y5 b2 Z! t
) z& T( ^4 H o. d
! j: Q; n& `2 H% B9 ?( R& l/ `( q8 V/ j3 s4 `% ~- s: [$ O
5 o0 _: G7 D7 d" E g9 n) B烧录了程序不能运行,而程序是正确的话,你得看程序怎么定义这些引脚,根据程序定义连接单片机的位置。' h8 Y* A1 f% }# c; D! X- x5 c
) d0 W3 e( r' o2 {/ g o* |$ K. q; \0 w0 M! J4 X) U; h5 G9 K) K3 {9 G/ r# ?. B
四十一、89c52单片机如果不接晶振会有什么后果?$ s! V/ U; d' Y6 ^; P# n
+ m* O' u9 h0 T$ B: G& J: J! R" y6 A6 B* n4 E( T" j8 `: T% _8 |
1 }! q' D, _7 r( d2 ]1 @' k' w+ D3 {
答:单片机不工作了 程序无法烧入。。。。等等& C0 ~8 d$ a- S8 r! c' `8 I+ ^5 m- A2 n$ j
5 [5 \! ?. q ~, D& Z6 O' k+ I8 L+ f
; _* q6 S4 u5 o/ j# S. n9 J9 v9 u7 p; ~, L$ M! R4 l
四十二、单片机工作频率的问题,晶振到底怎么选择?* b& ^. M% F1 ?1 h2 n% j0 ?! g/ S: c* ?; `3 w! r! g
; O; M; ?( J9 w/ c; I3 i
! P7 Z+ @- l4 M+ [1 k0 n$ T$ M3 d D答:: t: P) ~1 j1 {
7 a$ |1 A% a! ]1 F1 n$ Z# q5 Y3 h
/ Q% k0 |' I7 s4 N+ w4 m L9 f; {& k W( o* a* ]" h$ o' q/ O7 M' r! h- i4 M) A
1、最基本的单片机,其机器工作频率为:晶振频率÷12) b+ P" j o9 k
# k6 n9 t7 U" `( l9 R2、有的单片机(高级一些的)机器工作频率为:晶振频率÷2(或者6等等)+ L t0 y9 X4 i* {" `
3、以汇编语言为例,单片机执行一条指令需要的时间为1~2个机器周期(机器周期 = 1÷机器工作频率)& F4 N# x; O7 q4 R
4、举例:" ]- B6 v" H9 Y y! |: L; k t, V) R N( j- K$ u! T) H
一普通单片机晶振12MHz,其机器工作频率为 12MHz÷12 = 1MHz# k8 w/ s! r( o! R. A7 _
其机器周期 = 1÷1MHz = 0.000001秒(也就是10的负6次方)) L2 q1 k1 ~% K8 Y `& R1 N: z
! V3 m% x0 p2 ]9 ], c8 i“MOV”指令需要一个机器周期来完成,也就是说执行这条指令需要耗费10的负6次方秒,这么长的时间。
, A- @1 D; y* Y d, v9 x {' B, {& v5 \% Q: l4 S4 g% H
: M; B4 \# n7 J- d. Y, o! A1 v) V) l0 K5 {2 G ?
% g( z3 b, p V3 l9 y7 j; L: [四十三、我给51单片机12M晶振接2200pF电容会怎么样?电路图里貌似是22pF的,但是我没有22pF的...接2200pF会不会不正常工作?# z%
0 F0 R. v/ F b* v |
|