C51單片機(jī)應(yīng)用設(shè)計(jì)與技能訓(xùn)練(第2版)課件 任務(wù)4 設(shè)計(jì)花樣流水燈_第1頁(yè)
C51單片機(jī)應(yīng)用設(shè)計(jì)與技能訓(xùn)練(第2版)課件 任務(wù)4 設(shè)計(jì)花樣流水燈_第2頁(yè)
C51單片機(jī)應(yīng)用設(shè)計(jì)與技能訓(xùn)練(第2版)課件 任務(wù)4 設(shè)計(jì)花樣流水燈_第3頁(yè)
C51單片機(jī)應(yīng)用設(shè)計(jì)與技能訓(xùn)練(第2版)課件 任務(wù)4 設(shè)計(jì)花樣流水燈_第4頁(yè)
C51單片機(jī)應(yīng)用設(shè)計(jì)與技能訓(xùn)練(第2版)課件 任務(wù)4 設(shè)計(jì)花樣流水燈_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

模塊四中斷系統(tǒng)4.1中斷系統(tǒng)結(jié)構(gòu)

4.1.1中斷的概述外部設(shè)備是微機(jī)的重要組成部分,而微機(jī)和外部設(shè)備之間不是直接相連的,而是通過(guò)不同的接口電路來(lái)達(dá)到彼此間的信息傳送的。CPU與外部交換信息的方式:(1)程序控制傳送方式(2)中斷傳送方式(3)直接存儲(chǔ)器存取(DMA)方式1.中斷的定義

你正在專心看書,突然電話鈴響,于是你記下正在看的書的頁(yè)數(shù),去接電話,接完電話后再回來(lái)接著看書。日常中斷的例子什么是中斷?

中斷是指計(jì)算機(jī)在執(zhí)行某段程序的過(guò)程中,由于計(jì)算機(jī)系統(tǒng)內(nèi)、外的某種原因,暫時(shí)中止原程序的執(zhí)行,轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,并中斷服務(wù)程序執(zhí)行完后,再回來(lái)繼續(xù)執(zhí)行被中斷的原程序的過(guò)程。2.中斷的作用1)CPU與外設(shè)并行工作。解決CPU速度快、外設(shè)速度慢的矛盾。2)實(shí)時(shí)處理??刂葡到y(tǒng)往往有許多數(shù)據(jù)需要采集或輸出。實(shí)時(shí)控制中有的數(shù)據(jù)難以估計(jì)何時(shí)需要交換。3)故障處理。計(jì)算機(jī)系統(tǒng)的故障往往隨機(jī)發(fā)生,如電源斷電、運(yùn)算溢出、存儲(chǔ)器出錯(cuò)等。采用中斷技術(shù),系統(tǒng)故障一旦出現(xiàn),就能及時(shí)處理。4)實(shí)現(xiàn)人機(jī)交互:人和單片機(jī)交互一般采用鍵盤和按鍵,可以采用中斷的方式實(shí)現(xiàn),中斷方式時(shí)CPU執(zhí)行效率高,而且可以保證人機(jī)交互的實(shí)時(shí)性,故中斷方式在人機(jī)交互中得到廣泛應(yīng)用。3.1.2MCS-51中斷系統(tǒng)中斷系統(tǒng)是指能實(shí)現(xiàn)中斷功能的那部分硬件電路和軟件程序。對(duì)于MCS-51單片機(jī),大部分中斷電路都是集成在芯片內(nèi)部的,只有和中斷輸入線上的中斷請(qǐng)求信號(hào)產(chǎn)生電路才分散在各中斷源電路或接口芯片電路里。IE0TCONSCONINT0IT0=0

IT0=1INT1IT1=0

IT1=1TF0IE1TF1T0T1TIRITXDRXDESET0EX0EX1ET1EA自然優(yōu)先級(jí)矢量地址高級(jí)中斷請(qǐng)求自然優(yōu)先級(jí)矢量地址低級(jí)中斷請(qǐng)求PX0PT0PX1PT1PSIEIP

