在单片机当中晶振起着非常重要的作用,单片机的内部电路配合晶振运行,产生单片机所需的时钟频率。而单片机发出的一切指令都是在时钟频率的基础上的,所以晶振对单片机来说非常重要。波特率是指单位时间内载波参数的变化次数。那么在单片机设计过程中,这两者有什么关系?晶振对波特率的影响有多大呢?
在串行通信中,MCS—51串口可约定四种工作方式。其中,方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率决定。
波特率是指串行端口每秒内可以传输的波特位数。这里所指的波特率,如标准9600不是每秒种可以传送9600个字节,而是指每秒可以传送9600个二进位,而一个字节要8个二进位,如用串口模式1来传输,那么加上起始位和停止位,每个数据字节就要占用10个二进位,9600波特率用模式1传输时,每秒传输的字节数是9600&pide;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&pide;32)×((11.0592M/12)/(256-TH1))
TH1=250
12M:
9600=(2&pide;32)×((12M/12)/(256-TH1))
TH1≈249.49
上面的计算可以看出使用12M晶体的时候计算出来的TH1不为整数,而TH1的值只能取整数,这样它就会有一定的误差存在不能产生精确的9600波特率。当然一定的误差是可以在使用中被接受的,就算使用11.0592M 的晶体振荡器也会因晶体本身所存在的误差使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的,可以忽略不计。
关键字:单片机 晶振 波特率
引用地址:
单片机中晶振对波特率的影响
推荐阅读最新更新时间:2024-11-06 19:20
单片机实时时钟电路(LCD1602、DS1302)
一、简介 此电路主要有51单片机、LCD1602模块、DS1302芯片组成,通过LCD1062显示当前时间。 二、运行效果 三、源文件 main.c /*想要更多项目私wo!!!*/ #include reg52.h #include intrins.h #include string.h #define uint unsigned int #define uchar unsigned char sbit IO = P1^0; sbit SCLK = P1^1; sbit RST = P1^2; sbit RS = P2^0; sbit RW = P2^1; sbit EN = P2^2; uchar *
[单片机]
如何解决单片机的抗干扰性问题
防止干扰最有效的方法是去除干扰源、隔断干扰路径,但往往很难做到,所以只能看单片机抗干扰能力够不够强了。单片机干扰最常见的现象就是复位;至于程序跑飞,其实也可以用软件陷阱和看门狗将程序拉回到复位状态;所以单片机软件抗干扰最重要的是处理好复位状态。 一般单片机都会有一些标志寄存器,可以用来判断复位原因;另外你也可以自己在RAM中埋一些标志。在每次程序复位时,通过判断这些标志,可以判断出不同的复位原因;还可以根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不会察觉到程序被重新复位过。
[单片机]
单片机实现无线遥控教鞭
摘要: 为解决教师在多媒体教学演示中要不断地利用鼠标进行翻页、跳转等控制, 设计以低功耗MSP430F149 单片机为控制核心,接收红外遥控发射的指令信息,并通过串口转USB 接口和计算机通信,控制通过PowerPoint 演示软件所制作的教学课件的运行、翻页、关闭等,此遥控教鞭与传统的鼠标控制相比使用更方便,功能更强大。 多媒体辅助教学模式的兴起, 弥补了传统教学的不足, 在实际操作中教师在进行多媒体演示时, 要不时地进行鼠标操作, 使之不得不中断与学生的互动。无线遥控教鞭是一个很好的解决方案。 1 系统框架 整个系统由发射电路、接收电路和计算机软件三部分组成。发射部分, 即手持教鞭部分, 以日本NEC 的
[单片机]
基于MSP430单片机的PID参数整定仪
PID控制是最常的控制策略,在工业过程控制中90%以上的控制回路具有PID结构。PID控制之所以被广泛应用主要是因为它算法简单,在实际中容易被理解和实现,而且许多高级控制都以PID控制为基础。但是由于环境的变化,使被控对象具有时变性,参数经过一段时间以后会出现性能欠佳、适应性变差、控制效果下降等情况。因此,寻求参数自动整定技术,以适应复杂工况及高性能指标的控制要求,是实现节能优化控制的重要手段,具有重大的工程实践意义。 1 自整定过程原理 本文主要研究了一种手持式的PID参数整定仪器,此整定仪具有整定单变量和双变量的双重功能,控制系统主要采用低能耗的MSP430微控制器,软件部分采用的软件开发平台是IAR MSP4
[单片机]
爱特梅尔推出业界最强大的6引脚微控制器
爱特梅尔公司 (Atmel® Corporation) 宣布推出全新AVR® picoPower™ 器件ATtiny10,带有1k bytes可编程闪存和32 bytes内部SARM,提供高达12 MIPS的处理能力,并具有 8位A/C转换器、模拟比较器以及带有PWM的16位定时器。这款6引脚器件是在尺寸和成本上受限的大批量消费应用的完美解决方案。 ATtiny10使用性能卓越的AVR CPU,运作速度较市场上任何其它相若尺寸的微控制器快6倍,此一处理效率能够大幅缩短器件在工作模式的时间,而增加处于节能睡眠模式的时间;结合爱特梅尔的picoPower技术,能够确保达到业界领先的功耗数值。 爱特梅尔公司
[单片机]
PIC单片机C语言程序设计实例之C语言if语句与LED数码管显示
if 语句也称为条件语句,是C 语言中转移语句之一。在设计C 语言程序时,常常要根据某些条件以决定程序运行的流向,这时就需要if 语句来实现。任何if语句(包括else 部分),都可当作一条C 语句使用。 格式:if(表达式) 语句1 else 语句2 其中else 为选择项;即可有、可无的。所以条件语句,可分为两种;if 语句和if— else 语句。 式中的表达式为关系表达式或逻辑表达式以及由条件运算符(有关运算符将在后文介绍)构成的一种表达式。 功能:先计算if 中的条件表达式,其值为真(满足条件时),执行语句1 ;其值为假(不满足条件时),若有else,就执行语句2。 If 语句常用有几种形式:
[单片机]
HPI在MCU和DSP接口中的应用
描述HP I接口的工作原理及C8051F060和 TMS320VC5409 (简称C5409)之间的接口电路设计,给出了HP I接口的软件设计。该系统具有设计灵活、数据传输速度快、适用于其他含有HP I接口的DSP应用系统,为开发人员提供了一种便捷稳定的数据共享、传输方式。 1 TMS320VC5409的HPI - 8接口 C5409的HP I - 8是一个增强型8位HP I8接口,主要用来与主处理器接口。C5409 内部有32K的RAM空间,除了DSP本身可以访问该RAM区域外,主机也可以通过HP I口实现对整个RAM的访问,从而实现主机与DSP的通信。HPI - 8接口通过HP I控制寄存器HP IC、地址寄存器
[工业控制]
基于单片机的井场仪表参数无线传输系统的设计
1引 言 目前,全国油田钻井现场基本都是有线数据传输。有线传输有很多缺点,现场布线复杂而且存在安全隐患,钻井是流动作业,每钻一口井就要重新布一次线,这样既费时又费力,有时还会由于布线走向的问题导致线路被碰断。一般说来,数据线都是空中架设,风吹日晒使数据线老化的较快,这样就带来直接的经济损失。钻井现场有很多公司在作业,有些参数各公司是共用的,同一个参数每个公司都要读取一次,就需要在同一个测量点上安装两台甚至更多的变送器,这样既造成了浪费又使得现场变送器安装位置紧张。 本系统采用无线通信技术,一点发射多点接收,可以实现信息共享,避免了布线的麻烦,而且流动作业时可以方便地安装和拆卸,很好地提高了工作效率。 2系统硬件设计 如图1
[单片机]