某公司單片機技術(shù)及項目管理知識應(yīng)用_第1頁
某公司單片機技術(shù)及項目管理知識應(yīng)用_第2頁
某公司單片機技術(shù)及項目管理知識應(yīng)用_第3頁
某公司單片機技術(shù)及項目管理知識應(yīng)用_第4頁
某公司單片機技術(shù)及項目管理知識應(yīng)用_第5頁
已閱讀5頁,還剩87頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、中斷系統(tǒng)控制及應(yīng)用中斷系統(tǒng)控制及應(yīng)用項目項目5 5 中斷系統(tǒng)控制及應(yīng)用中斷系統(tǒng)控制及應(yīng)用 知識與能力目標知識與能力目標熟悉單片機中斷系統(tǒng)的結(jié)構(gòu)與功能熟悉單片機中斷系統(tǒng)的結(jié)構(gòu)與功能1掌握中斷系統(tǒng)的編程與控制方法掌握中斷系統(tǒng)的編程與控制方法2理解并掌握數(shù)碼管顯示接口電路及其程序?qū)崿F(xiàn)方法理解并掌握數(shù)碼管顯示接口電路及其程序?qū)崿F(xiàn)方法3初步學(xué)會中斷控制應(yīng)用程序的分析與設(shè)計初步學(xué)會中斷控制應(yīng)用程序的分析與設(shè)計4理解中斷嵌套的工作過程,初步學(xué)會中斷嵌套的控制應(yīng)用理解中斷嵌套的工作過程,初步學(xué)會中斷嵌套的控制應(yīng)用5熟練使用熟練使用Keil uVsion3與與Proteus軟件軟件6項目項目5 中斷系統(tǒng)控制及應(yīng)

2、用中斷系統(tǒng)控制及應(yīng)用 5.3.1控制要求與功能展示控制要求與功能展示任務(wù)任務(wù)5.1 中斷系統(tǒng)分析與控制中斷系統(tǒng)分析與控制5.1.1中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析5.1.2外部中斷編程與控制外部中斷編程與控制5.2.2硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析5.2.1控制要求與功能展示控制要求與功能展示5.2.3匯編語言程序分析與設(shè)計匯編語言程序分析與設(shè)計5.2.4 C語言程序分析與設(shè)計語言程序分析與設(shè)計5.2.5 基于基于Proteus的調(diào)試與仿真的調(diào)試與仿真2任務(wù)任務(wù)5.2 簡易水情報警器控制簡易水情報警器控制5.3.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析5.3.

3、3匯編語言程序分析與設(shè)計匯編語言程序分析與設(shè)計5.3.4 C語言程序分析與設(shè)計語言程序分析與設(shè)計5.3.5基于基于Proteus的調(diào)試與仿真的調(diào)試與仿真2任務(wù)任務(wù)5.3 簡易地震報警器控制簡易地震報警器控制5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 當當CPUCPU在執(zhí)行程序時,由單在執(zhí)行程序時,由單片機內(nèi)部或外部的原因引起的片機內(nèi)部或外部的原因引起的隨機事件要求隨機事件要求CPUCPU暫時停止正在暫時停止正在執(zhí)行的程序,而轉(zhuǎn)向執(zhí)行一個執(zhí)行的程序,而轉(zhuǎn)向執(zhí)行一個用于處理該隨機事件的程序,用于處理該隨機事件的程序,處理完后又返回被中止的程序處理完后又返回被中止的程序斷點

4、處繼續(xù)執(zhí)行,這一過程就斷點處繼續(xù)執(zhí)行,這一過程就稱為中斷。稱為中斷。1、中斷系統(tǒng)的概念、中斷系統(tǒng)的概念5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析2、中斷系統(tǒng)的內(nèi)部結(jié)構(gòu)組成、中斷系統(tǒng)的內(nèi)部結(jié)構(gòu)組成5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 中斷系統(tǒng)有中斷系統(tǒng)有5 5個中斷請求源和個中斷請求源和4 4個用于中斷個用于中斷控制的寄存器控制的寄存器 定時控制寄存器(定時控制寄存器(TCONTCON)、串行控制寄)、串行控制寄存器(存器(SCONSCON)、中斷控制寄存器()、中斷控制寄存器(IEIE)和中)和中斷優(yōu)先級控制寄存器(斷優(yōu)先級控制寄存器(

5、IPIP)來控制中斷的類來控制中斷的類型、中斷的開關(guān)和各種中斷源的優(yōu)先級。型、中斷的開關(guān)和各種中斷源的優(yōu)先級。 5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 231外部中斷請求源外部中斷請求源: : INT0(P3.2)和)和INT1 (P3.3)定時定時/ /計數(shù)器中斷請求源計數(shù)器中斷請求源: : 內(nèi)部內(nèi)部2個個16位定時位定時/計數(shù)器計數(shù)器T0、T1串行口中斷源串行口中斷源: : 內(nèi)部有一個全雙工的串行接口內(nèi)部有一個全雙工的串行接口中斷源中斷源(5個)個)5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 5151單片機為每個中斷源都設(shè)置了中斷標單

6、片機為每個中斷源都設(shè)置了中斷標志位。檢測到中斷請求信號后,先將相應(yīng)的志位。檢測到中斷請求信號后,先將相應(yīng)的中斷標志位置位,以便在后續(xù)的機器周期里中斷標志位置位,以便在后續(xù)的機器周期里進行下一步的控制和處理。進行下一步的控制和處理。 中斷標志位集中鎖存在專用的寄存器中斷標志位集中鎖存在專用的寄存器TCONTCON和和SCONSCON中。中。 (2)中斷標志)中斷標志 定時控制寄存器定時控制寄存器TCONTCON中的中斷標志位中的中斷標志位 5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析表表5-1 TCON5-1 TCON寄存器的結(jié)構(gòu)寄存器的結(jié)構(gòu)TCON(88H)D7D6D5

7、D4D3D2D1D0位名稱TF1TR1TF0TR0IE1IT1IE0IT0位含義T1的溢出中斷標志位T1的啟動停止控制位T0的溢出中斷標志位T0的啟動停止控制位INT1中斷請求標志位INT1觸發(fā)方式控制位INT0中斷請求標志位INT0觸發(fā)方式控制位位地址8FH8EH8DH8CH8BH8AH89H88H TCON寄存器:寄存器: 存放存放INT0、INT1、T0和和T1中斷請求標志,也是定時中斷請求標志,也是定時/計數(shù)器計數(shù)器0和和1的控制寄存器的控制寄存器 為為INT0中斷請求標志位。當中斷請求標志位。當INT0有請求信號時,有請求信號時,該位就會由硬件自動置該位就會由硬件自動置1,在,在CP