中斷標(biāo)志位中斷源允許總允許EA中斷優(yōu)先級(jí)3.1.2MCS-51中斷系統(tǒng)1.MCS-51的中斷源和中斷標(biāo)志中斷源是指引起中斷的事件。在單片機(jī)中,中斷源是指引起中斷原因的設(shè)備或事件,或發(fā)出中斷請(qǐng)求信號(hào)的源泉。通常有I/O設(shè)備、實(shí)時(shí)控制系統(tǒng)中的隨機(jī)參數(shù)和信息故障源等。1)外部中斷源:MCS-51系列單片機(jī)有2個(gè)外中斷源,稱為外中斷0和1,經(jīng)由單片機(jī)上的P3.2、P3.3這兩個(gè)外部引腳引入,為、。

2)內(nèi)部中斷源定時(shí)器溢出中斷源。定時(shí)器溢出中斷源由內(nèi)部定時(shí)器/計(jì)數(shù)器產(chǎn)生,屬于內(nèi)部中斷。串行口中斷源。串行口中斷是由內(nèi)部串行口中斷源產(chǎn)生。

(1)中斷源1)TCON中的中斷標(biāo)志位D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0(2)中斷請(qǐng)求標(biāo)志(MSB)8FH8EH8DH8CH8BH8AH89H88H(LSB)外部中斷INT0中斷標(biāo)志位(TCON.1):IE0=1,外部中斷1向CPU申請(qǐng)中斷

外部中斷INT0觸發(fā)方式控制位(TCON.0):

IT0=0,電平觸發(fā)方式

IT0=1,下降沿觸發(fā)方式注意:該寄存器可以位尋址。提示:①電平觸發(fā)方式,CPU在每個(gè)機(jī)器周期的S5P2采樣P3.2,若P3.2為低電平,則IE0置1(表明外部中斷0向CPU申請(qǐng)中斷),否則IE0清零。②負(fù)跳變觸發(fā)方式,如果在兩個(gè)機(jī)器周期內(nèi),CPU采樣到上一個(gè)機(jī)器周期為高電平、下一個(gè)機(jī)器周期為低電平,則IE0置1,否則清零。為保證CPU能檢測(cè)到負(fù)跳變,的高、低電平時(shí)間至少應(yīng)保持1個(gè)機(jī)器周期。采樣采樣采樣采樣S5P2S5P2S5P2S5P2S5P21)TCON的中斷標(biāo)志位

TCON8FH8EH8DH8CH8BH8AH89H88HD7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0T0溢出中斷標(biāo)志(TCON.5):T0啟動(dòng)計(jì)數(shù)后,計(jì)滿溢出由硬件置位TF0=1,向CPU請(qǐng)求中斷,此標(biāo)志一直保持到CPU響應(yīng)中斷后,才由硬件自動(dòng)清0。也可用軟件查詢?cè)摌?biāo)志,并由軟件清0。

D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI2)SCON的中斷標(biāo)志位(MSB)9FH9EH9DH9CH9BH9AH99H98H(LSB)注意:該寄存器可以位尋址!RI(SCON.0)——串行接收中斷標(biāo)志。TI(SCON.1)——串行發(fā)送中斷標(biāo)志。(1)中斷允許控制——中斷允許寄存器IE

