在串行通信中,MCS—51串口可约定四种工作方式。其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。
波特率是指串行端口每秒内可以传输的波特位数。这里所指的波特率,如标准9600不是每秒种可以传送9600个字节,而是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输,那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是9600÷10=960字节。
一、方式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 芯片中定时器启动后会在每一个机器周期使定时寄存器TH的值加1,一个机器周期等于十二个振荡周期,所以可以得知51芯片的计数速率为晶体振荡器频率的1/12,一个12M 的晶振用在51芯片上,那么51的计数速率就为1M。通常用11.0592M 晶体是为了得到标准的无误差的波特率,那么为何呢?计算一下就知道了。如我们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为1,分别看看那所要求的TH1 为何值。代入公式:
11.0592M:
9600=(2÷32)×((11.0592M/12)/(256-TH1))
TH1=250
12M:
9600=(2÷32)×((12M/12)/(256-TH1))
TH1≈249.49
上面的计算可以看出使用12M晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。
关键字:51单片机 晶振 波特率
引用地址:
51单片机晶振与波特率的关系
推荐阅读最新更新时间:2024-03-16 13:54
51单片机实现操作AT24C02时,改善数码管的闪烁现象
一、使用proteus绘制简单的电路图,用于后续仿真 关于IIC的读写: 二、编写程序 /******************************************************************************************************************** ---- @Project: AT24C02 ---- @File: main.c ---- @Edit: ZHQ ---- @Version: V1.0 ---- @CreationTime: 20200722 ---- @ModifiedTime:
[单片机]
51单片机之直流电机实验
1、直流电机的基本模型 下图为一台最简单的两极直流电机模型,它的固定部分(定子)为两个静止的磁极N、S;旋转部分(转子)为电枢线圈abcd,线圈的首端和末端分别接到两个相互绝缘的圆弧形的换向片上。换向片与一对静止的电刷B1、B2接触,B1接电源正极,B2接电源负极。电枢旋转时,电枢线圈通过换向片和电刷与外电路接通。 2、直流电动机的工作原理 如上图左图所示,则有直流电流从电刷 A 流入,经过线圈abcd,从电刷 B 流出,根据电磁力定律,载流导体ab和cd收到电磁力的作用,其方向可由左手定则判定,两段导体受到的力形成了一个转矩,使得转子逆时针转动。如果转子转到如上图右图所示的位置,电刷 A 和换向片2接触,电刷 B 和
[单片机]
51单片机中断笔记
一、中断的概念 对于单片机中断,可以简单理解为在看电视的过程中,突然蹦出一个广告,广告过了在继续播放之前的节目。CPU在处理事件A时,发生了另一事件B,请求CPU迅速去处理(中断发生),CPU中断当前的工作,转去处理事件B(中断响应和中断服务),待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回)。 二、基本中断源 1.51单片机中的5个重要中断 单片机的应用与开发,实际上就是通过单片机的三个重要外设,即外部中断、定时器/计数器和串口来实现对寄存器的操作。 三、中断结构图 四、特殊功能寄存器 IE :中断控制寄存器 IP :中断优先级寄存器 TCON :中断状态标志寄器 TMOD :定
[单片机]
基于MCS-51单片机的数码管显示自加1功能的实现
本文主要介绍基于MCS-51单片机的数码管显示实现自加1功能,从1一直显示到999.以下是硬件电路图、功能实现图以及源代码。(电路:使用74HC573锁存器控制段选,74H138控制位选;) 实现数码管自加的代码: #include reg52.h #define uchar unsigned char #define uint unsigned int uchar code table = {0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f, 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //
[单片机]
51单片机的简介——定时器、计数器
8051有两个16位的定时器/计数器T0、T1,8052还有第三个定时器/计数器T2,通过内部编程都可以设定为内部定时器和外部计数器。 1、方式寄存器TMOD 特殊功能寄存器TMOD是TO、T1的工作方式寄存器,其格式如下: TMOD低四位为T0方式字段,高四位为T1方式字段。复位时TMOD的所有位置0。 (1)工作方式选择位M1、M0 定时器/计数器有四种工作方式,它们由M1、M0的取值决定,对应关系如下图: (2) 方式选择位C/T C/T=0为定时器方式,以fosc(晶振频率)的12分频作为计数信号,即每个机器周期定时器加1。 C/T
[单片机]
c51单片机扩展64K的RAM
本文章将简要说明51单片机扩展ram的方法,为了避免以后再扩展ram,我一步到位的将ram扩展到64KB 一、原理图 说明: 1. 图中未提供电源部分,由外部排针供电 2. 图中未提供串口下载部分,由外部串口模块插到P30, P31实现下载 二、实物图 三、Keil设置
[单片机]
51单片机-单片机简介
1.单片机了解 单片机是一块集成电路的控制芯片,我们熟知的家电例如洗衣机的定时控制和滚筒运作,电饭煲的保温功能和鸣叫提醒,电冰箱,空调等等这些电器大部分由单片机根据程序运作进行控制。当然,单片机的用途不只这些,还包括智能仪器,工业控制,汽车电子,航空航天等领域。 2.就业与比赛 目前单片机在大部分电子通信专业的就业领域还是占有一席之地的,毕竟单片机功能强大,用途广泛,相关资料已经成熟,就业门栏相对于有基础实践经验的同学来说并不难。 而单片机的初学者中,大学生占主要部分,此时他们已掌握一定的常识和数学基础,也有宽裕的时间和学校实验室平台的支持。大部分学生学习单片机除了做点电子DIY外,最主要还是为了参加全国电子设计竞赛等技术性的
[单片机]
解析8051单片机的三种数据传输方式
单片机CPU与外部设备交换信息通常有如下几种方式:无条件传送方式,查询传送方式和中断传送方式。我们以单片机与微型打印机接口为例讲述这三种方式。假定用户要打印三个数据,这三个数据保存在单片机的内部数据存储器10H,11H,和12H中,8051用并口P2与微型打印机的并行数据口DB进行数据交换。 (1)无条件传送方式 这种数据传送方式中没有联络信号,即CPU总是认为打印机在如何时候都是处于“准备好”的状态。这种传送方式中只需要在程序中加入数据送往P2的指令,数据传送便可以实现。但这种数据传送方式有一个致命弱点,数据易丢失,这是因为CPU的速度相当快,而打印机的速度相对来说较慢,其结果是在打印机打印一个数据的时间内,CPU已送来了多
[单片机]