本程序实现的效果PC端是发送字符C,继电器吸和;发送字符O,继电器断开。并且单片机不断向PC发送字符a。
现在我想PC端发送字符,同时单片机把接收到的返回给PC显示,但是我不清楚是不是写要中断?#include <reg52.h>
sbit J4=P1^5;
/* ***************************************************** */
// 函数名称:UART_Init()
// 函数功能:串口初始化
// 入口参数:无
// 出口参数:无
/* ***************************************************** */
void UART_Init(void)
{
TMOD &= 0x0f; // 清空定时器1
TMOD |= 0x20; // 定时器1工作于方式2
TH1 = 0xfd; // 为定时器1赋初值
TL1 = 0xfd; // 等价于将波特率设置为9600
ET1 = 0; // 防止中断产生不必要的干扰
TR1 = 1; // 启动定时器1
SCON |= 0x50; // 串口工作于方式1,允许接收
}
/* ***************************************************** */
// 函数名称:UART_SendOneByte()
// 函数功能:发送一个字节
// 入口参数:待发送的数据(uDat)
// 出口参数:无
/* ***************************************************** */
void main(void)
{
unsigned char X;
UART_Init();
while(1)
{
if(RI)
{
X=SBUF;
while(!RI);
RI=0;
if(X=='C')
J4=0;
if(X=='O')
J4=1;
}
else
{
SBUF='a';
while(!TI);
TI=0;
}
}
}
本程序实现的效果PC端是发送字符C,继电器吸和;发送字符O,继电器断开。并且单片机不断向PC发送字符a。
现在我想PC端发送字符,同时单片机把接收到的返回给PC显示,但是我不清楚是不是写要中断?
|