單片機(jī)內(nèi)部電路_第1頁(yè)
單片機(jī)內(nèi)部電路_第2頁(yè)
單片機(jī)內(nèi)部電路_第3頁(yè)
單片機(jī)內(nèi)部電路_第4頁(yè)
單片機(jī)內(nèi)部電路_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

第四章單片機(jī)內(nèi)部電路中斷、優(yōu)先級(jí)、中斷服務(wù)、嵌套等。

4.1復(fù)位及復(fù)位電路

4.2輸入輸出結(jié)構(gòu)

4.3中斷結(jié)構(gòu)CPU與外設(shè)交換信息通常有如下三種形式:

程序控制傳送方式:無(wú)條件傳送和查詢方式傳送②

中斷方式③直接存貯器存?。―MA)方式。一、中斷的概念TCON定時(shí)/計(jì)數(shù)器控制RegSCON串行口控制Reg.IE 中斷允許Reg.IP 中斷優(yōu)先級(jí)Reg.二、89C51的中斷系統(tǒng)5個(gè)中斷源有兩個(gè)中斷優(yōu)先級(jí)(可由編程確定優(yōu)先級(jí)高低),可以實(shí)現(xiàn)兩級(jí)中斷服務(wù)程序嵌套。1.中斷源片內(nèi)(3):T0、T1(定時(shí)/計(jì)數(shù)器溢出中斷)串口(收/發(fā))中斷片外(2):可屏蔽(接P3.2和P3.3)5個(gè)2.

中斷管理與控制SFR①

均可位尋址②

具有“位址名”見P.30表2-5。①

TCON與SCON——鎖存各中斷請(qǐng)求信號(hào)

TCON:定時(shí)/計(jì)數(shù)器控制寄存器,管理4個(gè)中斷源。TF1,TF0——C/T中斷請(qǐng)求標(biāo)志(“1”)當(dāng)T0、T1加1計(jì)數(shù)導(dǎo)致溢出時(shí),由硬件自動(dòng)使TFi

置“1”,向CPU申請(qǐng)中斷。 當(dāng)CPU響應(yīng)中斷后,被硬件自動(dòng)清0。也可由軟件清0。IT0IE0IT1IE1TR0TF0TR1TF1TCON(88H)其中ITi0INTi為低電平時(shí)置位IEi,表示INTi向CPU申請(qǐng)中斷1INTi為時(shí)置位IEi,表示INTi向CPU申請(qǐng)中斷IT1——外部中斷請(qǐng)求類型(觸發(fā)方式)控制位。IE1——外部中斷

請(qǐng)求標(biāo)志位(“1”)。IT0——外部中斷 請(qǐng)求類型(觸發(fā)方式)控制位。IE0——外部中斷 請(qǐng)求標(biāo)志位(“1”)。INT1INT0INT1INT1INT0INT0其余:TR1,TR0——定時(shí)器運(yùn)行控制位(見定時(shí)/計(jì)數(shù)器)注意:

對(duì)INT0、INT1的中斷申請(qǐng),當(dāng)為邊沿觸發(fā)方式時(shí),若CPU響應(yīng)中斷,則IEi

被自動(dòng)清0;而電平觸發(fā)方式則不然,必須在引腳外加硬件(如D觸發(fā)器)使其撤銷外部中斷請(qǐng)求。②對(duì)外中斷INT0、INT1波形的要求下降沿有效要求寬度大于一個(gè)機(jī)器周期(12T)

低電平有效要求低電平保持到進(jìn)入中斷服務(wù)程序,而在中斷返回之前必須撤消。SCON:串口控制寄存器RITISCON(98H)發(fā)收當(dāng)串口發(fā)送(或接收)一幀串行數(shù)據(jù)后,由內(nèi)部硬件置中斷標(biāo)志

TI(或RI)為“1”。

CPU響應(yīng)串行口的中斷時(shí),并不清零TI、RI,必須由軟件清0。EX0ET0EX1ET1ES××EAIE(A8H)②IE中斷允許Reg.——實(shí)現(xiàn)對(duì)CPU和各中斷源的兩級(jí)控制ET1、ET0——定時(shí)/計(jì)數(shù)器溢出中斷允許位1允許0禁止ES——串行中斷允許位1允許串行中斷0禁止串行中斷EA——中斷總允許位1CPU開放中斷0CPU屏蔽所有中斷EX1、EX0——外部中斷1、0允許位1允許0禁止CPU復(fù)位時(shí),IE中各位為“0”(所有中斷被禁止)。1:高優(yōu)先級(jí),0:低優(yōu)先級(jí)

③IP中斷優(yōu)先級(jí)Reg.——定義中斷優(yōu)先級(jí)P118.例:假設(shè)允許片內(nèi)定時(shí)器/計(jì)數(shù)器中斷,禁止其它中斷。試根據(jù)假設(shè)條件設(shè)置IE的相應(yīng)值。用字節(jié)操作指令MOVIE,#8AH或MOVA8H,#8AH

用位操作指令SETBET0;定時(shí)/計(jì)數(shù)器0允許中斷

SETBET1;定時(shí)/計(jì)數(shù)器1允許中斷

SETBEA;CPU開中斷PX0PT0PX1PT1PS×××IP(B8H)5個(gè)中斷源串行口定時(shí)/計(jì)數(shù)器1,0外部中斷1,0(ⅰ)89C51復(fù)位時(shí),IP的低5位全部清零,將所有中斷源設(shè)置為低優(yōu)先級(jí)中斷。例:希望順序TF0、TF1→IE0、IE1→串,則可定義:11000又例見P120

5-2(ⅱ)要改變優(yōu)先級(jí),可設(shè)置IP寄存器中的相應(yīng)值。注意:原順序(ⅲ)5個(gè)源在同一級(jí)時(shí)的優(yōu)先權(quán),由CPU內(nèi)部登記排隊(duì)的序號(hào)決定。INT0T0INT1T1串口

IE0TF0IE1TF1RI+TI

高低高級(jí)原順序固定低級(jí)靈活注意:RESET時(shí),TCON、SCON、IE、IP全部清0。①開中斷(CPU,源)②優(yōu)先級(jí)排隊(duì)③執(zhí)行完當(dāng)前指令才響應(yīng)(若是RETI或訪問(wèn)IE、IP的指令時(shí),需執(zhí)行完其后的一條指令才響應(yīng))三、中斷響應(yīng)過(guò)程及響應(yīng)時(shí)間1.

中斷響應(yīng)條件2.

中斷響應(yīng)過(guò)程CPU自動(dòng)完成:保護(hù)斷點(diǎn)(當(dāng)前PC進(jìn)堆棧)清“中斷請(qǐng)求標(biāo)志”(TI、RI等由軟件清0的除外)轉(zhuǎn)中斷服務(wù)子程序(子程序入口地址PC)

特點(diǎn):①各“中斷源”對(duì)應(yīng)的“入口”固定。見p122表5-1 ②“入口”間隔小。一般,放不下一個(gè)中斷服務(wù)子程序,故實(shí)際其中放跳轉(zhuǎn)指令。例:ORG 0000H

AJMP MA ;轉(zhuǎn)主程序

ORG 000BH ;轉(zhuǎn)T0中斷服務(wù)子程序 AJMP L0

:MA:……:L0:……對(duì)主程序來(lái)說(shuō),CPU復(fù)位時(shí),PC=0000H。但0000H~0003H僅有3個(gè)字節(jié),所以在此放一條跳轉(zhuǎn)指令。①

當(dāng)CPU正在執(zhí)行一個(gè)同級(jí)或高一級(jí)的中斷服務(wù)程序時(shí),中斷申請(qǐng)不能得到響應(yīng)。3.中斷優(yōu)先級(jí)與中斷嵌套

若希望中斷嵌套,可設(shè)置各中斷源為不同優(yōu)先級(jí)。由于CPU響應(yīng)中斷時(shí),并不主動(dòng)關(guān)中斷,因而可實(shí)現(xiàn)中斷嵌套。

若要在執(zhí)行當(dāng)前中斷程序時(shí)禁止更高優(yōu)先級(jí)中斷,可以在中斷服務(wù)程序開頭用軟件關(guān)閉CPU,或禁止某中斷源中斷,在中斷返回前再開放中斷。

2.外中斷多于2個(gè)時(shí)——可用中斷+查詢方式

例)4.外部中斷響應(yīng)時(shí)間約3~8個(gè)機(jī)器周期四、外部中斷擴(kuò)展方法1.利用定時(shí)器(外部計(jì)數(shù)輸入引腳)擴(kuò)展外部中斷源將計(jì)數(shù)器置成FFH,外中斷源接至T0或T1,下降沿到來(lái)時(shí)申請(qǐng)中斷,轉(zhuǎn)中斷服務(wù)。當(dāng)任一外部中斷源高電平申請(qǐng)中斷,則INT0引腳電平變低,究竟是哪一個(gè)外設(shè)申請(qǐng)中斷,可通過(guò)程序查詢獲知。0003HAJMPINT0 :0013HAJMPINT1 :INT0: PUSHPSW PUSHA JBP1.0,IR0 JBP1.1,IR1 JBP1.2,IR2 JB P1.3,IR3 :EXIT: POPA POPPSWRETIIR0: …

裝置1的中斷服務(wù)程序

AJMP EXITIR1: …裝置1裝置2裝置3裝置4+5VINT0INT1P1.3P1.2P1.1P1.089C51五、中斷程序舉例例1.P.126例5-3P.128例5-4,自看。⑴中服少于8個(gè)字節(jié),可從規(guī)定的中斷服務(wù)入口地址開始。⑵程序大于8個(gè)字節(jié),在相應(yīng)的入口處寫一條跳轉(zhuǎn)指令。

1.主程序⑴主程序起始地址0030H以后開始。⑵主程序初始化內(nèi)容

對(duì)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定以中斷為例:上電復(fù)位后,TCON、SCON、IE、IP全為0,應(yīng)初始化開放中斷、置優(yōu)先級(jí)等。2.中斷服務(wù)程序中斷服務(wù)程序起始地址

①微打時(shí)序圖例2.微打接口片內(nèi)(30H)~(3FH)字符串送微打打印8031將1個(gè)字節(jié)送微型打印機(jī)DATA8位數(shù)據(jù)D0~D7STBBUSYACK忙信號(hào)輸出線數(shù)據(jù)選通輸入線有效時(shí),將數(shù)據(jù)送入打印機(jī)。應(yīng)答輸出線數(shù)據(jù)存入打印機(jī)緩存后發(fā)出通常:對(duì)BUSY的高電平查詢;或用BUSY、ACK的下降沿作中斷申請(qǐng),申請(qǐng)CPU再送數(shù)據(jù)。

8031與微打接口

ORG 0000H LJMP MN;轉(zhuǎn)主

ORG 0003H LJMP PRN;轉(zhuǎn)中服

ORG 0200H

MN: MOV SP,#60HMOV R0,#30H;串首 MOV R7,#16;個(gè)數(shù)SETBIT0;INT0觸發(fā)方式SETBEX0;INT0開中斷SETBEA;CPU開中斷

中斷方式(開始時(shí)BUSY=0,第一個(gè)字符不能在中斷中送)+P0WRP2.7INT0(P3.2)DBSTBBUSYACK用WR、P2.7產(chǎn)生STB信號(hào)用ACK或BUSY申請(qǐng)中斷。 MOVDPTR,#7FFFH ;微打地址 MOV A,@R0 MOVX@DPTR,A ;第一個(gè)字符送微打 DEC R7 INC R0 ;為下一個(gè)字符準(zhǔn)備 SJMP $ ;等待中斷

ORG 0300HPRN: MOV A,@R0 ;送一個(gè)字符 MOVX@DPTR,A INC R0 DJNZR7,L1 ;全送完? CLR EX0 ;關(guān)中斷L1: RETI

ORG0000H LJMPMN

ORG0200HMN: MOVR0,#30H MOVR7,#16 MOVDPTR,#7FFFHL1: JBP3.2,L1;

查詢BUSY(為高,等待) MOVA,@R0 MOVX@DPTR,A

INCR0 DJNZR7,L1 ;送完? SJMP$ ;停;送一數(shù)

查詢方式例3.利用8031的外部中斷,可以實(shí)現(xiàn)單步操作.消抖動(dòng)電路INT080315V1K程序: ORG 0000H LJMP MN ORG 0003H LJMP STEPMN: CLR IT0 ;0電平中斷 SETB EA ;CPU開中斷 SETB PX0 ;INT0優(yōu)先級(jí)最高*1 SETB EX0 *2 NOP ;INT0平時(shí)為低電平,則在此中斷執(zhí)行過(guò)程:執(zhí)行②執(zhí)行①執(zhí)行③

執(zhí)行*1時(shí),已來(lái)中斷,執(zhí)行完*2后,進(jìn)入中斷。停在*3停在*4停在*3停在*4來(lái)中斷,執(zhí)行完*5后再執(zhí)行①后才響應(yīng)。 ① MOV A,#03H ② ADD A,#5H ③ MOV P1,A ④ SJMP $STEP:*3 JNB P3.2,$ ;P3.2為低時(shí),原地等待 *4JB P3.2,$ ;P3.2為高時(shí),原地等待 *5RETI ;P3.2又為低時(shí),中斷服務(wù)結(jié)束,返回;待調(diào)程序段

ORG0000H AJMPMAIN

ORG

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論