51單片機的外部中斷小小了解

CPU與外設之間的數據傳輸方式有:無條件、查詢和中斷傳送。而中斷的效率最佳。
所謂的中斷,CPU在運行過程中,暫停正在運行的主程序,而轉去處理單片機內部或者外部突發的程序-

中斷服務程序,中斷處理程序),待中斷服務程序處理完之後在返回原來的地方(中斷點),繼續執行主程序。

中斷的產生由中斷源通過中斷標誌傳輸給CPU進行相關的處理

通常情況下有五個可用的中斷源

外部中斷
1、低電平觸發方式

2、下降沿觸發方式
定時器/計數器中斷
串行中斷
中斷標誌有(它們分別在特殊功能寄存器TCON,SCON的相應的位)
一、定時器控制寄存器(TCON)
(1)、IE0和IE1:外部中斷請求標誌位。當CPU在INT0(P3.2)/INT1(P3.3)引腳上採樣到有效的中斷請求信號時,IE0和IE1位的硬件置1。在中斷響應完成後,再由硬件將該位自動清0.

(2)、IT0和IT1:外部中斷請求觸發控制位。IT0(ITI)=1時爲下降沿觸發方式,IT0(ITI)=0時爲低電平觸發方式。

(3)、TF0和TF1:定時器/計數器溢出中斷請求標誌位。TF0或TF1=1時,表示對應計數器的技術值已經有全1變成全0,計數器計數溢出,相應的溢出標誌位由硬件置1.
(4)、TR0和TR1:定時器和計數器的運行控制位。當TR0或TR1爲零時,定時器/計數器停止工作;當TR0TR1爲1時計數器

/定時器啓動工作。
二、串行口控制寄存器(SCON)
(1)、串行發送中斷請求標誌位標誌,
(2)、串行口接收中斷請求標誌位



這次是進行簡單的外部中斷的處理,我們只是進行小小的處理;

通過外部中斷來控制發光二極管的。主要用(P3.2)和(P3.3)來鏈接兩個按鍵,利用外部中斷請求觸發控制位來實現控制

#include<reg51.h>
void LedOn(void);
void LedOff(void);
void int0(void);
void int1(void);
//主函數
main()
{
	EX0=1;//允許外部中斷0的中斷請求
	EX1=1;//允許外部中斷1的中斷請求
	EA=1;//開房總中斷開關
	IT0=1;//設置外部中斷0爲下降沿觸發
	IT1=1;//設置外部中斷1爲下降沿觸發
	P1=0xff;//熄滅發光二極管
	while(1)
	{;}
	}
	void etern0_ISR() interrupt 0//外部中斷服務子程序1
	{
	LedOn();
	}
	void extern1_ISR() interrupt 3//外部中斷服務子程序3
	{
	LedOff();
	}
	void LedOn()
	{
	P1=0x00;
	}
	void LedOff()
	{
	P1=0xff;
	}


後續在做補充,,,,,,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章