8、U響應(yīng)中斷后,才由硬響應(yīng)中斷后,才由硬件自動將件自動將IE0清零。清零。5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析IE0(TCON.1)IE1(TCON.3)IT0(TCON.0)IT1(TCON.2) 為為INT0觸發(fā)方式控制位。由軟件進行觸發(fā)方式控制位。由軟件進行置位和復(fù)位,當置位和復(fù)位,當IT0=0時,為低電平觸發(fā);時,為低電平觸發(fā);當當IT0=1時,為負跳變觸發(fā)。時,為負跳變觸發(fā)。 為為INT1觸發(fā)方式控制位。由軟件進行觸發(fā)方式控制位。由軟件進行置位和復(fù)位,當置位和復(fù)位,當IT1=0時,為低電平觸發(fā);時,為低電平觸發(fā);當當IT1=1時,為負跳變觸發(fā)。時,為負跳

9、變觸發(fā)。 為為INT1中斷請求標志位。當中斷請求標志位。當INT1有請求信號時,該位有請求信號時,該位就會由硬件自動置就會由硬件自動置1,在,在CPU響應(yīng)中斷后,才由硬件自動響應(yīng)中斷后,才由硬件自動將將IE1清零。清零。5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析TF0(TCON.5)TF1(TCON.7)TR0(TCON.4)TR1(TCON.6) 為定時為定時/計數(shù)器計數(shù)器T0的啟動停止控制位。由軟的啟動停止控制位。由軟件進行設(shè)定,當件進行設(shè)定,當TR0=0時時,停止停止T0定時(或計定時(或計數(shù));當數(shù));當TR0=1時時,啟動啟動T0定時(或計數(shù))。定時(或計數(shù)

10、)。 為定時器為定時器/計數(shù)器計數(shù)器T0的溢出中斷標志位。當?shù)囊绯鲋袛鄻酥疚?。當T0定時(或計數(shù))定時(或計數(shù))結(jié)束時,由硬件自動置結(jié)束時,由硬件自動置1,在,在CPU響應(yīng)中斷后,才由硬件自動將響應(yīng)中斷后,才由硬件自動將TF0清零。也可以由軟件查詢該標志,并由軟件清零。清零。也可以由軟件查詢該標志,并由軟件清零。 為定時為定時/計數(shù)器計數(shù)器T1的啟動停止控制位。的啟動停止控制位。由軟件進行設(shè)定,當由軟件進行設(shè)定,當TR1=0時時,停止停止T0定時定時(或計數(shù));當(或計數(shù));當TR1=1時時,啟動啟動T1定時(或定時(或計數(shù))。計數(shù))。 為定時為定時/計數(shù)器計數(shù)器T1的溢出中斷標志位,當?shù)囊绯?/p>

11、中斷標志位,當T1定時(或計數(shù))定時(或計數(shù))結(jié)束時,由硬件自動置結(jié)束時,由硬件自動置1,在,在CPU響應(yīng)中斷后,才由硬件自動將響應(yīng)中斷后,才由硬件自動將TF1清零。也可以由軟件查詢該標志,并由軟件清零。清零。也可以由軟件查詢該標志,并由軟件清零。5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析表表5-2 SCON5-2 SCON寄存器的結(jié)構(gòu)寄存器的結(jié)構(gòu)SCON(98H)D7D6S5D4D3D2D1D0位名稱位名稱SM0 SM1 SM2RENTB8RB8TIRI位含義位含義關(guān)于串口關(guān)于串口項目項目7中講解中講解串行發(fā)送串行發(fā)送結(jié)束中斷結(jié)束中斷標志位標志位串行接串行接收結(jié)束收

12、結(jié)束中斷標中斷標志位志位位地址位地址99H98H 串行收發(fā)結(jié)束的中斷標志位被鎖存在串行控串行收發(fā)結(jié)束的中斷標志位被鎖存在串行控制寄存器制寄存器SCONSCON中中 串行控制寄存器串行控制寄存器SCON中的中斷標志位中的中斷標志位 串行控制寄存器串行控制寄存器SCON中的中斷標志位中的中斷標志位 5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 為串行接收結(jié)束中斷標志位。當串行口為串行接收結(jié)束中斷標志位。當串行口結(jié)束一次數(shù)據(jù)接收后,由硬件自動置位,結(jié)束一次數(shù)據(jù)接收后,由硬件自動置位,但但標志必須由軟件進行清零標志必須由軟件進行清零。 為串行發(fā)送結(jié)束中斷標志位。當串行口為串行發(fā)

13、送結(jié)束中斷標志位。當串行口結(jié)束一次數(shù)據(jù)發(fā)送后,由硬件自動置位,結(jié)束一次數(shù)據(jù)發(fā)送后,由硬件自動置位,但但標志必須由軟件進行清零標志必須由軟件進行清零。 5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析表表5-3 IE5-3 IE寄存器的結(jié)構(gòu)寄存器的結(jié)構(gòu)IE(0A8)D7D6D5D4D3D2D1D0位名稱EAESET1EX1ET0EX0位含義中斷總允許控制位串行口中斷允許位T1中斷允許位INT1中斷允許位T0中斷允許位INT0中斷允許位位地址0AFH0ACH0ABH0AAH0A9H0A8H 中斷允許控制寄存器中斷允許控制寄存器IEIE實現(xiàn)開中斷和關(guān)中實現(xiàn)開中斷和關(guān)中斷的功能。斷

14、的功能。 (3)中斷控制)中斷控制 5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 EA EA(IE.7IE.7)為所有中斷總允許控制位。)為所有中斷總允許控制位。EA=0EA=0,中斷總禁止;中斷總禁止;EA=1EA=1,中斷總允許。,中斷總允許。 ES ES(IE.4IE.4)為串行口中斷允許位。)為串行口中斷允許位。ES=1ES=1,允許,允許串行口中斷;串行口中斷;ES=0ES=0,禁止串行口中斷。,禁止串行口中斷。 ET1 ET1(IE.3IE.3)為)為T1T1中斷允許位。中斷允許位。ET1=1ET1=1,允許,允許T1T1中斷;中斷;ET1=0ET1=0,禁

15、止,禁止T1T1中斷。中斷。 EX1 EX1(IE.2IE.2)為)為INT1INT1中斷允許位。中斷允許位。EX1=1EX1=1,允許,允許外部中斷外部中斷INT1INT1中斷;中斷;EX1=0EX1=0,禁止外部中斷,禁止外部中斷INT1INT1中斷。中斷。 ET0 ET0(IE.1IE.1)為)為T0T0中斷允許位。中斷允許位。ET0=1ET0=1,允許,允許T0T0中斷;中斷;ET0=0ET0=0,禁止,禁止T0T0中斷。中斷。 EX0 EX0(IE.0IE.0)為)為INT0INT0中斷允許位。中斷允許位。EX0=1EX0=1,允許,允許INT0INT0中斷;中斷;EX0=0EX0=

16、0,禁止,禁止INT0INT0中斷。中斷。5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 IEIE寄存器在單片機復(fù)位后,各位均被清零,在寄存器在單片機復(fù)位后,各位均被清零,在IEIE寄寄存器應(yīng)用時,由軟件對其進行設(shè)定,即可對其進行按存器應(yīng)用時,由軟件對其進行設(shè)定,即可對其進行按位設(shè)置,也可對其進行按字節(jié)設(shè)置。位設(shè)置,也可對其進行按字節(jié)設(shè)置。 開啟外部中斷開啟外部中斷0中斷中斷和定時器和定時器0中斷,可進行中斷,可進行如下設(shè)置如下設(shè)置:例如:例如:5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析匯編語言:匯編語言: C C語言:語言:按位設(shè)置:按位設(shè)置:

17、 SETB EA EA=1SETB EA EA=1; SETB EX0 EX0=1SETB EX0 EX0=1; SETB ET0 ET0=1SETB ET0 ET0=1;按字節(jié)設(shè)置:按字節(jié)設(shè)置: MOV IE , #10000011B IE=0 x83MOV IE , #10000011B IE=0 x83;5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷請求中斷請求處理中處理中斷斷中斷返回中斷返回中斷處理中斷處理中斷響中斷響應(yīng)應(yīng)3、中斷響應(yīng)處理過程、中斷響應(yīng)處理過程5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析5.1.1 5.1.1 中斷系統(tǒng)結(jié)

18、構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 當中斷源要求當中斷源要求CPU為它服務(wù)時,必須發(fā)出一為它服務(wù)時,必須發(fā)出一個中斷請求信號。同時為保證該中斷得以實現(xiàn),個中斷請求信號。同時為保證該中斷得以實現(xiàn),中斷請求標志應(yīng)保持到中斷請求標志應(yīng)保持到CPU響應(yīng)該中斷后才能取響應(yīng)該中斷后才能取消,消,CPU也會不斷的及時查詢這些中斷請求標志,也會不斷的及時查詢這些中斷請求標志,一旦查詢到該中斷的中斷請求標志為置位,就立一旦查詢到該中斷的中斷請求標志為置位,就立即響應(yīng)該中斷。即響應(yīng)該中斷。(1)中斷請求)中斷請求5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析(2)中斷響應(yīng))中斷響應(yīng) 中斷響應(yīng)

19、的條件中斷響應(yīng)的條件 申請中斷的中斷源的中斷允許位為申請中斷的中斷源的中斷允許位為1,即,即中斷源可向中斷源可向CPU申請中斷。申請中斷。 中斷總允許位中斷總允許位EA置位,即置位,即CPU允許允許所有中斷源申請中斷所有中斷源申請中斷。有中斷源發(fā)出中斷請求。有中斷源發(fā)出中斷請求。123CPU響應(yīng)中斷的基本條件響應(yīng)中斷的基本條件5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷響應(yīng)中斷響應(yīng)CPUCPU正在執(zhí)行一正在執(zhí)行一個同級或高優(yōu)個同級或高優(yōu)先級的中斷服先級的中斷服務(wù)程序務(wù)程序正在執(zhí)行的指正在執(zhí)行的指令尚未完成令尚未完成正在執(zhí)行中斷正在執(zhí)行中斷返回指令返回指令RETIRE

20、TI或者對專用寄或者對專用寄存器存器IEIE、IPIP進進行讀行讀/ /寫的指令寫的指令阻斷阻斷中斷響應(yīng)的條件中斷響應(yīng)的條件5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析注意:串行口中注意:串行口中斷響應(yīng)后,必須斷響應(yīng)后,必須由軟件程序?qū)υ撚绍浖绦驅(qū)υ撝袛鄻酥疚磺辶?。中斷標志位清零。撤除該中斷源的中斷請求標志撤除該中斷源的中斷請求標志關(guān)閉同級中斷關(guān)閉同級中斷保護斷點地址保護斷點地址將相應(yīng)中斷的入口地址送入將相應(yīng)中斷的入口地址送入PC中斷響應(yīng)操作中斷響應(yīng)操作5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析注意:注意:每個中斷的每個中斷的8 8個單元難以

21、存放一個完整的中斷服務(wù)程序,因個單元難以存放一個完整的中斷服務(wù)程序,因此用戶在使用時,可在各中斷單元地址存放一條無條件跳轉(zhuǎn)指令此用戶在使用時,可在各中斷單元地址存放一條無條件跳轉(zhuǎn)指令(LJMP)(LJMP),跳轉(zhuǎn)到實際的中斷服務(wù)程序執(zhí)行。,跳轉(zhuǎn)到實際的中斷服務(wù)程序執(zhí)行。表表5-4 5-4 各中斷源及中斷程序入口地址表各中斷源及中斷程序入口地址表中斷源名稱對應(yīng)引腳中斷入口地址外部中斷0INT0(P3.2)0003H000AH(入口地址0003H)定時器/計數(shù)器0T0(P3.4)000BH0012H(入口地址000BH)外部中斷1INT1(P3.3)0013H001AH(入口地址0013H)定時器

