定時器、計數器、中斷課件_第1頁
定時器、計數器、中斷課件_第2頁
定時器、計數器、中斷課件_第3頁
定時器、計數器、中斷課件_第4頁
定時器、計數器、中斷課件_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

4.1MCS-51單片機的中斷系統中斷的概念

MCS-51的中斷系統及控制中斷處理外部中斷及其擴展思考練習題

4.1.1中斷的概念中斷機制產生前微機的輸入/輸出方式無條件方式程序查詢方式

DMA方式中斷方式查詢方式流程圖

4.1.1中斷的概念當CPU正在處理某件事情的時候,內部或外部發(fā)生的某一事件(如一個電平的變化,一個脈沖沿的發(fā)生或定時器計數溢出等)請求CPU迅速去處理,于是,CPU暫時中止當前的工作,轉去處理所發(fā)生的事件。處理完該事件以后,再回到原來被中止的地方,繼續(xù)原來的工作,這樣的過程稱為中斷。4.1.2MCS-51的中斷系統及控制8051單片機中斷系統的結構如圖5.3所示。一、中斷源8051中斷系統的5個中斷源為: ——外部中斷0請求,通過P3.2引腳輸入。 ——外部中斷1請求,通過P3.3引腳輸入。T0 ——定時器/計數器0溢出中斷請求。T1 ——定時器/計數器1溢出中斷請求。TI/RI ——串行口中斷請求。表5.1中斷源及其對應的中斷矢量中斷源中斷矢量外部中斷00003H定時器T0中斷000BH外部中斷10013H定時器T1中斷001BH串行口中斷0023H二、中斷控制

1.定時器控制寄存器TCON與中斷有關的位如圖5.4所示。2.串行口控制寄存器SCONSCON中TI和RI的格式如圖5.5所示。外部中斷方式的選擇

