波特率计算来选择晶振频率
- 格式:doc
- 大小:100.00 KB
- 文档页数:2
波特率与晶振有什么关系?
本文主要讲了有关波特率的介绍和晶振的介绍以及波特率与晶振的关系,具体的随小编来看看吧。
波特率介绍
单片机或计算机在串口通信时的速率。
指的是信号被调制以后在单位时间内的变化,即单位时间内载波参数变化的次数,如每秒钟传送240个字符,而每个字符格式包含10位(1个起始位,1个停止位,8个数据位),这时的波特率为240Bd,比特率为10位*240个/秒=2400bps。
又比如每秒钟传送240个二进制位,这时的波特率为240Bd,比特率也是240bps。
(但是一般调制速率大于波特率,比如曼彻斯特编码)。
波特率,可以通俗的理解为一个设备在一秒钟内发送(或接收)了多少码元的数据。
它是对符号传输速率的一种度量,1波特即指每秒传输1个码元符号(通过不同的调制方式,可以在一个码元符号上负载多个bit位信息),1比特每秒是指每秒传输1比特(bit)。
单位“波特”本身就已经是代表每秒的调制数,以“波特每秒”(Baud per second)为单位是一种常见的错误。
作用:
为了在彼此之间通讯,调制解调器必须使用相同的波特率进行操作。
如果将调制解调器的波特率设置为高于其他的调制解调器的波特率,则较快的调制解调器通常要改变其波特率以匹配速度较慢的调制解调器。
分析举例:
它是对信号传输速率的一种度量,通常以“波特”(baud)为单位。
波特率有时候会同比特率混淆,实际上后者是对信息传输速率(传信率)的度量。
波特率可以被理解为单位时间内传输码元符号的个数(传符号率),通过不同。
晶振对波特率的影响到底有多大?让你见识见识片机中的晶振在整个内部电路中发挥着重要的作用,电路配合晶振的运行能够产生单片机所需的时钟频率。
可以说,一切指令都是建立在时钟频率的基础上,那么,晶振与波特率又有什么关系呢?两者之间影响到底有多大呢?在串行通信中,MCS51 串口可约定四种工作方式。
其中,方式0 和方式2 的波特率是固定的,而方式1 和方式3 的波特率是可变的,由定时器T1 的溢出率决定。
波特率是指串行端口每秒内可以传输的波特位数。
这里所指的波特率,如标准9600 不是每秒种可以传送9600 个字节,而是指每秒可以传送9600 个二进位,而一个字节要8 个二进位,如用串口模式1 来传输,那么加上起始位和停止位,每个数据字节就要占用10 个二进位,9600 波特率用模式1 传输时,每秒传输的字节数是9600÷10=960 字节。
图1 方式0 和方式2 的波特率方式0 的波特率是固定的,为fosc/12,以一个12M 的晶振来计算,那么它的波特率可以达到1M。
方式2 的波特率是固定在fosc/64 或fosc/32,具体用那一种就取决于PCON 寄存器中的SMOD 位,如SMOD 为0,波特率为focs/64,SMOD 为1,波特率为focs/32。
方式1 和方式3 的波特率模式1 和模式3 的波特率是可变的,取决于定时器1 或2(对于52 芯片)的溢出速率,就是说定时器1 每溢出一次,串口发送一次数据。
可以用以下的公式去计算:上式中如设置了PCON 寄存器中的SMOD 位为1 时就可以把波特率提升2 倍。
通常会使用定时器1 工作在定时器工作模式2 下,这时定时值中的TL1 做为计数,TH1 做为自动重装值,这个定时模式下,定时器溢出后,TH1 的值会自动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。
在这个定时模式2 下定时器1 溢出速率的计算公式如下:溢出速率=(计数速率)/(256-TH1 初值)溢出速率=fosc/[12*(256-TH1 初值)上式中的计数速率与所使用。
为什么51系列单片机常用11.0592MHz的晶振设计?现在有许多极好的编译程序能显示代码,在速度和尺寸两方面都是非凡有效的。
现代的编绎器非常适应寄存器和变量的使用方面,比手动编译有较好的优越性,甚至在其它常规方面,所以C应是看代码方面最合适的。
答1:因为它能够准确地划分成时钟频率,与UART(通用异步接收器/发送器)量常见的波特率相关。
特别是较高的波特率(19600,19200),不管多么古怪的值,这些晶振都是准确,常被使用的。
答2:当定时器1被用作波特率发生器时,波特率工作于方式1和方式3是由定时器1的溢出率和SMOD 的值(PCON.7------双倍速波特率)决定:方式1、3波特率= (定时器1的溢出率)特殊时,定时器被设在自动重袋模式(模式2,TMOD的高四位为0100B),其为:方式1、 3波特率=11.0592MHZ晶振的一些典型波特率如下:更换一种计算方式,它将以修改公式达到我们需求的波特率来计算出晶振。
最小晶振频率=波特率x 384 x 2 SMOD这就是我们所需波特率的最小晶振频率,此频率能成倍增加达到我们需求的时钟频率。
例如:波特率为19.2KH2的最小晶振频率:3.6864=19200x384x2(波特率为19.2K的SMOD为1 )11.0592=3.6864x3其中TH1是由倍乘数(3)确定TH1=256-3=253=0FDH用来确定定时器的重装值,公式也可改为倍乘数的因子:晶振频率=波特率x(256-TH1)x384x2 SMOD这是波特率为19.24K的晶振频率。
以上的例子可知,被乘数(3)是用来确定TH1:TH1=256-3=253=0FDH19.2K波特率的晶振为11.0592=19200x(256-0FDH)x384x2(19.2 k的SMOD为1)其它值也会得出好的结果,但是11.0592MHZ是较高的晶振频率,也允许高波特率。
设定80C51串行异步通讯的波特率本文的目的在于补充及阐明一些有关的内容。
51 晶振为什么是11.0592单片机晶振大多为11.0592 的原因常用波特率通常按规范取为1200,2400,4800,9600,若采用晶振12 兆赫兹或6 兆赫兹,计算得出的T1 定时初值将不是一个整数,这样通信时便会产生积累误差,进而产生波特率误差,影响串行通信的同步性能。
解决的方法只有调整单片机的时钟频率,通常采用11.0592 兆赫兹晶振。
因为用它能够非常准确地计算出T1 定时初值,即使对于较高的波特率(19600,19200),不管多幺古怪的值,只要是标准通信速率,使用11.0592 兆赫兹的晶振可以得到非常准确的数值。
11.0592 兆是因为在进行通信时,12 兆频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592 兆计算时正好可以得到,因此在有通信接口的单片机中,一般选11.0592 兆。
51 晶振为什幺是11.0592用11.0592 晶振的原因是51 单片机的定时器导致的。
用51 单片机的定时器做波特率发生器时,如果用11.0592 兆赫兹的晶振,根据公式算下来需要定时器设置的值都是整数;如果用12 兆赫兹晶振,则波特率都是有偏差的,比如9600,用定时器取0XFD,实际波特率10000,一般波特率偏差在4%左右都是可以的,所以也还能用STC90C516 晶振12 兆波特率9600,倍数时误差率6.99%,不倍数时误差率8.51%,数据肯定会出错。
这也就是串口通信时大家喜欢用11.0592 兆赫兹晶振的原因,在波特率倍速时,最高可达到57600,误差率0.00%。
用12 兆赫兹,最高也就4800,而且有0.16% 误差率,但在允许范围,所以没多大影响。
为什幺不是其他数我们假定0-12_000_000 之间有一个数满足以下条件的时候,这个数比较适合晶振的频率:1.当初值在0-255 的情况下,这个数能够整除较多的数(整除的数越多,便可获得能够整除的波特率的种类越多);2.而且这个数应该较大,晶振频率越快,波特率越大,传输的速度越快;3.在SOMD 加倍和不加倍的情况下,这个数都能够整除较多的数。
c 51单片机串口初值计算单片机是一种集成电路,可以用来实现各种功能。
而串口是一种用于数据传输的通信接口,常用于单片机与外部设备之间的通信。
在单片机中使用串口通信时,需要对串口进行初始化,设置其波特率和各种参数。
本文将通过详细介绍C51单片机串口的初值计算方法,帮助读者更好地理解单片机串口的使用。
在C51单片机中,串口的初始化可以通过设置相应的寄存器来实现。
下面以51系列单片机为例,介绍串口初始化的过程。
首先,需要设置串口的波特率。
波特率是指在一个时间单位内,通过通信线路传输的波形的变化次数。
常用的波特率有9600bps、115200bps等。
要设置波特率,需要先确定所使用的晶振频率和串口的时钟分频系数。
C51单片机的串口通信是通过定时器T1实现的,波特率的计算公式为:波特率 = 晶振频率 / (12 * 2^n * (65536 - T1初值))其中,n为波特率位数,可以取3、4、5等。
按照常用的8位数据位和1位停止位,可以将n取为4。
以晶振频率为11.0592MHz,波特率为9600bps为例,计算T1初值:9600 = 11059200 / (12 * 2^4 * (65536 - T1初值))通过计算得到T1初值为77。
将77转换成16进制,得到的值为4D。
接下来,需要设置串口的工作模式和相关参数。
C51单片机的串口通信有两种模式:帧模式和位模式。
帧模式是指在每个数据字节的前后都添加起始位、停止位和校验位,可以提高数据的可靠性。
位模式是指仅传输数据位,不添加起始位、停止位和校验位,可以提高传输速率。
C51单片机的串口默认为位模式,但可以通过设置相应的寄存器来选择工作模式。
串口相关的寄存器包括SCON、PCON和T2CON。
设置串口工作模式以及数据位数、停止位数和校验方式的方法如下所示:SCON = (模式选择位7) (模式选择位6) 0 (8位数据位选择) (校验方式选择) (停止位数选择) (模式选择位1) (模式选择位0)其中,模式选择位7和模式选择位6可以根据实际需求进行设置。
12m晶振9600波特率概述及解释说明1. 引言1.1 概述本文旨在深入探讨12m晶振9600波特率的概念、背景知识,以及相关的应用场景和需求分析。
通过对12m晶振和9600波特率之间关联与影响因素的解释,我们将揭示出它们在通信领域中起到的重要作用,并分析其对系统性能的影响。
1.2 文章结构本文共包含五个主要部分。
首先,在引言部分(第1章)中介绍了文章的背景和目的,并展示了全文的结构。
接下来,第2章将详细解释12m晶振和9600波特率的概念及背景知识。
第3章将探讨12m晶振在通信领域的实际应用场景,并分析需要使用9600波特率的情况。
在第4章中,我们将深入解释12m晶振与9600波特率之间的关联以及影响因素。
最后一章(第5章)为结论与展望部分,总结了文章中得出的结果,并对未来相关研究提出展望和建议。
1.3 目的本文旨在帮助读者更好地理解并掌握12m晶振和9600波特率的概念与应用。
通过对其原理和影响因素进行解释,读者将能够更好地选择适合自己需求的通信方案,并深入了解系统中不同参数间的相互关系,从而提高系统性能并推动相关研究和开发的进展。
以上是“1. 引言”部分内容。
2. 12m晶振9600波特率的概念及背景知识2.1 12m晶振概述12m晶振是指一种频率为12兆赫兹(MHz)的微型石英晶体振荡器。
它通常用于电子设备中,用于提供准确的时钟信号以驱动其他系统组件的运行。
晶振的频率可以通过调整晶体的尺寸和形状来控制。
12m晶振在许多应用领域都得到广泛使用,例如通信、计算机、工业自动化等。
它具有稳定性高、精度高、可靠性好等优点,在各种设备中起着重要作用。
2.2 9600波特率解释说明9600波特率表示每秒传输的位数或速度, 在通讯中常常也称为波特率(baud rate)。
它指示了设备之间进行数据传输时单位时间内传输的比特数。
较低的波特率值表示传输速度较慢,而较高的波特率则表示传输速度更快。
在实际应用中,9600波特率是一种常见且常用于串行通信中的数据传输速率。
8mhz晶振串口波特率摘要:1.晶振简介及其在电子设备中的作用2.8MHz晶振的特点和应用场景3.串口波特率的定义及其与晶振的关系4.常见波特率及其适用范围5.如何选择合适的8MHz晶振和串口波特率正文:在电子设备中,晶振作为一种重要的时钟元件,为设备提供稳定的频率信号。
其中,8MHz晶振凭借其高精度、稳定性的特点,被广泛应用于各种电子设备中。
本文将详细介绍8MHz晶振的特性、应用场景,以及与串口波特率的关系,帮助大家更好地选择合适的晶振和波特率。
一、晶振简介及其在电子设备中的作用晶振,全称晶体振荡器,是一种利用石英晶体振动原理产生稳定频率信号的电子元件。
在电子设备中,晶振为整个系统提供基准时钟信号,影响着设备的稳定性和性能。
因此,选择合适的晶振至关重要。
二、8MHz晶振的特点和应用场景8MHz晶振作为一种常见的石英晶体振荡器,具有以下特点:1.高精度:8MHz晶振的精度通常在±10ppm以内,满足大多数应用场景对时钟精度的要求。
2.稳定性:8MHz晶振在正常工作条件下,频率稳定性能够保持在±0.1%。
3.抗干扰能力强:8MHz晶振具有较好的抗电磁干扰和振动性能,适应各种恶劣环境。
4.应用场景广泛:8MHz晶振广泛应用于通信设备、嵌入式系统、计时器等领域。
三、串口波特率的定义及其与晶振的关系串口波特率是指串行通信中,数据传输速率与波特率之间的关系。
波特率表示每秒钟传输的位数,单位为bps(比特每秒)。
在实际应用中,串口波特率与晶振的频率密切相关。
晶振频率越高,支持的波特率越高。
四、常见波特率及其适用范围常见的波特率有:1.9600bps:适用于低速通信,如简单的数据传输和远程监控。
2.19200bps:适用于一般通信需求,如打印机、modem等设备。
3.38400bps:适用于较高通信速率,如图像传输、音频传输等。
4.57600bps、115200bps:适用于高端通信设备,如专业通信设备、数据采集系统等。
51单片机波特率计算
单片机的波特率计算通常采用以下公式:
波特率=系统频率/(16*(SPBRG+1))
其中,系统频率是单片机的主频或振荡频率,SPBRG是串口波特率发生器的寄存器。
这个公式适用于大多数单片机,但具体的值可能会有所不同。
接下来以51单片机为例,介绍波特率计算的具体步骤。
1.确定系统频率:51单片机的系统频率通常为12MHz,可以根据具体情况进行调整。
我们假设系统频率为12MHz。
2.确定波特率:根据需求,确定所需的波特率。
假设需要设置的波特率为9600。
3.代入公式并求解:将系统频率和所需的波特率代入公式中,计算出SPBRG的值:
解方程得到:
由于SPBRG的值必须是一个整数,因此需要进行四舍五入:
SPBRG=77(四舍五入)
所以,在12MHz的系统频率下,如果需要设置51单片机的波特率为9600,SPBRG的值应为77
需要注意的是,不同的单片机可能会有不同的最小波特率误差和最大波特率误差。
在实际应用中,还需要考虑到波特率误差的范围,以确保数据的可靠传输。
晶振和波特率的关系1. 晶振和波特率的基本概念晶振是指晶体振荡器,是一种能够产生稳定频率的电子元件。
在计算机和通信领域,晶振被广泛应用于时钟信号的生成。
波特率是指每秒传输的比特数,也可以理解为数据传输速率。
2. 晶振与波特率的关系晶振和波特率之间存在着密切的关系。
晶振的频率决定了数据传输的速率,即波特率。
波特率的单位是bps(bit per second),表示每秒传输的比特数。
3. 波特率的计算公式波特率的计算公式为:波特率 = 晶振频率 / 分频系数其中,晶振频率是晶振的振荡频率,分频系数是通过分频器设置的参数,用于控制数据传输速率。
4. 波特率的选择在实际应用中,选择合适的波特率非常重要。
波特率过高会导致数据传输错误率增加,而波特率过低则会影响数据传输的速度。
因此,根据具体应用场景和设备性能,选择合适的波特率十分关键。
5. 晶振的选择选择合适的晶振频率也是十分重要的。
一般来说,晶振频率越高,数据传输速率就可以越快。
但是,晶振频率也会受到硬件设备的限制。
因此,在选择晶振时,需要考虑设备的性能和兼容性。
6. 晶振和波特率的匹配在实际应用中,晶振和波特率需要匹配才能正常工作。
如果晶振频率和波特率不匹配,会导致数据传输错误或无法正常传输。
因此,在设计和开发电子产品时,需要合理选择晶振和波特率,确保它们之间的匹配关系。
7. 晶振和波特率的影响因素晶振和波特率的选择受到多种因素的影响。
其中,硬件设备的性能和要求是最重要的因素之一。
此外,通信协议的要求、传输距离和噪声等因素也会对晶振和波特率的选择产生影响。
8. 晶振和波特率的应用举例晶振和波特率的关系在各个领域都有应用。
例如,晶振和波特率的选择对于串口通信非常重要。
在串口通信中,晶振频率决定了传输速率,波特率设置则控制了数据传输的稳定性。
9. 总结晶振和波特率之间存在着紧密的关系。
晶振的频率决定了数据传输的速率,即波特率。
在实际应用中,晶振和波特率需要匹配才能正常工作。
例:CAN控制器的晶振f can_clk=10MHZ,节点间最长的距离为40m,tq不分频,直接采用控制器的时钟,总线输出延迟为50ns,接收延迟为30ns,波特率为1Mbps.tq=1/f can_clk=1/10 MHZ=100ns总线的最大传输延迟=总线的最长距离/光电速度=40/3*108≈133nsProp_Seg=2*(总线输入延迟+总线输出延迟+总线最大传输延迟)=2*(30ns+50ns+133ns)=426 ns考虑冗余预留,则Prop_Seg=600 ns=6 tq; Sync_Seg=1 tq;Phase_Seg1=1 tq;Phase_Seg2=2tq(因为采样是在Phase_Seg1和Phase_Seg2之间,所以在Phase_Seg2中应包含至少1 tq处理时间)真实SJW=min(Phase_Seg1,Phase_Seg2)=1tqBit_time=Sync_Seg+Prop_Seg+Phase_Seg1+Phase_Seg2=10 tq=1 Mbps晶振漂移容许=min(Phase_Seg1,Phase_Seg2)/ 2*(13*Bit_time-Phase_Seg2) =1 tq / 2*(13*10 tq-2 tq) =0.39%寄存器配置:[0]1[TSeg2]3[TSeg1]4[SJW]2[BRP]6= [0]1 [Phase_Seg2-1]3 [Prop_Seg+Phase_Seg1-1]4 [真实SJW-1]2 [分频数-1]6 =[0]1[2-1]3 [1+6-1]4 [1-1]2[1-1]6=[0]1 [1]3 [6]4 [0]2 [0]6=0x1600下面是从Cygnal网站论坛上看到的:#define BTR(tseg1, tseg2, sjw, brp)(((tseg2 - 1)<<12)|((tseg1 -1)<<8)|((sjw-1)<<6)|(brp-1))#define kBTR_1MbpsBTR(2,8,1,2)// 1 Mbps#define kBTR_500kbpsBTR(2,8,1,4)// 500 kbpsvoid set_bitrate( unsigned int btr ){unsigned char SFR_SAVE_PAGE;SFR_SAVE_PAGE=SFRPAGE;SFRPAGE = CAN0_PAGE;CAN0CN |= 0x41;CAN0ADR = BITREG;CAN0DAT = btr;CAN0CN &= 0xbe;SFRPAGE=SFR_SAVE_PAGE;}set_bitrate( kBTR_1Mbps );//1 Mbpsset_bitrate( kBTR_500kbps );//500 kbpsTProp_seg = 2 x (transceiver loop delay(150nsec) + bus line delay(5nsec/m)) // condition from the CAN parameter definition1 <= BRP <= 32Tq = BRP / FsysTSync_Seg = TqTq <= TProp_Seg <= 8*TqTq <= TPhase_Seg1 <= 8*TqTq <= TPhase_Seg2 <= 8*TqTq <= TSJW <= 4*TqTbit = TSync_Seg + TProp_Seg + TPhase_Seg1 + TPhase_Seg2Tbit = 1 / baud (nearly equal)// condition from F040 exampleTPhase_Seg1 == TPhase_Seg2TSJW = min( TPhase_Seg1, 4*Tq )// quantamizetseg1 = (TProp_Seg + TPhase_Seg1) / Tqtseg2 = TPhase_Seg2 / Tqsjw = TSJW / TqBTR = (((tseg2 - 1)<<12)|((tseg1 - 1)<<8)|((sjw-1)<<6)|(BRP - 1))//----------------------------------------------------------------// procedure// 1) calculate BRP: select BRP as the smallest integer within these range, a)b)c)// a) BRP range 1(1 + 1 + 1 + 1) * Tq <= Tbit <= (1 + 8 + 8 + 8) * Tq(Fsys/baud) / 25 <= BRP <= (Fsys/baud) / 4// b) BRP range 2Tq <= TProp_Seg <= 8 * Tq(Fsys*TProp_Seg) / 8 <= BRP <= (Fsys*TProp_Seg)// c) BRP range 3(Tbit - TProp_seg) <= (1 + 8 + 8) * Tq{(Fsys/baud) - (Fsys*TProp_seg)} / 17 <= BRP// 2) Calculate quantimized value of Tbit, TProp_Seg and TPhase_Seg1 QTbit = baud / Tq = (Fsys/baud) / BRPQTProp_Seg = TProp_Seg / Tq = ceil((Fsys*TProp_Seg) / BRP)QTPhase_Seg1 = int((QTbit - 1 - QTProp_Seg) / 2)// 3) determine tseg1,tseg2,sjwtseg1 = QTProp_Seg + QTPhase_Seg1tseg2 = QTbit - 1 - tseg1sjw = min( QTPhase_Seg1, 4 )//C8051F040 CAN 波特率对照表(系统频率22118400HZ)#define BAUDRATE_40K0x7adb//40K,250m#define BAUDRATE_50K0x7ad5//50K,250m#define BAUDRATE_80K0x7bcc//80K,250m#define BAUDRATE_100K0x6dc9//100K,250m#define BAUDRATE_125K0x6dc7//125K,250m#define BAUDRATE_200K0x2947//200K,250m#define BAUDRATE_250K0x0807//250K,250m#define BAUDRATE_500K0x0803//500K,100m#define BAUDRATE_800K0x2941//800K,40m#define BAUDRATE_1000K 0x1701//1000K,30m//C8051F040 CAN 波特率对照表(系统频率22118400HZ)#define BAUDRATE_40K0x7adb//40K,250m#define BAUDRATE_50K0x7ad5//50K,250m#define BAUDRATE_80K0x7bcc//80K,250m#define BAUDRATE_100K0x6dc9//100K,250m #define BAUDRATE_125K0x6dc7//125K,250m #define BAUDRATE_200K0x2947//200K,250m #define BAUDRATE_250K0x0807//250K,250m #define BAUDRATE_500K0x0803//500K,100m #define BAUDRATE_800K0x2941//800K,40m#define BAUDRATE_1000K 0x1701//1000K,30m。
波特率计算
在串行通信中,收发双方对发送或接收的数据速率要有一定的约定,我们通过软件对MCS—51串行口编程可约定四种工作方式。
其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。
串行口的四种工作方式对应着三种波特率。
由于输人的移位时钟的来源不同,所以,各种方式的波特率计算公式也不同。
一、方式0的波特率
方式0时,移位时钟脉冲由56(即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或接收一位数据。
所以,波特率为振荡频率的十二分之一,并不受PCON寄存器中SMOD的影响,即:
方式0的波特率=fosc/12
三、方式l和方式3的波特率
方式1和方式3的移位时钟脉冲由定时器T1的溢出率决定,故波特宰由定时器T1的
溢出率与SMOD值同时决定,即:
方式1和方式3的波特率=2SMOD/32·T1溢出率
其中,溢出率取决于计数速率和定时器的预置值。
计数速率与TMOD寄存器中C/T的状态有关。
当C/T=0时,计数速率=fosc/2;当C/T=1时,计数速率取决于外部输入时钟频率。
当定时器Tl作波特率发生器使用时,通常选用可自动装入初值模式(工作方式2),在
工作方式2中,TLl作为计数用,而自动装入的初值放在THl中,设计数初值为x,则每过“256一x”个机器周期,定时器T1就会产生一次溢出。
为了避免因溢出而引起中断,此时应禁止T1中断。
这时,溢出周期为:
系统晶振频率选为11.0592MHZ就是为了使初值为整数,从而产生精确的波特率。
如果串行通信选用很低的波特率,可将定时器Tl置于工作方式0或工作方式1,但在
这种情况下,T1溢出时,需用中断服务程序重装初值。
中断响应时间和执行指令时间会使波特率产生一定的误差,可用改变初值的办法加以调整。
表6—2列出了各种常用的波特率及其初值。
定时器T1 波特率f OSC SMOD
C/T 模式初值方式0:1MHz 12MHz X X X X
方式2:375K 12MHz 1 X X X
方式1、3:62.5K 12MHz 1 0 2 FFH 方式1、3:19.2K 11.0592MHz 1 0 2 FDH 方式1、3:9.6K 11.0592MHz 0 0 2 FDH 方式1、3:4.8K 11.0592MHz 0 0 2 FAH 方式1、3:2.4K 11.0592MHz 0 0 2 F4H 方式1、3:1.2K 11.0592MHz 0 0 2 E8H 方式1、3:137.5K 11.0592MHz 0 0 2 1DH 方式1、3:110Hz 6MHz 0 0 2 72H 方式1、3:110Hz 6MHz 0 0 1 FEEBH。