51单片机,怎样设置晶振22.1184波特率115200 ?要程序的.......

void UartInit(void) //115200bps@22.1184MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据,可变波特率
TMOD = 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFF; //设定定时初值
TH1 = 0xFF; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
TI = 1; //先判断后发送,提高效率
}
我们51单片机中用的22.1148的晶振,想把波特率改为115200的 ... ... 麻烦大师看看这段城西哪里有错误 ? 我给嵌入式打印机输程序为什么会出现乱码 ?

第1个回答  2013-08-06
建议你到网上下载一个51串口波特率计算器。本回答被提问者采纳

51单片机 T2模块 22.1184晶振 产生115200波特率
波特率=115200,晶振 22118400,带入公式 115200=221184\/2\/(16*(RCAP2H,RCAP2L) )(RCAP2H,RCAP2L) =65530。51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代...

51单片机, 晶振22.1184M ,波特率要求115200,算一下TH1 TL1初值分别多 ...
TH1=0XFF;TL1=0XFF;SMOD=1; 波特率加倍 这已经是极限的波特率,不是特殊情况,不要使用!

STC12c5204AD单片机22.1184晶振如何实现115200波特率串口通信
void UartInit(void) \/\/115200bps@22.1184MHz { PCON |= 0x80; \/\/使能波特率倍速位SMOD SCON = 0x50; \/\/8位数据,可变波特率 AUXR |= 0x40; \/\/定时器1时钟为Fosc,即1T AUXR &= 0xFE; \/\/串口1选择定时器1为波特率发生器 TMOD &= 0x0F; \/\/清除定时器1模式位 TMOD |= 0...

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

使用51单片机定时器,晶振是22.1184M,采用P1.0脚控制定时器产生10分钟的...
10分钟的产生用定时器0实现,方波信号的产生用定时器1实现即可,2个定时器,关键在于定时器的使用,没你想像的那么难吧...可以百度下:51定时器和51用定时器产生PWM波

光立方单片机外部晶振改成22.1184了,对应程序怎么改?
晶振频率改变了,在程序中与晶振频率有关的部分就要做修改的,一是串口波特率变了,要保持原波特率就得重新计算时间常数,即TH1,TL1的值。二是定时器T0的时间变了,时间常数也要改变,重新计算,那个TH0,TL0的值,不过,如果不变的话,对显示没有什么影响就不用变了。

单片机 急需22.1184Mhz的晶振的尽可能精确的延时函数,单位为“us”C语...
看样子你是用的51单片机吧,一般都用的11.0592的,你用的大了点,但这也不影响;但你要注意它每执行一步用的时候为0.5微秒,所以:void delayus (unsigned x){ for (;x>0;x--)_nop_();} 然后你再用KEIL里的调试,去测一下大约用的时间 ...

单片机怎么选择晶振?所谓11.095和22.1184两种的误差最小是指什么?为什...
51芯片的串口工作模式0的波特率是固定的,为fosc\/12,以一个12M的晶振来计算,那么它的波特率可以达到1M。模式2的波特率是固定在fosc\/64或fosc\/32,具体用那一种就取决于PCON寄存器中的SMOD位,如SMOD为0,波特率为focs\/64,SMOD为1,波特率为focs\/32。模式1和模式3的波特率是可变的,取决于定时器...

晶振22.1184M的STC12C5A60S2单片机怎么编写ds18b20程序?怎么调呀...
\/*时序调试可以用定时器,首先把准确的时序调好,然后是在wendu()函数里的复位函数while(dsreset());之后有一定的延时;就行了,我的ds18b20接的是单片机P1^7口,之前也是挑不出来,最后就是在复位函数while(dsreset());之后加了个延时才出来的。另外我用的是lcd1602显示*\/ include <reg51.h> in...

51单片机工作在24M晶振时的串口如何设置?波特率9600
24M有误差的。可以选22.1184M,9600bps,T1初值设为184,SCON=80H,SMOD=0

相似回答