22、/計數(shù)器1T1(P3.5)001BH0022H(入口地址001BH)串行口中斷串行接收RXD(P3.0)0023H002AH(入口地址0023H)串行發(fā)送TXD(P3.1)5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷服務(wù)中斷服務(wù) 執(zhí)行中斷服務(wù)程執(zhí)行中斷服務(wù)程序,完成相應(yīng)操作序,完成相應(yīng)操作 在中斷響應(yīng)時,將斷點處的有關(guān)寄存器的內(nèi)在中斷響應(yīng)時,將斷點處的有關(guān)寄存器的內(nèi)容(如容(如Acc、PSW、DPTR等)壓入堆棧中保等)壓入堆棧中保護起來,以便中斷返回時恢復(fù)。護起來,以便中斷返回時恢復(fù)?;謴?fù)現(xiàn)場恢復(fù)現(xiàn)場保護現(xiàn)場保護現(xiàn)場(3)中斷處理)中斷處理5.1.1 5.1.1

23、中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 在中斷服務(wù)程序最后,必須加一條在中斷服務(wù)程序最后,必須加一條RETIRETI中斷返回指中斷返回指令,當令,當CPUCPU執(zhí)行到執(zhí)行到RETIRETI指令時,中斷才能返回。指令時,中斷才能返回。 注意注意:用戶在編寫中斷服務(wù)程序時要考慮需要保:用戶在編寫中斷服務(wù)程序時要考慮需要保護的現(xiàn)場,在恢復(fù)現(xiàn)場時,要注意壓棧與出棧指護的現(xiàn)場,在恢復(fù)現(xiàn)場時,要注意壓棧與出棧指令必須成對使用,先入棧的內(nèi)容應(yīng)該后彈出,同令必須成對使用,先入棧的內(nèi)容應(yīng)該后彈出,同時還要及時撤除需用軟件撤除的中斷標志。時還要及時撤除需用軟件撤除的中斷標志。 (4)中斷返回)中斷返回 5.

24、1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析 外部中斷,顧名思義就是從外部引入進來的中外部中斷,顧名思義就是從外部引入進來的中斷。斷。51單片機上有兩個從外部通過單片機上有兩個從外部通過P3.2和和P3.3兩個兩個引腳引入進來的外部中斷(引腳引入進來的外部中斷(INT0和和INT1)。用戶必)。用戶必須先啟動中斷,外部中斷才能接收中斷信號,須先啟動中斷,外部中斷才能接收中斷信號,CPU才能響應(yīng)中斷。才能響應(yīng)中斷。 4、兩個外部中斷的使用、兩個外部中斷的使用(1)外部中斷的認識)外部中斷的認識5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析外部中斷請求觸發(fā)

25、方式外部中斷請求觸發(fā)方式電平電平觸發(fā)方式觸發(fā)方式邊沿脈沖邊沿脈沖觸發(fā)方式觸發(fā)方式(2)外部中斷的觸發(fā)方式)外部中斷的觸發(fā)方式 電平觸發(fā)是低電平有效。只要單片機在中斷電平觸發(fā)是低電平有效。只要單片機在中斷請求輸入端(請求輸入端(INT0和和INT1)上采樣到有效的)上采樣到有效的低電平時,就會啟動外部中斷。低電平時,就會啟動外部中斷。必須把有效的電平保持到請求獲得響應(yīng)為止,必須把有效的電平保持到請求獲得響應(yīng)為止,不然不然CPU就不能夠響應(yīng)中斷;就不能夠響應(yīng)中斷;中斷服務(wù)程序結(jié)束之前,中斷源又必須撤除中斷服務(wù)程序結(jié)束之前,中斷源又必須撤除其有效的低電平信號,否則中斷返回時,會其有效的低電平信號,否

26、則中斷返回時,會再次產(chǎn)生中斷。再次產(chǎn)生中斷。適合于外部輸入以低電平且中斷服務(wù)程序能適合于外部輸入以低電平且中斷服務(wù)程序能清除的外部中斷請求的系統(tǒng)。清除的外部中斷請求的系統(tǒng)。5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析電平觸發(fā)方式電平觸發(fā)方式 5.1.1 5.1.1 中斷系統(tǒng)結(jié)構(gòu)與功能分析中斷系統(tǒng)結(jié)構(gòu)與功能分析邊沿脈沖觸發(fā)是邊沿脈沖觸發(fā)是脈沖的下降沿有脈沖的下降沿有效效123中斷請求信號的中斷請求信號的高電平狀態(tài)和低高電平狀態(tài)和低電平狀態(tài)都應(yīng)至電平狀態(tài)都應(yīng)至少維持一個機器少維持一個機器周期周期適合與以負脈適合與以負脈沖形式輸入的沖形式輸入的外部中斷請求外部中斷請求邊沿脈沖

27、觸發(fā)方式邊沿脈沖觸發(fā)方式5.1.2 5.1.2 外部中斷編程與控制外部中斷編程與控制 中斷的應(yīng)用就是用程序來實現(xiàn)對中斷功能的控制中斷的應(yīng)用就是用程序來實現(xiàn)對中斷功能的控制編編制制應(yīng)應(yīng)用用程程序序時時中斷中斷初始初始化化中斷中斷服務(wù)服務(wù)程序程序包含包含5.1.2 5.1.2 外部中斷編程與控制外部中斷編程與控制 1、中斷初始化、中斷初始化設(shè)置堆棧設(shè)置堆棧指針指針SPSP 定義中斷定義中斷優(yōu)先級優(yōu)先級 開放中斷開放中斷定義外部中斷定義外部中斷觸發(fā)方式觸發(fā)方式中斷初始化步中斷初始化步驟驟5.1.2 5.1.2 外部中斷編程與控制外部中斷編程與控制 根據(jù)需要保護根據(jù)需要保護現(xiàn)場現(xiàn)場 在中斷服務(wù)入口地址

