第五章 單片機(jī)的中斷與定時(shí)系統(tǒng)_第1頁(yè)
第五章 單片機(jī)的中斷與定時(shí)系統(tǒng)_第2頁(yè)
第五章 單片機(jī)的中斷與定時(shí)系統(tǒng)_第3頁(yè)
第五章 單片機(jī)的中斷與定時(shí)系統(tǒng)_第4頁(yè)
第五章 單片機(jī)的中斷與定時(shí)系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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)、定時(shí)器/計(jì)數(shù)器

§5-1MCS-51的中斷系統(tǒng)§5-2

定時(shí)/計(jì)數(shù)器

§5-1MCS-51的中斷系統(tǒng)一、中斷概述

1、

中斷概念某人看書(shū) 執(zhí)行主程序 日常事務(wù)電話鈴響 中斷信號(hào)INT=0 中斷請(qǐng)求暫停看書(shū)

暫停執(zhí)行主程序中斷響應(yīng)書(shū)中作記號(hào)當(dāng)前PC入棧 保護(hù)斷點(diǎn)電話談話 執(zhí)行I/O程序 中斷服務(wù)繼續(xù)看書(shū) 返回主程序 中斷返回日常事務(wù)程序中斷服務(wù)程序2、

中斷源 中斷源指引起正在執(zhí)行的程序中斷,轉(zhuǎn)而執(zhí)行中 斷服務(wù)程序的設(shè)備或事件??煞譃橛仓袛?、軟中斷。

MCS-51單片機(jī)的5個(gè)中斷源: ①外部中斷2個(gè):、,中斷請(qǐng)求信號(hào)分別由P3.2、P3.1輸入,低電平有效、脈沖下降沿有效可選。 入口地址:0003H,0013H。

②定時(shí)/計(jì)數(shù)溢出中斷2個(gè):T0、T1,計(jì)數(shù)溢出時(shí)置“1”TF0、TF1位,從而發(fā)出內(nèi)部中斷請(qǐng)求。 入口地址:000BH,001BH。

③串行中斷1個(gè):串行接收或發(fā)送完一幀數(shù)據(jù)時(shí)就產(chǎn)生一個(gè)內(nèi)部中斷請(qǐng)求RI或TI。 入口地址:0023H。

3、

中斷處理過(guò)程 包含:中斷請(qǐng)求、中斷響應(yīng)、中斷服務(wù)、中斷返回四個(gè)階段. ①中斷請(qǐng)求:中斷源將相應(yīng)請(qǐng)求中斷的標(biāo)志位置 “1”,表示發(fā)出請(qǐng)求,并由CPU查詢。 ②中斷響應(yīng):在一條指令的最后一個(gè)周期按優(yōu)先級(jí)順序查詢中斷標(biāo)志,為“1”并滿足響應(yīng)條件時(shí)響應(yīng)。響應(yīng)操作:斷點(diǎn)壓棧→撤除中斷標(biāo)志→關(guān)閉低同級(jí)中斷允許→中斷入口地址送PC。實(shí)際上響應(yīng)中斷的主要操作是有硬件自動(dòng)產(chǎn)生一條長(zhǎng)調(diào)用指令LCALL。 ③中斷服務(wù):根據(jù)入口地址轉(zhuǎn)中斷服務(wù)程序,包含保護(hù)現(xiàn)場(chǎng)、執(zhí)行中斷主體、恢復(fù)現(xiàn)場(chǎng)。 ④中斷返回:斷點(diǎn)出棧→開(kāi)放中斷允許→返回原程序。

4、中斷優(yōu)先級(jí)及其嵌套 優(yōu)先級(jí)2個(gè)---高優(yōu)先級(jí)、低優(yōu)先級(jí),可通過(guò)SFR寄存器IP設(shè)置。 中斷嵌套原則為高優(yōu)先級(jí)的中斷不能被低優(yōu)先的中斷所中斷,同級(jí)中斷不能相互中斷。

5、中斷控制的特點(diǎn)①中斷是隨機(jī)發(fā)生的,并且是可編程的。②通過(guò)執(zhí)行特定功能的程序段而獲得預(yù)定目的。

6、MCS-51中斷匯集

二、中斷控制 通過(guò)對(duì)特殊功能寄存器TCON、SCON、IE、IP等四個(gè)寄存器的設(shè)定而實(shí)現(xiàn)。

1、中斷請(qǐng)求控制 (1)定時(shí)中斷、外中斷請(qǐng)求控制寄存器TCON