2.中斷控制D7D6D5D4D3D2D1D0EA××ESET1EX1ET0EX0(MSB)AFHAEHADHACHABHAAHA9HA8H(LSB)中斷允許寄存器IE對(duì)中斷的開(kāi)放和關(guān)閉實(shí)行兩級(jí)控制。所謂兩級(jí)控制,就是有一個(gè)總開(kāi)、關(guān)中斷控制位EA,當(dāng)EA=0時(shí),則屏蔽所有的中斷申請(qǐng),即任何中斷申請(qǐng)都不接受;當(dāng)EA=1時(shí),CPU開(kāi)放中斷,但五個(gè)中斷源還要由IE的低5位的各對(duì)應(yīng)控制位的狀態(tài)進(jìn)行中斷允許控制。例3-3如果我們要設(shè)置外中斷1、定時(shí)器1中斷允許,其它不允許,請(qǐng)?jiān)O(shè)置IE的相應(yīng)值。位D7D6D5D4D3D2D1D0符號(hào)EA××ESET1EX1ET0EX0值10001100(MSB)AFHAEHADHACHABHAAHA9HA8H(LSB)(a)SFR賦值IE=0x8c(b)用位賦值EA=1;CPU開(kāi)中斷ET1=1;定時(shí)/計(jì)數(shù)器1允許中斷EX1=1;外中斷T1允許中斷(2)中斷優(yōu)先級(jí)控制MCS-51單片機(jī)有兩個(gè)中斷優(yōu)先級(jí):高級(jí)中斷和低級(jí)中斷。每一個(gè)中斷源都可以通過(guò)編程確定為高優(yōu)先級(jí)中斷或低優(yōu)先級(jí)中斷。若CPU當(dāng)前正在為低優(yōu)先級(jí)中斷服務(wù),在開(kāi)中斷的條件下,它能被另一個(gè)高優(yōu)先級(jí)中斷請(qǐng)求所中斷,轉(zhuǎn)去為高級(jí)中斷服務(wù),再返回到被中斷了的低級(jí)中斷的服務(wù)程序,這即為中斷嵌套。

中斷嵌套過(guò)程CPU執(zhí)行高級(jí)中斷服務(wù)高級(jí)中斷請(qǐng)求返回低級(jí)中斷程序返回主程序響應(yīng)高級(jí)中斷低級(jí)中斷請(qǐng)求CPU執(zhí)行低級(jí)中斷響應(yīng)低級(jí)中斷CPU在執(zhí)行的主程序中斷優(yōu)先級(jí)寄存器IPD7D6D5D4D3D2D1D0×××PSPT1PX1PT0PX0(MSB)BFHBEHBDHBCHBBHBAHB9HB8H(LSB)專用寄存器IP為中斷優(yōu)先級(jí)寄存器,用戶可用軟件設(shè)定相應(yīng)位為1,對(duì)應(yīng)的中斷源被設(shè)置為高優(yōu)先級(jí),相應(yīng)位為0,對(duì)應(yīng)的中斷源被設(shè)置為低優(yōu)先級(jí)系統(tǒng)復(fù)位時(shí),均為低優(yōu)先級(jí)該寄存器可以位尋址自然優(yōu)先權(quán)順序中

源同級(jí)內(nèi)優(yōu)先權(quán)排列外部中斷0中斷(IE0)定時(shí)器/計(jì)數(shù)器0中斷(TF0)外部中斷1中斷(IE1)定時(shí)器/計(jì)數(shù)器1中斷(TF1)串行接口中斷(TI/RI)

低MCS-51系列單片機(jī)中斷響應(yīng)原則:1)高級(jí)中斷請(qǐng)求可以中斷正在執(zhí)行的低級(jí)中斷。2)同級(jí)或低級(jí)中斷請(qǐng)求不能中斷正在執(zhí)行的中斷。3)多個(gè)中斷源同時(shí)向CPU申請(qǐng)中斷,首先響應(yīng)優(yōu)先級(jí)別最高的中斷請(qǐng)求;多個(gè)同級(jí)中斷源同時(shí)向CPU申請(qǐng)中斷,CPU通過(guò)內(nèi)部硬件查詢,按自然優(yōu)先級(jí)確定優(yōu)先響應(yīng)哪一個(gè)中斷請(qǐng)求。解:IP的首3位沒(méi)用,可任意取值,設(shè)為000,后面根據(jù)要求寫就可以了。位D7D6D5D4D3D2D1D0符號(hào)XXXPSPT1PX1PT0PX0值00000110例

設(shè)有如下要求,將T0、外中斷1設(shè)為高優(yōu)先級(jí),其它為低優(yōu)先級(jí),求IP的值。IP的值就是06H。在上例中,如果5個(gè)中斷請(qǐng)求同時(shí)發(fā)生,求中斷響應(yīng)的次序。解:響應(yīng)次序?yàn)槎〞r(shí)器0→外中斷1→外中斷0→實(shí)時(shí)器1→串行中斷。位D7D6D5D4D3D2D1D0符號(hào)XXXPSPT1PX1PT0PX0值00000110(1)中斷響應(yīng)的時(shí)序3.中斷響應(yīng)(2)CPU響應(yīng)中斷的條件

