8051单片机-波特率的研究

发布者:心灵律动最新更新时间:2024-07-30 来源: cnblogs关键字:单片机  波特率 手机看文章 扫描二维码
随时随地手机看文章

通常情况下,8051系列单片机外接晶振频率一般是12MHz、24MHz、48MHz如图7-6-1,为什么会这样选取呢?从前面的章节已经介绍8051系列单片机的每12个时钟周期为一个指令周期,当8051系列单片机外接12MHz晶振时,指令周期=12/12MHz=1us;若外接24MHz晶振时,指令周期=12/24MHz=0.5us;若外接48MHz晶振时,指令周期=12/48MHz=0.25us。8051系列单片机外接能够被除尽的晶振,在使用单片机内部的定时器/计数器资源时作定时器使用时能够得到精确定时应用;当使用汇编语言编程时,可以清楚知道当前每一行代码执行的时间。


8051系列单片机外接能够被除尽的晶振即12MHz、24MHz、48MHz这些晶振时,波特率的精确性就得不到保证。

 

假若现在单片机外接的晶振为12MHz时,以T/C2作波特率发生器,根据波特率公式:

波特率=Fosc/2x16x(65536-t)

9600=12MHz/2x16x(65536-t)

t=65496.9375


“65496.9375”不是一个整数值,是一个带有小数点的数值。对于常用的8位、9位、11位一帧的数据接收与传输,最大的允许误差分别是6.25%、5.56%、4.5%。虽然波特率允许误差,但是这样通信时便会产生积累误差,进而影响数据的正确性。唯一的解决办法就是更改单片机外接的晶振频率,更改为常用于产生精确波特率的晶振如11.0592MHz、22.1184MHz。


假若现在单片机外接的晶振为11.0592MHz时,以T/C2作波特率发生器,根据波特率公式:

波特率=Fosc/2x16x(65536-t)

9600=11.0592MHz/2x16x(65536-t)

t=65500=0xFFDC

虽然使用11.0592MHz、22.1184MHz的晶振能够产生精确的波特率,但是用于系统精确的定时服务不是十分的理想。例如单片机外接11.0592MHz晶振时,指令周期=12/11.0592MHz≈1.085us,是一个无限循环的小数。当单片机外接22.1184MHz晶振时,指令周期=12/22.1184MHz≈0.5425us,也是一个无限循环的小数。

 

串口工作在方式1时分别采用T/C1和T/C2产生常用波特率初值表如下。

波特率 

(11.0592MHz)

初值

波特率

(12MHz)

初值

TH1、TL1

(SMOD=0)

TH1、TL1

(SMOD=1)

TH1、TL1

(SMOD=0)

TH1、TL1

(SMOD=1)

1200

0xE7

0xD0

1200

0xE5

0xCB

2400

0xF3

0xE7

2400

0xF2

0xE5

4800

0xF9

0xF3

4800

0xF9

0xF2

9600

0xFC

0xF9

9600

0xFC

0xF9

14400

0xFD

0xFB

14400

0xFD

0xFB

19200

0xFE

0xFC

19200

0xFE

0xFC


波特率

(11.0592MHz)

初值

波特率

(12MHz)

初值

RCAL2H

RCAL2L

RCAL2H

RCAL2L

1200

0xFE

0xE0

1200

0xFE

0xC8

2400

0xFF

0x70

2400

0xFF

0x64

4800

0xFF

0xD8

4800

0xFF

0xB2

9600

0xFF

0xDC

9600

0xFF

0xD9

14400

0xFF

0xE8

14400

0xFF

0xE6

19200

0xFF

0xEE

19200

0xFF

0xED

 

如果大家想通过设置不同的晶振获取更加多的波特率的值,可以下载工具进行计算


关键字:单片机  波特率 引用地址:8051单片机-波特率的研究

上一篇:8051单片机-多机通信的研究
下一篇:8051单片机-模拟串口

推荐阅读最新更新时间:2024-11-12 23:17