字節(jié)地址88H,位地址8FH~88H,與中斷請(qǐng)求有關(guān)的各位表示如下:TF1、TF0:T1/T0溢出中斷請(qǐng)求標(biāo)志。IE1、IE0:外中斷/請(qǐng)求標(biāo)志。IT1、IT0:外中斷/觸發(fā)方式定義位,“1”—后沿觸發(fā)

(2)串行中斷請(qǐng)求控制寄存器SCON

串行中斷請(qǐng)求由TI、RI的邏輯“或”得到。即不論是發(fā)送標(biāo)志還是接收標(biāo)志,都將發(fā)生串行中斷請(qǐng)求。 字節(jié)地址98H,位地址9FH~98H,與中斷請(qǐng)求有關(guān)的各位表示如下:

TI為發(fā)送中斷,RI為接收中斷,為“1”時(shí),請(qǐng)求中斷,響應(yīng)后必須由用戶軟件清零。 (3)中斷請(qǐng)求的撤銷 中斷響應(yīng)后,必須及時(shí)清除TCON、SCON中的已響應(yīng)中斷請(qǐng)求標(biāo)志,否則,會(huì)引起中斷的重復(fù)查詢和響應(yīng)。

①外中斷請(qǐng)求的撤銷:對(duì)于邊沿觸發(fā)方式:由于觸發(fā)信號(hào)過(guò)后就消失,撤銷自然也就是自動(dòng)的。 對(duì)于電平觸發(fā)方式:需通過(guò)軟硬件結(jié)合的方法來(lái)實(shí)現(xiàn)撤銷。 ②定時(shí)中斷請(qǐng)求的撤銷:定時(shí)中斷后,硬件自動(dòng)清“0”。③串行中斷請(qǐng)求的撤銷:不能自動(dòng)清“0”,須用軟件的方法在中斷服務(wù)子程序中進(jìn)行清“0”。

2、中斷允許控制 由SFR寄存器IE設(shè)置,分二級(jí)允許控制。以EA位作為總控,以各中斷源的允許位作為分控。

IE字節(jié)地址A8H,位地址AFH~A8H,與中斷允許有關(guān)的各位表示如下: 單片機(jī)復(fù)位后,(IE)=00H,因此,整個(gè)中斷系統(tǒng)為禁止?fàn)顟B(tài)。

3、中斷優(yōu)先級(jí)控制 由SFR寄存器IP設(shè)置,有2個(gè)優(yōu)先級(jí),相應(yīng)位置“1”,為高優(yōu)先級(jí)。相應(yīng)位置“0”,為低優(yōu)先級(jí)。

IP字節(jié)地址B8H,位地址BFH~B8H,與中斷允許有關(guān)的各位表示如下: 注意:5個(gè)中斷允許位全部置“1”時(shí),和全部清0效果一樣,為同優(yōu)先級(jí)中斷,按自然優(yōu)先級(jí)處理,即為→T0→→T1→串行口,優(yōu)先級(jí)依次從高到低。 三、中斷應(yīng)用

1、中斷應(yīng)用的準(zhǔn)備工作(1)中斷初始化設(shè)置:定義SP、IP、IE和外中斷觸發(fā)方式選擇;(2)中斷服務(wù)程序:中斷入口、現(xiàn)場(chǎng)保護(hù)、中斷主體程序、恢復(fù)現(xiàn)場(chǎng)返回。

2、應(yīng)用舉例

例6-1

通過(guò)P1.0~P1.7控制發(fā)光二極管,輸出兩種節(jié)日燈,并利用外中斷P3.2,在兩種狀態(tài)之間切換。 分析:主程序中狀態(tài):亮1燈左移循環(huán),中斷程序中的狀態(tài):以1秒間隔8燈依次亮起,再依次熄滅,循環(huán)3次后返回。

主流程圖(略),程序如下:

ORG 0000H LJMP MAIN ORG 0003H ;中斷入口

LJMP 0100H ORG 0030H

MAIN:

MOV SP, #60H SETB IT0;設(shè)定下跳有效

SETB EX0 ;開(kāi)中

SETB EA MOV IP, #01H MOV A, #01H LOOP: MOV P1, A RL A LCALL DELAY AJMP LOOP

中斷服務(wù)程序流程圖:

中斷服務(wù)程序:

ORG 0100H PUSH ACC CLR A MOV R0, #00H LOOP1: SETB C RLC A MOV P1, A LCALL DELAY JNB ACC.7, LOOP1 LOOP2: CLR C RLC A MOV P1, A LCALL DELAY JB ACC.7, LOOP2 INC R0 CJNE R0, #03H, LOOP1 POP ACC

