久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

關(guān)于中斷部分的小結(jié)(2)

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2010年05月14日   【字體:

 中斷是單片機(jī)和其他各種微處理器中必不可少的一部分之一,在此對(duì)51單片機(jī)中斷有用的部分加以小結(jié)。

本文是接上篇http://m.zg4o1577.cn/mcu/829.html 
小結(jié)(2)主要是針對(duì)外部中斷部分,總結(jié)外部中斷對(duì)特殊功能寄存器的設(shè)置以及程序的編寫流程。此外這里重點(diǎn)介紹一些中斷擴(kuò)展的方法。
外部中斷信號(hào)是由P3口的P3.2和P3.3兩個(gè)管腳輸入的。
外部中斷程序編寫流程:
一、外部中斷初始化:
在使用外部中斷前,先要設(shè)置相關(guān)特殊功能寄存器,即初始化過(guò)程;
1.開(kāi)CPU總中斷:EA=1;
2.開(kāi)外部中斷:
開(kāi)外部中斷0:EX0=1;
    開(kāi)外部中斷1:EX1=1;
3.設(shè)置外部中斷觸發(fā)方式:
    外部中斷0觸發(fā)控制位IT0;
當(dāng)IT0=0時(shí),為電平觸發(fā)方式
當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)
外部中斷1觸發(fā)控制位IT1(同上);
4.外部中斷優(yōu)先級(jí)設(shè)置(可以不設(shè)置)
    PX0=1
PX1=1;
   
舉例如下:
void   interrupt_init(void)     // 中斷初始化
{
    EA = 1;       //開(kāi)總中斷
    EX0 = 1;      //開(kāi)外部中斷0
    EX1 = 1;      //開(kāi)外部中斷0
    IT0 = 1;      //外部中斷0下降沿觸發(fā)方式
    IT1 = 0;      //外部中斷1電平的觸發(fā)方式
}
 
二、主程序
主程序部分為你需要實(shí)現(xiàn)的功能,這部分和中斷幾乎沒(méi)什么太大關(guān)聯(lián),只不過(guò),在執(zhí)行主程序時(shí),如果從外部來(lái)一個(gè)外部中斷信號(hào),不得不放棄現(xiàn)在執(zhí)行的任務(wù)而轉(zhuǎn)而執(zhí)行中斷子程序;
 
三、中斷子程序
    這部分主要便是對(duì)請(qǐng)求中斷成功后進(jìn)入中斷后,你需要執(zhí)行什么任務(wù);
外部中斷子程序?qū)懛ㄈ缦拢?/div>
void INT_0() interrupt 0 using 0      //外部中斷0子程序
{
        LED0 = ~LED0;         //這句話代換成你所需要功能的C代碼
}
void INT_1() interrupt 2 using 2      //外部中斷1子程序
{
        LED1 = 0;            //這句話代換成你所需要功能的C代碼
}
 
    完整外部中斷例程代碼如下:
    #include<reg52.h>
#define uchar unsigned char
sbit wr=P3^6;
sbit   LED0 = P1^0;
sbit   LED1 = P1^1;
void   interrupt_init(void)     // 中斷初始化
{
    EA = 1;       //開(kāi)總中斷
    EX0 = 1;      //開(kāi)外部中斷0
    EX1 = 1;      //開(kāi)外部中斷0
    IT0 = 1;      //外部中斷0下降沿觸發(fā)方式
    IT1 = 0;      //外部中斷1電平的觸發(fā)方式
}
      
void main(void)
{
    wr=0;        //低電平時(shí)第三列為獨(dú)立按鍵
    interrupt_init();
    while(1)
           {
               LED1 = 1;
           }
}  
 
void INT_0() interrupt 0 using 0      //外部中斷0子程序
{
        LED0 = ~LED0;
}
 
void INT_1() interrupt 2 using 2      //外部中斷1子程序
{
        LED1 = 0;
}
實(shí)現(xiàn)功能:初始燈1和2全滅;
當(dāng)按下P3.2對(duì)應(yīng)鍵盤1(矩陣鍵盤第三行第三列),向下降沿觸發(fā)外部中斷0子程序,按一次鍵1松手燈1亮,再按一次鍵1松手燈1滅;
當(dāng)按下P3.3對(duì)應(yīng)鍵盤2(矩陣鍵盤第四行第三列),送入低電平信號(hào)觸發(fā)外部中斷1子程序,按下鍵2燈2亮,松手燈2滅。
 
中斷的擴(kuò)展:
一、定時(shí)器擴(kuò)展為外部中斷源
51單片機(jī)內(nèi)部有兩個(gè)定時(shí)器/計(jì)數(shù)器T0和T1,在滿足中斷響應(yīng)的情況下,當(dāng)T0或T1的計(jì)數(shù)值從全1(0xFFFF)狀態(tài)進(jìn)入全0(0x0000)時(shí),此時(shí)就會(huì)產(chǎn)生定時(shí)器溢出中斷。
根據(jù)以上分析,我們只需要把計(jì)數(shù)器的初值設(shè)置為0xFFFF,那么只要計(jì)數(shù)輸入端再來(lái)一個(gè)脈沖就可以產(chǎn)生溢出中斷申請(qǐng)。設(shè)想我們把外部中斷輸入連接到計(jì)數(shù)器輸入端,就可以利用外部中斷申請(qǐng)的負(fù)脈沖產(chǎn)生定時(shí)器溢出中斷申請(qǐng),而轉(zhuǎn)移到相應(yīng)中斷服務(wù)程序入口地址。只要在(0x000B或0x001B)處存放外部中斷服務(wù)子程序,就可以達(dá)到目的。
具體步驟如下:
1.將定時(shí)/計(jì)數(shù)器T0或T1的計(jì)數(shù)輸入端(P3.3或P3.4)作為擴(kuò)展外部中斷請(qǐng)求輸入端。
    2.置定時(shí)/計(jì)數(shù)器T0或T1為工作模式2,計(jì)數(shù)方式—8位自動(dòng)裝載方式。
    3.定時(shí)/計(jì)數(shù)器T0或T1的高8位和低8位都預(yù)置為全1。
    4.在相應(yīng)的中斷服務(wù)程序入口(0x000B或0x001B)處存放外部中斷服務(wù)子程序。
 
二、軟件查詢擴(kuò)展外部中斷源
當(dāng)需要的外部中斷源較多,采用第一種方法仍不能滿足實(shí)際需求,我們可以采用這種方法。
設(shè)有四個(gè)外部中斷源,INT00、INT01、 INT02 、INT03,這四個(gè)外部中斷請(qǐng)求源的輸入端通過(guò)一個(gè)4路的或非門連接到51單片機(jī)的/INT0引腳輸入端。只要4個(gè)外部中斷請(qǐng)求源中有一個(gè)或者一個(gè)以上的有效(高電平),就會(huì)產(chǎn)生一個(gè)負(fù)的/INT0信號(hào)向51單片機(jī)發(fā)出中斷申請(qǐng)。
為了確認(rèn)在/INT0有效時(shí)究竟是INT00、INT01、 INT02 、INT03中哪個(gè)發(fā)出的中斷申請(qǐng),可以通過(guò)軟件查詢的方法來(lái)確認(rèn)。將四個(gè)中斷源輸入端INT00、INT01、 INT02 、INT03分別接到P1.0~P1.3這四個(gè)引腳上。一旦響應(yīng)中斷,在中斷服務(wù)程序中CPU通過(guò)軟件查詢方法對(duì)P1.0~P1.3這四條線的電位進(jìn)行檢測(cè),以確認(rèn)提出中斷申請(qǐng)的中斷源。
當(dāng)擴(kuò)展的4個(gè)外部中斷源優(yōu)先級(jí)不同時(shí),軟件查詢的順序也應(yīng)按照優(yōu)先級(jí)的的由高到低順序進(jìn)行。設(shè)擴(kuò)展的4個(gè)外部中斷源的優(yōu)先級(jí)由高到低的順序是INT00到INT03,則軟件查詢順序?yàn)镻1.0到P1.3。

相關(guān)文章

主站蜘蛛池模板: 男人天堂网av | 亚洲免费精品 | 国产精品久久久久久久久久久久久 | 91精品久久久 | 91精品国产乱码久久久久久久 | 中文字幕成人av | 91精品国产91久久久久久丝袜 | 日韩成人高清 | 日韩成人在线一区 | 亚洲成人精品 | 二区中文 | 激情婷婷成人 | 黄色成人在线观看 | 一级片免费视频 | 精品国产一区二区三区观看不卡 | 亚洲精品视频一区 | 日本成人福利 | 人人爽人人爽人人片av | 欧美成人精品在线观看 | 亚洲视频免费在线观看 | 91精产国品一二三区 | 国产高清无av久久 | 国产一区精品 | 成年视频在线观看福利资源 | 成人免费一区二区三区视频网站 | 91社区在线观看高清 | 久久国产精品一区二区三区 | 欧美在线观看免费观看视频 | 91久久久精品国产一区二区蜜臀 | 精品久久电影 | 欧美成人黄色小说 | 亚洲国产欧美一区 | 国产精品毛片一区二区三区 | 粉色午夜视频 | 91亚洲国产精品 | 91精品国产综合久久国产大片 | av黄色国产 | 亚洲激情在线观看 | 一区二区久久 | 成人精品视频在线 | 国产午夜视频 |