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

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > C51:串口通信接收與發送

C51:串口通信接收與發送

作者: 時間:2016-11-09 來源:網絡 收藏
假設要發送一組數據 Send[10]

一般采用查詢發送(循環發送)方式:
unsigned char Send[10]; //發送量
unsigned char i; //循環量
for(i=0;i<10;i++)
{
SBUF= Send[i]; //發送
while(TI==0); //等待發送完成
TI=0; //清標志
}

采用中斷發送方式:
unsigned char Send[10]; //發送量
unsigned char num; //發送數據量
unsigned char *p; //發送用指針

//發送時:
num=10; //定義發送數據量
p=&Send ; //取首地址
SBUF=*p; //發送第一個數據,啟動發送中斷
//中斷代碼:
void ComInt() interrupt 4
{
if(RI) RI=0; //接收中斷略;

if(TI) //發送中斷處理
{
TI=0; //清標志
num--; //計數減1
p++; //指針加1
if(num >0) SBUF=*p; //數據繼續發送至全部發完
}
}

中斷發送優點:省去循環等待時間,以上面例子為例,9600bps時查詢發送約占用單片機10ms多,而中斷發送只占單片機幾十微秒(單片機速度越快

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

,占用時間越少)。
中斷發送缺點:代碼稍復雜,發送過程不易控制。



評論


技術專區

關閉