hc05与单片机连接图_基于proteus的51单片机开发实例(13)-LED指示那个按键被按下
1. 基于proteus的51單片機開發(fā)實例(13)-LED指示那個按鍵被按下
1.1. 實驗目的
本實例將實現(xiàn)兩路外部中斷的檢測和識別,讓我們能夠更好地理解51單片機的外部中斷以及中斷優(yōu)先級的概念。在上一實例中,我們利用下降沿觸發(fā)外部中斷,在本實例中,使用低電平觸發(fā)外部中斷。通發(fā)光二極管分別指示那一路外部中斷被觸發(fā)。
圖1 兩路外部中斷電路圖
1.2. 設計思路
本實例通過判斷連接在單片機的兩個外部中斷引腳P3.2和P3.3上的按鍵那個被按下,然后控制相應的連接在單片機P1.0和P1.4引腳上的發(fā)光二極管閃爍來指示電路及程序的運行情況。
1.3. 基礎知識
單片機與外部設備之間的數(shù)據(jù)交換有兩種方式:查詢方式和中斷方式。
查詢方式也稱為條件判斷,通過查詢外設的狀態(tài)(一般是判斷端口的電平狀態(tài)),如果外設狀態(tài)滿足要求,則單片機會控制執(zhí)行相應的流程。查詢方式的優(yōu)點是通用性強、直觀性好,缺點是需要單片機有一個等待查詢的過程。CPU在查詢期間不能進行其它操作,從而導致單片機的工作效率低下。(為什么查詢器件不能進行其它操作呢?因為有時候外設的狀態(tài)變化是很快的,很多都是毫秒級或者微秒級、甚至更短的時間,如果在這么短的時間內單片機剛好去處理別的事情了,那么就錯過了這個變化)。
中斷方式則可以有效地提高單片機的工作效率,非常適合實時控制,因而在單片機系統(tǒng)中,中斷用途非常廣泛,基本上每個單片機系統(tǒng)都會用到中斷。
查詢方式是單片機主動檢測外設狀態(tài),而中斷則是外設主動向單片機發(fā)出請求處理的信號。CPU在收到中斷信號之前,一直在執(zhí)行其它程序,只有在收到外設觸發(fā)的中斷信號后,才中斷正在執(zhí)行的程序,暫時去執(zhí)行外設的請求,執(zhí)行完后,立即又返回主程序繼續(xù)執(zhí)行剛才中斷的程序。中斷方式完全消除了CPU在查詢方式中需要一直等待的現(xiàn)象,極大地提高了CPU的工作效率。
下圖是中斷處理的流程。
圖2 中斷處理流程
下圖是51單片機的中斷系統(tǒng)結構,從圖中可以看出,兩個外部中斷源分別從P3.2和P3.3引腳輸入。外部中斷請求信號有兩種方式:電平觸發(fā)方式、負邊沿觸發(fā)方式。如果是電平觸發(fā)方式,則只要在引腳上檢測到低電平就會產生有效的中斷請求。如果是負邊沿觸發(fā)方式,則需要在引腳上檢測到從1到0(高電平到低電平的跳變)才會產生中斷申請。
圖3 51單片機中斷結構
單片機在復位后,IE寄存器中各位的狀態(tài)都是0,所以CPU是處于總中斷關閉的狀態(tài)。
1.4. 電路設計
本實例的電路圖如圖1所示。電路中兩個按鍵分別接單片機的兩個外部中斷引腳P3.2和P3.3。單片機P1.0和P1.4通過灌電流的方式連接兩個發(fā)光二極管。
1.5. 程序設計
本實例的程序代碼如下。程序中有兩個中斷服務程序,注意中斷服務程序的書寫方法。
#include//宏定義#define ON0#define OFF 1//LED開、閉定義//端口定義sbit LED1=P1^3;sbit LED2=P1^7; //LED驅動引腳定義int main(void){IT0=0; //設置外部中斷0觸發(fā)方式為低電平IT1=0; //設置外部中斷1觸發(fā)方式為低電平EX0=1; //使能外部中斷0EX1=1; //使能外部中斷1EA=1;//使能總中斷LED1=OFF;LED2=OFF;while(1){}}//EX_INT0() interrupt 0 using 1 //外部中斷0服務函數(shù){LED1=~LED1; //進入中斷之后LED1翻轉}//EX_INT1() interrupt 2 using 2//外部中斷1服務函數(shù){LED2=~LED2; //進入中斷之后LED2翻轉}1.6. 實例仿真
將程序編譯后生成hex文件,然后本例的proteus電路中,將程序裝入單片機中。運行仿真,如下面視頻所示。
1.7. 總結
通過本實例,我們學習了單片機中多中斷服務函數(shù)的編寫方法。更加熟悉了51單片機的外部中斷。
總結
以上是生活随笔為你收集整理的hc05与单片机连接图_基于proteus的51单片机开发实例(13)-LED指示那个按键被按下的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ups容量计算和配置方法_干货 | up
- 下一篇: java开发cs项目_本硕机械转行cs(