28、設(shè)置在中斷服務(wù)入口地址設(shè)置一條跳轉(zhuǎn)指令,轉(zhuǎn)到中斷一條跳轉(zhuǎn)指令,轉(zhuǎn)到中斷服務(wù)程序的實際入口處服務(wù)程序的實際入口處中斷返回中斷返回 執(zhí)行中斷服務(wù)執(zhí)行中斷服務(wù)要求操作要求操作 恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場 2、中斷服務(wù)程序、中斷服務(wù)程序5.1.2 5.1.2 外部中斷編程與控制外部中斷編程與控制 ZHDUANZHDUAN:CLR EACLR EA ;關(guān)中斷關(guān)中斷 PUSH ACC PUSH ACC ;保護現(xiàn)場(根據(jù)需要由用戶決定);保護現(xiàn)場(根據(jù)需要由用戶決定) PUSH PSWPUSH PSW SETB EA SETB EA ;開中斷(不希望高級中斷進入,;開中斷(不希望高級中斷進入, ;則不用開中斷);則不

29、用開中斷) CLR EA CLR EA ;關(guān)中斷;關(guān)中斷 POP PSW POP PSW ;恢復(fù)現(xiàn)場;恢復(fù)現(xiàn)場 POP ACCPOP ACC SETB EA SETB EA RETI RETI ;中斷返回;中斷返回中斷服務(wù)程序匯編語言一般編寫格式:中斷服務(wù)程序匯編語言一般編寫格式: 5.1.2 5.1.2 外部中斷編程與控制外部中斷編程與控制 void ZHDUAN( ) interrupt x /void ZHDUAN( ) interrupt x /其中其中x x為中斷號,為中斷號, /不使用不使用usingusing時編譯器將自動時編譯器將自動 / /產(chǎn)生保護和恢復(fù)產(chǎn)生保護和恢復(fù)R0R0

30、R7R7現(xiàn)場現(xiàn)場 EA=0EA=0; EA=1 EA=1; 中斷服務(wù)中斷服務(wù)程序程序C C語言語言一般編寫格式:一般編寫格式: 5.1.2 5.1.2 外部中斷編程與控制外部中斷編程與控制 ORG 0000H ORG 0000H ;單片機程序入口地址;單片機程序入口地址 LJMP MAIN LJMP MAIN ;跳轉(zhuǎn)到主程序入口地址;跳轉(zhuǎn)到主程序入口地址 ORG 0003H ORG 0003H ;外部中斷;外部中斷0 0入口地址入口地址 LJMP INT_0 LJMP INT_0 ;跳轉(zhuǎn)至;跳轉(zhuǎn)至INT_0INT_0中斷服務(wù)子程序中斷服務(wù)子程序 ORG 0013H ORG 0013H ;外部中

31、斷;外部中斷1 1入口地址入口地址 LJMP INT_1 LJMP INT_1 ;跳轉(zhuǎn)至;跳轉(zhuǎn)至INT_1INT_1中斷服務(wù)子程序中斷服務(wù)子程序 ORG 0030H ORG 0030H MAIN: MAIN: ;主程序;主程序 MOV TCON,#XXH MOV TCON,#XXH ;設(shè)置專用寄存器;設(shè)置專用寄存器TCONTCON的狀態(tài)的狀態(tài) MOV IE,#XXH MOV IE,#XXH ;設(shè)置專用寄存器;設(shè)置專用寄存器IEIE的狀態(tài)的狀態(tài) MOV IP,#XXH MOV IP,#XXH ;設(shè)置專用寄存器;設(shè)置專用寄存器IPIP的狀態(tài)的狀態(tài) INT_0: INT_0: ;外部中斷;外部中斷0

32、 0中斷服務(wù)子程序中斷服務(wù)子程序 RETI RETI INT_1: INT_1: ;外部中斷;外部中斷1 1中斷服務(wù)子程序中斷服務(wù)子程序 RETI RETI3 3、外部中斷編程與控制格式、外部中斷編程與控制格式 (匯編語言(匯編語言 )5.1.2 5.1.2 外部中斷編程與控制外部中斷編程與控制 #include#includevoid main ( )void main ( ) TCON=0XXX TCON=0XXX; /設(shè)置專用寄存器設(shè)置專用寄存器TCONTCON的狀態(tài)的狀態(tài) IE=0XXXIE=0XXX; /設(shè)置專用寄存器設(shè)置專用寄存器IEIE的狀態(tài)的狀態(tài) IP=0XXXIP=0XXX;

33、 /設(shè)置專用寄存器設(shè)置專用寄存器IPIP的狀態(tài)的狀態(tài) void int_0 ( )interrupt 0 /void int_0 ( )interrupt 0 /外部中斷外部中斷0 0中斷服務(wù)子程序中斷服務(wù)子程序 void int_1 ( )interrupt 2 /void int_1 ( )interrupt 2 /外部中斷外部中斷1 1中斷服務(wù)子程序中斷服務(wù)子程序 3 3、外部中斷編程與控制格式、外部中斷編程與控制格式 (C C語言語言 )任務(wù)任務(wù)5.2 5.2 簡易水情報警器控制簡易水情報警器控制 實物運行視頻實物運行視頻單片機單片機數(shù)碼管數(shù)碼管水位上水位上漲按鍵漲按鍵時鐘電路時鐘電路

34、 水位下水位下降按鍵降按鍵 蜂鳴器蜂鳴器 數(shù)碼管數(shù)碼管限流電阻限流電阻5.2.1 控制要求與功能展示控制要求與功能展示簡易水情報警器電路原理圖簡易水情報警器電路原理圖 任務(wù)任務(wù)5.2 簡易水情報警器控制簡易水情報警器控制 5.2.1 控制要求與功能展示控制要求與功能展示5.2.2 5.2.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析蜂鳴器驅(qū)動接口電路蜂鳴器驅(qū)動接口電路 (1)蜂鳴器驅(qū)動接口電路)蜂鳴器驅(qū)動接口電路 5.2.2 5.2.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析八段八段LED數(shù)碼管結(jié)構(gòu)圖數(shù)碼管結(jié)構(gòu)圖 (2)數(shù)碼管驅(qū)動接口電路)數(shù)碼管驅(qū)動接口電路 5.2.2 5.2.2

35、硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析LED數(shù)碼管顯示器原理圖數(shù)碼管顯示器原理圖 2)數(shù)碼管的控制原理)數(shù)碼管的控制原理 5.2.2 5.2.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析 在單片機應(yīng)用系統(tǒng)中,通常將數(shù)碼管的在單片機應(yīng)用系統(tǒng)中,通常將數(shù)碼管的a adpdp八個段八個段分別對應(yīng)分別對應(yīng)1 1個字節(jié)的個字節(jié)的D0D0D7D7八位,即八位,即D0D0與與a a對應(yīng),對應(yīng),D1D1與與b b對對應(yīng)應(yīng)根據(jù)共陽或共陰的點亮方式,通過單片機輸出對應(yīng)根據(jù)共陽或共陰的點亮方式,通過單片機輸出對應(yīng)的數(shù)據(jù)的數(shù)據(jù)“0”0”或或“1”1”,即亮或滅。,即亮或滅。 因此用因此用8 8位二進制代碼就

36、可以表示顯示字符,通常位二進制代碼就可以表示顯示字符,通常用用2 2位十六進制數(shù)表示位十六進制數(shù)表示8 8位二進制數(shù),并稱其為位二進制數(shù),并稱其為字型碼字型碼。 3)數(shù)碼管顯示的實現(xiàn)方法)數(shù)碼管顯示的實現(xiàn)方法 5.2.2 5.2.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析表表5-5 LED5-5 LED數(shù)碼管常用字符型編碼表數(shù)碼管常用字符型編碼表字符dpgfedcba陰碼A0111011177HB011111007CHC0011100139HD010111105EH-0100000040H熄滅0000000000H 本任務(wù)采用共陰本任務(wù)采用共陰LEDLED數(shù)碼管顯示字型數(shù)碼管顯示字型“A

37、 AD”D”等編碼如等編碼如表所示。表所示。5.2.2 5.2.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析簡易水情報警器控制流程簡易水情報警器控制流程 2、任務(wù)控制流程分析、任務(wù)控制流程分析 5.2.3 匯編語言程序分析與設(shè)計匯編語言程序分析與設(shè)計 空操作指令:空操作指令:NOP使用格式:使用格式:NOP使用說明:是一條只有操作碼沒有使用說明:是一條只有操作碼沒有操作數(shù)的單字節(jié)指令,不進行任何操作數(shù)的單字節(jié)指令,不進行任何其他操作,相當于跳過一個字節(jié)。其他操作,相當于跳過一個字節(jié)。NOP指令指令的主要用途的主要用途可以利用它來進行延時或等待。該指令可以利用它來進行延時或等待。該指令每執(zhí)行

38、一次,就要花費一個機器周期的執(zhí)每執(zhí)行一次,就要花費一個機器周期的執(zhí)行時間。行時間??梢岳盟鼇碚{(diào)試程序,例如要刪除某可以利用它來調(diào)試程序,例如要刪除某條指令,只需用條指令,只需用NOPNOP指令取代即可。指令取代即可。在程序中某些地方故意安排一些在程序中某些地方故意安排一些NOPNOP指指令,為以后添加新指令預(yù)留存儲空間。令,為以后添加新指令預(yù)留存儲空間。1、任務(wù)相關(guān)匯編指令、任務(wù)相關(guān)匯編指令(1)空操作指令:)空操作指令:NOP5.2.3 匯編語言程序分析與設(shè)計匯編語言程序分析與設(shè)計 使用格式:使用格式:PUSH或或POP direct使用說明:內(nèi)部使用說明:內(nèi)部RAM中設(shè)定了一中設(shè)定了一個

39、遵循個遵循“先進后出,后進先出先進后出,后進先出”原原則的區(qū)域被稱為堆棧。堆棧指針則的區(qū)域被稱為堆棧。堆棧指針SP(8位寄存器)指出堆棧的棧頂,位寄存器)指出堆棧的棧頂,堆棧是向上增長的,棧底固定,棧堆棧是向上增長的,棧底固定,棧頂浮動頂浮動 。堆棧操作指令:堆棧操作指令:PUSH、POPPUSH ACC PUSH ACC ;將累加器;將累加器ACCACC中的內(nèi)容入棧保護中的內(nèi)容入棧保護PUSH 01H PUSH 01H ;將第;將第0 0組寄存器組寄存器R1R1中的內(nèi)容入棧保護中的內(nèi)容入棧保護POP 01H POP 01H ;將出棧內(nèi)容存放在第;將出棧內(nèi)容存放在第0 0組寄存器組寄存器R1R

40、1中中POP ACC POP ACC ;將出棧的內(nèi)容存放在累加器;將出棧的內(nèi)容存放在累加器ACCACC中中使用示例使用示例(2)堆棧操作指令:)堆棧操作指令:PUSH、POP5.2.3 匯編語言程序分析與設(shè)計匯編語言程序分析與設(shè)計 注意:注意: 由于堆棧操作指令只能操作內(nèi)部數(shù)據(jù)存儲空間地址,由于堆棧操作指令只能操作內(nèi)部數(shù)據(jù)存儲空間地址,而像而像R1之類的工作寄存器并沒有具體的地址,所以之類的工作寄存器并沒有具體的地址,所以PUSH R1指令是錯誤的,只能直接使用其具體的存儲地址指令是錯誤的,只能直接使用其具體的存儲地址01H。 PUSH(入棧操作(入棧操作5.2.3 匯編語言程序分析與設(shè)計匯編

41、語言程序分析與設(shè)計 注意:注意: 執(zhí)行出棧操作時數(shù)據(jù)先傳出,而后指針自動減執(zhí)行出棧操作時數(shù)據(jù)先傳出,而后指針自動減1。但。但是原先指針還未減是原先指針還未減1之前所指的地址中數(shù)據(jù)依然存在。之前所指的地址中數(shù)據(jù)依然存在。 POP(出棧操作)(出棧操作) 5.2.3 匯編語言程序分析與設(shè)計匯編語言程序分析與設(shè)計 使用格式使用格式:RETI 使用說明使用說明:中斷返回指令是:中斷返回指令是用于結(jié)束中斷服務(wù)操作,回用于結(jié)束中斷服務(wù)操作,回到主程序中繼續(xù)執(zhí)行原操作到主程序中繼續(xù)執(zhí)行原操作的程序。它放在中斷服務(wù)程的程序。它放在中斷服務(wù)程序的最后序的最后中斷返回指令:中斷返回指令:RETI ;中斷服務(wù)操作;

42、中斷服務(wù)操作RETI ;中斷服務(wù)操作結(jié)束,中斷返回斷點;中斷服務(wù)操作結(jié)束,中斷返回斷點使用示例使用示例(3)中斷返回指令:)中斷返回指令:RETI 5.2.3 5.2.3 匯編語言程序分析與設(shè)計匯編語言程序分析與設(shè)計 匯編程序匯編程序 匯編程序匯編程序 外部中斷外部中斷0服務(wù)子程序服務(wù)子程序INT_0 外部中斷外部中斷1服務(wù)子程序服務(wù)子程序INT_1 主程序主程序MAIN 延時子程序延時子程序DELAY 顯示字符表顯示字符表 程序初始部分程序初始部分 程序初始化程序初始化INIT子程序子程序5.2.4 5.2.4 C C語言程序分析與設(shè)計語言程序分析與設(shè)計 在在C C語言中中斷函數(shù)使用關(guān)鍵詞語

43、言中中斷函數(shù)使用關(guān)鍵詞interruptinterrupt與中斷號來與中斷號來定義中斷函數(shù),其一般形式如下:定義中斷函數(shù),其一般形式如下: void void 中斷函數(shù)名()中斷函數(shù)名() interrupt interrupt 中斷號中斷號 using nusing n 聲明部分;聲明部分; 執(zhí)行語句;執(zhí)行語句; 1、中斷函數(shù)的定義、中斷函數(shù)的定義 格式說明:格式說明:(1)中斷函數(shù)無返回)中斷函數(shù)無返回值,數(shù)據(jù)類型以值,數(shù)據(jù)類型以void表表示,也可省略。示,也可省略。(2)中斷函數(shù)名為標)中斷函數(shù)名為標識符,一般以中斷名稱識符,一般以中斷名稱表示,力求簡明易懂,表示,力求簡明易懂,如如i