基于单片机控制的缓降器硬件机构及控制系统设计
本文介绍了一种基于单片机控制的缓降器硬件机构及控制系统.该系统以单片机机为系统的控制核心,结合光电式传感器技术实现了下降速度的测量,从而实现了缓降器的自给供电并能平稳运行.实验证明该缓降器设计满足了应用的需要。 1.引言 现代生活使人们的生活高层化,高层建筑为人们提供方便快捷的同时也给人们的安全带来隐患.缓降器可以将处于高层建筑物上的受困人员快速解救下来.但是,现有技术中的缓降器,有的结构比较复杂,使用中需要电源。 当事故发生时,高层建筑通常都会断电,使用电源的缓降器无法运行;结构复杂的缓降器,长期放置,非常容易出现故障.还有的缓降器使用操作复杂,对于非专业人员,往往不便使用.发生险情时,尤其是老人或小孩,容易惊慌,复杂的操
[单片机]
基于<font color='red'>单片机</font>控制的缓降器硬件机构及控制系统设计
PIC16F877单片机内部EEPROM读写实例
;P IC 16F877 单片机 内部EEPROM读写实例**************************************************************************************** ; This is a program to test the function of reading&writting for EEPROM. ; You CAN OBS erve the value of register(30H--?) buy changing VALU and WRC_ . ; Notice that:it must be { ADDR+WRC_ =0ffh } ! ;
[单片机]
怎样制作AVR单片机ISP下载线
下面介绍利用Protel99se电路绘图软件和热转印技术制作这种下载线的方法和步骤。 一、设计ISP下载线 PCB文件利用Protel99se绘带0《自带AVR单片机ISP下载线》一文中的原理图1(为方便制作,可省略该图中的VDl)。并将图中各元件按附表所述进行封装选择。 原理图绘制完毕后,依次点击原理图编辑器中的Tools(工具)/Up-date PCB(更新原理图)菜单,自动生成下载线PCB文件。在编辑下载线PCB文件时,可先按图1所示规划PCB板的大小和布局PCB板上的元件,然后让系统自动布线(为减小PCB尺寸,采用双面布线),最后对自动布线作适当调整,经过手动调整布线后的PCB板如图2所示。 二、分图层打印 P
[单片机]
怎样制作AVR<font color='red'>单片机</font>ISP下载线
中颖单片机双核(DSP和MCU)SH99F100基于工业控制中的应用
双核(DSP和MCU)-工业控制中的应用 SH99F100是一款双核(DSP和MCU)芯片,适用于工业控制场合,如电机调速、变频电源等。MCU可以用来处理开关量、输入输出以及通讯,而DSP只需专注于控制算法的运算。 DSP的架构由三个并行的计算单元(ALU,MAC,SHIFTER)、两个独立的地址发生器(DAG)和一个强大的程序序列发生器(PSQ)组成。计算单元提供了所有处理器能够提供的计算功能,包括单周期乘/累加,位操作,移位操作等。双数据地址发生器使得处理器能够在一个周期内从两个数据存储区(Data Memory和Program Memory)同时取出两个数据。程序序列发生器实现了所有指令的单周期操作,快速的中断响应以及嵌套的
[单片机]
AT89S52单片机对太阳能发电系统参数测试仪的设计
引 言 为了确保太阳能发电系统能够正常的工作,需要对太阳能发电系统的各项环境参数进行测量,从而有效地控制其运行。本文介绍了一种基于单片机的太阳能参数测试仪,提供了3种参数的测量功能和通信接口,以及2种供电方式,既可作为手持设备使用,又能安装在发电系统中,具有较高的实用价值。 1 硬件电路设计 1.1 总体结构 该测试仪以AT89S52单片机为核心,外接温湿度传感器SHTll、照度传感器TSL2561、四位共阴数码管、RS485总线通信接口以及显示切换按键。单片机上电工作后,对当前温度、湿度、光强度进行实时测量,通过按键切换将测得的3种参数通过LED数码管进行轮流显示;此外,还可以通过RS485总线与PC机进行通信,将参数值传送
[单片机]
AT89S52<font color='red'>单片机</font>对太阳能发电系统参数测试仪的设计
基于MSP430单片机的无线充电器设计
   引言   目前,手机、MP3和笔记本 电脑等便携式电子设备进行充电主要采用的是一端连 接交流电源,另一端连接便携式电子设备充电电池的传统充电方式。这种方式有很多不利 的地方,如频繁的插拔很容易损坏接头,也可能带来触电的危险等。因此,非接触式感应充电器在上个世纪末期诞生。凭借其携带方便、成本低、无需布线等优势迅速受到各界关注。实现无线充电,能量传输效率高,便于携带成为充电系统的研究方向之一 。本设计就是一个由能量发送单元和能量接收单元两大部分组成,利用电磁感应原理 实现电能无线传递的充电器。    1 硬件系统设计   1.1 器件选择   本无线充电系统的设计是用线圈耦合方式传递能量,使接收单元接收到足够的电能,以保证
[电源管理]
基于MSP430<font color='red'>单片机</font>的无线充电器设计
avr单片机驱动max7219的程序
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int //定义输出io口 #define Y1_OUT DDRC|=BIT(5); #define Y1_H PORTC|=BIT(5); #define Y1_L PORTC&=~BIT(5); #define Y2_OUT DDRD|=BIT(6); #define Y2_H PORTD|=BIT(6); #define Y2_L PORTD&=~BIT(6); #define Y3_OUT DDRD|=BIT(7); #define Y3_H
[单片机]
89C52单片机之点阵使用
这次是要通过8*8点阵显示出万代兴三个字,这里每一个汉字的编码都需要自己手写在本子上,然后根据点阵情况写出对应的编码,是个体力活。 程序: #include reg52.h unsigned char code taba ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code tabb ={0x81,0x41,0x21,0x1f,0x05,0x85,0xfd,0x01, 0x08,0xfc,0x03,0x04,0x1f,0x24,0x45,0xC6, 0x89,0x4a,0x2c,0x0f,0x2c,0
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved