51单片机串口通信问题 10
#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintuchari=0;uinta=2000;vo...
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar i=0;
uint a=2000;
void init()
{
SCON=0x40; //Í通信方式2,不接收
TMOD=0x20; //定时器1, 方式2
TH1 =0xfa; //波特率4800, 不加倍,f=12MHZ
TL1 =0xfa;
TR1 =1; //打开定时器T1
}
void delay()
{
while(a--);
}
void main()
{
init();
while(1)
{
SBUF=i;
while(!TI);
TI=0;
delay();
}
}
我想把i=0发送到串口助手,但是串口不显示0000----, 代码有错吗?哪位知道,解释一下啊 展开
#define uchar unsigned char
#define uint unsigned int
uchar i=0;
uint a=2000;
void init()
{
SCON=0x40; //Í通信方式2,不接收
TMOD=0x20; //定时器1, 方式2
TH1 =0xfa; //波特率4800, 不加倍,f=12MHZ
TL1 =0xfa;
TR1 =1; //打开定时器T1
}
void delay()
{
while(a--);
}
void main()
{
init();
while(1)
{
SBUF=i;
while(!TI);
TI=0;
delay();
}
}
我想把i=0发送到串口助手,但是串口不显示0000----, 代码有错吗?哪位知道,解释一下啊 展开
展开全部
串口助手,需要设置成:16 进制显示。
追问
什么都不显示,程序有没有错?
追答
程序,虽然有些毛病,但是,也可以发送。
你发送可见的符号,试试看,如:SBUF='A';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在init函数里最后加一句EA=1
追问
加EA ? 那不还要加 ES 还要写中断?
追答
不用。EA=1是开总中断,因为你用了定时器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询