51单片机晶振选用12M,串口通信波特率用9600,我想问下怎么才能 串口打印 0x55呢

我是新手 大家帮下忙阿 555
谁能帮我写下详细的代码 救命~~

那具体应该怎么写阿 能帮我写具体的代码吗? 谢谢了

12M晶振不能输出9600的波特率;
12M晶振只能输出1200的波特率,有少量误差,不过不影响使用。

#include<reg52.h>
#include<intrins.h>

void Uart0_transmit(unsigned char i) //向串口发送一个字节
{
ES=0;
TI=0;
SBUF=i; // 发送数据到uart0
while (!TI); / 等待发送1个字节数据完成
TI=0 ; // 清除中断标志
ES=1;
}

void delay_ms()
{
int i,j;
for(i=1000;i>0;i--) {
for(j=25;j>0;j--) {;}
}
}

void SysInit(void)
{

PCON |=0x80;
SCON=0x50;
TMOD=0x21;
TH1=204;
TL1=204;
TR1=1;
ES=0;
TH0=0xB8;
TL0=0x00;
TR0=1;
ET0=1;

}

void main (void)
{

SysInit();

while (1)
}
Uart0_transmit(0x55);
delay_ms;
}

}

//应该可以了,你稍微调试一下。刚写的
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-02-08
12M通信不标准,要用11.0592M的晶振才能有标准的9600波特,设置好波特率后送到SBUF里发送就行
第2个回答  2012-10-07
TH1=204;
TL1=204;
改为
TH1=230;
TL1=230;
此时波特率为1200
第3个回答  2010-02-08
mov sbuf,#55H就好了,它会自动把55H发送出去。

51单片机晶振选用12M,串口通信波特率用9600,我想问下怎么才能...
Uart0_transmit(0x55);delay_ms;} } \/\/应该可以了,你稍微调试一下。刚写的

51单片机12M晶振下ATMEL公司的FLIP程序可以在9600的速率下和bootloader...
12M也是可以通讯的,不过不是准确的9600的波特率,有一定的误差,但是一般通讯都有容错机制的,所以如果不是发送很长的数据,这个波特率的误差造成的误码概率很小。

用51单片机串口实验时波特率怎么调才合适??我觉得是不是就给它调高点...
通过我的使用经验,一般RS232传输距离在1米以内的话,115200bps的波特率是没有什么问题的。10米以内的话9600bps肯定可以稳定传输(关键是要保证电压,也就是解决压降的问题。)。超过10米的话最好用485了。

51串口选择同步通信晶振11.0592 波特率= fosc \/ 12 但我要波特率为9600...
在FPGA中串口波特率的设置与时钟频率有关,目测单片机也应该有设置波特率的接口,应该设置寄存器

什么是波特率?在51单片机中如何使用?
定时器选用timer1的自动重装模式 即1\/9600=定时时间 就是1\/9600=(12*32\/11059200)*(256-定时初值)。那么 定时初值=256-(11059200\/(12*32*9600));这里的32是51单片机的硬件典型结构,串口通信使用的频率是晶振频率的1\/32或者1\/16,但是这种模式下,限制了波特率的提高,因此,现在一些改进的51...

单片机12M晶振串口用什么波特率最好
最好是用11.0592M的,这个频率可以选任意的一个波特率(都可以被1600整除),12M的晶振波特率只能是2400,9600的情况下会有7.8%的误差,会产生乱码,而2400波特率的情况下误差是0.16%,不会产生乱码了

51单片机波特率如何设置啊
12M的晶振就不能得到9600波特率了(除非你改变你的晶振,但是那样的晶振好像没有卖) 所以你只能选择方式1或3 而且12M的晶振在串口传输时会有误差,就如你上面算的那样结果会有小数点 TH1又只能是整数的 所以传输时会有误差.参考:include<reg51.h> define baudrate 9600UL define fosc 11059200UL...

51单片机,晶振选用12M,串口通信波特率应该用多少合适,TH1,TL1初值为多 ...
在你这个情况下,我可以负责的告诉你,12M的晶振波特率只能是2400,9600的情况下会有7.8%的误差,所以会产生乱码,而2400波特率的情况下误差是0.16%,这样就不会产生乱码了,TH1和TL1都设为F3,你再试试。希望能帮到你 根据你的补充,我也补充一下:我前些天也在做单片机和LCD之间的通信,我的LCD...

51串口通讯中,波特率9600,我晶振是12M的,这样行吗,计算不是整数
通信会有误差,建议你选择11.0592或22.1184的,要不通信不了

51单片机一般选用多少的晶振
这个与用途有关,比如说如果你要用到串口,那么就常用11.0592MHz晶振,因为这个频率的晶振分频后可以得到精确的波特率。如果要用到计时,就常用12MHz晶振,这样分频后是个整数,计时更精确。当需要单片机比较快速的处理数据时,通常使用频率更高的晶振,因为单片机的处理速度与晶振频率成正比,晶振频率越高...

相似回答