51单片机串口通信定时器初值怎么计算啊?公式和计算原理麻烦说一下!

如题所述

串口通信方式1和方式3,要用T1来控制波特率

T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:
T1初值 = 256 - fosc * (SMOD + 1) / (384 * 波特率)

--我不明白波特率跟这个定时器的关系。麻烦你详细一点!

这个关系,是由硬件决定的,只有搞微电子的,才能弄明白。
软件人员,编程的时候,会用这个公式即可,也没有必要弄明白这个。

基本上,也没有几个人,能够弄明白集成电路内部,究竟是怎么处理的。
其它的很多人,好像是很明白,其实都是在瞎编理由,包括写书的那些人。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-15
//工作频率12M,所以定时器脉冲频率为1M=1000000
#define F 12 //时钟频率,单位MHz
#define BaudRate 1200
#define oTH1 (256-(((F*1000000)/384) / BaudRate)) // 定时器1计数器高字节初值追问

我在网上也找到了这个答案,但是我不明白波特率跟这个定时器的关系。麻烦你详细一点!

追答

就是计数器溢出一次的时间就是串口一位数据的时间

第2个回答  2013-03-15
看看我的这个回答肯定会帮到你的。
http://zhidao.baidu.com/question/472019671?&oldq=1

51单片机串口通信定时器初值怎么计算啊?公式和计算原理麻烦说一下!
串口通信方式1和方式3,要用T1来控制波特率。T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:T1初值 = 256 - fosc * (SMOD + 1) \/ (384 * 波特率)--我不明白波特率跟这个定时器的关系。麻烦你详细一点!这个关系,是由硬件决定的,只有搞微电子的,才能弄明白。软件人...

51单片机串口通信,定时器1,8位自动重装初值的求法
1 公式一的结果为TH1=TL1=-3 2 公式二结果为TH1=TL1=253 无论使用哪个参数,程序都可以正常运行,这就对了。因为这俩数 表面上看着不同 实际是一样的。公式二结果为TH1=TL1=253 为正数,公式一的结果为TH1=TL1=-3 为负数 在计算机中要用补码表示,应表示为FDH=253.呵呵 这俩个数...

用51单片机串行通信传输数据,每秒传输一个十六位数据,定时器和波特率怎 ...
TH0 =(65536-2500)\/256; \/\/约2.50MS定时器初值 TL0 =(65536-2500)%256; \/\/约2.50MS定时器初值 ET0 = 1;TR0 = 1; \/\/启动定时器 TR1 = 1; \/\/启动定时器 SM0 SM1 SM0 = 0; \/\/串口通信模式设置 0 0 = 0 SM1 = 1; \/\/ 0 1 = 1 REN = 1;...

51单片机波特率公式?
溢出速率=(计数速率)\/(256-TH1初值) =(fosc\/12)\/(256 - TH1初值)先记住吧;另外,纠正一下,不是一个字节要采集16次检测,而是一个二进制位要采集16次;

关于串口通信波特率的几点思考 - 草稿
      首先,通信波特率的定时器初值的计算公式:TH1 = TL1 = 256 - 晶振\/12\/16\/波特率\/2.如果写了PCON=0X80,就不需除2.,PCON为电源管理寄存器,他的最高位可以把波特率提高一倍。      在这里 ,256是8位定时器的溢出值,也就是TL1的溢出值。12...

已经51单片机的晶振频率是12MHZ 要产生4800BPS的波特率 问波特率的...
最后推出公式:TH1=256-(fosc*2^SMOD)\/(baudrate*12*32);呵呵 如果你用方式2(波特率 =((2^SMOD)\/64)• fosc )的话 12M的晶振就不能得到9600波特率了(除非你改变你的晶振,但是那样的晶振好像没有卖) 所以你只能选择方式1或3 而且12M的晶振在串口传输时会有误差,就如你上面算的...

51单片机,晶振选用12M,串口通信波特率应该用多少合适,TH1,TL1初值为多 ...
我的LCD是HMI,它也要设定波特率,我需要把我的单片机程序中TH1和TL1都设为F3,也就是2400的波特率,同时也要把我的LCD的波特率也设定为2400。由于我还没有做过串口打印的实验,所以对这个不是很清楚,但是你要知道通信双方的波特率必须一致,你可以参考一下我的这个例子,祝你成功!

51单片机知识点汇总,学好这篇文章基本算入门了
数码管显示原理:通过定义数组和赋值控制数码管显示。中断概念:51单片机的中断源及其功能。定时器中断:T0和T1的用法,初始化步骤和工作模式。通信方式:并行与串行,异步与同步的区别。电平转换:使用MAX232进行RS-232与TTL电平转换。波特率与定时器初值的关系:串口通信速率设定及晶振选择的考量。

51单片机脉冲为什么是11.0592而不是12
因为51单片机的波特率发生器只能由定时器T1或定时器T2产生,由于我们使用的是STC98C52单片机,是标准51架构的单片机没有T2模块。)对于串口通信来讲最常用的是方式1,以下以串口的模式1来分析。由串口发送原理知,串口发送一次,实际上要发,1位起始位,8位数据位,1位结束位。由于使用模式1没有第9位...

单片机串口通信的波特率有什么用
单片机学习:如何计算单片机串口通信的波特率 波特率的计算有专门的公司,首先是基本的:Fosc\/12\/32,其次就是定时器或者波特率发生器控制部分,如果是定时器1,那么就是256-TH1作为除数,结果就是波特率了,也就是: 波特率=Fosc\/12\/32\/(256-TH1) 最后就是是否加倍了,PCON最高位为1加倍,否则不...

相似回答