44、nt_0( )。(3)()為函數(shù)標志,)()為函數(shù)標志,interrupt為中斷函數(shù)的為中斷函數(shù)的關(guān)鍵詞。關(guān)鍵詞。(4)中斷號為該中斷)中斷號為該中斷在在IE寄存器的使能位置,寄存器的使能位置,如外部中斷如外部中斷0的中斷號的中斷號為為0,定時器,定時器1中斷的中中斷的中斷號為斷號為3。(5)選項)選項using n,指中斷函數(shù)使用的工作指中斷函數(shù)使用的工作寄存器組號,寄存器組號,n=03。5.2.4 5.2.4 C C語言程序分析與設(shè)計語言程序分析與設(shè)計 (1)不能進行參數(shù)傳遞。)不能進行參數(shù)傳遞。(2)無返回值。)無返回值。(3)在任何情況下不能直)在任何情況下不能直接調(diào)用中斷函數(shù),否則編

45、譯接調(diào)用中斷函數(shù),否則編譯器會產(chǎn)生錯誤。器會產(chǎn)生錯誤。 (4)可以在中斷函數(shù)定義中可以在中斷函數(shù)定義中使用使用using n 指令來指定當指令來指定當前使用的寄存器組。前使用的寄存器組。(5)在中斷函數(shù)中調(diào))在中斷函數(shù)中調(diào)用的函數(shù)所使用的寄用的函數(shù)所使用的寄存器組必須與中斷函存器組必須與中斷函數(shù)相同,程序員必須數(shù)相同,程序員必須保證按要求使用相應(yīng)保證按要求使用相應(yīng)的寄存器組,的寄存器組,C編譯器編譯器不會對此進行檢查。不會對此進行檢查。5.2.4 5.2.4 C C語言程序分析與設(shè)計語言程序分析與設(shè)計 2、編寫中斷函數(shù)時應(yīng)遵循的規(guī)則、編寫中斷函數(shù)時應(yīng)遵循的規(guī)則 5.2.4 C5.2.4 C語言

46、程序分析與設(shè)計語言程序分析與設(shè)計 C C程序代碼程序代碼C C語言程序語言程序 程序初始化子函數(shù)程序初始化子函數(shù)Init( )外部中斷外部中斷0服務(wù)子函數(shù)服務(wù)子函數(shù)int_0( )外部中斷外部中斷1服務(wù)子函數(shù)服務(wù)子函數(shù)int_1( )延時子函數(shù)延時子函數(shù)delay( )程序初始部分(含數(shù)據(jù)表定義)程序初始部分(含數(shù)據(jù)表定義)主函數(shù)主函數(shù) main( )3、C語言程序設(shè)計語言程序設(shè)計5.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 1、創(chuàng)建、創(chuàng)建Proteus仿真電路圖仿真電路圖(1)列出元器件表)列出元器件表(2)繪制仿真電路圖)繪制仿真電路圖5.2.5 5

47、.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 繪制的仿真電路圖中,若要使蜂鳴器鳴叫,繪制的仿真電路圖中,若要使蜂鳴器鳴叫,應(yīng)將蜂鳴器的工作電壓改為應(yīng)將蜂鳴器的工作電壓改為5V5V,即打開蜂鳴器,即打開蜂鳴器屬性設(shè)置窗口屬性設(shè)置窗口將將Operating VoltageOperating Voltage改為改為5V5V,同,同時將電阻時將電阻R6R6屬性窗口中的屬性窗口中的Model TypeModel Type改為改為DIGITALDIGITAL。 1、創(chuàng)建、創(chuàng)建Proteus仿真電路圖仿真電路圖 5.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿

48、真的調(diào)試與仿真 2、Proteus與與Keil聯(lián)調(diào)聯(lián)調(diào) 5.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真設(shè)置斷點設(shè)置斷點5.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 SP=0 x32SP=0 x32a=0 x00a=0 x00PSW=0 x0PSW=0 x005.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 a=0 x01a=0 x01SP=0 x32SP=0 x32PSW=0 x89PSW=0 x895.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿

49、真 SP=0 x30SP=0 x30PSW=0 x00PSW=0 x00a=0 x00a=0 x005.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 b=0 x01b=0 x015.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 R4=0 x1ER4=0 x1E5.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 3、Proteus仿真運行仿真運行5.2.5 5.2.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 仿真運行視頻仿真運行視頻任務(wù)任務(wù)5.3 5.3 簡易地震報警器

50、控制簡易地震報警器控制 實物運行視頻實物運行視頻K1按按鍵鍵 K2按按鍵鍵 蜂鳴蜂鳴器器 單片單片機機兩位兩位數(shù)碼管數(shù)碼管5.3.1 控制要求與功能展示控制要求與功能展示簡易地震報警器控制電路原理圖簡易地震報警器控制電路原理圖 任務(wù)任務(wù)5.3 簡易地震報警器控制簡易地震報警器控制 5.3.2 5.3.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析 該電路實際上是在前面任務(wù)該電路實際上是在前面任務(wù)5.2介紹的電路上介紹的電路上進進行擴展而成行擴展而成,將兩位共陰極數(shù)碼管的公共端分別連,將兩位共陰極數(shù)碼管的公共端分別連接在接在P2.0和和P2.1上,其它的硬件系統(tǒng)結(jié)構(gòu)與前述任上,其它的硬件系統(tǒng)結(jié)

