版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
會計學(xué)1C的中斷系統(tǒng)及定時計數(shù)器資料實(shí)用2023/1/1925.1
80C51單片機(jī)的中斷系統(tǒng)5.1.180C51中斷系統(tǒng)的結(jié)構(gòu)
CPU進(jìn)行工作A時發(fā)生了事件B,請求CPU馬上處理
CPU暫時中斷當(dāng)前工作A,轉(zhuǎn)去處理事件B
事件B處理完后,回到工作A被中斷的地方繼續(xù)處理A工作
中斷的概念中斷源中斷請求
中斷服務(wù)中斷返回中斷系統(tǒng)中斷的優(yōu)點(diǎn)利用率高
實(shí)時性強(qiáng)可靠性好第1頁/共42頁2023/1/19380C51中斷系統(tǒng)的結(jié)構(gòu)5個中斷源、2個優(yōu)先級第2頁/共42頁2023/1/194中斷源5.1.280C51的中斷源外部中斷0(INT0)外部中斷1(INT1)T0溢出中斷(TF0)T1溢出中斷(TF1)串行口中斷(RI或TI)第3頁/共42頁2023/1/195觸發(fā)方式設(shè)置及中斷標(biāo)志
76543210TCONTF1TR1TF0TR0IE1IT1IE0IT0字節(jié)地址:88H電平方式(ITx=0),INTx引腳低電平時IEx=1,響應(yīng)中斷后IEx不自動清0(INTx引腳狀態(tài))。邊沿方式(ITx=1),INTx引腳負(fù)跳變時IEx=1,響應(yīng)中斷后IEx自動清0。外部中斷標(biāo)志IE1、IE0(用IEx表示)第4頁/共42頁2023/1/196兩種觸發(fā)方式比較:電平方式時,INTx低電平必須保持到響應(yīng)時,否則就會漏掉;在中斷服務(wù)結(jié)束前,INTx低電平必須撤除,否則中斷返回之后將再次產(chǎn)生中斷。
例,8255的中斷請求線在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此以其去請求電平觸發(fā)方式的中斷比較方便。邊沿方式時,采樣到有效下降沿后,在IEx中將鎖存一個1。若CPU暫時不能響應(yīng),申請標(biāo)志也不會丟失,直到響應(yīng)時才清0。
例,ADC0809的轉(zhuǎn)換結(jié)束信號EOC為正脈沖,經(jīng)反相后就可以作為80C51的INTx信號。第5頁/共42頁2023/1/197溢出中斷標(biāo)志TF1、TF0(用TFx表示)
溢出中斷請求標(biāo)志TFx,Tx啟動后就開始由初值進(jìn)行加1計數(shù),直至最高位產(chǎn)生溢出使TFx=1向CPU請求中斷。CPU響應(yīng)中斷后TFx自動清0。
SCON的中斷標(biāo)志76543210SCONTIRI字節(jié)地址:98HRI:串口接收中斷標(biāo)志,響應(yīng)中斷時不能自動清除
TI:串口發(fā)送中斷標(biāo)志,響應(yīng)中斷時不能自動清除
第6頁/共42頁2023/1/1985.1.380C51中斷的控制中斷允許控制中斷源的開放和屏蔽由IE控制(1,開放;0,禁止)
76543210IEEAESET1EX1ET0EX0字節(jié)地址:A8HEX0:外中斷0允許ET0:T0中斷允許
EX1:外中斷1允許ET1:T1中斷允許ES:串口中斷允許
EA:CPU中斷允許
第7頁/共42頁2023/1/199中斷優(yōu)先級控制中斷優(yōu)先級由IP控制(1,高級;0,低級)
76543210IPPSPT1PX1PT0PX0字節(jié)地址:B8HPX0:外中斷0優(yōu)先級
PT0:T0中斷優(yōu)先級PX1:外中斷1優(yōu)先級PT1:T1中斷優(yōu)先級PS:串口中斷優(yōu)先級同一優(yōu)先級的自然順序:自高至低:INT0、TO、INT1、T1、串口。
第8頁/共42頁2023/1/1910中斷優(yōu)先級遵循的原則幾個中斷同時申請,先響應(yīng)高級的中斷正進(jìn)行的中斷服務(wù),同級或低級中斷不能對其中斷,但可以被高級中斷所中斷。
為此,中斷系統(tǒng)內(nèi)設(shè)有對應(yīng)高、低2個優(yōu)先級狀態(tài)觸發(fā)器(用戶不能尋址)。狀態(tài)觸發(fā)器的復(fù)位由中斷返回指令RETI控制。第9頁/共42頁2023/1/19115.2
80C51單片機(jī)中斷處理過程5.2.1中斷響應(yīng)條件和時間中斷響應(yīng)條件有中斷請求
相應(yīng)的中斷允許位為1CPU開中斷(即EA=1)
遇下面情況之一將不被響應(yīng)(此間中斷條件失效,中斷丟失)
正在處理同級或高級中斷
當(dāng)前查詢周期不是所執(zhí)行指令的最后一個機(jī)器周期
正在執(zhí)行RETI或訪問IE或IP
的指令
第10頁/共42頁2023/1/1912中斷響應(yīng)時間中斷響應(yīng)至少需要3個完整的機(jī)器周期(3~8個)!受阻時要附加3~5個機(jī)器周期(無同級或高級中斷正進(jìn)行)
查詢周期不是當(dāng)前指令的最后機(jī)器周期(如MUL,+3)查詢周期恰逢RETI類指令(且后跟MUL指令+5)第11頁/共42頁2023/1/19135.2.2中斷響應(yīng)過程
CPU響應(yīng)中斷過程將相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器置1(阻斷后來同級或低級中斷)執(zhí)行硬件LCALL指令(PC入棧,中斷服務(wù)程序入口址送PC
)執(zhí)行中斷服務(wù)程序
編寫中斷服務(wù)程序注意中斷服務(wù)程序入口存放指令LJMP或AJMP現(xiàn)場保護(hù)與現(xiàn)場恢復(fù)第12頁/共42頁2023/1/19145.2.3中斷返回中斷服務(wù)程序最后指令必須是RETI,其功能:將斷點(diǎn)從堆棧彈送PC,CPU從原斷點(diǎn)繼續(xù)執(zhí)行將相應(yīng)優(yōu)先級狀態(tài)觸發(fā)器清0,恢復(fù)原來工作狀態(tài)注意不能用RET代替RETI
中斷服務(wù)程序中PUSH和POP必須成對使用第13頁/共42頁2023/1/19155.2.4中斷程序舉例【例5-1】單外部中斷源示例ORG0000HSTART:LJMPMAIN
ORG0003H
LJMPINTO
ORG0030HMAIN:CLRIT0;電平
SETBEA
SETBEX0
MOVDPTR,#1000H
…
…
主程序:第14頁/共42頁2023/1/1916中斷服務(wù)程序:ORG0200HINT0:PUSHPSWPUSHACCCLRP3.0;由P3.0輸出0NOPNOPSETBP3.0MOVP1,#0FFH;置P1口為輸入
MOVA,P1;輸入數(shù)據(jù)
MOVX@DPTR,A;存入數(shù)據(jù)存儲器
INCDPTR;修改數(shù)據(jù)指針,指向下一個單元
…
…POPACC;恢復(fù)現(xiàn)場
POPPSWRETI第15頁/共42頁2023/1/1917【例5-2】多外部中斷源示例中斷服務(wù)程序:
ORG0003HLJMPINSE0
ORG0013HLJMPINSE1
…
…INSE0:PUSHPSW;XI0中斷服務(wù)
PUSHACC
…
…POPACCPOPPSWRETI(轉(zhuǎn)下頁)
第16頁/共42頁2023/1/1918INSE1:PUSHPSW(接上頁)
PUSHACCJBP1.0,DV1;P1.0為1,轉(zhuǎn)XI1中斷服務(wù)程序
JBP1.1,DV2;P1.1為1,轉(zhuǎn)XI2中斷服務(wù)程序
JBP1.2,DV3;P1.2為1,轉(zhuǎn)XI3中斷服務(wù)程序
JBP1.3,DV4;P1.3為1,轉(zhuǎn)XI4中斷服務(wù)程序INRET:POPACCPOPPSWRETIDV1:…
…
;XI1中斷服務(wù)程序
AJMPINRET
…
…DV4:…
…
;XI4中斷服務(wù)程序
AJMPINRET
第17頁/共42頁2023/1/19195.3
80C51單片機(jī)的定時/計數(shù)器定時/計數(shù)器的結(jié)構(gòu)基本型:T0,定時、計數(shù)。T1,定時、計數(shù)、串口波特率發(fā)生器。增強(qiáng)型:增加了T2。見5.3.4節(jié)。5.3.1定時/計數(shù)器的結(jié)構(gòu)和工作原理TH1、TL1TH0、TL0TCONTMOD第18頁/共42頁2023/1/1920定時/計數(shù)器的工作原理實(shí)質(zhì)是16位加1計數(shù)器定時器模式時,是對內(nèi)部機(jī)器周期計數(shù)。計數(shù)值乘以機(jī)器周期就是定時時間計數(shù)器模式時,是對外部事件計數(shù)。脈沖由T0(P3.4)或T1(P3.5)引腳輸入。
注意:(若計數(shù)值為N,計數(shù)初值為X)溢出信號使TF0或TF1置1,并發(fā)出中斷請求,16位時有:
N=65536-X,或X=65536-N12MHz晶振時,計數(shù)頻率低于0.5MHz
第19頁/共42頁2023/1/19215.3.2定時/計數(shù)器的控制工作方式寄存器TMOD
76543210TMODGATEC/TM1M0GATEC/TM1M0字節(jié)地址:89HGATE:門控位。GATE=0時,只要TRx為1,就可啟動計數(shù)器工作;GATA=1時,定時器的啟動還要加上INTx引腳為高電平這一條件。
C/T:模式選擇位。清0為定時模式,置1為計數(shù)方式。M1M0:工作方式設(shè)置位??稍O(shè)置四種工作方式(見下頁)。第20頁/共42頁2023/1/1922M1M0工作方式說明00方式013位定時/計數(shù)器01方式116位定時/計數(shù)器10方式28位自動重裝定時/計數(shù)器11方式3T0分成兩個獨(dú)立的8位定時/計數(shù)器;T1此方式停止計數(shù)注意:TMOD不能進(jìn)行位尋址
第21頁/共42頁2023/1/1923控制寄存器TCON
76543210TCONTF1TR1TF0TR0字節(jié)地址:88HTFx:Tx溢出標(biāo)志位。響應(yīng)中斷后TFx有硬件自動清0。用軟件設(shè)置TFx可產(chǎn)生同硬件置1或清0同樣的效果。TRx:Tx運(yùn)行控制位。置1時開始工作;清0時停止工作。TRx要由軟件置1或清0(即啟動與停止要由軟件控制)。第22頁/共42頁2023/1/19245.3.3定時/計數(shù)器的工作方式T0有方式0、1、2、3;T1有方式0、1、2。以T0為例說明。方式0:13位方式
第23頁/共42頁2023/1/1925C/T=1時,則為計數(shù)模式,有:
X=213-N=8192-NC/T=0時,則為定時模式,有:
X=213-N=8192-N,N=t/Tcy【例5-3】若計數(shù)個數(shù)N為2,求計數(shù)初值。公式法計算:X=8192-2=8190=1FFEH求補(bǔ)法計算:對0000000000010B取反加1為:
1111111111110B(1FFEH)初值計算:公式法
求補(bǔ)法:X=對N求補(bǔ)第24頁/共42頁2023/1/1926門控位作用當(dāng)GATE=0時僅由TR0控制與門的開啟。與門輸出1時,控制開關(guān)接通,計數(shù)開始;當(dāng)GATE=1時與門的開啟由INT0和TR0共同控制。這種方式可以用來測量INT0引腳上正脈沖的寬度。
注意:方式0的計數(shù)初值高8位和低5位確定麻煩
,實(shí)際應(yīng)用中常由16位的方式1取代。第25頁/共42頁2023/1/1927方式1:16位方式
X=216-N=65536-N計數(shù)范圍:1~65536
計數(shù)初值要分成2個字節(jié)分別送入TH0、TL0第26頁/共42頁2023/1/1928【例5-4】若要求定時器T0工作于方式1,定時時間為1ms,當(dāng)晶振為6MHz時,求送入TH0和TL0的計數(shù)初值各為多少?應(yīng)怎樣送入TH0和TL0?由于晶振為6MHz,所以機(jī)器周期Tcy為2μS,因此:N=t/Tcy=1×10-3/2×10-6=500X=216-N=65536-500=65036=FE0CH也可以利用以下2條指令完成:MOVTL0,#(65536-500)MOD256;余數(shù)為計數(shù)初值的低字節(jié)MOVTH0,#(65536-500)/256;商為計數(shù)初值的高字節(jié)用傳送指令分別將FEH送入TH0中,0CH送入TL0中即可。第27頁/共42頁2023/1/1929方式2:8位自動重裝方式
X=28-N=256-N計數(shù)范圍:1~256
特別適合與脈沖信號發(fā)生器第28頁/共42頁2023/1/1930方式3:(僅T0有此方式,T1的方式3將停止計數(shù))
TL0進(jìn)行8位定時/計數(shù)TH0進(jìn)行8位定時(T1方式2時,可出借TR1、TF1)第29頁/共42頁2023/1/19315.3.4定時/計數(shù)器用于外部中斷擴(kuò)展例:用T0擴(kuò)展一個外部中斷源。將T0設(shè)置為計數(shù)器方式,按方式2工作,TH0、TL0的初值均為0FFH,T0允許中斷,CPU開放中斷。其初始化程序如下:
MOVTMOD,#06H;置T0為計數(shù)器方式2MOVTL0,#0FFH;置計數(shù)初值
MOVTH0,#0FFHSETBTR0;啟動T0工作
SETBEA;CPU開中斷
SETBET0;允許T0中斷
…
…T0外部引腳上出現(xiàn)一個下降沿信號時,TL0計數(shù)加1,產(chǎn)生溢出,將TF0置1,向CPU發(fā)出中斷請求…
…
第30頁/共42頁2023/1/19325.3.5定時/計數(shù)器應(yīng)用舉例初始化程序應(yīng)完成:對TMOD賦值,以確定T0和T1的工作方式;求初值,并寫入TH0、TL0或TH1、TL1;中斷方式時,要對IE賦值,開放中斷;使TR0或TR1置位,啟動定時/計數(shù)器工作。第31頁/共42頁2023/1/1933計數(shù)應(yīng)用【例5-5】有一包裝流水線,產(chǎn)品每計數(shù)24瓶時發(fā)出一個包裝控制信號。試編寫程序完成這一計數(shù)任務(wù)。用T0完成計數(shù),用P1.0發(fā)出控制信號。確定方式字:T0在計數(shù)的方式2時:M1M0=10,GATE=0,C/T=1方式控制字為06H
求計數(shù)初值X:N=24X=256-24=232=E8H應(yīng)將E8H送入TH0和TL0中第32頁/共42頁2023/1/1934ORG0000HLJMPMAIN
ORG000BHLJMPDVT0
ORG0100HMAIN:MOVTMOD,#06H;置T0計數(shù)方式2MOVTH0,#0E8H;裝入計數(shù)初值
MOVTL0,#0E8HSETBET0;T0開中斷
SETBEA;CPU開中斷
SETBTR0;啟動T0SJMP$;等待中斷DVT0:SETBP1.0NOPNOPCLRP1.0RETIEND主程序
中斷服務(wù)程序
第33頁/共42頁2023/1/1935定時應(yīng)用
定時時間較小時(小于65ms)。晶振為12MHz時,Tcy為1μS??芍苯硬捎梅绞?完成定時任務(wù)。
【例5-6】利用定時/計數(shù)器T0的方式1,產(chǎn)生10ms的定時,并使P1.0引腳上輸出周期為20ms的方波,采用中斷方式,設(shè)系統(tǒng)的晶振頻率為12MHz。確定方式字:T0在定時的方式1時:M1M0=01,GATE=0,C/T=0方式控制字為01H
求計數(shù)初值X:Tcy為1μSN=10ms/1μS=10
000X=65536-10000=D8F0H應(yīng)將D8送TH0,F0H送TL0
第34頁/共42頁2023/1/1936ORG0000HLJMPMAIN
ORG000BHLJMPDVT0
ORG0100HMAIN:MOVTMOD,#01H;置T0方式1MOVTH0,#0D8H;裝入計數(shù)初值
MOVTL0,#0F0HSETBET0;T0開中斷
SETBEA;CPU開中斷
SETBTR0;啟動T0SJMP$;等待中斷DVT0:CPLP1.0MOVTH0,#0D8HMOVTL0,#0F0HRETIEND主程序
中斷服務(wù)程序
第35頁/共42頁2023/1/1937采用軟件查詢方式完成的源程序如下:ORG0000HLJMPMAIN;跳轉(zhuǎn)到主程序
ORG0100H;主程序
MAIN:MOVTMOD,#01H;置T0工作于方式1LOOP:MOVTH0,#0D8H;裝入計數(shù)初值
MOVTL0,#0F0HSETBTR0;啟動定時器T0JNBTF0,$;TF0=0,查詢等待
CLRTF0;清TF0CPLP1.0;P1.0取反輸出
SJMPLOOPEND第36頁/共42頁2023/1/1938
定時時間較大時(大于65ms)。實(shí)現(xiàn)方法:一是采用1個定時器定時一定的間隔(如20ms),然后用軟件進(jìn)行計數(shù);二是采用2個定時器級聯(lián),其中一個定時器用來產(chǎn)生周期信號(如20ms為周期),然后將該信號送入另一個計數(shù)器的外部脈沖輸入端進(jìn)行脈沖計數(shù)。
【例5-7】編寫程序,實(shí)現(xiàn)用定時/計數(shù)器T0定時,使P1.7引腳輸出周期為2s的方波。設(shè)系統(tǒng)的晶振頻率為12MHz。確定方式字:T0在定時的方式1時:M1M0=01,GATE=0,C/T=0方式控制字為01H
求計數(shù)初值X:Tcy為1μSN=20ms/1μS=20
000X=65536-20000=4E20H應(yīng)將4E送TH0,20H送TL0
采用定時20ms,然后再計數(shù)50次的方法實(shí)現(xiàn)第37頁/共42頁2023/1/1939ORG0000HLJMPMAIN
ORG000BHLJMPDVT0
ORG0030HMAIN:MOVTMOD,#01H;置T0方式1MOVTH0,#4EH;裝入計數(shù)初值
MOVTL0,#20H;首次計數(shù)值
MOVR7,#50
;
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 維修聲屏障施工方案
- 梁平外墻施工方案
- 美術(shù)設(shè)計素描技巧指導(dǎo)方案
- 礦山移動工程施工方案
- 鋁模機(jī)電預(yù)留施工方案
- 2025年中國無人自動駕駛汽車行業(yè)市場發(fā)展現(xiàn)狀及投資規(guī)劃建議報告
- 2024-2029年全球及中國核醫(yī)學(xué)設(shè)備行業(yè)發(fā)展前景展望與投資戰(zhàn)略規(guī)劃分析報告
- 2025年中國內(nèi)鏡超聲行業(yè)市場全景分析及投資策略研究報告
- 石膏裝飾材料物流服務(wù)合同
- 精密儀器運(yùn)輸協(xié)議詳盡版
- 2025年工程合作協(xié)議書
- 2025年山東省東營市東營區(qū)融媒體中心招聘全媒體采編播專業(yè)技術(shù)人員10人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年宜賓人才限公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- KAT1-2023井下探放水技術(shù)規(guī)范
- 竣工驗(yàn)收程序流程圖
- 清華經(jīng)管工商管理碩士研究生培養(yǎng)計劃
- 口腔科診斷證明書模板
- 管溝挖槽土方計算公式
- 國網(wǎng)浙江省電力公司住宅工程配電設(shè)計技術(shù)規(guī)定
- 煙花爆竹零售應(yīng)急預(yù)案
- RNA介導(dǎo)的DNA甲基化
評論
0/150
提交評論