新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)的串口中斷設(shè)置

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

        作者: 時(shí)間:2014-01-18 來源:網(wǎng)絡(luò) 收藏

        首先,你要用軟件允許中斷,

        即C語言中EA = 1; 允許總中斷ES = 1;

        //允許中斷匯編中可用

        SETB EA ;允許總中斷

        SETB ES ;允許中斷

        當(dāng)單片機(jī)接收到一幀數(shù)據(jù)后,RI會(huì)置1,向CPU申請中斷,若之前有中斷允許,則產(chǎn)生了中斷,進(jìn)入中斷服務(wù)程序。

        當(dāng)然,單片機(jī)發(fā)送完一幀數(shù)據(jù),TI也會(huì)置1,同樣會(huì)產(chǎn)生中斷!

        一般我們在發(fā)送數(shù)據(jù)時(shí)要關(guān)中斷,因?yàn)橐话隳悴挥迷诎l(fā)送時(shí)不用處理數(shù)據(jù);

        接收數(shù)據(jù)時(shí)要開中斷,以便你在中斷服務(wù)程序中將接收到的數(shù)據(jù)進(jìn)行存儲(chǔ)并處理。

        補(bǔ)充:其實(shí),不管你有沒有允許中斷,上位機(jī)(此時(shí)即給單片機(jī)發(fā)送信息的機(jī)器)只要給單片機(jī)發(fā)送數(shù)據(jù),單片機(jī)就會(huì)自動(dòng)接收數(shù)據(jù),并把它放在數(shù)據(jù)緩沖器SBUF中,如果你之前有允許串行口中斷,RI就會(huì)置1,向單片機(jī)CPU申請中斷,并進(jìn)入中斷服務(wù)程序,做完中斷函數(shù)后就會(huì)自動(dòng)返回?cái)帱c(diǎn)。如果你沒有允許中斷,便不會(huì)產(chǎn)生串行中斷。其實(shí),別的中斷都是某個(gè)I/O口電平變化產(chǎn)生。這只是外部中斷產(chǎn)生條件,不過,你之前也需要用軟件允許外部中斷。

        另外,常見的51系列單片機(jī)有5個(gè)中斷源三種中斷5:

        1、外部中斷0和1;

        2、定時(shí)器/計(jì)數(shù)器溢出中斷0和1;

        3、串行口中斷。

        另外,STC51系列還有定時(shí)器/計(jì)數(shù)器T2中斷,A/D轉(zhuǎn)換中斷,PWM中斷,串行中斷2等等。你還有什么不懂的可以自己多翻一翻書,學(xué)到后面去了你就明白了。

        中斷服務(wù)程序中,那條 RI=0;是不可少的,這是用軟件清零RI,準(zhǔn)備再次接受一幀數(shù)據(jù)產(chǎn)生中斷,如果你沒有這條語句,就會(huì)進(jìn)入死循環(huán),出不來了。

        void serial() interrupt 4

        { P1=SBUF;

        RI=0;

        }

        51單片機(jī)相關(guān)文章:51單片機(jī)教程


        c語言相關(guān)文章:c語言教程


        單片機(jī)相關(guān)文章:單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)視頻教程


        單片機(jī)相關(guān)文章:單片機(jī)工作原理


        塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理


        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 通州区| 三穗县| 太保市| 喀喇沁旗| 邹城市| 弋阳县| 方正县| 县级市| 隆回县| 沁水县| 邹平县| 普格县| 仲巴县| 天气| 榆树市| 漯河市| 汝州市| 丹棱县| 桂平市| 云浮市| 娄底市| 乳山市| 阿尔山市| 岱山县| 兴化市| 外汇| 红河县| 开远市| 万年县| 麻阳| 桑植县| 马公市| 麻栗坡县| 夏津县| 芮城县| 桐柏县| 青龙| 方正县| 凭祥市| 左贡县| 万荣县|