现在有许多极好的编译程序能显示代码,在速度和尺寸两方面都是非凡有效的。现代的编绎器非常适应寄存器和变量的使用方面,比手动编译有较好的优越性,甚至在其它常规方面,所以C应是看代码方面最合适的。
答1: 因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。电子园51单片机学习网 `4n$e1R$Z"G;s%R&r\
电子园51单片机学习网.RPTUdX#I
答2: 当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD的值(PCON.7------双倍速波特率)决定:电子园51单片机学习网ql8Pr[-f]#BS'l
方式1、3波特率= (定时器1的溢出率)
特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:
方式1、 3波特率=
11.0592MHZ晶振的一些典型波特率如下:
7k7R Q$z/IY0
波特率 +XJ-Sz+_Jf\u0 | SMOD S*s,iLCq Ny0 | TH1电子园51单片机学习网7b*`7O+[(b zJt(l6AVc |
19200 "M/Jl V;A0 | 1 L;m ^(MGT:k0 | 0FDH r8^JG5N?7^ `3^J"W%J0 |
9600电子园51单片机学习网Z q&R|v-Lj ]OM\ | 0 -@O)I&bXR0 | 0FDH电子园51单片机学习网'D Ss ] Xs:uu |
4800电子园51单片机学习网wQ:xN`#gho | 0电子园51单片机学习网ho;vX_ cz | 0FAH电子园51单片机学习网 Hg*H Z0W6d8? |
2400 wf3[dZ P6E0 | 0电子园51单片机学习网 z6Pup`;Q7xU~ | 0F4H电子园51单片机学习网ICHi` |
1200电子园51单片机学习网9Hy%SP:?U | 0 3g/["D B:cI^}c0 | 0E8H电子园51单片机学习网8M&M8W:v{Oo*M EQM |
300电子园51单片机学习网i#gP+CzxpIh | 0 iB{RbU$F"K0 | 0A0H d|-v$_qZ4QN5pa"Q0 |
更换一种计算方式,它将以修改公式达到我们需求的波特率来计算出晶振。电子园51单片机学习网-S-Nj`F9d O
最小晶振频率=波特率x 384 x 2 SMOD电子园51单片机学习网;~Vu|ie9c`
这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率。电子园51单片机学习网5B1nG`V9d3n.Fh P8_Y
例如:波特率为19.2KH2的最小晶振频率:
.X)r|?E(d H0 3.6864=19200x384x2(波特率为19.2K的SMOD为1 )电子园51单片机学习网 dU_ Y8[!xwg
11.0592=3.6864x3电子园51单片机学习网)X lq(Pa9h2b:Rt L;@U ?2^
其中TH1是由倍乘数(3)确定
9L%[5R| B0 TH1=256-3=253=0FDH电子园51单片机学习网5@'zvSje
用来确定定时器的重装值,公式也可改为倍乘数的因子:电子园51单片机学习网*c9B:~ GA:u8a j^ I
晶振频率=波特率x(256-TH1)x384x2 SMOD
LHX ~9D0 这是波特率为19.24K的晶振频率。电子园51单片机学习网%[ H0jr#F8V+|q
以上的例子可知,被乘数(3)是用来确定TH1:电子园51单片机学习网T \Ol_Z7d(E
TH1=256-3=253=0FDH
U^sR [0 19.2K波特率的晶振为电子园51单片机学习网] {Cwm:^l
11.0592=19200x(256-0FDH)x384x2(19.2 k的SMOD为1)
[ B:T!Tf7Z6@0 其它值也会得出好的结果,但是11.0592MHZ是较高的晶振频率,也允许高波特率。电子园51单片机学习网;z5~|;o5\0Z
文章评论(0条评论)
登录后参与讨论