通常採用查詢發送(循環發送)方式:
unsigned char Send[10]; //發送量
unsigned char i; //循環量
for(i=0;i<10;i++)
{
}
採用中斷髮送方式:
unsigned char Send[10]; //發送量
unsigned char num; //發送數據量
unsigned char *p; //發送用指針
//發送時:
num=10; //定義發送數據量
p=&Send ; //取首地址
SBUF=*p; //發送第一個數據,啓動發送中斷
//中斷代碼:
void ComInt() interrupt 4
{
}
中斷髮送優勢:省去循環等待時間,以上面例子爲例,9600bps時查詢發送約佔用單片機10ms多,而中斷髮送只佔單片機幾十微秒(單片機速度越快,佔用時間越少)。
中斷髮送缺點:代碼稍複雜,發送過程不易控制。