#include
#define BUFFERLEGTH 10
//-----------------------------------------------------------------
void UART_init(); //串口初始化函數(shù)
void COM_send(void); //串口發(fā)送函數(shù)
char str[20];
char j;
//-------------------------------------------------------------------
void main(void)
{
unsigned char i;
UART_init();
j=0; //初始化串口
for(i = 0;i
};
while(1);
}
//-------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: UART_init()串口初始化函數(shù)
// 函數(shù)功能: 在系統(tǒng)時(shí)鐘為11.059MHZ時(shí),設(shè)定串口波特率為9600bit/s
// 串口接收中斷允許,發(fā)送中斷禁止
//--------------------------------------------------------------------------------------------------
void UART_init()
{
//初始化串行口和波特率發(fā)生器
SCON =0x50; //選擇串口工作方式1,打開接收允許
TMOD =0x20; //定時(shí)器1工作在方式2,定時(shí)器0工作在方式1
TH1 =0xfA; //實(shí)現(xiàn)波特率9600(系統(tǒng)時(shí)鐘11.0592MHZ)
PCON = 0x80;
TR1 =1; //啟動(dòng)定時(shí)器T1
ET1 =0;
ES=1; //允許串行口中斷
PS=1; //設(shè)計(jì)串行口中斷優(yōu)先級
EA =1; //單片機(jī)中斷允許
}
//------------------------------------------------------------
void COM_send(void)
{
unsigned char point = 0;
for(point=0;str[point]!='\0';point++) //連續(xù)發(fā)送二十位數(shù)據(jù) //把緩存區(qū)的數(shù)據(jù)都發(fā)送到串口
{
SBUF=str[point];
while(!TI);
TI=0;
//str[point]='\0';
}
}
//--------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函數(shù)名稱: com_interrup()串口接收中斷處理函數(shù)
// 函數(shù)功能: 接收包括起始位'S'在內(nèi)的十位數(shù)據(jù)到數(shù)據(jù)緩沖區(qū)
//--------------------------------------------------------------------------------------------------
void com_interrupt(void) interrupt 4 using 3
{
unsigned char RECEIVR_buffer;
bit flag=1;
if(RI) //處理接收中斷
{
RI=0; //清除中斷標(biāo)志位
RECEIVR_buffer=SBUF; //接收串口數(shù)據(jù)
str[j]=SBUF;
if (RECEIVR_buffer == '$')
{ ES=0;
str[j]='\0';
SCON =0x40; //接收不允許
COM_send(); //發(fā)送數(shù)據(jù)
ES=1;
j=0;
flag=0;
SCON=0x50; //接收允許
}
if(flag)
j++;
}
}
-
單片機(jī)
+關(guān)注
關(guān)注
6035文章
44554瀏覽量
634629 -
程序
+關(guān)注
關(guān)注
117文章
3785瀏覽量
81002 -
串口通信
+關(guān)注
關(guān)注
34文章
1624瀏覽量
55507
原文標(biāo)題:單片機(jī)與pc串口通信程序及電路圖
文章出處:【微信號(hào):changxuemcu,微信公眾號(hào):暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論