RETI DELAY: (略) ;1秒延時(shí)

§5-2

定時(shí)/計(jì)數(shù)器一、定時(shí)/計(jì)數(shù)器構(gòu)成1、定時(shí)方法軟件延時(shí)通過(guò)執(zhí)行循環(huán)而獲得延時(shí),短時(shí)間延時(shí);硬件延時(shí)由硬件電路實(shí)現(xiàn)延時(shí),長(zhǎng)時(shí)間延時(shí);可編程定時(shí)通過(guò)對(duì)系統(tǒng)時(shí)鐘脈沖的計(jì)數(shù)而獲得延時(shí)。2、MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器

16位定時(shí)/計(jì)數(shù)器T0、T1,分別由4個(gè)8位計(jì)數(shù)器組成,均屬SFR寄存器。T0由TH0、TL0構(gòu)成,字節(jié)地址為8CH、8AH;T1由TH1、TL1構(gòu)成,字節(jié)地址為8DH、8BH;

MCS-51單片機(jī)定時(shí)器結(jié)構(gòu)示意圖3、MCS-51單片機(jī)定時(shí)/計(jì)數(shù)器的功能 歸根結(jié)底是計(jì)數(shù)器。 (1)定時(shí)功能對(duì)片內(nèi)機(jī)器周期進(jìn)行計(jì)數(shù),即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)加1。

(2)計(jì)數(shù)功能對(duì)片外從T0(P3.4)、T1(P3.5)引腳輸入的外部脈沖信號(hào)進(jìn)行計(jì)數(shù),下降沿計(jì)數(shù)加1。

二、定時(shí)/計(jì)數(shù)器的控制寄存器 與定時(shí)/計(jì)數(shù)器有關(guān)的控制寄存器有3個(gè):1、定時(shí)器控制寄存器TCON(88H)

SFR寄存器TCON既參與定時(shí)控制又參與中斷控制,有關(guān)定時(shí)控制的有4位,表示如下:

TF1/TF0:當(dāng)T1/T0的計(jì)數(shù)器計(jì)數(shù)溢出時(shí),該位置“1”。

TR1/TR0:T1/T0運(yùn)行控制位。軟件將其置“1”時(shí),啟動(dòng)T1/T0工作。2、設(shè)定定時(shí)器工作方式寄存器TMOD(89H)

SFR寄存器TMOD用于2個(gè)定時(shí)器/計(jì)數(shù)器T1/T0的工作方式設(shè)定,各位的含義表示如下:

GATE:門控位,定義T1/T0的啟動(dòng)方式,邏輯如圖:C/:定時(shí)/計(jì)數(shù)功能選擇位。 為“0”,作定時(shí)器用;為“1”,作計(jì)數(shù)器用。M1M0:工作方式選擇位。

00方式0 13位計(jì)數(shù)器

01方式1 16位計(jì)數(shù)器

10方式2 初值自動(dòng)重裝8位計(jì)數(shù)器

11方式32個(gè)8位計(jì)數(shù)器,僅適用于T0

3、中斷允許控制寄存器IE(A8H)三、定時(shí)器/計(jì)數(shù)器工作方式1、工作方式0M1M0=00——13位計(jì)數(shù)器(1)結(jié)構(gòu)由TH0的全部8位和TL0的低5位構(gòu)成,如下頁(yè)圖。當(dāng)TL0低5位計(jì)數(shù)滿時(shí)直接向TH0進(jìn)位,并當(dāng)全部13位計(jì)數(shù)滿溢出時(shí),TF0置“1”。(2)TMOD值: 作定時(shí)器:TMOD=00000000=00H

作計(jì)數(shù)器:TMOD=00000100=04H(3)計(jì)數(shù)初值最大計(jì)數(shù)值為213=8192△T=(213—計(jì)數(shù)初值)×機(jī)器周期(12/fosc)計(jì)數(shù)初值=213—欲計(jì)數(shù)脈沖數(shù)=213—△T/機(jī)器周期

2、工作方式1M1M0=01——16位計(jì)數(shù)器方式1時(shí)的電路邏輯結(jié)構(gòu)如圖所示作定時(shí)器,TMOD=01H;作計(jì)數(shù)器,TMOD=05H;△T=(216—計(jì)數(shù)初值)×機(jī)器周期(12/fosc)計(jì)數(shù)初值=216—欲計(jì)數(shù)脈沖數(shù)=216—△T/機(jī)器周期 例如:定時(shí)500us,fosc=6MHz時(shí), 初值=216—500/2=65536-250=65286=FF

