




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第四章第四章 80C51中斷系統(tǒng)及定時中斷系統(tǒng)及定時/計數(shù)器計數(shù)器4.1 中斷中斷系統(tǒng)系統(tǒng)4.2 C語言的函數(shù)語言的函數(shù)4.3 80C51的定時的定時/計數(shù)器計數(shù)器 學習指導 1 1、中斷概念、中斷概念 中斷處理過程和中斷優(yōu)先級中斷處理過程和中斷優(yōu)先級 80C5180C51中斷系統(tǒng)的結(jié)構中斷系統(tǒng)的結(jié)構 中斷的應用中斷的應用 2 2、C C語言函數(shù)定義和調(diào)用語言函數(shù)定義和調(diào)用 3 3、定時、定時/ /計數(shù)器的結(jié)構和工作原理計數(shù)器的結(jié)構和工作原理 返回 4.1 中斷系統(tǒng)中斷系統(tǒng) 本節(jié)需要掌握:本節(jié)需要掌握:1 1、中斷及相關概念、中斷及相關概念2 2、微機中為何要設置中斷、微機中為何要設置中斷3
2、3、MCS-51MCS-51單片機的中斷系統(tǒng)結(jié)構單片機的中斷系統(tǒng)結(jié)構4 4、中斷源與中斷有關的寄存器設置、中斷源與中斷有關的寄存器設置5 5、中斷的處理過程、中斷的處理過程6 6、中斷的擴充和應用、中斷的擴充和應用 計算機與外設之間傳遞信息:如何解決快速的計算機與外設之間傳遞信息:如何解決快速的CPUCPU與慢速的外部設備之間傳送數(shù)據(jù)的矛盾與慢速的外部設備之間傳送數(shù)據(jù)的矛盾? ? 通常用三種通常用三種方法:程序查詢、中斷和方法:程序查詢、中斷和DMADMA。 1. 1. 程序查詢控制方式程序查詢控制方式 輸入輸出操作完全在程序控制下進行的,用IN和OUT指令直接訪問I/O端口。 工作原理:當C
3、PU啟動外設工作后,不斷地讀取外設的狀態(tài)信息進行測試,查詢外設是否準備就緒,如外設準備好,則可以進行數(shù)據(jù)傳送;否則,CPU繼續(xù)讀取外設的狀態(tài)信息進行查詢等待,直到外設準備好。 2. 2. 中斷控制方式中斷控制方式 當外部設備需要進行輸入當外部設備需要進行輸入/ /輸出輸出 操作時,向操作時,向CPUCPU發(fā)出中斷發(fā)出中斷 請求信號,請求信號, CPUCPU進行中斷處理。進行中斷處理。 3. DMA3. DMA控制方式控制方式 DAMDAM(直接存儲器訪問)控制方式是由(直接存儲器訪問)控制方式是由DMADMA控制器控制器 控制存儲器與高速控制存儲器與高速I/OI/O設備之間直接進行數(shù)據(jù)傳送。設
4、備之間直接進行數(shù)據(jù)傳送。啟動外設讀狀態(tài)字就續(xù)否?數(shù)據(jù)傳送Y查詢方式:查詢方式: 4.1.1 4.1.1 中斷中斷 一、中斷定義中斷定義 中斷是指當CPU在正常執(zhí)行程序過程中,由于外部設備(或內(nèi)部事件)發(fā)出中斷請求,要求CPU停止當前執(zhí)行的程序,轉(zhuǎn)去執(zhí)行相應的處理程序(中斷服務程序),處理程序執(zhí)行后,返回到被中斷的程序中繼續(xù)執(zhí)行。中斷服務程序正常程序斷點返回 二、中斷的優(yōu)點:二、中斷的優(yōu)點: 1、實現(xiàn)CPU與外設的速度匹配和同步工作; 2、實現(xiàn)實時處理和控制; 3、實現(xiàn)故障檢測和異常的處理,提高系統(tǒng)的可靠性。 三、幾個概念三、幾個概念 1 1、中斷源:、中斷源:引起中斷的原因或發(fā)出中斷申請的來源
5、。 如:外部設備、定時時鐘、數(shù)據(jù)通信設備、故障源、程序調(diào)試。 2 2、中斷的申請:、中斷的申請:中斷源向CPU發(fā)出處理申請。 3 3、中斷的響應:、中斷的響應:CPU停止當前執(zhí)行的程序A,轉(zhuǎn)去處理中斷申請的事件B。 4 4、中斷服務:、中斷服務:對事件B的整個處理過程 5 5、中斷返回:、中斷返回:處理結(jié)束后,CPU再回到原來被打斷的程序(事件A)繼續(xù)執(zhí)行。 6 6、中斷系統(tǒng):、中斷系統(tǒng):實現(xiàn)上述功能的部件。 四、四、中斷中斷控制控制和中斷系統(tǒng)的功能和中斷系統(tǒng)的功能(1 1)實現(xiàn)實現(xiàn)中斷中斷的請求和響應的請求和響應 中斷請求信號的鎖存、是否響應、如何響應。(2 2)中斷中斷的的優(yōu)先級優(yōu)先級排隊
6、排隊當有多個中斷源申請中斷時需判優(yōu)。(3 3)中斷現(xiàn)場的保護與恢復中斷現(xiàn)場的保護與恢復斷點的壓棧保護和現(xiàn)場信息的保護。(4 4)中斷的嵌套方式)中斷的嵌套方式對優(yōu)先級高的中斷源申請允許打斷優(yōu)先級低的中斷處理。 五、中斷處理過程五、中斷處理過程 執(zhí)行當前指令有請求否關中斷保護斷點和現(xiàn)場開中斷中斷服務關中斷恢復現(xiàn)場開中斷返回NY取下一條指令返回 1、中斷源提出申請申請,并建立相應的中斷標志(由硬件置位標志位); 2、CPU結(jié)束當前指令,若查詢到中斷申請后,在條件符合時會響響應該中斷申請應該中斷申請,中斷響應時由硬件自動生成一條長調(diào)用指令(LCALL 中斷入口地址),同時把主程序斷點處地址(程序計數(shù)
7、器PC當前值)壓入堆棧保護;再將中斷入口地址裝入PC,程序轉(zhuǎn)向響應的中斷請求入口地址去執(zhí)行。 3、保護現(xiàn)場。把斷點處的有關信息(如工作寄存器、累加器、標志位的內(nèi)容)壓入堆棧;需要用軟件實現(xiàn)。 4、執(zhí)行中斷服務程序; 5、恢復現(xiàn)場。把保存的現(xiàn)場內(nèi)容從堆棧彈出,以恢復寄存器和存儲單元的原有內(nèi)容; 6、返回主程序(或調(diào)用程序),執(zhí)行中斷返回指令,把斷點處地址從棧頂彈出,從斷點處繼續(xù)執(zhí)行主程序(或調(diào)用程序)。返回 4.1.2 80C514.1.2 80C51的中斷系統(tǒng)的中斷系統(tǒng) 一、一、 80C5180C51的中斷系統(tǒng)結(jié)構的中斷系統(tǒng)結(jié)構 (一)(一)80C5180C51的中斷系統(tǒng)有的中斷系統(tǒng)有5 5個
8、中斷源,個中斷源,2 2個優(yōu)先級,個優(yōu)先級,可實現(xiàn)二級中斷嵌套可實現(xiàn)二級中斷嵌套 。 與中斷有關的特殊功能寄存器有4 4個個:1、IEIE:中斷允許寄存器中斷允許寄存器,控制CPU是否響應中斷請求。2、IPIP:中斷優(yōu)先級寄存器中斷優(yōu)先級寄存器,控制中斷請求的優(yōu)先級。3、TCONTCON:定時/計數(shù)器控制寄存器,存放2個外部中斷和2個定時/計數(shù)器中斷中斷請求標志和觸發(fā)方式。4、SCONSCON:串行口控制寄存器,存放串行口中斷標志。(二)(二)80C5180C51中斷系統(tǒng)的結(jié)構中斷系統(tǒng)的結(jié)構 有有5 5個中斷源,個中斷源,2 2個優(yōu)先級,可實現(xiàn)二級中斷嵌套個優(yōu)先級,可實現(xiàn)二級中斷嵌套 。 4.
9、1.3 80C514.1.3 80C51的中斷源和有關寄存器的中斷源和有關寄存器 一、中斷源一、中斷源的的5 5個中個中斷請求信號斷請求信號INT0INT1 2 2、 (P3.3P3.3):外部中斷):外部中斷1 1 可由可由IT1(TCON.2)IT1(TCON.2)選擇其為低電平有效還是下降沿選擇其為低電平有效還是下降沿有效。當有效。當CPUCPU檢測到檢測到P3.3P3.3引腳上出現(xiàn)有效的中斷信號引腳上出現(xiàn)有效的中斷信號時,中斷標志時,中斷標志IE1(TCON.3)IE1(TCON.3)置置1,1,向向CPUCPU申請中斷。申請中斷。 1 1、 (P3.2P3.2):外部中斷):外部中斷
10、0 0 可由可由IT0(TCON.0)IT0(TCON.0)選擇其為低電平有效還是下降沿選擇其為低電平有效還是下降沿有效。當有效。當CPUCPU檢測到檢測到P3.2P3.2引腳上出現(xiàn)有效的中斷信號引腳上出現(xiàn)有效的中斷信號時,中斷標志時,中斷標志IE0(TCON.1)IE0(TCON.1)置置1 1,向,向CPUCPU申請中斷。申請中斷。 3 3、TF0TF0(TCON.5TCON.5):定時器):定時器0 0 片內(nèi)定時片內(nèi)定時/ /計數(shù)器計數(shù)器T0T0溢出中斷請求標志。當定時溢出中斷請求標志。當定時/ /計數(shù)器計數(shù)器T0T0發(fā)生溢出時,置位發(fā)生溢出時,置位TF0TF0,并向,并向CPUCPU申
11、請中斷。申請中斷。 4 4、TF1TF1(TCON.7TCON.7):定時器):定時器1 1 片內(nèi)定時片內(nèi)定時/ /計數(shù)器計數(shù)器T1T1溢出中斷請求標志。當定時溢出中斷請求標志。當定時/ /計數(shù)器計數(shù)器T1T1發(fā)生溢出時,置位發(fā)生溢出時,置位TF1TF1,并向,并向CPUCPU申請中申請中斷。斷。 5 5、RIRI(SCON.0SCON.0)或)或TITI(SCON.1SCON.1):串行口):串行口 串行口中斷請求標志。當串行口接收完一幀串行串行口中斷請求標志。當串行口接收完一幀串行數(shù)據(jù)時置位數(shù)據(jù)時置位RIRI或當串行口發(fā)送完一幀串行數(shù)據(jù)時置或當串行口發(fā)送完一幀串行數(shù)據(jù)時置位位TITI,向,
12、向CPUCPU申請中斷。申請中斷。 二、中斷請求標志二、中斷請求標志 1 1、TCON(TCON(定時/計數(shù)器控制寄存器)的中斷標志的中斷標志(1)IE0(TCON.1):):外外部中斷部中斷0/10/1中斷請求標志中斷請求標志位。位。(2)IE1(TCON.3):):外部中斷外部中斷0/10/1中斷請求標志位。中斷請求標志位。 IT0/IT1(TCON.0/2),),外部中斷外部中斷0/10/1觸發(fā)方式控制位。觸發(fā)方式控制位。 當當IT0=0時,時,為電平觸發(fā)方式。為電平觸發(fā)方式。 當當IT0=1時,時,為邊沿觸發(fā)方式(下降沿有效)。為邊沿觸發(fā)方式(下降沿有效)。(3)TF0(TCON.5)
13、:):定定時時/ /計數(shù)器計數(shù)器T0T0溢出中斷請求標志位。溢出中斷請求標志位。(4)TF1(TCON.7):):定定時時/ /計數(shù)器計數(shù)器T1T1溢出中斷請求標志位。溢出中斷請求標志位。 利用中斷請利用中斷請求標志位來求標志位來向向CPUCPU請求請求中斷!中斷!2 2、SCONSCON的中斷標志的中斷標志RI(SCON.0),串行口接收中斷標志位。當允),串行口接收中斷標志位。當允許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由許串行口接收數(shù)據(jù)時,每接收完一個串行幀,由硬件置位硬件置位RI。同樣,。同樣,RI必須由軟件清除。必須由軟件清除。TI(SCON.1),串行口發(fā)送中斷標志位。當),串行口
14、發(fā)送中斷標志位。當CPU將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,將一個發(fā)送數(shù)據(jù)寫入串行口發(fā)送緩沖器時,就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬就啟動了發(fā)送過程。每發(fā)送完一個串行幀,由硬件置位件置位TI。CPU響應中斷時,不能自動清除響應中斷時,不能自動清除TI,TI必須由軟件清除。必須由軟件清除。 一、中斷允許控制一、中斷允許控制 CPU對中斷系統(tǒng)所有中斷以及某個中斷源的開對中斷系統(tǒng)所有中斷以及某個中斷源的開放和屏蔽是由放和屏蔽是由中斷允許寄存器中斷允許寄存器IEIE控制控制的。的。 4.1.4 80C514.1.4 80C51中斷的控制中斷的控制 EX0(IE.0),外部中斷外部中斷0 0允
15、許位;允許位;ET0(IE.1),定時定時/ /計數(shù)器計數(shù)器T0T0中斷允許位中斷允許位; EX1(IE.2),外部中斷外部中斷0 0允許位;允許位;ET1(IE.3),定時定時/ /計數(shù)器計數(shù)器T1T1中斷允許位;中斷允許位;ES(IE.4),串行口中斷允許位;串行口中斷允許位;EA (IE.7), CPUCPU中斷允許(總允許)位。中斷允許(總允許)位。 若為若為“1”1”,開,開關接通,允許。關接通,允許。例如例如 SETB EASETB EA 若為若為“0”0”,開,開關斷開,不允許。關斷開,不允許。例如例如 CLR IE.7CLR IE.7為什么要有為什么要有中斷優(yōu)先級中斷優(yōu)先級?
16、CPUCPU同一時間只能響應一個中斷請求。同一時間只能響應一個中斷請求。若同時來了兩個或兩個以上中斷請求,就必若同時來了兩個或兩個以上中斷請求,就必須有先有后。須有先有后。 為此將為此將5 5個中斷源分成高級、低級兩個級別,個中斷源分成高級、低級兩個級別,高級優(yōu)先,由高級優(yōu)先,由IPIP控制控制。 二、中斷優(yōu)先級控制二、中斷優(yōu)先級控制 80C5180C51單片機有兩個中斷優(yōu)先級,可實現(xiàn)二級中單片機有兩個中斷優(yōu)先級,可實現(xiàn)二級中斷服務嵌套。每個中斷源的中斷優(yōu)先級都是斷服務嵌套。每個中斷源的中斷優(yōu)先級都是由中斷由中斷優(yōu)先級寄存器優(yōu)先級寄存器IPIP中的相應位中的相應位的狀態(tài)來規(guī)定的的狀態(tài)來規(guī)定的
17、。PX0(IP.0): 外部中斷外部中斷0 0優(yōu)先級設定位;優(yōu)先級設定位;PT0(IP.1): 定時定時/ /計數(shù)器計數(shù)器T0T0優(yōu)先級設定位;優(yōu)先級設定位;PX1(IP.2): 外部中斷外部中斷0 0優(yōu)先級設定位;優(yōu)先級設定位;PT1(IP.3): 定時定時/ /計數(shù)器計數(shù)器T1T1優(yōu)先級設定位;優(yōu)先級設定位;PS (IP.4) : 串行口優(yōu)先級設定位串行口優(yōu)先級設定位。 該位是該位是“1”1”時,為高級時,為高級優(yōu)先級優(yōu)先級 該位是該位是“ “ 0”0”時,時,為低級優(yōu)先為低級優(yōu)先級級 同一優(yōu)先級中的中斷申請不止一個時,則有中斷同一優(yōu)先級中的中斷申請不止一個時,則有中斷優(yōu)先權排隊問題。同級
18、的中斷優(yōu)先權排隊,由中斷系優(yōu)先權排隊問題。同級的中斷優(yōu)先權排隊,由中斷系統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:統(tǒng)硬件確定的自然優(yōu)先級形成,其排列如所示:80C5180C51單片機的中斷優(yōu)先級有三條原則單片機的中斷優(yōu)先級有三條原則: CPUCPU同時接收到幾個中斷時,同時接收到幾個中斷時,首先響應優(yōu)先級別最首先響應優(yōu)先級別最高的中斷請求高的中斷請求。正在進行的中斷過程正在進行的中斷過程不能被新的同級或低優(yōu)先級的不能被新的同級或低優(yōu)先級的中斷請求所中斷中斷請求所中斷。正在進行的低優(yōu)先級中斷服務,正在進行的低優(yōu)先級中斷服務,能被高優(yōu)先級中斷能被高優(yōu)先級中斷請求所中斷請求所中斷。 為了實現(xiàn)上述后兩
19、條原則,為了實現(xiàn)上述后兩條原則,中斷系統(tǒng)內(nèi)部設有兩中斷系統(tǒng)內(nèi)部設有兩個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。個用戶不能尋址的優(yōu)先級狀態(tài)觸發(fā)器。其中一個置其中一個置1 1,表示正在響應高優(yōu)先級的中斷,它將阻斷后來所有表示正在響應高優(yōu)先級的中斷,它將阻斷后來所有的中斷請求;另一個置的中斷請求;另一個置1 1,表示正在響應低優(yōu)先級中,表示正在響應低優(yōu)先級中斷,它將阻斷后來所有的低優(yōu)先級中斷請求。斷,它將阻斷后來所有的低優(yōu)先級中斷請求。事件事件1事件事件2子程序子程序2子程序子程序1中斷中斷嵌套嵌套的概念:的概念: 主程序主程序中斷中斷中斷中斷 4.1.5 80C514.1.5 80C51單片機中斷處理過程
20、單片機中斷處理過程 一、中斷請求與響應條件一、中斷請求與響應條件 1 1、IE0、IE1、TF0、TF1、TI(RI)為1時,說明中斷源有中斷請求信號。 2 2、當中斷允許位EX0、EX1、ET0、ET1、ES和CPU允許位EA為1時,CPU可響應中斷。 3 3、CPU在每個機器周期的S5P2采樣中斷請求信號,在下個機器周期對采樣的中斷請求進行查詢,并響應優(yōu)先級最高的中斷請求。 4 4、中斷中斷請求的封鎖請求的封鎖 遇以下任一條件,硬件將受阻,不產(chǎn)生LCALL指令,中斷請求被封鎖:(1)當機器周期不是指令的最后一個機器周期(2)CPU正在執(zhí)行同級或高優(yōu)先級的中斷;(3)正在執(zhí)行RETI指令或?qū)?/p>
21、IE、IP的讀/寫指令,CPU將不響應中斷請求。 若由于上述條件的阻礙中斷未能得到響應,當條件若由于上述條件的阻礙中斷未能得到響應,當條件消失時該中斷標志卻已不再有效,那么該中斷將不被消失時該中斷標志卻已不再有效,那么該中斷將不被響應。響應。 5 5、中斷的響應、中斷的響應 中斷請求響應后將斷點(當前PC值)壓棧,中斷入口地址(中斷服務程序的首地址)送PC,轉(zhuǎn)向中斷服務程序。 CPUCPU執(zhí)行一條由中斷系統(tǒng)提供的硬件執(zhí)行一條由中斷系統(tǒng)提供的硬件LCALLLCALL指指令,轉(zhuǎn)向被稱作中斷向量的特定地址單元,進令,轉(zhuǎn)向被稱作中斷向量的特定地址單元,進入相應的中斷服務程序。入相應的中斷服務程序。 二
22、、中斷優(yōu)先級的控制原則二、中斷優(yōu)先級的控制原則 1、低優(yōu)先級中斷請求不能打斷高優(yōu)先級的中斷服務;但高優(yōu)先級中斷請求可以打斷低優(yōu)先級的中斷服務,從而實現(xiàn)中斷嵌套中斷嵌套。 2、如果一個中斷請求已被響應,則同級同級的其他中斷響應將被禁止禁止。 3、如果同級的多個請求同時出現(xiàn),則按CPU查詢次序確定哪個中斷請求被響應。其查詢次序為:外部中斷0定時中斷0外部中斷1定時中斷串行中斷。返回 三、外部中斷的觸發(fā)方式三、外部中斷的觸發(fā)方式 有兩種觸發(fā)方式:電平觸發(fā)和邊沿觸發(fā) 1、電平觸發(fā)(置TCON的ITx=0):低電平有效,要求一直保持到CPU響應中斷為止,并在中斷返回前變?yōu)楦唠娖揭苑乐乖僖淮沃袛唷?電平觸
23、發(fā)方式適合于外部中斷輸入以低電平輸入且中斷服務程序能清除外部中斷請求源的情況。 例如,并行接口芯片8255的中斷請求線在接受讀或?qū)懖僮骱蠹幢粡臀唬噪娖接|發(fā)方式去請求中斷比較方便。 2、邊沿觸發(fā)(置TCON的ITx=1): 在相繼兩個機器周期內(nèi)檢測到高電平變?yōu)榈碗娖剑筎CON的IEx=1,請求中斷。要求負脈沖的寬度至少保持12個震蕩周期,以確保檢測到跳變。 邊沿觸發(fā)方式適合于以負脈沖形式輸入的外部中斷請求,如ADC0809的轉(zhuǎn)換結(jié)束標志信號EOC為正脈沖,經(jīng)反相后就可以作為80C51的中斷輸入。 四、四、中斷中斷響應過程和中斷服務程序的執(zhí)行響應過程和中斷服務程序的執(zhí)行 1、將響應中斷的優(yōu)先級
24、觸發(fā)器置“1”,阻斷同級和低級的中斷請求 2、由系統(tǒng)硬件提供LCALL指令,將當前PC的內(nèi)容壓棧保護,將相應的中斷服務程序的入口地址送PC。 5個中斷源中斷入口地址如下: INT0 0003H T0 000BHINT0 0003H T0 000BH INT1 0013H T1 001BH INT1 0013H T1 001BH 串行口串行口 0023H0023H 由于中斷入口地址間只有8個字節(jié),存放中斷服務程序是不夠的,可在入口處使用轉(zhuǎn)移指令轉(zhuǎn)到對應的中斷服務程序 ORG 0000HLJMP MAIN ORG 0003HLJMP INT0F ORG 000BHLJMP T0F ORG 0013
25、HLJMP INT1FMAIN: 3、執(zhí)行中斷服務程序 CPU執(zhí)行一條由中斷系統(tǒng)提供的硬件LCALL指令,轉(zhuǎn)向被稱作中斷向量的特定地址單元,進入相應的中斷服務程序。 由于系統(tǒng)硬件僅提供LCALL指令將當前PC的內(nèi)容壓棧保護。對其它寄存器(如PSW、A等)任需在編寫中斷服務程序時進行保護和恢復。 4、中斷響應的時間 至少需要3個機器周期(查詢1個機器周期,最快響應2個機器周期)。 最多需要8個機器周期(遇到RET、IE、IP指令需延遲1個機器周期,遇到乘除法指令延遲4個機器周期)某中斷的響應時序如圖:某中斷的響應時序如圖: 若若M1M1周期的周期的S5P2S5P2前某中斷生效,在前某中斷生效,在
26、S5P2S5P2期間其中斷期間其中斷請求被鎖存到相應的標志位中去;請求被鎖存到相應的標志位中去;M2M2恰逢指令的最恰逢指令的最后一個機器周期,且該指令不是后一個機器周期,且該指令不是RETIRETI或訪問或訪問IEIE、IPIP的指令。于是,的指令。于是,M3M3和和M4M4便可以執(zhí)行硬件便可以執(zhí)行硬件LCALLLCALL指令,指令,M5M5周期將進入了中斷服務程序。周期將進入了中斷服務程序。 80C5180C51的中斷響應時間(從標志置的中斷響應時間(從標志置1 1到進入相應的中到進入相應的中斷服務),至少要斷服務),至少要3 3個完整的機器周期。個完整的機器周期。 五、中斷的返回五、中斷
27、的返回 中斷服務程序的最后一條指令為中斷返回指令RETI,其作用是:(1)將壓棧保護的PC的內(nèi)容彈出,送回PC。CPU可由被中斷的位置繼續(xù)執(zhí)行原有程序。(2)將相應的中斷的優(yōu)先級觸發(fā)器清0,表示中斷服務程序執(zhí)行結(jié)束。 返回 六、中斷請求信號的清除方式六、中斷請求信號的清除方式 CPU在響應中斷后為避免再一次發(fā)生中斷,必須將中斷請求信號清除 1、定時器中斷由硬件自動撤除 定時中斷響應后,硬件自動把標志位(TFx)清零。 2、外部中斷的自動與強制撤除 若外部中斷以跳沿方式觸發(fā),則由硬件自動地把標志位(IEx)清零。若以電平方式觸發(fā),若以電平方式觸發(fā),則需由軟件清除。則需由軟件清除。 3、串行中斷軟
28、件撤除 串行中斷的標志位是TI和RI,但對這兩個中斷標志位不進行自動清零。因為在中斷響應后,還需測試這兩個標志位的狀態(tài),以判定是接收操作還是發(fā)送操作,然后才能清除。所以串行串行中斷請求的撤除應使用軟件方法中斷請求的撤除應使用軟件方法。 即:CLR TI ;TI 0 CLR RI ;RI 0 返回七、七、C51C51的中斷函數(shù)的中斷函數(shù)C51C51編譯器支編譯器支持的持的中斷函數(shù)定義語法如下:中斷函數(shù)定義語法如下: void void 函數(shù)名()函數(shù)名() interrupt ninterrupt nn n為中斷類型號,為中斷類型號,C51C51編譯器允許編譯器允許0 03131個中斷,個中斷,
29、n n取取值范圍值范圍0 03131。下面給出了。下面給出了80518051控制器所提供的控制器所提供的5 5個中個中斷源所對應的中斷類型號和中斷服務程序入口地址:斷源所對應的中斷類型號和中斷服務程序入口地址:中斷源中斷源 n n 入口地址入口地址外部中斷外部中斷0 0 0 0 0003H 0003H定時定時/ /計數(shù)器計數(shù)器0 10 1 000BH 000BH外部中斷外部中斷1 1 2 2 0013H 0013H定時定時/ /計數(shù)器計數(shù)器1 1 3 3 001BH 001BH串行口串行口 4 0023H4 0023H 4.1.6 4.1.6 中斷應用舉例中斷應用舉例 例例1 1:如圖,正常運
30、行時,:如圖,正常運行時,8 8個燈流水,按下個燈流水,按下K1K1時,時,申請中斷,使申請中斷,使8 8個燈閃爍個燈閃爍5 5次。次。#include reg51.h#define unit unsigned charsbit DIPswitch1 =P32; /定義按鍵接P3.2const tab=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f; /流水void delay() unsigned int i; for(i=0;i35530;i+); /延時void int1() interrupt 0 /外部中斷0 使燈閃爍5次 unsign
31、ed i; for(i=0;i=5;i+) P0=0 x00; delay(); P0=0 xFF; delay();void main (void) unsigned char x; EX0=1; / 設置外部中斷0中斷允許 IT0=1; / 跳沿觸發(fā)方式 EA=1; / 允許中斷 while(1) / 正常情況流水燈,當按下按鍵轉(zhuǎn)中斷 for (x=0;x8;x+) P0=tabx; delay(); 例2:如圖,用P0口和P2口接2個LED數(shù)碼管,按鈕開關K1接P3.2,當K1閉合時申請中斷,使數(shù)碼管加“1”。LED顯示器的原理顯示器的原理LED數(shù)碼管引腳共陰極共陰極 共陽極共陽極 1
32、1、LEDLED顯示器分類顯示器分類(1)分為七段和米字型 (2)有共陰/共陽兩種接法(3)有紅、黃、藍、紫多種顏色(4)已經(jīng)有將4-6位集成在一起的多位LED數(shù)碼管 2 2、LEDLED數(shù)碼管的顯示方法數(shù)碼管的顯示方法(1)軟件實現(xiàn)方法 分為動態(tài)動態(tài)和靜態(tài)靜態(tài)兩種。(2)硬件實現(xiàn)方法 采用硬件譯碼器獲得顯示代碼,其優(yōu)點是節(jié)省CPU的機時,程序設計簡單。同樣分為動態(tài)和靜態(tài)兩種。共陽極段碼表(0-9)低電平時亮低電平時亮TAB:DB C0h, F9h, A4h, B0h, 99h, 92h, 82h, F8h, 80h, 90h “0” “1” “2” “3” “4” “5” “6” “7” “
33、8” “9” 共陰極段碼表(0-9)高電平時亮高電平時亮TAB:DB 3Fh, 06h, 5Bh, 4Fh, 66h, 6Dh, 7Dh, 07h, 7Fh, 6Fh “0” “1” “2” “3” “4” “5” “6” “7” “8” “9”#includeunsigned char count=0;char code led=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;void main( ) P2=ledcount/10;/ P2接的數(shù)碼管作十位數(shù) P0=ledcount%10;/ P0接的數(shù)碼管作個位數(shù) IT
34、0=1; EX0=1; EA=1; while(1) P2=ledcount/10; P0=ledcount%10; int0() interrupt 0 count+; 4.1.7 擴充外部中斷源擴充外部中斷源 80C51單片機只有2個外部中斷,當系統(tǒng)要求較多的外部中斷源,可進行擴充 1 1、利用定時器擴充中斷源利用定時器擴充中斷源 方法:將T0或T1設為計數(shù)方式,計數(shù)值定為0FFH,外部信號引入后計數(shù)器溢出,T0和T1的外部引腳P3.4和P3.5成為擴充中斷源。MOV TMOD,#06HSETB TR0MOV TL0,#0FFHSETB ET0MOV TH0,#0FFHSETB EA (定
35、義T0工作方式2,計數(shù),中斷允許 ) 2、中斷和查詢結(jié)合X0X1X2X3X411111INT0INT1P1.3P1.2P1.1P1.0 中斷請求由硬件產(chǎn)生,中斷源的識別由程序查詢處理。 X0中斷級別最高,接INT0;擴展的4個中斷源X1-X4經(jīng)電路接到INT1,并接到P1口。它們的優(yōu)先級由軟件確定。3、采用其它電路擴展外部中斷源(1)用優(yōu)先級編碼器 可采用優(yōu)先級編碼器擴展外部中斷源,如:74LS148,8輸入端的優(yōu)先級編碼器,可擴充8級外部中斷源。(2)采用8259芯片 8259中斷控制器是與80X86配套的芯片,使用時需注意中斷申請信號的寬度和中斷響應的時間的差別。 在在C C語言程序中,子
36、程序的作用是由函數(shù)來實現(xiàn)語言程序中,子程序的作用是由函數(shù)來實現(xiàn)的,函數(shù)是的,函數(shù)是C C語言的基本組成模塊,一個語言的基本組成模塊,一個C C語言程序語言程序就是由若干個模塊化的函數(shù)組成的。就是由若干個模塊化的函數(shù)組成的。 C C程序都是由一個主函數(shù)程序都是由一個主函數(shù)main( )main( )和若干個子函和若干個子函數(shù)構成,有且只有一個主函數(shù),程序由主函數(shù)開始數(shù)構成,有且只有一個主函數(shù),程序由主函數(shù)開始執(zhí)行,主函數(shù)根據(jù)需要來調(diào)用其他函數(shù),其它函數(shù)執(zhí)行,主函數(shù)根據(jù)需要來調(diào)用其他函數(shù),其它函數(shù)可以有多個??梢杂卸鄠€。4.2 C語言的函數(shù) 函數(shù)部分的重點:函數(shù)部分的重點:1 1、標準庫函數(shù)和用戶
37、定義函數(shù)、標準庫函數(shù)和用戶定義函數(shù)2 2、函數(shù)的定義方法、函數(shù)的定義方法3 3、函數(shù)的調(diào)用,虛實結(jié)合和結(jié)果返回、函數(shù)的調(diào)用,虛實結(jié)合和結(jié)果返回4 4、函數(shù)的聲明、函數(shù)的聲明1.1.標準庫函數(shù)標準庫函數(shù) 標準庫函數(shù)是由標準庫函數(shù)是由C51C51的編譯器提供的,用戶不必的編譯器提供的,用戶不必定義這些函數(shù),可以直接調(diào)用。定義這些函數(shù),可以直接調(diào)用。KEIL C51KEIL C51編譯器提編譯器提供了供了100100多個庫函數(shù)供我們使用。常用的多個庫函數(shù)供我們使用。常用的C51C51庫函數(shù)庫函數(shù)包括一般包括一般I/OI/O口函數(shù)、訪問口函數(shù)、訪問SFRSFR地址函數(shù)等,在地址函數(shù)等,在C51C51編
38、編譯環(huán)境中,以頭文件的形式給出。譯環(huán)境中,以頭文件的形式給出。2.2.用戶自定義函數(shù)用戶自定義函數(shù) 用戶自定義函數(shù)是用戶根據(jù)需要自行編寫的函數(shù),用戶自定義函數(shù)是用戶根據(jù)需要自行編寫的函數(shù),它必須先定義之后才能被調(diào)用。它必須先定義之后才能被調(diào)用。一、函數(shù)分類和定義 3 3、函數(shù)定義的一般形式是:、函數(shù)定義的一般形式是:函數(shù)類型函數(shù)類型 函數(shù)名(形式參數(shù)表)函數(shù)名(形式參數(shù)表) 形式參數(shù)說明形式參數(shù)說明 局部變量定義局部變量定義 函數(shù)體語句函數(shù)體語句 “ “函數(shù)類型函數(shù)類型”說明了自定義函數(shù)返回值的類型。說明了自定義函數(shù)返回值的類型。 “ “函數(shù)名函數(shù)名”是自定義函數(shù)的名字。是自定義函數(shù)的名字。
39、“ “形式參數(shù)表形式參數(shù)表”給出函數(shù)被調(diào)用時傳遞數(shù)據(jù)的形式給出函數(shù)被調(diào)用時傳遞數(shù)據(jù)的形式參數(shù),形參的類型要加以說明。參數(shù),形參的類型要加以說明。ANSI CANSI C標準允許在形標準允許在形式參數(shù)表中對形式參數(shù)的類型進行說明??梢詻]有形式參數(shù)表中對形式參數(shù)的類型進行說明??梢詻]有形式參數(shù)表,但是圓括號不能省略。式參數(shù)表,但是圓括號不能省略。 “局部變量定義局部變量定義”是對在函數(shù)內(nèi)部使用的局部變是對在函數(shù)內(nèi)部使用的局部變量進行定義。量進行定義。 “ “函數(shù)體語句函數(shù)體語句”是為完成函數(shù)的特定功能而設置是為完成函數(shù)的特定功能而設置的語句。的語句。 4 4、函數(shù)調(diào)用、函數(shù)調(diào)用 是在一個函數(shù)體中引
40、用另外一個已經(jīng)定義的函數(shù),是在一個函數(shù)體中引用另外一個已經(jīng)定義的函數(shù),前者稱為主調(diào)用函數(shù),后者稱為被調(diào)用函數(shù),函數(shù)調(diào)前者稱為主調(diào)用函數(shù),后者稱為被調(diào)用函數(shù),函數(shù)調(diào)用的一般格式為:用的一般格式為:函數(shù)名(實際參數(shù)列表);函數(shù)名(實際參數(shù)列表); 對于有參數(shù)類型的函數(shù),若實際參數(shù)列表中有多對于有參數(shù)類型的函數(shù),若實際參數(shù)列表中有多個實參,則各參數(shù)之間用逗號隔開。個實參,則各參數(shù)之間用逗號隔開。實參與形參順序?qū)崊⑴c形參順序?qū)?,個數(shù)應相等,類型應一致。對應,個數(shù)應相等,類型應一致。 在一個函數(shù)中調(diào)用另一個函數(shù)需要具備如下條件:在一個函數(shù)中調(diào)用另一個函數(shù)需要具備如下條件: (1 1)被調(diào)用函數(shù)必須是已
41、經(jīng)存在的函數(shù)(庫函)被調(diào)用函數(shù)必須是已經(jīng)存在的函數(shù)(庫函數(shù)或者用戶自己已經(jīng)定義的函數(shù)。數(shù)或者用戶自己已經(jīng)定義的函數(shù)。 如果函數(shù)定義在調(diào)用之后,那么必須在調(diào)用之如果函數(shù)定義在調(diào)用之后,那么必須在調(diào)用之前(一般在程序頭部)對函數(shù)進行聲明。前(一般在程序頭部)對函數(shù)進行聲明。 (2 2)如果程序使用了庫函數(shù),則要在程序的開)如果程序使用了庫函數(shù),則要在程序的開頭用頭用includeinclude預處理命令將調(diào)用函數(shù)所需要的信息預處理命令將調(diào)用函數(shù)所需要的信息包含在本文件中。如果不是在本文件中定義的函數(shù),包含在本文件中。如果不是在本文件中定義的函數(shù),那么在程序開始要用那么在程序開始要用externex
42、tern修飾符進行函數(shù)原型說修飾符進行函數(shù)原型說明。明。例例1 用一維數(shù)組實現(xiàn)跑馬燈控制。用一維數(shù)組實現(xiàn)跑馬燈控制。#includevoid delay(int t);void main(void) int i; char code led8=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80; while(1) for(i=0;i8;i+) P0=ledi; delay(250); void delay (int t) unsigned int i,j; for(i=0;it;i+) for(j=0;j33;j+) ; 函數(shù)說明有分號實際參數(shù)形式參
43、數(shù)調(diào)用時250賦給t(3j+2)*t=(333+2)250=25250(微秒),可以認為是250ms執(zhí)行完畢返回主函數(shù)#includeint t=200;void delay();void main(void) int i; char code led8=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80; while(1) for(i=0;i8;i+) P0=ledi; delay( ); void delay(); int j; for(j=0;jt;j+);t為全局變量,在后面的函數(shù)中均有效+5VC3R1KRSTXTAL1XTAL2C1C212
44、MHZ89C51VCCRD1P1.0P1.7例例2 2:單片機:單片機89C51 P189C51 P1口上接口上接8 8個發(fā)光二極管個發(fā)光二極管如圖如圖 ,用中斷改變燈的顯示方式。用中斷改變燈的顯示方式。要求:增加按鍵K,接INTO引腳(P3.2),正常情況下實現(xiàn)8路跑馬,時間間隔1S;按鍵按下時申請中斷,使8個燈同時熄滅和點亮一次,時間間隔0.5S。KP3.2程序:程序:可控信號燈程序可控信號燈程序#include void delay0_5s() unsigned char i; for(i=0;i0 x0a;i+)/ 設置10次循環(huán)次數(shù) TH0=0 x3c;/ 設置定時器初值 TL0=0
45、 xb0; TR0=1;/ 啟動T0 while(!TF0); / 查詢計數(shù)是否溢出 TF0=0;/ 50ms定時到,將TF0清零 void delay_t(unsigned char t) unsigned char i; for(i=0;it;i+) delay0_5s();void int_0() interrupt 0 /外部中斷0的中斷號為0 P1=0 x00;/熄滅八個信號燈 delay0_5s();/調(diào)用0.5秒延時函數(shù) P1=0 xff;/點亮八個信號燈 delay0_5s();/調(diào)用0.5秒延時函數(shù)void main()/主函數(shù) unsigned char i,w; EA=1
46、;/ 打開中斷總允許位 EX0=1;/ 打開外部中斷0允許位 IT0=1;/ 設置外部中斷為邊沿觸發(fā)方式 TMOD=0 x01; / 設置T0為工作方式1 while(1) w=0 x01;/ 顯示碼初值為01H for(i=0;i8;i+) P1=w;/ w取反后送P1口,點亮相應LED w=1;/ 點亮燈的位置移動 delay_t(2); / 調(diào)用延時函數(shù)delay_t(),實際參 數(shù)為2,延時1秒 4.3 80C514.3 80C51的定時的定時/ /計數(shù)器計數(shù)器 實現(xiàn)定時功能,可以采用下面三種方法:實現(xiàn)定時功能,可以采用下面三種方法: 軟件定時軟件定時:軟件定時不占用硬件資源,但占用了
47、:軟件定時不占用硬件資源,但占用了CPUCPU時間,降低了時間,降低了CPUCPU的利用率。的利用率。 采用時基電路定時采用時基電路定時:如采用:如采用555555電路,外接元器件電路,外接元器件(電阻和電容),可構成硬件定時電路。但在硬件連(電阻和電容),可構成硬件定時電路。但在硬件連接好以后,定時值與定時范圍不能進行控制和修改。接好以后,定時值與定時范圍不能進行控制和修改。 采用可編程芯片定時采用可編程芯片定時:定時值及定時范圍很容易用:定時值及定時范圍很容易用軟件來確定和修改,此種芯片定時功能強,使用靈活。軟件來確定和修改,此種芯片定時功能強,使用靈活。 利用單片機內(nèi)部的定時利用單片機內(nèi)
48、部的定時/ /計數(shù)器可以方便的進行定計數(shù)器可以方便的進行定時操作。時操作。C語言的軟件定時舉例:Void delayms (unsigned char j) unsigned char i; while(j -) for (i=1;i125;i+) ; 由于C語言程序編寫的程序定時時間不精確,可根據(jù)j的值調(diào)整循環(huán)共執(zhí)行的次數(shù),進行補償。本節(jié)要掌握的內(nèi)容:本節(jié)要掌握的內(nèi)容:1 1、80C51 80C51 定時計數(shù)器的結(jié)構和工作原理定時計數(shù)器的結(jié)構和工作原理2 2、定時和計數(shù)的區(qū)別、定時和計數(shù)的區(qū)別3 3、4 4種工作方式和工作方式寄存器種工作方式和工作方式寄存器TMODTMOD的設置的設置5 5
49、、定時計數(shù)器的初始化和應用編程、定時計數(shù)器的初始化和應用編程4.3.1 4.3.1 定時定時/ /計數(shù)器的結(jié)構和工作原理計數(shù)器的結(jié)構和工作原理 一、定時一、定時/ /計數(shù)器的結(jié)構計數(shù)器的結(jié)構 80C51單片機內(nèi)有兩個可編程的定時/計數(shù)器T0和T1。 T0、T1都是十六位加法加法計數(shù)器結(jié)構,核心是一個加1計數(shù)器,即來一個脈沖作加來一個脈沖作加1 1操作操作。 T0由TH0、TL0 兩個8位計數(shù)器組成,T1由TH1、TL1 兩個8位計數(shù)器組成。 每個定時計數(shù)器都具有定時定時和和計數(shù)計數(shù)兩種功能。 T0T0和和T1T1由由TMODTMOD和和TCONTCON 2 2個寄存器進行初始設置:個寄存器進行
50、初始設置: TMODTMOD是定時是定時/ /計數(shù)器的工作方式寄存器計數(shù)器的工作方式寄存器,確定工作方,確定工作方式和功能;式和功能; TCONTCON是控制寄存器是控制寄存器,控制,控制T0T0、T1T1的啟動和的啟動和停止及設置溢出標志停止及設置溢出標志。 TH0計數(shù)值高八位計數(shù)值高八位TL0計數(shù)值低八位計數(shù)值低八位TH1計數(shù)值高八位計數(shù)值高八位TL1計數(shù)值低八位計數(shù)值低八位TMODTCON工作方式工作方式定時定時 / 計數(shù)控制計數(shù)控制控控 制制 控控制制二、定時二、定時/ /計數(shù)器的工作原理計數(shù)器的工作原理 加加1 1計數(shù)器計數(shù)器輸入的計數(shù)脈沖有兩個來源輸入的計數(shù)脈沖有兩個來源: : 1
51、 1、定時:定時:計數(shù)脈沖來自系統(tǒng)內(nèi)部的時鐘;計數(shù)脈沖來自系統(tǒng)內(nèi)部的時鐘; 設置為定時器模式時設置為定時器模式時,加,加1 1計數(shù)器是對內(nèi)部機器周計數(shù)器是對內(nèi)部機器周期計數(shù)(期計數(shù)(1 1個機器周期等于個機器周期等于1212個晶振周期,即計數(shù)頻率個晶振周期,即計數(shù)頻率為晶振頻率的為晶振頻率的1/121/12)。)。 每一個機器周期計數(shù)器加每一個機器周期計數(shù)器加1 1,加到計數(shù)器的溢出使,加到計數(shù)器的溢出使TCONTCON中中TF0TF0或或TF1TF1置置1 1,表示定時時間到。,表示定時時間到。 定時時間的設置(裝入定時定時時間的設置(裝入定時/ /計數(shù)器的初值):計數(shù)器的初值): 定時時間
52、定時時間t = 計數(shù)值計數(shù)值N 機器周期機器周期Tcy。 2 2、計數(shù):由、計數(shù):由T0T0(P3.4)P3.4)或或T1(P3.5)T1(P3.5)引腳輸入的外部引腳輸入的外部脈沖源。脈沖源。 設置為計數(shù)器模式時:設置為計數(shù)器模式時:每來一個外部脈沖計數(shù)器加每來一個外部脈沖計數(shù)器加1 1,當加到計數(shù)器為全,當加到計數(shù)器為全1 1時,再輸入一個脈沖就使計數(shù)時,再輸入一個脈沖就使計數(shù)器溢出回零,計數(shù)器的溢出使器溢出回零,計數(shù)器的溢出使TCONTCON中中TF0TF0或或TF1TF1置置1 1,向向CPUCPU發(fā)出中斷請求發(fā)出中斷請求, ,表示計數(shù)到。表示計數(shù)到。 計數(shù)初值的設置(裝入定時計數(shù)初值
53、的設置(裝入定時/ /計數(shù)器的初值):計數(shù)器的初值):計數(shù)初值計數(shù)初值 = 溢出時計數(shù)器的值溢出時計數(shù)器的值 - - 計數(shù)器的計數(shù)值計數(shù)器的計數(shù)值。 設置為設置為計數(shù)器模式時計數(shù)器模式時,外部事件計數(shù)脈沖由,外部事件計數(shù)脈沖由T0T0或或T1T1引腳輸入到計數(shù)器。在每個機器周期的引腳輸入到計數(shù)器。在每個機器周期的S5P2S5P2期間采樣期間采樣T0T0、T1T1引腳電平。當某周期采樣到一高電平輸入,而引腳電平。當某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加下一周期又采樣到一低電平時,則計數(shù)器加1 1,更新,更新的計數(shù)值在下一個機器周期的的計數(shù)值在下一個機器周期的S3P1S
54、3P1期間裝入計數(shù)器。期間裝入計數(shù)器。 由于檢測一個從由于檢測一個從1 1到到0 0的下降沿需要的下降沿需要2 2個機器周期,個機器周期,即最高計數(shù)頻率為晶振頻率的即最高計數(shù)頻率為晶振頻率的1/241/24,當晶振頻率為,當晶振頻率為12MHz12MHz時時,計數(shù)脈沖的周期要大于,計數(shù)脈沖的周期要大于2 2 s s。 4.3.2 4.3.2 定時定時/ /計數(shù)器的控制計數(shù)器的控制 80C5180C51單片機定時單片機定時/ /計數(shù)器的工作由兩個特殊功能計數(shù)器的工作由兩個特殊功能寄存器控制。寄存器控制。TMODTMOD:工作方式;工作方式;TCONTCON:控制啟動和中控制啟動和中斷申請。斷申請
55、。 一、工作方式寄存器一、工作方式寄存器TMODTMOD(8 8位)位) 工作方式寄存器工作方式寄存器TMODTMOD用于設置定時用于設置定時/ /計數(shù)器的工作計數(shù)器的工作方式,方式,低四位用于低四位用于T0T0,高四位用于,高四位用于T1T1。其格式如下:。其格式如下:不能位尋址不能位尋址TMODT1T0 M0 M1C / GATE M0 M1C / GATETT GATEGATE:門控位。:門控位。 GATE=0GATE=0 軟件啟軟件啟動不受動不受 /INT0/INT0或或 /INT1/INT1的控制;的控制; GATE=1GATE=1 硬軟件啟動受硬軟件啟動受 / /INT0 INT0
56、 或或 / /INT1INT1的的控制??刂?。 C/TC/T:外部計數(shù)器:外部計數(shù)器 / / 定時器方式選擇位定時器方式選擇位 C/T = 0 C/T = 0 定時方式;定時方式; C/T = 1 C/T = 1 計數(shù)方式。計數(shù)方式。 M1M0M1M0:工作模式選擇位(編程可決定四種工作模式)。:工作模式選擇位(編程可決定四種工作模式)。 定時定時 / / 計數(shù)器的四種工作模式計數(shù)器的四種工作模式 M1 M0 M1 M0 模式模式 說明說明 0 0 0 130 0 0 13位定時位定時/ /計數(shù)器計數(shù)器 高八位高八位TH(7-0)+ TH(7-0)+ 低五位低五位TL(4-0)TL(4-0)
57、16 16位定時位定時/ /計數(shù)器計數(shù)器 0 1 10 1 1 THTH(7-07-0)+ TL+ TL(7-07-0)8 8位計數(shù)初值自動重裝位計數(shù)初值自動重裝 1 0 21 0 2 TLTL(7-07-0) THTH(7-07-0) 2 2個獨立的個獨立的8 8位定時位定時/ /計數(shù)。計數(shù)。 1 1 31 1 3 T0T0分為分為2 2個獨立的計數(shù)器個獨立的計數(shù)器TL0TL0和和TH0TH0, TL0TL0可以定時可以定時/ /計數(shù),計數(shù),TH0TH0只能定時;只能定時; T1T1不能工作在方式不能工作在方式3 3 定時器TMOD設置舉例:1、設置定時/計數(shù)器T0為:工作方式1,軟件啟動不
58、受INT0控制,定時方式。 TMOD=0 x01(0000 0001b)2、設置定時/計數(shù)器T1為:工作方式2,硬軟件啟動,計數(shù)方式。 TMOD=0 xE0(1110 0000b)TMODT1T0 M0 M1C / GATE M0 M1C / GATETT 2 2、定時、定時 / / 計數(shù)器控制寄存器計數(shù)器控制寄存器TCON TCON TCONTF1 TR1 TF0 TR0 IE1IT1IE0IT0 能否啟動定時能否啟動定時/ /計數(shù)器工作與計數(shù)器工作與GATEGATE有關,分兩種情況:有關,分兩種情況: GATE=0 GATE=0 時,若時,若TRi=1TRi=1,開啟,開啟TiTi計數(shù)工作
59、;計數(shù)工作;(i=0(i=0或或1 1) 若若TRi=0TRi=0,停止,停止TiTi計數(shù)。計數(shù)。 GATE=1 GATE=1 時,若時,若TRi=1 TRi=1 且且/INTi=1/INTi=1時開啟時開啟TiTi計數(shù);計數(shù); 若若TRi=1 TRi=1 且且/INTi=0/INTi=0時不能開啟時不能開啟TiTi計數(shù)。計數(shù)。 若若TRi=0TRi=0, 停止停止TiTi計數(shù)。計數(shù)。 TR0TR0:定時定時/ /計數(shù)器計數(shù)器0 0運行控制位。運行控制位。軟件置位軟件置位/復位。復位。 TR1TR1:定時:定時/ /計數(shù)器計數(shù)器1 1運行控制位。(用法與運行控制位。(用法與TR1TR1類似類似
60、0)0) 4.3.3 4.3.3 定時定時/ /計數(shù)器的工作方式計數(shù)器的工作方式 一、方式一、方式0 0 方式方式0 0為為1313位計數(shù)位計數(shù),由,由TL0TL0的低的低5 5位(高位(高3 3位未用)和位未用)和TH0TH0的的8 8位組成。位組成。TL0TL0的低的低5 5位溢出時向位溢出時向TH0TH0進位,進位,TH0TH0溢溢出時,置位出時,置位TCONTCON中的中的TF0TF0標志,向標志,向CPUCPU發(fā)出中斷請求。發(fā)出中斷請求。 門控位門控位GATEGATE具有特殊的作用。具有特殊的作用。1 1、當當GATE=0GATE=0時,經(jīng)反相后使或門輸出為時,經(jīng)反相后使或門輸出為1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第5課《孔乙己》教學設計2023-2024學年統(tǒng)編版語文九年級下冊
- 第六單元 單元任務群整體教學設計-2024-2025學年語文一年級下冊統(tǒng)編版
- 2024-2025學年高中數(shù)學第一章計數(shù)原理1.2.2組合第2課時組合的綜合應用習題課練習含解析新人教A版選修2-3
- 2024-2025學年高中語文課時作業(yè)9赤壁賦含解析新人教版必修2
- 2024-2025學年新教材高中生物課時雙測過關六受精作用新人教版必修2
- 第四單元 單元導學(新教學設計)2023-2024學年八年級上冊歷史(部編版)
- Unit 4 Living with technology Grammar and usage 教學設計-2024-2025學年高中英語譯林版(2020)選擇性必修第二冊
- Module 2 unit2 Cambridge is a beautiful city in the east of England.教學設計2024-2025學年外研版八年級上冊英語
- Starter Unit 1 Hello!Section B 2a-2e 教學設計 2024-2025學年人教版(2024)七年級英語上冊
- 第五單元第16課一、《網(wǎng)上學習》教學設計設計 2023-2024學年人教版初中信息技術七年級上冊
- 2024屆山東省青島市市北區(qū)八年級物理第二學期期末質(zhì)量檢測試題含解析
- 2024年漯河食品職業(yè)學院單招職業(yè)適應性測試題庫附答案
- 廣東省深圳市2023年中考英語試題(含答案與解析)
- 《看看我們的地球》
- 2022-2023年人教版九年級化學(上冊)期末試題及答案(完整)
- 蘇教版數(shù)學五年級(下冊)第1課時 單式折線統(tǒng)計圖
- 實驗經(jīng)濟學實驗設計案例
- 中華民族共同體概論課件專家版2第二講 樹立正確的中華民族歷史觀
- 蔚來用戶運營分析報告-數(shù)字化
- 中學生低碳生活調(diào)查報告
- 東軟入職合同
評論
0/150
提交評論