<del id="dhfrq"></del>

    1. <tr id="dhfrq"></tr>
      成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
      現在位置:范文先生網>理工論文>電子通信論文>單片機中斷多優先級的軟件擴展方法

      單片機中斷多優先級的軟件擴展方法

      時間:2023-02-21 00:06:51 電子通信論文 我要投稿
      • 相關推薦

      單片機中斷多優先級的軟件擴展方法

      摘要:為了解決MCS-51系列單片機只能由IP寄存器設定兩級優先級的問題,文中給出了利用軟件對中斷優先級進行擴展的方法,同時給出了高于兩個優先級的多優先級軟件擴展程序。

          關鍵詞:單片機;中斷;優先級;寄存器

      1 引言

      所謂中斷是指當CPU正在處理某件事情的時候,外部發生的某一事件(如一個電平的變化,一個脈沖沿的發生或定時器計數溢出等)請求CPU迅速去處理,于是CPU暫時中止當前的工作,轉去處理所發生的事件。中斷服務處理完該事件以后,再回到原來被中止的地方繼續原來的工作,這樣的一個過程稱之為中斷。以8051為例,中斷系統含有5個中斷源,分別是外部中斷0請求(INT0),外部中斷1請求(INT1),定時/計數器0溢出中斷請求(T0),定時/計數器1溢出中斷請求(T1)以及串行口中斷請求(Tx/Rx)。既然系統含有5個中斷源,就有可能出現數個中斷源同時提出中斷請求的情況,這樣,設計人員必須事先根據它們的輕重緩急來為每個中斷源確定CPU對其的響應順序。然而,對于中斷優先級寄存器IP來說,只可能設定兩級優先,即控制位為1時對應的中斷源為高級中斷,反之,控制位為0時對應的為低級中斷。這樣就出現一個問題:如果一個中斷正在執行,如何才能讓它響應同級甚至是低級中斷請求呢?

      2 中斷多優先級的擴展

      根據8051的結構特點,其中斷系統中含有兩個不可尋址的“優先級生效”觸發器。一個用于指出CPU是否正在執行高優先級的中斷服務程序,這個觸發器為1時,系統將屏蔽所有的中斷請求;另一個則指出CPU是否正在執行低優先級中斷服務程序,該觸發器為1時,將阻止除高優先級以外的一切中斷請求。由此可見,若要響應同級甚至是低級中斷請求,必須使得該“優先級生效”觸發器清零。但該觸發器又是不可尋址的,所以無法用軟件直接清零。遍歷系統所提供的111條指令,只有RETI可以達到此目的。該指令可在CPU執行該指令時,一方面清除中斷響應時所置位的“優先級生效”觸發器,另一方面可從當前棧頂彈出斷點地址送入程序計數PC,從而返回主程序。

      3 軟件擴展方法

      3.1 高級中斷源響應低級中斷源的軟件設計

      現以當前IE=84H(開放外部中斷1及總控制位),IP=04H?設定INT1為高優先級?正在執行外部中斷1服務子程序為例來進行說明。如欲響應串行口中斷,也就是要實現高級中斷源響應低級中斷源,設計時可加入如下代碼而無須改變IP寄存器的內容:

      PUSH IE ;IE內容入棧保護

      MOV IE , #10010000B ;開放串行口中斷

      CALL PP ;繼續執行原中斷子程序,但可

      隨時響應串行口中斷請求

      ...

      POP IE ;恢復原IE內容

      RETI

      PP: RETI

      3.2 同級中斷源之間的響應

      上述代碼體現了高級中斷源(INT1)響應低級中斷源(串行口)的軟件實現方法。但是, 8051系統共含有5個中斷源,因此必須解決同優先級中斷之間的嵌套問題,具體源程序如下:

      ORG 0000H

      LJMP MAIN

      ORG 0003H

      LJMP X0 ;INT0入口地址

      ORG 000BH

      LJMP T0 ;T0入口地址

      ORG 0013H

      LJMP X1 ;INT1入口地址

      ORG 001BH

      LJMP T1 ;T1入口地址

      ORG 0023H

      LJMP SS ;串行口入口地址

      MAIN: MOV IE ,#9FH ;開放所有中斷

      MOV IP,#03H ;設定INT0、T0為高優先級

      SJMP $

      X0: PUSH DPL

      PUSH DPH

      MOV DPTR,#X0RL

      PUSH DPL

      PUSH DPH

      RETI ;(PC)=X0RL,清"高優先級生效"

      觸發器,此時可響應其它中斷請求

      X0RL:· ;INT0子程序的真實入口地址

      ·

      ·

      ·

      POP DPH

      POP DPL

      RETI

      T0: PUSH DPL

      PUSH DPH

      MOV DPTR,#T0RL

      PUSH DPL

      PUSH DPH

      RETI ;(PC)=T0RL,清"高優先級生效"

      觸發器,此時可響應其它中斷請求

      T0RL: · ;T0子程序的真實入口地址

      ·

      ·

      ·

      POP DPH

      POP DPL

      RETI

      X1: PUSH DPL

      PUSH DPH

      MOV DPTR,#X1RL

      PUSH DPL

      PUSH DPH

      RETI ;(PC)=X1RL,清“高優先級生效”

      觸發器,此時可響應其它中斷請求

      X1RL: · ;INT1子程序的真實入口地址

      ·

      ·

      ·

      POP DPH

      POP DPL

      RETI

      T1: PUSH DPL

      PUSH DPH

      MOV DPTR,#T1RL

      PUSH DPL

      PUSH DPH

      RETI ;(PC)=T1RL,清"高優先級生效"

      觸發器,此時可響應其它中斷請求

      T1RL: · ;T1子程序的真實入口地址

      ·

      ·

      ·

      POP DPH

      POP DPL

      RETI

      SS: PUSH DPL

      PUSH DPH

      MOV DPTR,#SSRL

      PUSH DPL

      PUSH DPH

      RETI ;(PC)=SSRL,清"高優先級生效"

      觸發器,此時可響應其它中斷請求

      SSRL: · ;串行口子程序的真實入口地址

      ·

      ·

      ·

      POP DPH

      POP DPL

      RETI

      上述程序利用IP寄存器給出了兩級優先級,其中INT0、T0為高優先級,INT1、T1串行口為低優先級。為使某中斷能響應同級甚至低級中斷,只要在中斷服務子程序中用RETI指令清除相應的不可尋址的“優先級生效”觸發器即可。程序一開始的兩條PUSH指令的作用是對原始數據進行入棧保護(如此時DPTR中的數據不需保留,則這兩條壓棧指令也可不要,相應的彈棧指令也可不要),然后將其真實子程序入口地址入棧,并經RETI出棧后彈給PC指針,以便在執行完RETI后正確執行真實子程序。當該中斷服務子程序執行完畢后,RETI將返回主程序斷點處以繼續執行原來程序。

      4 結束語

      本文所闡述的多優先級擴展方法是純軟件方法,該方法只需在程序中加入為數不多的相應代碼,便可進行各種中斷嵌套(如同優先級響應或高優先級響應低優先級等)。此方法的代價是要花費更多的中斷響應時間,但相對于添加硬件擴展的方法而言,這點代價還是值得的。


      【單片機中斷多優先級的軟件擴展方法】相關文章:

      MCS-51系統中斷優先級的軟擴展08-06

      PIC中檔單片機的中斷總結08-06

      一種“假中斷”現象及處理方法08-06

      在CPLD管理下實現高效多串口中斷源08-06

      SL11R單片機外部存儲器擴展08-06

      TMS320F24x的實時多中斷任務處理08-06

      TMS320C32擴展異步串口的方法08-06

      擴展語句08-16

      采用多單片機的液位監控儀08-06

      主站蜘蛛池模板: 国产视频有码字幕一区二区| 国产一区二区三区内射高清| 婷婷久久综合九色综合88| 日本一本无道码日韩精品| 蜜臀视频一区二区在线播放| 日本一区二区精品色超碰| 色成人精品免费视频| 日本一区二区三区在线播放| 亚洲中文字幕在线无码一区二区| 亚洲另类无码一区二区三区| 中文字幕人妻日韩精品| 国产精品欧美福利久久| 国产午夜福利免费入口| 精品国产精品中文字幕| 精品精品国产国产自在线| 在线视频一区二区三区色| 一区二区三区激情免费视频| 国产在线一区二区在线视频| 亚洲一级特黄大片在线观看| 丰满人妻熟妇乱又仑精品| 国产片一区二区三区视频| 亚洲中文字幕第二十三页| 久久av色欲av久久蜜桃网| 国产SM重味一区二区三区 | 亚洲夜色噜噜av在线观看| 国产精品熟女一区二区不卡| 精品一区二区三区女性色| 国产黄色一级片在线观看| 97久久精品人人澡人人爽| 1区2区3区4区产品不卡码网站| 四虎成人精品无码| 国产三级精品三级在线观看| 国产精品高清一区二区三区| 97se亚洲综合自在线| 无码中文字幕热热久久| 日韩AV高清在线看片| 97久久久亚洲综合久久| 亚洲韩国精品无码一区二区三区| 亚洲综合色婷婷中文字幕| 国产人妇三级视频在线观看| 国产97人人超碰CAO蜜芽PROM|