谁帮我看一下这个51单片机的串口程序为什么串口调试助手收到的是乱码
我想用单片机向电脑发送数据用串口调试助手观察但我总是收到乱码,晶振是12M波特率600//////////////////////////////////////////...
我想用单片机向电脑发送数据用串口调试助手观察 但我总是收到乱码,晶振是12M 波特率600
////////////////////////////////////////////////////////////////////////////////////////
#include <reg51.h>
#include <string.h>
unsigned char ch='a';
bit TX_flag= 0 ;
void init_serialcom( void ) //串口通信初始设定
{
SCON = 0x50 ; //UART为模式1,8位数据,允许接收
TMOD= 0x20 ; //定时器1为模式2,8位自动重装
PCON= 0x80 ; //SMOD=1;
TH1=TL1=0xcc ; //Baud:19200 fosc="12MHz
IE= 0x90 ; //Enable Serial Interrupt
TR1= 1 ; // timer 1 run
TI=1;
}
//向串口发送一个字符
void send_char_com( unsigned char ch)
{
SBUF=ch;
while (TI==0);
TI=0 ;
}
//串口接收中断函数
void serial () interrupt 4 using 3
{
if (TI)
{
TI = 0 ;
SBUF=ch;
TX_flag= 1 ; //就置位发送标志
}
}
main()
{
init_serialcom(); //初始化串口
while ( 1 )
{
if (TX_flag) //如果取数标志已置位,就将读到的数从串口发出
{
TX_flag= 0 ; //取数标志清0
send_char_com(ch);
}
}
pcon=0x00; 展开
////////////////////////////////////////////////////////////////////////////////////////
#include <reg51.h>
#include <string.h>
unsigned char ch='a';
bit TX_flag= 0 ;
void init_serialcom( void ) //串口通信初始设定
{
SCON = 0x50 ; //UART为模式1,8位数据,允许接收
TMOD= 0x20 ; //定时器1为模式2,8位自动重装
PCON= 0x80 ; //SMOD=1;
TH1=TL1=0xcc ; //Baud:19200 fosc="12MHz
IE= 0x90 ; //Enable Serial Interrupt
TR1= 1 ; // timer 1 run
TI=1;
}
//向串口发送一个字符
void send_char_com( unsigned char ch)
{
SBUF=ch;
while (TI==0);
TI=0 ;
}
//串口接收中断函数
void serial () interrupt 4 using 3
{
if (TI)
{
TI = 0 ;
SBUF=ch;
TX_flag= 1 ; //就置位发送标志
}
}
main()
{
init_serialcom(); //初始化串口
while ( 1 )
{
if (TX_flag) //如果取数标志已置位,就将读到的数从串口发出
{
TX_flag= 0 ; //取数标志清0
send_char_com(ch);
}
}
pcon=0x00; 展开
3个回答
展开全部
晶振是12M 波特率9600//可能你的调试助手波特率9600
TH1=TL1=0xcc ; //Baud:19200 fosc="12MHz //而你的单片机波特率设为19200
当然不能正常显示了
TH1=TL1=0xcc ; //Baud:19200 fosc="12MHz //而你的单片机波特率设为19200
当然不能正常显示了
追问
那个后面的注释不要看了 0xcc我设置的波特率是600
追答
PCON= 0x80 ; //SMOD=1;
波特率倍增了,你在PC端用1200波特率试试看
=======================================
为什么选择这么低的波特率?我还是用常用的9600
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
串口中断号错了吧~~~
追问
对啊 串口中断不是4吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询