06H

那么:TH0=FFH,TL0=06H

3、工作方式2M1M0=10——自動(dòng)復(fù)位的8位計(jì)數(shù)器 以TL0作計(jì)數(shù)器,而TH0作為預(yù)置寄存器。當(dāng)計(jì)數(shù)滿溢出時(shí),TF0置“1”,同時(shí)TH0將計(jì)數(shù)初值以硬件方法自動(dòng)裝入TL0。邏輯結(jié)構(gòu),如圖所示: 作定時(shí)器,TMOD=02H; 作計(jì)數(shù)器,TMOD=06H; 最大計(jì)數(shù)值為28=256,若fosc=12MHz,則方式2的最大定時(shí)時(shí)間為256us。當(dāng)作為定時(shí)器用時(shí),定時(shí)時(shí)間的計(jì)算公式: △T=(28—計(jì)數(shù)初值)×機(jī)器周期(12/fosc) 計(jì)數(shù)初值=28—欲計(jì)數(shù)脈沖數(shù)=28—△T/機(jī)器周期例如:定時(shí)500,fosc=6MHz時(shí),初值=28—500/2=6=06H

則:TH0=TL0=06H4、工作方式3M1M0=11——2個(gè)8 位計(jì)數(shù)器(僅限于T0)在T0方式3下,T0、T1的設(shè)置和使用是不同的。(1)T0方式3TL0:使用T0原有控制資源,功能與方式0、1相同。TH0:借用T1的TR1、TF1,只能對(duì)片內(nèi)機(jī)器周期脈沖計(jì)數(shù),作8位定時(shí)器。

T0方式3時(shí)的T0、T1電路邏輯結(jié)構(gòu),如圖所示

T0方式3時(shí)的T0初值計(jì)算完全同方式2(2)T0方式3下的T1 T0方式3時(shí),T1仍然可工作于方式0~方式2,如上頁(yè)圖所示。C/控制位仍可使T1工作在定時(shí)器或計(jì)數(shù)器方式,只是由于其TR1、TF1被T0的TH0占用,因而沒(méi)有計(jì)數(shù)溢出標(biāo)志可供使用,計(jì)數(shù)溢出時(shí)只能將輸出結(jié)果送至串行口,即用作串行口波特率發(fā)生器。

T0方式3下的T1方式2,因定時(shí)初值能自動(dòng)恢復(fù),用作波特率發(fā)生器更為合適。四、定時(shí)/計(jì)數(shù)器的應(yīng)用

【例6-2】已知fosc=6MHz,利用T1定時(shí)500us,在P1.0口輸出周期為1ms的方波脈沖,使用方式0~方式2編程。解:1)方波波形如圖所示:

2)計(jì)數(shù)初值:方式0:計(jì)數(shù)初值=213—欲計(jì)數(shù)脈沖數(shù)=213—△T/機(jī)器周期 =213-500/2=1F06H∴TH1=F8H,TL1=06H方式1:計(jì)數(shù)初值=216—欲計(jì)數(shù)脈沖數(shù)=216—△T/機(jī)器周期 =216-500/2=FF06H∴TH1=FFH,TL1=06H方式2:計(jì)數(shù)初值=28—欲計(jì)數(shù)脈沖數(shù)=28—△T/機(jī)器周期

=28-500/2=06H∴TH1=TL1=06H 3)定時(shí)到達(dá)P1.0的翻轉(zhuǎn)方法:查詢方式、中斷方式

4)流程、程序如下:

方式0:采用查詢方式 程序:流程:

ORG 0030H START: MOV TMOD,#00H MOV TH1, #0F8H MOV TL1, #06H MOV IE, #00H SETB TR1 WT: JNB TF1, WT CPL P1.0 CLR TF1 MOV TH1, #0F8H MOV TL1, #06H SJMP WT 方式1:采用中斷方式

ORG 0000H LJMP START ORG 001BH LJMP 0100H ORG 0030H START: MOVTMOD,#10H MOV TH1, #0FFH MOV TL1, #06H MOV IE, #88H MOV IP, #00001000B SETB TR1 SJMP $

中斷服務(wù)程序:

ORG 0100H CPL P1.0 MOV TH1, #0FFH MOV TL1, #06H RETI

方式2:采用中斷方式

ORG 0000H LJMP START ORG 001BH LJMP 0100H ORG 0030H START: MOV TM

溫馨提示

  • 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)論