51、構(gòu)與前述任務(wù)相同。務(wù)相同。K1和和K2按鍵均以外部中斷的方式向系統(tǒng)提按鍵均以外部中斷的方式向系統(tǒng)提供輸入信號,同時兩位數(shù)碼管以動態(tài)掃描的方式顯供輸入信號,同時兩位數(shù)碼管以動態(tài)掃描的方式顯示字符。示字符。 1、任務(wù)硬件系統(tǒng)分析、任務(wù)硬件系統(tǒng)分析 5.3.2 5.3.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析 數(shù)碼管的數(shù)碼管的8個顯示段的同名端連接在一起,每個數(shù)碼管的公共極個顯示段的同名端連接在一起,每個數(shù)碼管的公共極COM增增加位選通控制電路加位選通控制電路 。(1)數(shù)碼管動態(tài)掃描原理)數(shù)碼管動態(tài)掃描原理 5.3.2 5.3.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析IP寄存器寄存器

52、 每個中斷源都具有高低兩個中斷優(yōu)先級,中斷優(yōu)先級每個中斷源都具有高低兩個中斷優(yōu)先級,中斷優(yōu)先級由寄存器由寄存器IPIP進行設(shè)置進行設(shè)置 表表5-7 IP5-7 IP寄存器的結(jié)構(gòu)寄存器的結(jié)構(gòu)IP(0B8H) D7D6D5D4D3D2D1D0位名稱PSPT1PX1PT0PX0位含義串行中斷的中斷優(yōu)先級控制位T1的中斷優(yōu)先級控制位INT1的中斷優(yōu)先級控制位T0的中斷優(yōu)先級控制位INT0的中斷優(yōu)先級控制位位地址0BCH0BBH0BAH0B9H0B8H復(fù)位后,復(fù)位后,IP寄存器中的各位均被清零寄存器中的各位均被清零 (2)中斷優(yōu)先級)中斷優(yōu)先級 5.3.2 5.3.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控

53、制流程分析同時到來的同級中斷請求按自然優(yōu)先權(quán)來確定中斷響應(yīng)次序同時到來的同級中斷請求按自然優(yōu)先權(quán)來確定中斷響應(yīng)次序表表5-8 5-8 各中斷源及其自然優(yōu)先權(quán)各中斷源及其自然優(yōu)先權(quán)中斷源自然優(yōu)先權(quán)外部中斷0中斷高低定時器/計數(shù)器0中斷外部中斷1中斷定時器/計數(shù)器1中斷串行口中斷自然優(yōu)先權(quán)自然優(yōu)先權(quán) 5.3.2 5.3.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析中斷優(yōu)先級控制中斷優(yōu)先級控制中斷優(yōu)先級控制的中斷優(yōu)先級控制的基本原則基本原則為:為:高優(yōu)先級中斷可以中斷正在執(zhí)行的低優(yōu)高優(yōu)先級中斷可以中斷正在執(zhí)行的低優(yōu)先級中斷,反之不能;先級中斷,反之不能;同級優(yōu)先級不能互相中斷;同級優(yōu)先級不能互相

54、中斷;同一中斷優(yōu)先級中,若有多個中斷源同同一中斷優(yōu)先級中,若有多個中斷源同時請求中斷,時請求中斷,CPUCPU將先響應(yīng)優(yōu)先權(quán)高的中斷,將先響應(yīng)優(yōu)先權(quán)高的中斷,后響應(yīng)優(yōu)先權(quán)低的中斷。后響應(yīng)優(yōu)先權(quán)低的中斷。 (2)中斷優(yōu)先級)中斷優(yōu)先級 5.3.2 5.3.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析注意注意: 中斷嵌套只能高優(yōu)先級中斷嵌套只能高優(yōu)先級“中斷中斷”低優(yōu)先級,低優(yōu)先級不能低優(yōu)先級,低優(yōu)先級不能“中斷中斷”高優(yōu)先級,同一優(yōu)先級不能相互高優(yōu)先級,同一優(yōu)先級不能相互“中斷中斷” ” 。(3)中斷嵌套)中斷嵌套 5.3.2 5.3.2 硬件系統(tǒng)與控制流程分析硬件系統(tǒng)與控制流程分析圖圖5-

55、27 地震報警器控制流程地震報警器控制流程 2、任務(wù)控制流程分析、任務(wù)控制流程分析5.3.3 5.3.3 匯編語言程序分析與設(shè)計匯編語言程序分析與設(shè)計 匯編程序匯編程序 主程序主程序MAIN數(shù)碼管顯示子程序數(shù)碼管顯示子程序DIS延時子程序延時子程序DELAY顯示字符表顯示字符表外部中斷外部中斷0服務(wù)子程序服務(wù)子程序INT_0外部中斷外部中斷1服務(wù)子程序服務(wù)子程序INT_1程序初始部分程序初始部分程序初始化子程序程序初始化子程序INIT匯編程序匯編程序5.3.4 C5.3.4 C語言程序分析與設(shè)計語言程序分析與設(shè)計 C C程序代碼程序代碼 程序初始化子函數(shù)程序初始化子函數(shù)Init( )數(shù)碼管顯示子函數(shù)數(shù)碼管顯示子函數(shù)xianshi( )外部中斷外部中斷0子函數(shù)子函數(shù)int0( )延時子函數(shù)延時子函數(shù)delay( )程序初始部分(含數(shù)據(jù)表定義)程序初始部分(含數(shù)據(jù)表定義)主函數(shù)主函數(shù) main( )C C語言程序語言程序(1 1)列出元器件表;()列出元器件表;(2 2)繪制仿真電路圖)繪制仿真電路圖5.3.5 5.3.5 基于基于ProteusProteus的調(diào)試與仿真的調(diào)試與仿真 1、創(chuàng)建、創(chuàng)建Proteus仿真電路圖仿真電路圖5.3.5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論