求一个51单片机与PC通信的程序 30
用C语言编写,要求用串口调试助手发送任意字符给单片机单片机返回‘ok’显示在接收区上。(程序简单一点,最好注释一下)波特率是9600的。硬件电路图如图所示,...
用C语言编写,要求用串口调试助手发送任意字符给单片机单片机返回‘ok’显示在接收区上。(程序简单一点,最好注释一下)波特率是9600的。硬件电路图如图所示,
展开
展开全部
#include<reg51.h>
main()
{
TMOD=0x20;
TH1=TL1=0x20;
TR1=1;
while(1)
{
if(RI)//串口有数据则循环
{
RI=0;//清标志
TI=0;//清发送标志
SBUF='O';//发送O
while(!TI);//等待发送完成
TI=0;//清发送标志
SBUF='K';//发送K
while(!TI);//等待发送完
TI=0;
}
}
}
main()
{
TMOD=0x20;
TH1=TL1=0x20;
TR1=1;
while(1)
{
if(RI)//串口有数据则循环
{
RI=0;//清标志
TI=0;//清发送标志
SBUF='O';//发送O
while(!TI);//等待发送完成
TI=0;//清发送标志
SBUF='K';//发送K
while(!TI);//等待发送完
TI=0;
}
}
}
追问
为什么th1跟tl1的初始值是0x20而不是0xfd?
追答
哦,写错了,是0xfd
展开全部
#include<reg51.h>
main()
{
PCON = 0;
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
IE = 0x90;
while(1);
}
void s_int() interrupt 4
{
if(RI) {
RI = 0; //清标志
SBUF = SBUF; //接收并发送
}
else TI = 0;
}
main()
{
PCON = 0;
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
IE = 0x90;
while(1);
}
void s_int() interrupt 4
{
if(RI) {
RI = 0; //清标志
SBUF = SBUF; //接收并发送
}
else TI = 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询