1.電平方式——低電平有效“0”2.邊沿方式——下降沿有效“1”4.中斷優(yōu)先級寄存器IP051片內有一個中斷優(yōu)先級寄存器IP,其格式如圖5.7所示。例系統要求設定8051的片外中斷為高優(yōu)先級中斷,片內中斷為低優(yōu)先級。請寫出相應的指令。解:根據題目要求,需要將8051的外部中斷優(yōu)先級控制位PX0、PX1設置為1,而內部中斷優(yōu)先級控制位PT0、PT1、PS清為0。(1) 用字節(jié)操作指令:MOVIP,#05H(2) 用位操作指令:SETBPX0SETBPX1CLRPSCLRPT0CLRPT12.中斷處理圖5.8中斷服務程序流程4其他說明的問題外部中斷的響應時間中斷嵌套最多實現二級中斷嵌套4.1.3思考練習題(1)什么是中斷和中斷系統?其主要功能是什么?(2)試編寫一段對中斷系統初始化的程序,使之允許INT0,INT1,T0,串行口中斷,且使T0中斷為高優(yōu)先級中斷。(3)試編寫一段程序,對中斷系統進行初始化,要求允許外部中斷0和外部中斷1,并將外部中斷0設置為低優(yōu)先級,邊沿觸發(fā)方式,將外部中斷1設置為高優(yōu)先級,電平方式。(4)在單片機中,中斷能實現哪些功能?(5)8051共有哪些中斷源?對其中斷請求如何進行控制?(6)什么是中斷優(yōu)先級?中斷優(yōu)先處理的原則是什么?(7)說明外部中斷請求的查詢和響應過程。(8)8051在什么條件下可響應中斷?(9)在8051內存中,應如何安排中斷服務程序?(10)當正在執(zhí)行某一中斷源的中斷服務程序時,如果有新的中斷請求出現,試問在什么情況下可響應新的中斷請求?在什么情況下不能響應新的中斷請求?(11)8051單片機外部中斷源有幾種觸發(fā)中斷請求的方法?如何設置?中斷程序舉例例:現有5個外部中斷源EX1~EX5,如下圖所示。中斷請求信號低電平有效,編寫查詢外部中斷請求線EX1~EX5上中斷請求的程序。&EX2EX3EX4EX5INT1P1.0P1.1P1.2P1.3MCS-51EX1INT0 ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 0013H LJMP INT1MAIN: MOV SP,#60H CLR IT1 CLR IT0 SETB EX0 SETB EXI SETB EA SJMP $ ORG 1000HINT0: PUSH PSW PUSH ACC ACALL EX1 POP ACC POP PSW RETI ORG 1200HINT1: PUSH PSW PUSH ACC ORL P1,#0FH MOV A,P1 JB P1.0,N1 ACALLEX2 N1: JB P1.1,N2 ACALLEX3 N2: JB P1.2,N3 ACALLEX4N3: JB P1.3,N4 ACALLEX5N4: POP ACC POP PSW RETI ENDTABLE: DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH DB 0BFH,0DFH,0EFH,0F7H DB 0FBH,0FDH,0FEH,0FFH DB 0AAH,55H,0AAH,55H DB 0AAH,55H,0FFH DB 1BH RETTABLE1: DB 0FFH,00H,0FFH,00H,0FFH DB 00H,0FFH,00H,0FFH,00H DB 1BH RET END4.2定時/計數器定時器的結構定時器的工作方式定時器應用4.2.2定時器的控制1.工作模式寄存器TMOD圖6.2TMOD的位定義2.定時器控制寄存器TCON圖6.3TCON的位定義4.2.3定時器的工作方式一、模式0及應用模式0是選擇定時器(T0或T1)的高8位和低5位組成的一個13位定時器/計數器。圖6.4是T0在模式0時的邏輯電路結構。T1的模式0電路結構與T0相同。圖6.4定時器T0的模式0例1設定時器T0選擇工作模式0,求最長定時時間,如果要實現定時時間為1ms,fosc=6MHz。試確定T0的初值。解:當T0處于工作模式0時,加1計數器為13位。T0最大定時時間對應于13位計數器T0的各位全為0,即(TH0)=00H,(TL0)=00H。最長定時時間為:tmax=(213-X(x=0))×0.002ms=(213–X)×0.002ms=16.384ms設定時時間為1ms時的初值為X,則:X===7692轉化成二進制為:1111000001100B按照低5位,高8位拆開,T0的低5位TL0=01100B=0CHT0的高8位TH0=11110000B,即F0H二、模式1及應用圖6.5定時器T0的模式1例1利用定時器T0產生一個頻率為50Hz的方波,由P1.1輸出。要求采用中斷方式。fosc=12MHz。解:方波周期T=1/50Hz=0.02s=20ms,如果要輸出方波,則需要將P1.1狀態(tài)每半個周期翻轉一次。故定時時間為10ms,則定時器初值為:X===65536-10000=55536=D8F0H則:TH0=0D8H,TL0=0F0H程序如下:ORG 0000HLJMP MAINORG 000BHT0INT:LJMP T0SEV ORG 0030HMAIN:MOV SP,#60H ;設置堆棧指針 MOV TMOD,#01H ;設定T0為模式1,定時方式 MOV TH0,#0D8H ;設定初值 MOV TL0,#0F0H SETB TR0 ;啟動定時 SETB ET0 ;開中斷 SETB EA SJMP $ ;等待中斷T0SEV:MOV TH0,#0D8H ;重新裝入初值 MOV TL0,#0F0H CPL P1.1 ;P1.0狀態(tài)取反,輸出方波 RETI END三模式2及應用模式2把T0(或Tl)配置成一個可以自動重裝載的8位定時器/計數器,如圖6.6所示。例1利用定時器T1的模式2對外部信號計數。要求每計滿150次,將P1.0端取反。解:(1)選擇模式:外部信號由T1(P3.5)引腳輸入,每發(fā)生一次負跳變計數器加1,每輸入150個脈沖,計數器發(fā)生溢出中斷,中斷服務程序將P1.0取反一次。T1計數工作方式模式2的模式字為TMOD=60H。T0不用時,TMOD的低4位可任取,但不能使T0進入模式3,一般取0。(2)計算T1的計數初值:X=28-150=256-150=106=6AH因此,TL1的初值為6AH,重裝初值寄存器TH1初值為6AH。(3)程序清單:MAIN:MOV TMOD,#60H ;置T1為模式2計數工作方式 MOV TL1,#6AH ;賦初值 MOV TH1,#6AH MOV IE,#88H ;定時器T1開中斷 SETB TR1 ;啟動計數器HERE: SJMP HERE ;等待中斷 ORG 001BH ;中斷服務程序入口 CPL P1.0 RETI四、模式3及應用圖6.7定時器T0的模式3(a)T0模式3時的T1模式0(b)T0模式3時的T1模式14.2.4定時/計數器使用一定時/計數器對輸入信號的要求圖6.9對輸入脈沖寬度的要求二定時/計數器的編程步驟1.確定相關參數(1)確定選用的定時器/計數器。(2)確定工作方式(3)確定工作模式(4)計算計數初值確定數據傳送方式2.初始化程序編寫

