久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機與PC串口通信程序

51單片機與PC串口通信程序

作者: 時間:2016-11-20 來源:網絡 收藏
#include

#define BUFFERLEGTH 10
//-----------------------------------------------------------------
void UART_init(); //串口初始化函數
void COM_send(void); //串口發送函數
char str[20];
char j;
//-------------------------------------------------------------------
void main(void)
{
unsigned char i;
UART_init();
j=0; //初始化串口
for(i = 0;i < 10 ;i++)
{
COM_send(); //首先發送一次數據作為測試用

本文引用地址:http://cqxgywz.com/article/201611/318576.htm

};

while(1);
}


//-------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函數名稱: UART_init()串口初始化函數
// 函數功能: 在系統時鐘為11.059MHZ時,設定串口波特率為9600bit/s
// 串口接收中斷允許,發送中斷禁止
//--------------------------------------------------------------------------------------------------
void UART_init()
{
//初始化串行口和波特率發生器
SCON =0x50; //選擇串口工作方式1,打開接收允許
TMOD =0x20; //定時器1工作在方式2,定時器0工作在方式1
TH1 =0xfA; //實現波特率9600(系統時鐘11.0592MHZ)
PCON = 0x80;
TR1 =1; //啟動定時器T1
ET1 =0;
ES=1; //允許串行口中斷
PS=1; //設計串行口中斷優先級
EA =1; //單片機中斷允許
}
//------------------------------------------------------------
void COM_send(void)
{
unsigned char point = 0;
for(point=0;str[point]!=/0;point++) //連續發送二十位數據 //把緩存區的數據都發送到串口
{
SBUF=str[point];
while(!TI);
TI=0;
//str[point]=/0;
}

}
//--------------------------------------------------------------
//--------------------------------------------------------------------------------------------------
// 函數名稱: com_interrup()串口接收中斷處理函數
// 函數功能: 接收包括起始位S在內的十位數據到數據緩沖區
//--------------------------------------------------------------------------------------------------
void com_interrupt(void) interrupt 4 using 3
{
unsigned char RECEIVR_buffer;
bit flag=1;
if(RI) //處理接收中斷
{
RI=0; //清除中斷標志位
RECEIVR_buffer=SBUF; //接收串口數據
str[j]=SBUF;
if (RECEIVR_buffer == $)
{ ES=0;
str[j]=/0;
SCON =0x40; //接收不允許
COM_send(); //發送數據
ES=1;
j=0;
flag=0;
SCON=0x50; //接收允許
}
if(flag)
j++;
}
}



評論


技術專區

關閉