51单片机串行口工作在方式0,如何求波特率,及定时器初值!

51单片机串行口工作在方式0,如何求波特率,假设使用的11.0592M晶振那么波特率固定为多少?还有就是定时器初值如何计算(TL1,TH1分别为多少?)。。。跪求

方式0的波特率是系统时钟的十二分之一,为固定波特率,与定时器无关
定时器计算: 溢出中断的定时器 指令周期是 系统时钟的十二分之一 ,16方式
fosc=11.0592M
fcyc=11059200/12 , 定时时间 tmer ms
TH=(65535-timer*1000/fcyc)/256
TL=(65535-timer*1000/fcyc)%256
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-20

有专用的定时器初值和波特率初值计算软件,很好用的,你把邮箱告诉我,我给你发过去

追问

我的邮箱是tyylove1@163.com 谢谢

第2个回答  2011-05-20
方式0的波特率是系统时钟的十二分之一,与定时器无关追问

那是不是初始化时就不需要写TL1,TH1的值了。还有就是11.0592M/12=921600,这是它的波特率吗?那如果我要向单片机输入数据,pc机,串口接线的波特率怎么设?貌似没这么高的啊。。。

追答

和PC通信不能用方式0,方式0是移位寄存器模式。

追问

那如果我先要从PC机接收数据,然后在以方式0输出数据到芯片,要怎么办?是先以方式1接收完数据再重新初始化? 我新手刚刚接触串行通信,麻烦你了,谢谢!

追答

PC机个单片机发数据要加一个232电平转换,接到你单片机的串口,用方式1。以方式0输出数据用其他IO口模拟,一个数据,一个CP。

追问

——。怎么模拟啊? 您有没有这方面的源程序啊。。。

本回答被提问者采纳
第3个回答  2011-05-20
方式0是移位寄存器。不是UART

51单片机波特率怎么算?
51单片机波特率计算:方式0: Baud=Fosc\/12;方式1: Baud=2^(SMOD)\/32×T1溢出率;方式2: Baud=2^(SMOD)\/64 ×Fosc;方式3: Baud=2^(SMOD)\/32 ×T1溢出率;注:T1溢出率=1\/T1中断时间;题目串口工作方式1,选择 Baud=2^(SMOD)\/(32×T1中断时间);①式 按标准51单片机 12T模式计算,T1工...

MCS-51单片机串口四种工作方式的波特率如何确定
方式0的波特率 = fosc\/12 方式2的波特率 =(2SMOD\/64)· fosc 方式1的波特率 =(2SMOD\/32)·(T1溢出率) 方式3的波特率 =(2SMOD\/32)·(T1溢出率) 当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。这时溢出率取决于TH1中的计数值。

51单片机波特率如何设置啊
方式0的波特率 = fosc\/12 方式2的波特率 =((2^SMOD)\/64)• fosc 方式1的波特率 =((2^SMOD)\/32)•(T1溢出率) 方式3的波特率 =((2^SMOD)\/32)•(T1溢出率) 注意:SMOD为PCON寄存器的最高位(即PCOM<7>)。 T1 溢出率 = fosc \/{12×[256 -(TH1)...

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

51单片机波特率如何设置?
51单片机波特率设置主要有以下两种方式:1) 工作方式0 ,2)工作方式1 。1) 工作方式0 SM0=0且SM1=0时,串口选择工作方式0,实质这是一种同步移位寄存器模式。 其数据传输的波特率固定为Fosc\/12,数据由RXD引脚输入或输出,同步时钟由TXD引脚输出。2)工作方式1 当SM0=0且SM1=1时,串...

51汇编 波特率判断
串行口的工作方式 1.工作方式0:同步移位寄存器工作方式。此时串口相当于一个并入串出或串入并出的移位寄存器。数据从RXD输入或输出(低位在前),而TXD输出同步移位信号,其波特率固定为fOSC\/12,fOSC是时钟频率。数据位数为8位。发送时:用“MOV SBUF,A”指令启动发送操作,每个机器周期TXD发送一个...

什么是波特率?在51单片机中如何使用?
波特率就是一秒种传输0或1的个数,若波特率是9600那么它传输一位0或1的时间就是1\/9600秒如果串口工作在方式一下波特率是9600晶振是11059200 定时器选用timer1的自动重装模式 即1\/9600=定时时间 就是1\/9600=(12*32\/11059200)*(256-定时初值)。那么 定时初值=256-(11059200\/(12*32*9600));这里的...

51单片机的串口波特率问题
51串口有几种工作方式,每种波特率都不尽相同,最常用的是方式一,其波特率由定时器T1的溢出率决定,T1溢出率=Fosc\/{12*【256-TH1】} baudrate=(2^SMOD\/32)*T1溢出率 一般默认SMOD=0;无需设置,需要波特率翻倍时SMOD=1 Fosc=22.1184M,你可以计算一下最高波特率,整数的......

单片机波特率计算问题
溢出速率=fosc\/[12*(256-TH1初值)]比如晶振为11.0592MHz,波特率不加倍,那么 波特率=(1\/32)*11059200\/12\/(256-TH1初值)如果波特率要求为9600 那么TH1初值=256-11059200\/12\/32\/9600=256-3

如何计算单片机的波特率
51的波特率计算根据它的串行口的工作方式 不同,而有不同的算法。1.方式 0 振荡频率\/12 的固定波特率 2.方式 1 (2^SMOD \/32) X 定时器1的溢出率 3.方式 2 (2^SMOD \/64) X 振荡器频率 式中SMOD为特殊功能寄存器 PCON的最高位的值(0或1)你可下载一个叫作单片机小精灵 MCUtool 的...

相似回答