①?zèng)]有同級(jí)或高優(yōu)先級(jí)的中斷正在處理;②正在執(zhí)行指令必須執(zhí)行完最后一個(gè)機(jī)器周期(換言之,正在執(zhí)行的指令完成前,任何中斷請(qǐng)求都得不到響應(yīng));③若正在RETI或讀寫IE或IP寄存器,則必須執(zhí)行完當(dāng)前指令的下一條其它指令之后才會(huì)響應(yīng)。

單片機(jī)一旦響應(yīng)中斷請(qǐng)求,就由硬件完成以下功能:①自動(dòng)清除相應(yīng)的中斷請(qǐng)求標(biāo)志位(串行口中斷請(qǐng)求標(biāo)志RI和TI除外);②保護(hù)斷點(diǎn)和現(xiàn)場(chǎng),把被響應(yīng)的中斷源所對(duì)應(yīng)的中斷服務(wù)程序的入口地址(中斷矢量)送入PC,從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。③結(jié)束中斷服務(wù)程序,恢復(fù)斷點(diǎn)和現(xiàn)場(chǎng),并返回響應(yīng)中斷之前的程序繼續(xù)執(zhí)行。(3)CPU響應(yīng)中斷的過(guò)程模塊三中斷系統(tǒng)3.2中斷初始化程序與

中斷服務(wù)函數(shù)1.中斷服務(wù)函數(shù)的一般形式void函數(shù)名(void)interruptm[unsignedn]代表中斷號(hào),是一個(gè)常量,取值范圍是0-31。C51編譯器允許32個(gè)中斷,從8m+3處產(chǎn)生中斷向量代表中斷函數(shù)將要選擇使用的寄存器組,也是一個(gè)常量,取值范圍是0~3。程序存儲(chǔ)器ROM0000H:復(fù)位后,程序的入口地址(PC=0000H)0023H:串行口中斷入口(中斷號(hào)m=4)0003H:外部中斷0入口(中斷號(hào)m=0)000BH:定時(shí)器/計(jì)數(shù)器0中斷入口(中斷號(hào)m=1)0013H:外部中斷1入口(中斷號(hào)m=2)001BH:定時(shí)器1/計(jì)數(shù)器中斷入口(中斷號(hào)m=3)

002BHMCS-51單片機(jī)中斷入口8字節(jié)關(guān)于USING的說(shuō)明using不僅可以用于中斷服務(wù)函數(shù)的定義中,也可以用于普通的內(nèi)部函數(shù),但不能用于外部函數(shù)。就中斷服務(wù)函數(shù)而言如果不使用using,則在進(jìn)入中斷服務(wù)函數(shù)的時(shí)候,中斷函數(shù)中所用到的全部工作寄存器都要入棧,函數(shù)返回之前所有的寄存器內(nèi)容出棧;如果使用using,則在進(jìn)入中斷服務(wù)函數(shù)的時(shí)候,只將當(dāng)前工作寄存器組入棧,用using指定的工作寄存器組的內(nèi)容不變也不入棧,函數(shù)返回之前將被保護(hù)的工作寄存器組出棧。提示(1)使用using可縮減中斷服務(wù)函數(shù)的入棧操作時(shí)間,因此可以使中斷得到更及時(shí)的處理;但同時(shí),使用using要十分小心,要保證寄存器組切換在所控制的區(qū)域內(nèi),否則會(huì)導(dǎo)致錯(cuò)誤。(2)中斷函數(shù)的編寫包括兩部分:中斷源的初始化函數(shù)和中斷服務(wù)函數(shù)。概括地說(shuō),中斷源初始化函數(shù)就是對(duì)中斷源所需要的一些變量進(jìn)行設(shè)置,其形式與其他普通函數(shù)一樣——一般在主函數(shù)里實(shí)現(xiàn);而中斷服務(wù)函數(shù)就是規(guī)定系統(tǒng)在發(fā)生相應(yīng)的中斷的時(shí)候要執(zhí)行哪些操作。(3)中斷函數(shù)的調(diào)用過(guò)程與一般函數(shù)調(diào)用相似,但一般函數(shù)是程序中事先安排好的;而何時(shí)調(diào)用中斷函數(shù)事先無(wú)法確定,調(diào)用中斷函數(shù)的過(guò)程是由硬件自動(dòng)完成的。中斷函數(shù)的類型及參數(shù)都為void類型中斷函數(shù)既不能進(jìn)行參數(shù)傳遞,也沒(méi)有返回值,因此,中斷函數(shù)的形式參數(shù)列表和函數(shù)類型標(biāo)識(shí)符名均為void。定時(shí)器0的定義方式:voidintr_time0(void)interrupt1{}2.中斷函數(shù)的編寫(1)中斷的初始化所謂初始化,是對(duì)將要用到的MCS-51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定。針對(duì)中斷來(lái)說(shuō),就是對(duì)IE,IP進(jìn)行初始化編程,實(shí)現(xiàn)如下要求:1)CPU開(kāi)中斷與關(guān)中斷。2)某個(gè)中斷源中斷請(qǐng)求的允許和禁止(屏蔽)。3)各中斷源優(yōu)先級(jí)別的設(shè)定。4)外部中斷請(qǐng)求的觸發(fā)方式。(2)中斷服務(wù)函數(shù)中斷服務(wù)函數(shù)就是規(guī)定系統(tǒng)在發(fā)生相應(yīng)的中斷的時(shí)候要執(zhí)行哪些操作。實(shí)例3-4:電平觸發(fā)與跳變觸發(fā)的比較#include<reg51.h>#include<stdio.h>voidserial_init();voidisr_int0();main(){serial_init();IT0=0;EA=1;EX0=1;while(1);}voidisr_int0()interrupt0{printf("Externalinterrupt0responded\n");}voidserial_init(){SCON=0X52;MOD=(TMOD&0X0F)|0X20;TH1=221;TR1=1;}電平觸發(fā)的輸出情況跳變觸發(fā)輸出情況main(){serial_init();

IT0=1;EA=1;EX0=1;while(1);}實(shí)例【例3-5】P1.3外接一個(gè)揚(yáng)聲器,當(dāng)與P3.3(外部中斷1輸入引腳)變?yōu)榈碗娖綍r(shí),揚(yáng)聲器發(fā)聲。實(shí)例3-5#include<reg51.h>sbitp13=P1^3;voidmain(){IT0=0;EA=1;EX1=1;p13=1;while(1);}voidisr_int1()interrupt2{inti;

p13=~p13;for(i=1000;i>0;i--);}案例示范:參數(shù)越限的直接報(bào)警案例液位上、下限SL1、SL2開(kāi)關(guān)取自“色帶指示報(bào)警儀”,分別接P1.3,P1.2。蒸汽壓力下限SP開(kāi)關(guān)接P1.1。爐堂溫度上限ST開(kāi)關(guān)接P1.0。P1.7~P1.4輸出接發(fā)光二極管,與4個(gè)參數(shù)對(duì)應(yīng),越限時(shí)則相應(yīng)的LED點(diǎn)亮。#include<reg51.h>voidisr_int0(void);main(){IT0=0;EX0=1;EA=1;while(1){}}主函數(shù)(初始化)voidisr_int0(void)interrupt0{chartemp1;P1=0x0ff;temp1=P1;temp1=temp1<<4;P1=temp1;for(i=10;i>0;i--):}實(shí)訓(xùn)內(nèi)容3、完成任務(wù)作業(yè)3-1。單片機(jī)的引腳功能8、P3口的第二功能2、振蕩電路:XTAL1、XTAL23、復(fù)位引腳:RST4、并行口:P0、P1、P2、P37、ALE:地址鎖存控制信號(hào)1、電源線:VCC(+5V)、VSS(地)5、EA:訪問(wèn)片外ROM控制信號(hào)6、PSEN:外部ROM讀選通信號(hào)VCCVSSXTAL2

XTAL1RST/VPDP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7EAPSENRXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C511.主電源引腳VCC(40腳):接+5V電源正端;VSS(20腳):接+5V電源地端。2.外接晶體引腳XTAL1(19腳):接外部

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論