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

我是新手大家帮下忙阿555谁能帮我写下详细的代码救命~~那具体应该怎么写阿能帮我写具体的代码吗?谢谢了... 我是新手 大家帮下忙阿 555
谁能帮我写下详细的代码 救命~~

那具体应该怎么写阿 能帮我写具体的代码吗? 谢谢了
展开
 我来答
womenhome
推荐于2017-10-01
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
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;
}

}

//应该可以了,你稍微调试一下。刚写的
cxtldh
2010-02-08 · TA获得超过342个赞
知道小有建树答主
回答量:640
采纳率:100%
帮助的人:448万
展开全部
12M通信不标准,要用11.0592M的晶振才能有标准的9600波特,设置好波特率后送到SBUF里发送就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
独孤求上清
2012-10-07 · 超过24用户采纳过TA的回答
知道答主
回答量:150
采纳率:0%
帮助的人:75.9万
展开全部
TH1=204;
TL1=204;
改为
TH1=230;
TL1=230;
此时波特率为1200
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
trousers
2010-02-08 · TA获得超过4704个赞
知道大有可为答主
回答量:968
采纳率:100%
帮助的人:1535万
展开全部
mov sbuf,#55H就好了,它会自动把55H发送出去。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式