|
本程序?qū)崿F(xiàn)的效果PC端是發(fā)送字符C,繼電器吸和;發(fā)送字符O,繼電器斷開(kāi)。并且單片機(jī)不斷向PC發(fā)送字符a。
現(xiàn)在我想PC端發(fā)送字符,同時(shí)單片機(jī)把接收到的返回給PC顯示,但是我不清楚是不是寫要中斷?#include <reg52.h>
sbit J4=P1^5;
/* ***************************************************** */
// 函數(shù)名稱:UART_Init()
// 函數(shù)功能:串口初始化
// 入口參數(shù):無(wú)
// 出口參數(shù):無(wú)
/* ***************************************************** */
void UART_Init(void)
{
TMOD &= 0x0f; // 清空定時(shí)器1
TMOD |= 0x20; // 定時(shí)器1工作于方式2
TH1 = 0xfd; // 為定時(shí)器1賦初值
TL1 = 0xfd; // 等價(jià)于將波特率設(shè)置為9600
ET1 = 0; // 防止中斷產(chǎn)生不必要的干擾
TR1 = 1; // 啟動(dòng)定時(shí)器1
SCON |= 0x50; // 串口工作于方式1,允許接收
}
/* ***************************************************** */
// 函數(shù)名稱:UART_SendOneByte()
// 函數(shù)功能:發(fā)送一個(gè)字節(jié)
// 入口參數(shù):待發(fā)送的數(shù)據(jù)(uDat)
// 出口參數(shù):無(wú)
/* ***************************************************** */
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;
}
}
}
本程序?qū)崿F(xiàn)的效果PC端是發(fā)送字符C,繼電器吸和;發(fā)送字符O,繼電器斷開(kāi)。并且單片機(jī)不斷向PC發(fā)送字符a。
現(xiàn)在我想PC端發(fā)送字符,同時(shí)單片機(jī)把接收到的返回給PC顯示,但是我不清楚是不是寫要中斷?
|
|