三應用舉例1.波形發(fā)生器例從P1.0輸出頻率為100Hz的方波脈沖(設fosc=12MHz)。(使用查詢方式)解:定時器選擇工作模式確定計算初值硬件連接及傳送方式選擇 ORG 0000H LJMP START ORG 0100HSTART: MOV TMOD,#10H ;T1模式1,定時工作方式 SETB TR1 ;啟動定時器T1LOOP: MOV TH1,#0FEH ;裝入T1初值 MOV TL1,#0CH ;HERE: JNB TF1,HERE ;查詢溢出標志,否則等待 CLR TF1 ;有溢出,清溢出標志 CPL P1.0 ;P1.0取反 SJMP LOOP END2.長時間定時程序例試編寫利用T0產生1s定時的程序。(設fosc=6MHz)。解:定時器及模式確定計算初值程序清單模式0最長可定時16.384ms模式1最長可定時131.072ms模式2最長可定時0.512ms故:采用模式1,每100ms溢出1次,溢出10次即為1s求初始值:(216-X)*0.002us=100msX=65536-50000=15536=3CB0H ORG 0000H LJMP START ORG 000BH LJMP T0INT ORG 0100HSTART: MOV SP,#70H MOV R0,#0AH MOV TMOD,#01H ;T0模式1,定時工作方式 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 ;啟動定時器T0 SETB ET0 SETB EA SJMP $ ORG 0200HT0INT: MOV TH0,#03CH ;裝入T0初值 MOV TL0,#0B0H ; DJNZ R0,THERE ;查詢計時溢出次數 CLR TF0 ;1s時間到,停止計時THERE: RETI ;中斷返回 END實驗二使用定時/計數器作為延時控制,要求在兩個LED燈P0.0和P0.1之間按1s間隔相互閃爍。 ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV TMOD, #01H ;使用定時器0,工作方式1 MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 ;啟用定時器0 SETB P0.0 CLR P0.1 MOV R7, #14HLOOP: JNB TF0, LOOP MOV TH0, #3CH MOV TL0, #0B0H CLR TF0 DJNZ R7, LOOP LCALL STEP SJMP LOOPSTEP: CPL P0.0 CPL P0.1 MOV R7, #14H RET END查詢方式 ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ORG 0100HMAIN: MOV TMOD, #01H ;使用定時器0,工作方式1 MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 ;啟用定時器0 SETB ET0 SETB EA SETB P0.0 CLR P0.1 MOV R7, #14H SJMP $T0_INT: MOV TH0, #3CH MOV TL0, #0B0H DJNZ R7, NEXT CPL P0.0 CPL P0.1 MOV R7, #14HNEXT: RETI END中斷方式思考練習題

(1)8051定時器有哪幾種工作模式?有何區(qū)別?(2)8051單片機內部設有幾個定時器/計數器?是由哪些特殊功能寄存器組成的?(3)定時器模式2有什么特點?適用于什么應用場合?(4)試述8051單片機內部定時器/計數器工作于定時器方式和計數器方式的異同。(5)當定時器T0用作模式3時,由于TR1位已被T0占用,如何控制定時器T1的開啟和關閉?(6)單片機用內部定時方法產生頻率為100KHz等寬矩形波,假定單片機的晶振頻率為12MHz,請編程實現。(7)8051定時器作定時和計數時,其計數脈沖分別從何處提供?(8)8051定時器的門控制信號GATE設置為1時,定時器如何啟動?4.3單片機的串行通信及接口串行通信的有關概念MCS-51串行通信接口及控制寄存器串行接口的工作方式串行口的應用數據通信4.3.1串行通信的有關概念(a)并行傳輸 (b)串行傳輸圖7.1兩種通信方式串行通信的傳輸方向

(a)單工方式 (b)半雙工方式(c)全雙工方式1.異步通信異步通信和同步通信(b)有空閑位圖7.3串行異步通信的幀格式2.同步通信串行通信的波特率波特率,即為數據傳送速率,表示每秒鐘傳送二進制代碼的位數,它的單位是b/s。波特率對于CPU與外界的通信是很重要的。

圖7.4串行同步通信格式遠距離串行通信串行通信接口圖7.6UART的結構示意圖MCS-51串行接口結構MCS-8051通過引腳RXD(P3.0,串行數據接收端)和引腳TXD(P3.1,串行數據發(fā)送端)與外界進行通信。

4.3.2MCS-51串行通信接口及控制寄存器串行口控制寄存器1.串行口控制寄存器SCON圖7.8串行口控制寄存器表7.1串行口的工作方式選擇SM0SM1工作方式說明波特率00方式0同步移位方式fosc/1201方式110位異步收發(fā)定時器T1控制10方式211位異步收發(fā)fosc/32或fosc/6411方式311位異步收發(fā)定時器T1控制電源控制寄存器在串行口控制中只用了一位SMOD。見圖7.9。

SMOD稱為串行口波特率倍增位,在串行口方式1、方式2和方式3時,波特率與2SMOD成正比,亦即當SMOD=1時,波特率提高一倍。復位時,SMOD=0。2.電源控制寄存器PCON一、工作方式04.3.3串行接口的工作方式(a)方式0發(fā)送電路(b)方式0接收電路圖7.10方式0應用電路圖7.11串行口方式0發(fā)送時序圖7.12串行口方式0接收時序二、工作方式1幀格式如下:……起始D0D1D2D3D4D5D6D7停止……串行口方式1的發(fā)送和接收時序如圖7.13所示。三、工作方式2和工作方式3其幀格式為:……起始D0D1D2D3D4D5D6D7D8停止……方式2和方式3的發(fā)送、接收時序與方式1類似,只是增加了一位第九位。發(fā)送和接收時序可參考圖7.13。四、波特率設計1.方式0的波特率方式0波特率=fosc/122.方式2的波特率方式2波特率取決于PCON中SMOD位的值;當SMOD=0時,波特率為fosc的1/64;若SMOD=1,則波特率為fosc的1/32。3.方式1和方式3的波特率(1)方式1、方式3波特率=(2)方式1、方式3波特率=波特率foscSMOD定時器1C/T模式重裝載值375k12M162.5k12M102FFH19.2k11.059M102FDH9.6k11.059M002FDH4.8k11.059M002FAH2.4k11.059M002F4H1.2

溫馨提示

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

評論

0/150

提交評論