51 单片机若干问题!
回首当年,在初学 51 单片机的时候,总是伴随很多有关与晶振的问题,其实晶振就是如同
人的心脏,是血液的是脉搏,把单片机的晶振问题搞明白了,51 单片机的其他问题迎刃而
解……
今天大侠把自己当年学习 51 单片机有关晶振的问题一并总结出来,希望对初学 51 的童鞋来
说能有帮助。
一,为什么 51 单片机爱用 11.0592MHZ 晶振?
其一:因为它能够准确地划分成时钟频率,与 UART(通用异步接收器/发送器)量常见的波特
率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常
被使用的。
其二:用 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%误差率,但在允许范围,所以没多大影
响。
二,在设计 51 单片机系统 PCB
时,晶振为何被要求紧挨着单片机?
原因如下:晶振是通过电激励来产生固定频率的机械振动,而振动又会产生电流反馈给电路,
电路接到反馈 后进行信号放大,再次用放大的电信号来激励晶振机械振动,晶振再将振动
产生的电流反馈给电路,如此这般。当电路中的激励电信号和晶振的标称频率相同时,电 路
就能输出信号强大,频率稳定的正弦波。整形电路再将正弦波变成方波送到数字电路中供其
使用。
问题在于晶振的输出能力有限,它仅仅输出以毫瓦为单位的电能量。在 IC(集成电路) 内部,
通过放大器将这个信号放大几百倍甚至上千倍才能正常使用。
晶振和 IC 间一般是通过铜走线相连的,这根走线可以看成一段导线或数段导线,导线在切
割磁力线的时候会产生电流,导线越长,产生的电流越强。现实中,磁力线不常见, 电磁
波却到处都是,例如:无线广播发射、电视塔发射、手机通讯等等。晶振和 IC 之间的连线
就变成了接收天线,它越长,接收的信号就 越强,产生的电能量就越强,直到接收到的电
信号强度超过或接近晶振产生的信号强度时,IC 内的放大电路输出的将不再是固定频率的
方波了,而是乱七八糟的信 号,导致数字电路无法同步工作而出错。
所以,画 PCB(电路板)的时候,晶振离它的放大电路(IC 管脚)越近越好。
三,单片机电路晶振不起振原因分析