版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 第4章 中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器和串行口 4.1 中斷系統(tǒng) 4.2 定時(shí)器/計(jì)數(shù) 4.3 串行口 4.1 中斷系統(tǒng)中斷系統(tǒng)一、輸入/輸出方式及中斷的概念 1.輸入/輸出方式 CPU與外設(shè)的信息交換稱為輸入/輸出。輸入/輸出方式有三種。 無條件傳送方式 數(shù)據(jù)的傳送取決于程序執(zhí)行輸入/輸出指令,而與外設(shè)的狀態(tài)無關(guān)。它適合于與CPU同步的快速設(shè)備或狀態(tài)已知外設(shè),軟、硬件系統(tǒng)簡單。如:驅(qū)動(dòng)繼電器、驅(qū)動(dòng)數(shù)碼顯示器等。 查詢方式 中斷方式 查詢方式是一種條件傳送。在傳送數(shù)據(jù)前,首先讀取外設(shè)狀態(tài)信息,并加以測試判斷。其特點(diǎn)是:在硬件上不僅要考慮數(shù)據(jù)信息的傳送,而且還要考慮狀態(tài)信息的輸入;在查詢過程中CPU
2、的利用率不高,適合于實(shí)時(shí)性能要求不高的情況下。 中斷方式也是一種條件傳送。CPU可以與外設(shè)同時(shí)工作,并執(zhí)行與外設(shè)無關(guān)的操作,一旦外設(shè)需要服務(wù),就主動(dòng)向CPU提出申請(qǐng),CPU暫?,F(xiàn)在的操作去執(zhí)行對(duì)外設(shè)的輸入輸出程序,執(zhí)行完畢又返回繼續(xù)執(zhí)行現(xiàn)在的操作。 應(yīng)用范圍較廣。 2中斷的概念(1) 中斷: CPU正在執(zhí)行程序的過程中,由于CPU之外的某種原因,有必要暫停該程序的執(zhí)行,轉(zhuǎn)而去執(zhí)行相應(yīng)的處理程序,待處理程序結(jié)束之后,再返回原程序斷點(diǎn)處繼續(xù)運(yùn)行的過程。(2) 中斷系統(tǒng): 實(shí)現(xiàn)中斷過程的軟、硬件系統(tǒng)。(3) 中斷源: 提出中斷申請(qǐng)的來源。中斷源一般有外設(shè)、定時(shí)時(shí)鐘、故障源等。(4) 主程序與中斷服務(wù)
3、程序: CPU執(zhí)行的當(dāng)前程序稱為主程序。CPU轉(zhuǎn)去對(duì)突發(fā)事件的處理程序,稱為中斷服務(wù)程序。(5) 中斷優(yōu)先級(jí): 當(dāng)多個(gè)中斷源同時(shí)申請(qǐng)中斷時(shí),為了使CPU能夠按照用戶的規(guī)定先處理最緊急的,然后再處理其他事件,中斷系統(tǒng)設(shè)置有中斷優(yōu)先權(quán)排隊(duì)電路,通過用戶的設(shè)置,排在前面的中斷源稱為高級(jí)中斷,排在后面的稱為低級(jí)中斷。(6) 中斷嵌套: 當(dāng)CPU響應(yīng)某一中斷源請(qǐng)求而進(jìn)入中斷處理時(shí),若更高級(jí)別的中斷源發(fā)出申請(qǐng),則CPU暫?,F(xiàn)行的中斷服務(wù)程序,去響應(yīng)優(yōu)先級(jí)更高的中斷,待更高級(jí)別的中斷處理完畢后,再返回低級(jí)中斷服務(wù)程序,繼續(xù)原先的處理,這個(gè)過程稱為中斷嵌套。 二、89S51中斷系統(tǒng)結(jié)構(gòu) 89S51中斷系統(tǒng)有5
4、個(gè)中斷源,2級(jí)中斷優(yōu)先級(jí)。結(jié)構(gòu)框圖如圖所示。 中斷請(qǐng)求標(biāo)志寄存器是由定時(shí)器控制寄存器(TCON)和串行口控制寄存器(SCON)的若干位構(gòu)成,如圖所示。 中斷允許控制寄存器IE:控制著中斷的允許與禁止。 中斷優(yōu)先級(jí)控制寄存器IP :89S51有2級(jí)中斷優(yōu)先級(jí),每一個(gè)中斷源都可以軟件設(shè)置為高級(jí)中斷或低級(jí)中斷,由中斷優(yōu)先級(jí)控制寄存器IP控制。相應(yīng)位置“1”時(shí),此中斷為高級(jí)中斷,清“0”時(shí)設(shè)置為低級(jí)中斷。 三、中斷的處理過程89S51中斷的處理過程: 1.中斷查詢CPU在每個(gè)機(jī)器周期結(jié)束時(shí)查詢中斷源是否有中斷申請(qǐng),若沒有,則繼續(xù)當(dāng)前任務(wù);若有,則自動(dòng)設(shè)置相應(yīng)中斷請(qǐng)求標(biāo)志位。 INT0INT0INT1中
5、斷源有效的申請(qǐng)信號(hào)設(shè)置的標(biāo)志位外部中斷0IT0位=0時(shí), 引腳為低電平申請(qǐng)中斷;IT0位=1時(shí), 引腳有1到0的負(fù)跳變信號(hào)申請(qǐng)中斷IE0=1定時(shí)器T0中斷當(dāng)T0計(jì)滿溢出時(shí)申請(qǐng)中斷TF0=1外部中斷1IT1位=0時(shí), 引腳為低電平申請(qǐng)中斷;IT1位=1時(shí), 引腳有1到0的負(fù)跳變信號(hào)申請(qǐng)中斷IE1=1定時(shí)器T1中斷當(dāng)T1計(jì)滿溢出時(shí)申請(qǐng)中斷TF1=1串行口中斷當(dāng)發(fā)送完一幀數(shù)據(jù)時(shí)申請(qǐng)中斷TI=1當(dāng)接收完一幀數(shù)據(jù)時(shí)申請(qǐng)中斷RI=1INT12.中斷的響應(yīng)條件中斷請(qǐng)求標(biāo)志為1;CPU中斷開放,即EA=1且相應(yīng)中斷允許位=1無同級(jí)或更高優(yōu)先級(jí)中斷正在被服務(wù);為保證指令執(zhí)行得正確,必須現(xiàn)行指令執(zhí)行完,若現(xiàn)行指令
6、為中斷返回RETI或訪問IE、IP寄存器指令,必須執(zhí)行完該指令和緊接著的下一條指令后才能響應(yīng)中斷。注:上述只要有一個(gè)條件不滿足,就不會(huì)立即響應(yīng)中斷。注:上述只要有一個(gè)條件不滿足,就不會(huì)立即響應(yīng)中斷。3.響應(yīng)中斷首先設(shè)置相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器,以便屏蔽后面的同級(jí)或低級(jí)中斷請(qǐng)求。保護(hù)現(xiàn)行程序斷點(diǎn)地址,即把當(dāng)前PC的內(nèi)容送入堆棧(硬件執(zhí)行LCALL指令)。進(jìn)入指定的中斷服務(wù)程序入口地址。 89S51規(guī)定各中斷源有相應(yīng)的服務(wù)程序入口地址: 中斷源中斷服務(wù)程序入口地址外部中斷00003H定時(shí)器T0中斷000BH外部中斷10013H定時(shí)器T1中斷001BH串行口中斷0023H4.執(zhí)行中斷服務(wù)程序 中斷服務(wù)
7、程序的設(shè)計(jì)不僅要考慮完成相應(yīng)的服務(wù)任務(wù),而且還要考慮現(xiàn)場保護(hù)與現(xiàn)場恢復(fù),以便保護(hù)主程序中不應(yīng)破壞的數(shù)據(jù)。5.中斷返回 中斷返回指令RETI的作用如下: (1) 清除響應(yīng)時(shí)設(shè)置的優(yōu)先級(jí)狀態(tài)觸發(fā)器; (2) 恢復(fù)主程序斷點(diǎn)地址,即把堆棧的內(nèi)容送給PC。6.中斷請(qǐng)求的撤除 CPU響應(yīng)某中斷后,在返回之前必須撤除上一次中斷請(qǐng)求,否則會(huì)錯(cuò)誤地引起另一次中斷的發(fā)生。 四、外部中斷源的擴(kuò)展 89S51單片機(jī)只有兩個(gè)外部中斷源,在實(shí)際應(yīng)用中可能會(huì)遇到CPU對(duì)多個(gè)外設(shè)進(jìn)行服務(wù)的情況,此時(shí)系統(tǒng)需要擴(kuò)展外部中斷源。 外部中斷源的擴(kuò)展有兩種方式: 1.利用查詢方式擴(kuò)展外部中斷源。 2.利用定時(shí)器擴(kuò)展外部中斷源。任務(wù)T
8、4單片機(jī)與打印機(jī)的數(shù)據(jù)傳送。見動(dòng)畫十二單片機(jī)與打印機(jī)數(shù)據(jù)傳送任務(wù)演示任務(wù)演示4.2 定時(shí)器定時(shí)器/計(jì)數(shù)器計(jì)數(shù)器 89S51單片機(jī)內(nèi)部集成有兩個(gè)16位定時(shí)器/計(jì)數(shù)器T0、T1。 一、定時(shí)器/計(jì)數(shù)器T0、T1的結(jié)構(gòu)1.定時(shí)器的總體結(jié)構(gòu) 定時(shí)器/計(jì)數(shù)器T0、T1的結(jié)構(gòu)如圖所示。特殊功能寄存器TH0,TLO.TH1,TL1 2.定時(shí)器方式寄存器TMOD 特殊功能寄存器TMOD用于控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)方式、計(jì)數(shù)脈沖源的選擇、工作方式的選擇。其各位含義如圖所示。 3.定時(shí)器控制寄存器TCON 各位含義如圖所示。 二、定時(shí)器/計(jì)數(shù)器T0、T1的工作方式 定時(shí)器/計(jì)數(shù)器的基本工作過程如圖所示。1.方式0
9、T0、T1定時(shí)器/計(jì)數(shù)器的方式0相同,為13位計(jì)數(shù)器結(jié)構(gòu),方式0的原理圖如圖所示。TH0最高位進(jìn)位(即溢出)時(shí),設(shè)置TF0=1,申請(qǐng)中斷。響應(yīng)中斷后,系統(tǒng)自動(dòng)對(duì)TF0復(fù)位。 當(dāng)C/ =0,為定時(shí)功能;當(dāng)C/ =1,為計(jì)數(shù)功能。 TT這三者為啟動(dòng)控制 定時(shí)時(shí)間t與計(jì)數(shù)器的位數(shù)、設(shè)置的計(jì)數(shù)初值(又稱時(shí)間常數(shù))、時(shí)鐘頻率有關(guān)。計(jì)算公式如下: t=(計(jì)數(shù)最大值x初值)機(jī)器周期 =(2x初值)12/fosc 其中:x初值:時(shí)間常數(shù);fosc:時(shí)鐘頻率。若fosc=12MHz,則方式0的最大定時(shí)時(shí)間 T=(20)12/fosc=8.192(ms) 例1 若設(shè)置定時(shí)器T1工作在方式0、定時(shí)功能,定時(shí)時(shí)間t=
10、5ms,啟動(dòng)由TR1控制。寫出初始化程序。 解:方式0:設(shè)置M1、M0=00; 定時(shí)功能:設(shè)置C/ =0; TR1啟動(dòng):設(shè)置GATE=0; 定時(shí)時(shí)間t=5ms:由上述公式計(jì)算x初=3192=110001111000B,將x初值的低5位(11000B)送給TL1的低5位,TL1的高3位補(bǔ)0,將x初值的其余高位(1100011B)送給TH1,即設(shè)置TH1=63H,TL1=18H。初始化程序如下:START:MOV TMOD,#00H;設(shè)置T1方式0,定時(shí)功能 MOV TH1,#63H;送時(shí)間常數(shù) MOV TL1,#18H SETB TR1 ;啟動(dòng)T1工作 T2.方式1 T0、T1定時(shí)器/計(jì)數(shù)器的方
11、式1相同,為16位計(jì)數(shù)器結(jié)構(gòu)。方式1的原理圖如下圖所示。 方式1與方式0的唯一區(qū)別在于計(jì)數(shù)位數(shù)不同,其它工作過程相同。 方式1的定時(shí)時(shí)間計(jì)算公式如下:t=(計(jì)數(shù)最大值x初值)機(jī)器周期 =( x初值)12/fosc 若fosc=12MHz,則方式1的最大定時(shí)時(shí)間 T=( 0)12/fosc=65.536(ms)162162 例2 若設(shè)置定時(shí)器T0工作在方式1、計(jì)數(shù)功能,計(jì)數(shù)數(shù)目為10000次,啟動(dòng)由 引腳控制。寫出初始化程序。 解:方式1:設(shè)置M1、M0=01;計(jì)數(shù)功能:設(shè)置C/ =1; 控制啟動(dòng):設(shè)置GATE=1; 計(jì)數(shù)10000次:x初值=21610000=55536=0D8F0H,將x初值
12、的低8位送給TL0,將x初值的其余高位送給TH0,即設(shè)置TH0=0D8H,TL0=0F0H。初始化程序如下:START:MOV TMOD,#0DH ;設(shè)置T0方式1,計(jì)數(shù)功能 MOV TH0,#0D8H ;送計(jì)數(shù)初值 MOV TL0,#0F0H SETB TR0 ;置TR0=1,T0啟動(dòng)由引腳控制 INT0TINT03.方式2 T0、T1定時(shí)器/計(jì)數(shù)器的方式2相同,為可重栽時(shí)間常數(shù)的8位計(jì)數(shù)器結(jié)構(gòu)。方式2的原理圖如圖所示。 TH0作為重載時(shí)間常數(shù)寄存器,當(dāng)TL0計(jì)滿溢出后,設(shè)置TF0=1申請(qǐng)中斷,同時(shí)將TH0中的數(shù)據(jù)自動(dòng)裝載到TL0中重新工作。 定時(shí)時(shí)間計(jì)算公式如下:t=(計(jì)數(shù)最大值x初值)機(jī)
13、器周期 =( x初值)12/fosc 若fosc=12MHz,則方式2的最大定時(shí)時(shí)間T=( 0)12/fosc=0.256(ms) 82824.方式3 T1設(shè)置為方式3時(shí),停止工作;T0設(shè)置為方式3時(shí),分成兩個(gè)獨(dú)立的8位定時(shí)器/計(jì)數(shù)器。T0方式3原理圖如圖所示。 任務(wù)演示任務(wù)演示任務(wù)T5 生產(chǎn)線零件打包機(jī)控制。 見動(dòng)畫十三生產(chǎn)線零件打包機(jī)控制課堂實(shí)踐課堂實(shí)踐 利用T0定時(shí)功能,在P1.0引腳上產(chǎn)生周期為100ms的方波信號(hào),設(shè)fosc=12MHz。見動(dòng)畫十四方波發(fā)生器4.3 串行口串行口一、串行通信的基本概念并行通信單位信息(通常為一個(gè)字節(jié))的各位數(shù)據(jù)同時(shí)傳送串行通信分類同步通信發(fā)送和接收同步
14、進(jìn)行,從而實(shí)現(xiàn)數(shù)據(jù)的不間斷傳送異步通信發(fā)送與接收沒有用同步時(shí)鐘同步,傳送過程中數(shù)據(jù)之間有間隔傳送方式單工半雙工全雙工2.波特率的概念 每秒傳送數(shù)據(jù)的位數(shù)稱為波特率(Baud Rate),單位為波特,即位/秒(b/s)。波特率的倒數(shù)稱為位傳送時(shí)間,用Td表示,單位為秒(s)。 例如:傳送速率每秒10幀數(shù)據(jù),每一幀數(shù)據(jù)11位,則傳送波特率為10幀/秒11位/幀=110b/s 位傳送時(shí)間Td=9.1ms。 二、串行口的結(jié)構(gòu)1.串口的總體結(jié)構(gòu) 通過設(shè)置特殊功能寄存器SCON、PCON來控制串行口的工作方式與波特率。 2.串口控制寄存器SCON 數(shù)據(jù)格式如下: SM0、SM1:串行口工作方式選擇位??梢?/p>
15、設(shè)置4種工作方式。 9FH9EH9DH9CH9BH9AH99H98H98HSM0SM1SM2RENTB8RB8TIRISM0SM1工作方式功能說明波特率00方式08位移位寄存器方式fosc/1201方式18位異步通信方式T1溢出率的16或32分頻10方式29位異步通信方式fosc的32或64分頻11方式39位異步通信方式T1溢出率的16或32分頻串行接收允許位。由軟件設(shè)置1允許接收,設(shè)為0禁止接收在9位異步通信方式下,由于緩沖器只有8位,故用TB8作為發(fā)送的第9位,RB8作為接收的第9位。發(fā)送中斷標(biāo)志與接收中斷標(biāo)志。 SM2:允許方式2、3多機(jī)通信控制位。 串口工作方式SM2位功能說明方式0S
16、M2=0此位無意義,設(shè)為0方式1SM2=1只有接收到有效的停止位,才將數(shù)據(jù)送入接收緩沖器保存,并置RI=1,否則數(shù)據(jù)丟失,不置位RISM2=0無論是否接收到有效的停止位,都將數(shù)據(jù)保存,并置位RI方式2、3SM2=1只有接收到第9位為1,才將數(shù)據(jù)送入接收緩沖器保存,并置RI=1,否則數(shù)據(jù)丟失,不置位RISM2=0無論是否接收到第9位為1,都將數(shù)據(jù)保存,并置位RI3.電源控制寄存器PCON 用來控制串行口的波特率倍增,以及在CHMOS系列單片機(jī)中實(shí)現(xiàn)電源控制,其格式如下: 87HSMODPDIDL波特率倍增位。當(dāng)SMOD1時(shí),使串行口波特率加倍。 三、串行口方式0 1.方式0的工作過程 (1)發(fā)送
17、過程 CPU將數(shù)據(jù)送入發(fā)送緩沖器SBUF后,自動(dòng)啟動(dòng)串口發(fā)送。 8位數(shù)據(jù)以固定的波特率(fosc/12),低位在前,從RXD引腳串行輸出,TXD引腳發(fā)送移位時(shí)鐘信號(hào)(頻率為fosc/12),每個(gè)移位時(shí)鐘對(duì)應(yīng)一個(gè)輸出的數(shù)據(jù)位。 8位數(shù)據(jù)發(fā)送完畢,置位TI=1,申請(qǐng)中斷,通知CPU再發(fā)送下一個(gè)數(shù)據(jù)。 (2)接收過程 軟件設(shè)置REN=1時(shí),啟動(dòng)接收過程。 串行口以fosc/12固定的波特率,從RXD引腳串行輸入數(shù)據(jù)(低位在前),TXD引腳輸出移位時(shí)鐘信號(hào)。 當(dāng)8位數(shù)據(jù)接收完畢,將數(shù)據(jù)送入接收緩沖器SBUF,并置位RI=1,申請(qǐng)中斷,通知CPU取走數(shù)據(jù)。 四、串行口方式1、2、3 1.方式1的工作過程 (1)發(fā)送過程 CPU將數(shù)據(jù)送入發(fā)送緩沖器SBUF后,啟動(dòng)串行口發(fā)送。 以指定的波特率,串行發(fā)送一位起始位、8位數(shù)據(jù)位(低位在前)、一位停止位。 一幀數(shù)據(jù)發(fā)送完畢,置位TI=1,申請(qǐng)中斷,通知CPU再發(fā)送下一個(gè)數(shù)據(jù)。在未發(fā)送下一幀數(shù)據(jù)時(shí),TXD引腳始終為高電平。(2)接收過程 軟件設(shè)置REN=1時(shí),啟動(dòng)接收過程,串行口檢測RXD引腳,當(dāng)檢測到有1到0的負(fù)跳變(起始位到來)時(shí),開始接收數(shù)據(jù)。 串行口以指定的波特率,從RXD引腳串行輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026云南楚雄州南華興福村鎮(zhèn)銀行工作人員招聘2人備考考試試題附答案解析
- 2026甘肅省酒泉市體育中心招聘3人備考考試題庫附答案解析
- 2026上半年北大荒農(nóng)墾集團(tuán)有限公司事業(yè)單位招聘112人備考考試題庫附答案解析
- 2026年中國科學(xué)院合肥腫瘤醫(yī)院血液透析中心醫(yī)護(hù)人員招聘7名參考考試題庫附答案解析
- 生產(chǎn)企業(yè)巡查制度范本
- 煙葉生產(chǎn)信息化管理制度
- 生產(chǎn)領(lǐng)用半成品規(guī)章制度
- 2026天津市和平區(qū)選聘區(qū)管國有企業(yè)管理人員6人備考考試題庫附答案解析
- 安全生產(chǎn)日?qǐng)?bào)管理制度
- 安會(huì)生產(chǎn)會(huì)辦制度
- 水庫除險(xiǎn)加固工程施工組織設(shè)計(jì)
- 質(zhì)量信得過班組培訓(xùn)課件
- 材料進(jìn)場檢驗(yàn)記錄表
- DL∕T 1768-2017 旋轉(zhuǎn)電機(jī)預(yù)防性試驗(yàn)規(guī)程
- 復(fù)方蒲公英注射液在銀屑病中的應(yīng)用研究
- 網(wǎng)絡(luò)直播創(chuàng)業(yè)計(jì)劃書
- 大學(xué)任課老師教學(xué)工作總結(jié)(3篇)
- 3D打印增材制造技術(shù) 課件 【ch01】增材制造中的三維模型及數(shù)據(jù)處理
- 醫(yī)院保潔應(yīng)急預(yù)案
- 化工設(shè)備培訓(xùn)
- 鋼結(jié)構(gòu)安裝施工專項(xiàng)方案
評(píng)論
0/150
提交評(píng)論