怎样通过单片机串口将数传给电脑,这是串口通信代码,我的程序里有一个变量a,怎样将a的值实时传给电脑

假设a已经存在,需要在这段程序里加什么才能将a传到PC上,在串口调试助手中看到?求大神们解答,感激不尽!

/*******************************************************************************
* 实验名 : 串口实验
* 使用的IO : P2
* 实验效果 : 将接收到发送回电脑上面。
* 注意 :
*******************************************************************************/

#include<reg51.h>

void UsartConfiguration();
/*******************************************************************************
* 函数名 : main
* 函数功能 : 主函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/

void main()
{
UsartConfiguration();
while(1)
{

}
}
/*******************************************************************************
* 函数名 :UsartConfiguration()
* 函数功能 :设置串口
* 输入 : 无
* 输出 : 无
*******************************************************************************/

void UsartConfiguration()
{
SCON=0X50; //设置为工作方式1
TMOD=0X20; //设置计数器工作方式2
PCON=0X80; //波特率加倍
TH1=0XF3; //计数器初始值设置,注意波特率是4800的
TL1=0XF3;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开计数器
}

/*******************************************************************************
* 函数名 :Delay(unsigned int i)
* 函数功能 : 延时函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void Usart() interrupt 4
{
unsigned char receiveData;

receiveData=SBUF;//出去接收到的数据
RI = 0;//清除接收中断标志位
SBUF=receiveData;//将接收到的数据放入到发送寄存器
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
}

SBUF=a;

while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位追问

是放在main的while(1)部分里吗?我写的是一个计数器,如果a的值加一次就要传一次要还是这样写不?麻烦了

追答

是啊,不过a加1后做个标志位,发现变化再发送,要不然就一直发送。。。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-14
SBUF=a;
就行了
相似回答