本程序實現的效果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顯示,但是我不清楚是不是寫要中斷?
|