51單片機的串口中斷設(shè)置

發(fā)布時間:2024-03-22
首先,你要用軟件允許中斷,
即c語言中ea = 1; 允許總中斷es = 1;
//允許串口中斷匯編中可用
setb ea ;允許總中斷
setb es ;允許串口中斷
當單片機接收到一幀數(shù)據(jù)后,ri會置1,向cpu申請中斷,若之前有中斷允許,則產(chǎn)生了中斷,進入中斷服務(wù)程序。
當然,單片機發(fā)送完一幀數(shù)據(jù),ti也會置1,同樣會產(chǎn)生中斷!
一般我們在發(fā)送數(shù)據(jù)時要關(guān)中斷,因為一般你不用在發(fā)送時不用處理數(shù)據(jù);
接收數(shù)據(jù)時要開中斷,以便你在中斷服務(wù)程序中將接收到的數(shù)據(jù)進行存儲并處理。
補充:其實,不管你有沒有允許中斷,上位機(此時即給單片機發(fā)送信息的機器)只要給單片機發(fā)送數(shù)據(jù),單片機就會自動接收數(shù)據(jù),并把它放在數(shù)據(jù)緩沖器sbuf中,如果你之前有允許串行口中斷,ri就會置1,向單片機cpu申請中斷,并進入中斷服務(wù)程序,做完中斷函數(shù)后就會自動返回斷點。如果你沒有允許中斷,便不會產(chǎn)生串行中斷。其實,別的中斷都是某個i/o口電平變化產(chǎn)生。這只是外部中斷產(chǎn)生條件,不過,你之前也需要用軟件允許外部中斷。
另外,常見的51系列單片機有5個中斷源三種中斷5:
1、外部中斷0和1;
2、定時器/計數(shù)器溢出中斷0和1;
3、串行口中斷。
另外,stc51系列還有定時器/計數(shù)器t2中斷,a/d轉(zhuǎn)換中斷,pwm中斷,串行中斷2等等。你還有什么不懂的可以自己多翻一翻書,學(xué)到后面去了你就明白了。
中斷服務(wù)程序中,那條 ri=0;是不可少的,這是用軟件清零ri,準備再次接受一幀數(shù)據(jù)產(chǎn)生中斷,如果你沒有這條語句,就會進入死循環(huán),出不來了。
void serial() interrupt 4
{ p1=sbuf;
ri=0;
}
上一個:植酸
下一個:案件未結(jié)影響更換駕照么

GR1210J2K2T5G00_J 1210 2.2K現(xiàn)貨購買,鼎聲微1210 2.2KΩ ±5% 1/2W
RC-01W4751FT在線查庫存,今日報價
酒駕打交警會判刑嗎
壓力表的質(zhì)量要求
恩施山區(qū)茶葉冬后管理措施
電機發(fā)熱的原因及解決方法
地面工程設(shè)計基本要求有哪些?
華為p6emui30怎么樣,華為p6移動版更新emui30運行怎么樣
厚聲1210W2F2203T5E今日行情、最新報價
冬季城市園林綠化管理措施集萃
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos