色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

單片機外部中斷的好處

CHANBAEK ? 來源:電子開發之家 ? 作者:小樹 ? 2023-10-31 15:58 ? 次閱讀

圖片
圖1外部中斷及矩陣鍵盤中斷信號示意圖

外部中斷是單片機實時地處理外部事件的一種內部機制。當外部事件發生時,單片機的中斷系統將迫使CPU暫停正在執行的程序,轉而去進行中斷事件的處理,中斷完畢后返回被中斷的程序處,繼續執行下去。

中斷過程:

1.中斷當前程序并保護斷點

2.轉入中斷服務入口

3.保護現場

4.執行中斷服務程序

5.恢復現場

6.中斷返回

中斷的好處:

1、 提高了CPU的效率

CPU 是計算機的指揮中心,它與外圍設備(如按鍵、顯示器等)通訊的方法有查詢和中斷 2 種。

查詢的方法是無論外圍IO 是否需要服務,CPU 每隔一段時間都要依次查詢一遍,這種方法 CPU 需要花費一些時間在做查詢服務工作。

而中斷則是在外圍設備需要通訊服務時主動告訴 CPU, CPU 停下當前工作去處理中斷程序, 從而提高了CPU 效率。

2、 可以實現實時處理

外設任何時刻都可能發出請求中斷信號,CPU 接到請求后及時處理,以滿足實時系統的需要。

3、 可以及時處理故障

計算機系統運行過程中難免會出現故障,有許多事情是無法預料的,如電源掉電、存儲器出錯、外圍設備工作不正常等,這時可以通過中斷系統向中斷源 CPU 發送中斷請求,由 CPU 及時轉到相應的出錯處理程序,從而提高計算機的可靠性。

圖片
圖2中斷名稱

IE 中斷允許控制寄存器

圖片
圖3IE中斷允許控制寄存器

EA:EA = 0 時,所有中斷禁止(即不產生中斷)。

EA = 1 時,各中斷的產生由個別的允許位決定。

EX1:外部中斷INT1中斷允許。

EX0:外部中斷INT0中斷允許。

中斷程序格式:

圖片
圖4外部中斷程序格式

矩陣鍵盤中斷掃描程序:

#include< reg52.h > //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義#define KeyPort  P0
sbit dula=P2^1;
sbit wela=P2^0;

unsigned char code  DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
		                  	         0x77,0x7c,0x39,0x5e,0x79,0x71};// 顯示段碼值0~F
unsigned char num; 

void DelayUs2x(unsigned char t);//us級延時函數聲明
void DelayMs(unsigned char t); //ms級延時
unsigned char KeyScan(void);//鍵盤掃描
unsigned char KeyPro(void);

void display(unsigned char aa);
/*------------------------------------------------
                    主函數
------------------------------------------------*/
void main (void)
{ 
	dula=1;
	P1=0xff;
	dula=0;
	wela=1;
	P1=0x00;
	wela=0;                 


	EA=1;          //全局中斷開
	EX0=1;         //外部中斷0開
	IT0=1;         //邊沿觸發

while (1)         //主循環
  {
	display(num);
	KeyPort=0xf0;// 賦值用于中斷檢測		
 }
}

void display(unsigned char aa)
{
	dula=1;
	P1=DuanMa[aa];
	dula=0;		
}
/*------------------------------------------------
 uS延時函數,含有輸入參數 unsigned char t,無返回值
 unsigned char 是定義無符號字符變量,其值的范圍是
 0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
 長度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
	while(--t);
}
/*------------------------------------------------
 mS延時函數,含有輸入參數 unsigned char t,無返回值
 unsigned char 是定義無符號字符變量,其值的范圍是
 0~255 這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t)
{

	while(t--)
	{
		//大致延時1mS
		DelayUs2x(245);
		DelayUs2x(245);
	}
}


/*------------------------------------------------
按鍵掃描函數,返回掃描鍵值
------------------------------------------------*/
unsigned char KeyScan(void)  //鍵盤掃描函數,使用行列逐級掃描法
{
 unsigned char Val;
 KeyPort=0xf0;//高四位置高,低四位拉低
 if(KeyPort!=0xf0)//表示有按鍵按下
   {
    DelayMs(10);  //去抖
	if(KeyPort!=0xf0)
	  {           //表示有按鍵按下
    	KeyPort=0xfe; //檢測第一行
		if(KeyPort!=0xfe)
	  		{
			  Val=KeyPort&0xf0;
	  	      Val+=0x0e;
	  		  while(KeyPort!=0xfe);
			  DelayMs(10); //去抖
			  while(KeyPort!=0xfe);
	     	  return Val;
	        }
        KeyPort=0xfd; //檢測第二行
		if(KeyPort!=0xfd)
	  		{
			  Val=KeyPort&0xf0;
	  	      Val+=0x0d;
	  		  while(KeyPort!=0xfd);
			  DelayMs(10); //去抖
			  while(KeyPort!=0xfd);
	     	  return Val;
	        }
    	KeyPort=0xfb; //檢測第三行
		if(KeyPort!=0xfb)
	  		{
			  Val=KeyPort&0xf0;
	  	      Val+=0x0b;
	  		  while(KeyPort!=0xfb);
			  DelayMs(10); //去抖
			  while(KeyPort!=0xfb);
	     	  return Val;
	        }
    	KeyPort=0xf7; //檢測第四行
		if(KeyPort!=0xf7)
	  		{
			  Val=KeyPort&0xf0;
	  	      Val+=0x07;
	  		  while(KeyPort!=0xf7);
			  DelayMs(10); //去抖
			  while(KeyPort!=0xf7);
	     	  return Val;
	        }
     }
   }
  return 0xff;
}
/*------------------------------------------------
按鍵值處理函數,返回掃鍵值
------------------------------------------------*/
unsigned char KeyPro(void)
{
 switch(KeyScan())
 {
  case 0x7e:return 0;break;//0 按下相應的鍵顯示相對應的碼值
  case 0x7d:return 1;break;//1
  case 0x7b:return 2;break;//2
  case 0x77:return 3;break;//3
  case 0xbe:return 4;break;//4
  case 0xbd:return 5;break;//5
  case 0xbb:return 6;break;//6
  case 0xb7:return 7;break;//7
  case 0xde:return 8;break;//8
  case 0xdd:return 9;break;//9
  case 0xdb:return 10;break;//a
  case 0xd7:return 11;break;//b
  case 0xee:return 12;break;//c
  case 0xed:return 13;break;//d
  case 0xeb:return 14;break;//e
  case 0xe7:return 15;break;//f
  default:return 0xff;break;
 }
}
/*------------------------------------------------
                 外部中斷0程序
------------------------------------------------*/
void ISR_INT0(void) interrupt 0 
{ 
	num=KeyPro();  
	IE0=0;
}

接線方式:

杜邦線連接(用杜邦線連接<單片機 IO>和<模塊接口>)

圖片
表6.1接線

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6035

    文章

    44554

    瀏覽量

    634635
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10854

    瀏覽量

    211578
  • 中斷
    +關注

    關注

    5

    文章

    898

    瀏覽量

    41470
  • 矩陣鍵盤
    +關注

    關注

    7

    文章

    206

    瀏覽量

    31454
  • 外部中斷
    +關注

    關注

    1

    文章

    131

    瀏覽量

    15816
收藏 人收藏

    評論

    相關推薦

    單片機實驗_外部0中斷

    基于偉幅實驗箱的單片機中斷實驗 ,外部中斷
    發表于 12-07 18:23 ?3次下載

    基于單片機外部中斷的設計

    外部中斷單片機中占有很重要的作用。而且外部中斷的優先級默認是最高的。平臺單片機一般有兩個
    發表于 09-15 15:14 ?9次下載
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>的設計

    單片機外部中斷程序下載

    單片機外部中斷程序和電路圖,通過按鍵控制計數和清零操作
    發表于 05-21 10:57 ?0次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>程序下載

    51單片機外部中斷應該如何觸發

    51單片機外部中斷有兩種觸發方式可選:電平觸發和邊沿觸發。選擇電平觸發時,單片機在每個機器周期檢查中斷源口線,檢測到低電平,即置位
    發表于 09-04 17:27 ?5次下載
    51<b class='flag-5'>單片機</b>的<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>應該如何觸發

    51單片機外部中斷有哪些觸發方式

    51單片機有兩個外部中斷申請輸入端:INT0 和 INT1。 51單片機外部中斷,分為低電平
    發表于 08-13 17:32 ?3次下載
    51<b class='flag-5'>單片機</b>的<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>有哪些觸發方式

    使用單片機外部中斷的使用C語言程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機外部中斷的使用C語言程序免費下載。
    發表于 04-02 16:01 ?9次下載

    51單片機外部中斷0實例詳解

    今天就以51單片機外部中斷0為例,來簡單講解一下單片機中斷的用法。1 51單片機
    發表于 11-11 12:51 ?19次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>0實例詳解

    基于51單片機外部中斷設計

    基于51單片機外部中斷(嵌套)選用芯片AT89S52/***********************************************************此中斷函數
    發表于 11-20 18:06 ?10次下載
    基于51<b class='flag-5'>單片機</b>的<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>設計

    51單片機外部中斷拓展(兩個以上的外部中斷

    在很多單片機中,外部中斷的個數都是有限的,而很多現實場景需要有多個外部中斷同時進行,這時候單片機
    發表于 11-22 11:36 ?27次下載
    51<b class='flag-5'>單片機</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>拓展(兩個以上的<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>)

    51單片機外部中斷方式 ——— INT0 中斷

    51單片機外部中斷方式 ——— INT0 中斷
    發表于 11-22 11:51 ?153次下載
    51<b class='flag-5'>單片機</b>之<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>方式 ———  INT0 <b class='flag-5'>中斷</b>

    11.51單片機外部中斷實驗

    利用51單片機完成一系列中斷的操作,檢驗中斷相關知識。文章目錄題目重述問題分析以及求解思路程序代碼問題1代碼問題2代碼題目重述實驗前準備:51單片機的實驗連線圖如下所示1.編程實現無
    發表于 11-22 12:06 ?13次下載
    11.51<b class='flag-5'>單片機</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實驗

    STM32單片機外部中斷配置講解

    STM32單片機外部中斷配置講解01單片機外部中斷簡介所謂
    發表于 11-22 12:36 ?14次下載
    STM32<b class='flag-5'>單片機</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>配置講解

    單片機系統設計技術——外部中斷

    外部中斷一、實驗目的二、實驗內容三、實驗步驟四、C代碼如下五、實驗結果六、實驗體會一、實驗目的掌握單片機外部中斷的基本使用方法 了解
    發表于 11-23 17:51 ?15次下載
    <b class='flag-5'>單片機</b>系統設計技術——<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    51單片機外部中斷實驗

    前面,我們講了51單片機的輸入和輸出功能,今天講點不一樣的,外部中斷測試。
    發表于 07-11 11:41 ?1167次閱讀
    51<b class='flag-5'>單片機</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實驗

    STM32單片機外部中斷簡介 STM32單片機外部中斷的配置過程

    STM32 單片機是一款高性能、低功耗的 32 位微控制器,具有強大的計算能力、靈活的外設模塊以及優秀的擴展性,開發周期短、成本低。在單片機應用中,外部中斷是一種重要的硬件觸發方式,本
    發表于 08-15 18:21 ?3036次閱讀
    主站蜘蛛池模板: 真实国产熟睡乱子伦对白无套 | 国产精品视频人人做人人爽| 日本湿姝在线观看| 精品国产成人AV在线看| 99视频久九热精品| 甜性涩爱全集在线观看| 蜜桃色欲AV久久无码精品| 国产免费啪嗒啪嗒视频看看| 亚洲视频在线免费观看| 人人插人人射| 肉耽高h一受n攻| 日韩中文无线码在线视频| 青草国产超碰人人添人人碱| 男男女女爽爽爽视频免费| 免费精品国偷自产在线在线| 久久国产欧美日韩精品免费| 久久精品国产亚洲AV未满十八| 最近中文字幕在线中文高清版| 一个人HD高清在线观看免费视频| 亚洲精品美女久久777777| 亚洲 欧美 国产 综合久久| 色偷偷伊人| 忘忧草秋观看未满十八| 亚洲精品97福利在线| 青草影院内射中出高潮-百度| 日韩精品一区二区三区AV在线观看| 我年轻漂亮的继坶2中字在线播放| 久久re视频这里精品一本到99| 九色PORNY真实丨首页| 媚药调教被撑到合不拢h| 女人高潮特级毛片| 性生片30分钟| 69日本人xxxx16—18| 大桥未久电影在线观看| 高h辣h双处全是肉一对一| 国产精品久久久久永久免费看 | 亚洲色综合中文字幕在线| 午夜无码国产理论在线| 我的美女奴隶| 在线观看免费精品国产| 成人手机在线观看|