版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、5.1 輸入、輸出數(shù)據(jù)傳送的控制方式,單片機(jī)與外設(shè)的數(shù)據(jù)交換方式通常有三種:查詢方式、延時(shí)等待方式和中斷方式。 (1)查詢方式 發(fā)啟動(dòng)外設(shè)的信號(hào); 讀入外設(shè)的狀態(tài)或標(biāo)志; 判斷其是否已做好數(shù)據(jù)交換的準(zhǔn)備; 如外設(shè)未做好準(zhǔn)備,則一直查詢; 外設(shè)準(zhǔn)備好了,用輸入/輸出指令進(jìn)行數(shù)據(jù)交換。 查詢方式的優(yōu)點(diǎn)是能夠自動(dòng)適配外設(shè)的工作速度,缺點(diǎn)是花費(fèi)CPU時(shí)間較多。在CPU不太忙的情況下可采用此方式。,(2)延時(shí)等待方式,發(fā)啟動(dòng)外設(shè)的信號(hào); 延時(shí)等待一段時(shí)間; 用輸入/輸出指令進(jìn)行數(shù)據(jù)交換。 延時(shí)等待方式的特點(diǎn)是將查詢方式下循環(huán)判斷的時(shí)間用軟件延時(shí)來等待,CPU可用這段時(shí)間執(zhí)行別的程序。但是,必須事先計(jì)算好
2、外設(shè)從得到啟動(dòng)信號(hào)到做好數(shù)據(jù)交換的時(shí)間。,(3)中斷方式,設(shè)置中斷,開中斷; 當(dāng)外設(shè)需要與單片機(jī)交換數(shù)據(jù)時(shí),發(fā)中斷請(qǐng)求; 單片機(jī)響應(yīng)中斷申請(qǐng),執(zhí)行中斷服務(wù)程序,與外設(shè)交換數(shù)據(jù)。 中斷方式下,可充分利用單片機(jī)的工作效率并適配外設(shè)的工作速度。因此,中斷方式是應(yīng)用最多的一種I/O數(shù)據(jù)交換方式。但中斷方式需要的硬件資源較多。,第三節(jié) MCS-51單片機(jī)的中斷系統(tǒng) 實(shí)時(shí)控制、故障自動(dòng)處理時(shí)用到中斷系統(tǒng),計(jì)算機(jī)與外圍設(shè)備間傳送數(shù)據(jù)及實(shí)現(xiàn)人機(jī)聯(lián)系也常常用到中斷系統(tǒng)。 MCS-51中斷系統(tǒng)的功能為:5個(gè)中斷源;2個(gè)中斷優(yōu)先級(jí),從而可實(shí)現(xiàn)二級(jí)中斷嵌套;每一個(gè)中斷源的優(yōu)先級(jí)可由程序設(shè)定。與中斷系統(tǒng)工作有關(guān)的SFR
3、有IE、IP以及TCON。,一、 中斷的概念 計(jì)算機(jī)中的中斷是指CPU在處理某件事情的時(shí)候,外部發(fā)生了某一事件請(qǐng)求CPU迅速去處理,于是CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)入處理所發(fā)生的事件,中斷訪問處理完后,再回到原來被中斷的地方,繼續(xù)原來的工作的過程稱為中斷,如圖5-1所示。實(shí)現(xiàn)這種功能的部件稱為中斷系統(tǒng)(中斷機(jī)構(gòu)),產(chǎn)生中斷的請(qǐng)求源稱為中斷源。,圖5-1 中斷流程,二、 中斷系統(tǒng)的功能 MCS-51的中斷系統(tǒng)具有以下中斷功能: 1能實(shí)現(xiàn)中斷及返回。 2 能實(shí)現(xiàn)中斷優(yōu)先級(jí)排隊(duì)。 3 能實(shí)現(xiàn)中斷嵌套。,圖5-2 中斷嵌套流程,三、中斷源 1 外中斷類即外部中斷0和外部中斷1。 中斷請(qǐng)求信號(hào)分別由引腳
4、 (P3.2)和 (P3.3)引入 外部中斷請(qǐng)求有兩種信號(hào)方式, 電平方式:當(dāng)引腳上出現(xiàn)低電平時(shí)就向CPU申請(qǐng)中斷,CPU響應(yīng)中斷后要采取措施撤消中斷請(qǐng)求信號(hào),使引腳恢復(fù)高電平。 脈沖方式:當(dāng)引腳上出現(xiàn)負(fù)跳變時(shí),該負(fù)跳變經(jīng)邊沿檢測(cè)器使IE0或IE1置1,向CPU申請(qǐng)中斷。CPU響應(yīng)中斷后由硬件自動(dòng)清除IE0和IE1。CPU在每個(gè)機(jī)器周期采樣INT0*和INT1*,為了保證檢測(cè)到負(fù)跳變,引腳上的高電平與低電平至少應(yīng)各自保持一個(gè)機(jī)器周期。,2定時(shí)器/計(jì)數(shù)器0、1溢出中斷,定時(shí)器/計(jì)數(shù)器計(jì)數(shù)溢出時(shí),由硬件分別置TF0=1和TF1=1,向CPU申請(qǐng)中斷。CPU響應(yīng)中斷后,由硬件自動(dòng)清除TF0和TF1,
5、3串行接口中斷,串行接口的中斷請(qǐng)求由發(fā)送或接收所引起。串行口發(fā)送了一幀信息,便由硬件置TI1,向CPU申請(qǐng)中斷。串行口接收了一幀信息,便由硬件置RI1,向CPU申請(qǐng)中斷。CPU響應(yīng)中斷后必須由軟件清除TI和RI。,中斷標(biāo)志位,除外部中斷電平觸發(fā)方式外,其它各中斷實(shí)際上由標(biāo)志位IE0、IE1、TF0、TF1、TI、RI置位引起的。這些標(biāo)志位除了由相應(yīng)的硬件置位外,還可以由軟件置位。如果需要,可以由程序安排產(chǎn)生中斷。,四、 中斷控制 與中斷控制有關(guān)的寄存器共四個(gè), 定時(shí)器控制寄存器 TCON 串行口控制寄存器。 SCON 中斷允許控制寄存器 IE 中斷優(yōu)先控制寄存器 IP,1定時(shí)器控制寄存器(TC
6、ON) 該寄存器地址為88H,其位地址為8FH88H。寄存器的內(nèi)容及位地址表示如下:, IE0 (IE1)外中斷請(qǐng)求標(biāo)志位 當(dāng)CPU采樣到 (或) 端出現(xiàn)有效中斷請(qǐng)求時(shí),此位由硬件置1。在中斷響應(yīng)完成后轉(zhuǎn)向中斷服務(wù)時(shí),再由硬件自動(dòng)清零。, IT0(IT1)外中斷請(qǐng)求信號(hào)方式控制位 IT0(IT1)=1 脈沖方式(后沿負(fù)跳有效) IT0(IT1)=0 電平方式(低電平有效) 此位由軟件置1或清0。,2串行口控制寄存器(SCON) 該寄存器地址為98H,其位地址為9FH98H。,TI串行口發(fā)送中斷請(qǐng)求標(biāo)志位 當(dāng)發(fā)送完一幀串行數(shù)據(jù)后,由硬件置1,在轉(zhuǎn)向中斷服務(wù)程序后,必須用軟件清0。 RI串行口接收
7、中斷請(qǐng)求標(biāo)志位 當(dāng)接收完一幀串行數(shù)據(jù)后,由硬件置1;在轉(zhuǎn)向中斷服務(wù)程序后,必須用軟件清0。,3中斷允許控制寄存器(IE) 該寄存器地址為A8H,其位地址為AFHA8H。,EA中斷允許總控制位 EA=0 中斷總禁止,禁止所有中斷。 E EA=1 中斷總允許。當(dāng)中斷總允許后,某個(gè)中斷的禁止或允許由各中斷源的中斷允許控制位進(jìn)行設(shè)置。,EX0(EX1)外部中斷允許控制位 EX0(EX1)0 禁止外中斷 EX0(EX1)1 允許外中斷 ET0(ET1)定時(shí)計(jì)數(shù)中斷允許控制位 ET0(ET1)0 禁止定時(shí)(或計(jì)數(shù))中斷 ET0(ET1)1 允許定時(shí)(或計(jì)數(shù))中斷 ES串行中斷允許控制位 ES=0 禁止串行
8、中斷 ES=1 允許串行中斷,單片機(jī)復(fù)位后(IE)00H,中斷系統(tǒng)處于禁止?fàn)顟B(tài)。 中斷允許與禁止,就是中斷的開放與關(guān)閉。,4中斷優(yōu)先級(jí)控制寄存器(IP) IP寄存器地址B8H,位地址為BFHB8H。,PX0外部中斷0優(yōu)先級(jí)設(shè)定位 PT0定時(shí)中斷0優(yōu)先級(jí)設(shè)定位 PX1外部中斷l(xiāng)優(yōu)先級(jí)設(shè)定位 PT1定時(shí)中斷1優(yōu)先級(jí)設(shè)定位 PS 串行中斷優(yōu)先級(jí)設(shè)定位 X =0, 優(yōu)先級(jí)為低;X=1, 優(yōu)先級(jí)為高。,中斷優(yōu)先級(jí)是為中斷嵌套服務(wù)的,MCS51中斷優(yōu)先級(jí)的控制原則是: 低優(yōu)先級(jí)中斷請(qǐng)求不能打斷高優(yōu)先級(jí)的中斷服務(wù);但高優(yōu)先級(jí)中斷請(qǐng)求可以打斷低優(yōu)先級(jí)的中斷服務(wù),從而實(shí)現(xiàn)中斷嵌套。 如果一個(gè)中斷請(qǐng)求已被響應(yīng),則
9、同級(jí)的其它中斷響應(yīng)將被禁止。 如果同級(jí)的多個(gè)中斷請(qǐng)求同時(shí)出現(xiàn),則按CPU設(shè)定的自然優(yōu)先級(jí)確定那個(gè)中斷請(qǐng)求被響應(yīng)。,MCS51同一優(yōu)先級(jí)中斷源的優(yōu)先級(jí)排列順序: 外部中斷0定時(shí)中斷0外部中斷1定時(shí)中斷1串行中斷 這其實(shí)是CPU查詢各中斷的次序。,習(xí) 題,分析以下幾種中斷優(yōu)先級(jí)的排列順序(由高到低)是否可能?并說明理由。 (1)定時(shí)器T0溢出中斷,定時(shí)器T1溢出中斷,外部中斷INT0*、外部中斷INT1*、串行口中斷 (2)外部中斷INT0*、定時(shí)器T1溢出中斷、定時(shí)器T0溢出中斷、外部中斷INT1*、串行口中斷 (3)串行口中斷、定時(shí)器T0溢出中斷,外部中斷INT0*、外部中斷INT1*、定時(shí)器
10、T1溢出中斷 (4)外部中斷INT0*、定時(shí)器T1溢出中斷、外部中斷INT1*、定時(shí)器T0溢出中斷,串行口中斷 (5)外部中斷INT0*、外部中斷INT1*、串行口中斷、定時(shí)器T0溢出中斷,定時(shí)器T1溢出中斷,5中斷控制寄存器狀態(tài)設(shè)置 這四個(gè)控制寄存器都是既可進(jìn)行字節(jié)尋址又可進(jìn)行位尋址的。 初始化方式:字節(jié)操作指令,位操作指令。 例 在中斷允許控制寄存器IE中,假定要開放外部中斷0和定時(shí)中斷1,為: 字節(jié)操作指令: MOV IE,#89H 位操作指令: SETB EA SETB EX0 SETBET1 其它各中斷控制寄存器與此類似。,例1.8031芯片的INT0*、INT1*引腳分別輸入壓力超
11、限和溫度超限中斷請(qǐng)求信號(hào),定時(shí)器/計(jì)數(shù)器0做定時(shí)檢測(cè)的實(shí)時(shí)時(shí)鐘,用戶規(guī)定的中斷優(yōu)先權(quán)排列次序?yàn)椋簤毫Τ?溫度超限 定時(shí)檢測(cè) 要求確定IE、IP的內(nèi)容,以實(shí)現(xiàn)上述要求。,IE=87H,IP=05H,5.5 中斷響應(yīng),中斷響應(yīng)的 條件: (1)中斷源有中斷請(qǐng)求。 (2)中斷允許寄存器IE相應(yīng)位置1,CPU開戶中斷。 (3)無同級(jí)或高級(jí)中斷正在處理。 (4)當(dāng)前的指令周期已經(jīng)結(jié)束。 (5)若現(xiàn)行指令為RETI或訪問IE或IP指令時(shí),執(zhí)行完該指令且緊隨著的另一條指令已執(zhí)行完。 單片機(jī)在緊接著的下一個(gè)機(jī)器周期的S1期間響應(yīng)中斷源的中斷請(qǐng)求。,CPU響應(yīng)中斷后,由硬件執(zhí)行如下功能:,(1)根據(jù)中斷源的優(yōu)
12、先級(jí)高低,使相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器置1。 (2)保留斷點(diǎn),把程序計(jì)數(shù)器PC的當(dāng)前值推入堆棧保存。 (3)清相應(yīng)的中斷請(qǐng)求標(biāo)志位TF0、TF1、IE0、IE1 。 (4)把被響應(yīng)的中斷服務(wù)程序的入口地址送入PC,從而轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。 中斷服務(wù)程序的最后一條指令必須是中斷返回指令RETI。CPU執(zhí)行該指令時(shí),先將相應(yīng)的優(yōu)先級(jí)狀態(tài)觸發(fā)器清零,然后從堆棧中彈出棧頂?shù)亩€(gè)字節(jié)到PC,從而返回到斷點(diǎn)。 有些中斷請(qǐng)求的撤除也要由中斷服務(wù)程序來實(shí)現(xiàn)。 現(xiàn)場(chǎng)數(shù)據(jù)的保護(hù)和彈出?,中斷響應(yīng)時(shí)間: 38個(gè)機(jī)器周期,六、 中斷請(qǐng)求的撤除,CPU響應(yīng)中斷請(qǐng)求后,在中斷返回(執(zhí)行RETI)前,必須撤除請(qǐng)求,否則會(huì)錯(cuò)
13、誤的再次引起中斷過程。 對(duì)于定時(shí)器/計(jì)數(shù)器0、1的中斷請(qǐng)求以及跳變觸發(fā)方式的外部中斷0、1,CPU在響應(yīng)中斷后用硬件清除了相應(yīng)的中斷請(qǐng)求標(biāo)志TF0、TF1、IE0、IE1,即自動(dòng)撤除了中斷請(qǐng)求。 對(duì)于串行接口中斷,CPU響應(yīng)中斷后沒有用硬件清除中斷標(biāo)志位,必須用用戶編制的中斷服務(wù)程序來清除相應(yīng)的中斷標(biāo)志位。 對(duì)于電平觸發(fā)的外部中斷,由于CPU對(duì)INT0*、INT1*引腳沒有控制作用,也沒有相應(yīng)的中斷請(qǐng)求標(biāo)志位,因此需要外接電路來清除中斷請(qǐng)求信號(hào)。,七、 中斷技術(shù)應(yīng)用舉例 主程序和中斷服務(wù)程序。 在編寫主程序時(shí)應(yīng)注意以下幾點(diǎn): (1) 主程序的起始地址。MCS-51單片機(jī)復(fù)位后,PC=0000H
14、,而各中斷源的入口地址為0003H0023H。因此,在編寫程序時(shí)應(yīng)在0000H處使用一條轉(zhuǎn)移指令,跳過上述區(qū)域。主程序則以轉(zhuǎn)移指令的目的地址作為其起始地址。,ORG0000H LJMPMAIN ORG0003H LJMPSUM ORG1000H MAIN:,(2) 主程序的初始化內(nèi)容。 MCS-51中斷系統(tǒng)的功能是通過上述特殊功能寄存器進(jìn)行統(tǒng)一管理的,中斷系統(tǒng)的初始化是指用戶對(duì)這些特殊功能寄存器中的各控制位進(jìn)行賦值。 初始化包括:相應(yīng)中斷源開中斷;設(shè)定所涉及中斷源的中斷優(yōu)先級(jí);若為外部中斷,應(yīng)規(guī)定其觸發(fā)方式。,例5-1 編寫INT1*為低電平觸發(fā)的初始化程序。 (1)采用位操作指令實(shí)現(xiàn) CLR
15、IT1 ;電平觸發(fā)方式 SETBEA;總中斷允許 SETBEX1;設(shè)置外部中斷1允許 SETBPX1;設(shè)置INT1*為高優(yōu)先級(jí)斷 (2)采用字節(jié)操作指令 ANLTCON,#0FBH MOVIE,#84H ORLIP,#04H,例5-2 利用INT0*實(shí)現(xiàn)單步操作。 MCS-51中斷系統(tǒng)有個(gè)特點(diǎn),當(dāng)執(zhí)行中斷返回指令RETI后,至少還要執(zhí)行一條指令,才能響應(yīng)新的中斷請(qǐng)求。 單步操作是通過外部中斷INT0*引腳上的低電平實(shí)現(xiàn),即按一次鍵執(zhí)行一條指令。,ORG0000H LJMPMAIN ORG0003H LJMPINT0 ORG2000H MAIN:SETBEA;總中斷允許 SETBPX0;設(shè)置IN
16、T0*為高優(yōu)先級(jí)斷 SETBEX0;允許外部中斷0中斷 CLRIT0;電平觸發(fā)方式 INT0:JNBP3.2,INT0 HEAR:JBP3.2,HEAR RETI END,例5-3 外部中斷源擴(kuò)展。 當(dāng)外部中斷源多于2個(gè)時(shí),可采用硬件申請(qǐng)與軟件查詢的方法擴(kuò)展外部中斷。,8051,1,EXT0,EXT1,EXT2,EXT3,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,LED R,ORG 0000H JLMP MAIN ORG 0003H LJMP EXINT ;轉(zhuǎn)外部中斷1服務(wù)程序 EXINT:PUSH PSW PUSH A;保護(hù)現(xiàn)場(chǎng)。 JB P1.0, EX
17、T0 JB P1.1, EXT1 JB P1.2, EXT2 JB P1.3, EXT3 DONE: POP A POP PSW ;恢復(fù)現(xiàn)場(chǎng)。 RETI;中斷返回。 ,EXT0: SETBP1.4 AJMP DONE EXT1: SETBP1.5 AJMP DONE EXT2: SETBP1.6 AJMP DONE EXT3: SETBP1.7 AJMP DONE,例5-4 統(tǒng)計(jì)脈沖觸發(fā)方式的的個(gè)數(shù),若滿100個(gè),則停止統(tǒng)計(jì)并將P1.0置1。 ORG 0000H LJMPMAIN ORG0003H LJMPSUM ORG1000H MAIN:MOV A,00H;主程序開始SETBIT0;設(shè)置脈
18、沖觸發(fā)方式 SETBIE0;設(shè)置外部中斷0允許 SETBEA;總中斷允許 SJMP $;等待中斷,SUM:INCA CJNEA,#100, QUIT CLR EA;總中斷禁止 CLRIE0;外部中斷0禁止 SETBP1.0;置位P1.0 QUIT:RETI;中斷返回 END,習(xí) 題,1、8051單片機(jī)提供了哪幾個(gè)中斷源?有哪幾個(gè)中斷優(yōu)先級(jí)別?各中斷源所對(duì)應(yīng)的中斷矢量地址是多少? 2、外部中斷有幾種觸發(fā)方式?如何選擇? 3、中斷響應(yīng)怎樣保護(hù)斷點(diǎn)地址和保護(hù)現(xiàn)場(chǎng)? 4、在MCS-51單片機(jī)中,各中斷標(biāo)志是如何產(chǎn)生的?哪些中斷標(biāo)志可以隨中斷響應(yīng)而自動(dòng)撤除?哪些需要由用戶撤除?撤除的方法是什么? 6、寫
19、出INT0*為邊沿觸發(fā)方式的中斷初始化程序。 7、什么是中斷優(yōu)先級(jí)?中斷優(yōu)先處理的原則是什么?,第四節(jié) 定時(shí)器/計(jì)數(shù)器 一、 定時(shí)器/計(jì)數(shù)器的結(jié)構(gòu)和原理 兩個(gè)16位的可編程定時(shí)器/計(jì)數(shù)器,T0,T1。 兩個(gè)特殊功能寄存器:方式寄存器和控制寄存器。 定時(shí)器/計(jì)數(shù)器的 核心是內(nèi)部的16位加法計(jì)數(shù)器,分別用TH0、TL0和TH1、TL1表示,在使用時(shí)先給加法計(jì)數(shù)器設(shè)定初值,然后加1計(jì)數(shù),直到溢出,計(jì)數(shù)的次數(shù)就是最大值減去初值。,二、定時(shí)和計(jì)數(shù)兩種功能 1計(jì)數(shù)功能 計(jì)數(shù):對(duì)外部事件進(jìn)行計(jì)數(shù)。 外部事件的發(fā)生以輸入脈沖表示,因此計(jì)數(shù)功能的實(shí)質(zhì)就是對(duì)外來脈沖進(jìn)行計(jì)數(shù)。外部輸入的脈沖在負(fù)跳變時(shí)有效,進(jìn)行計(jì)數(shù)
20、器加1(加法計(jì)數(shù)) 。 計(jì)數(shù)輸入端:T0(P3.4 )和T1(P3.5)。,1計(jì)數(shù)功能 定時(shí)器/計(jì)數(shù)器在每個(gè)機(jī)器周期的S5P2期間采樣T0/T1引腳,若采樣結(jié)果表明上一周期為高電平,下一周期為低電平,則TL加1。新的計(jì)數(shù)值在檢測(cè)到負(fù)跳變后的S3P1期間置入加法計(jì)數(shù)器。由于需要兩個(gè)機(jī)器周期才能識(shí)別高電平到低電平的跳變,所以外部計(jì)數(shù)脈沖的頻率應(yīng)小于fosc/24,且高電平與低電平的持續(xù)時(shí)間均不得小于一個(gè)機(jī)器周期。,2定時(shí)功能 實(shí)現(xiàn)方法:通過計(jì)數(shù)器的計(jì)數(shù)實(shí)現(xiàn)。 與計(jì)數(shù)功能的不同之處:計(jì)數(shù)脈沖來自單片機(jī)的內(nèi)部,即每個(gè)機(jī)器周期產(chǎn)生一個(gè)計(jì)數(shù)脈沖,也就是每個(gè)機(jī)器周期計(jì)數(shù)器加1。 一個(gè)機(jī)器周期=12個(gè)振蕩周期
21、, 故,計(jì)數(shù)頻率為振蕩頻率的1/12。 若:?jiǎn)纹瑱C(jī)晶振6MHz,則計(jì)數(shù)頻率為0.5MHz, 2微秒計(jì)數(shù)器加1.,將控制字寫入定時(shí)器/計(jì)數(shù)器的過程叫定時(shí)器/計(jì)數(shù)器的初始化。 初始化內(nèi)容: 規(guī)定T0、T1的工作方式;(TMOD) 將工作方式控制字寫入方式寄存器 賦定時(shí)/計(jì)數(shù)初值;(TH0,TL0;TH1,TL1) 規(guī)定T0、T1的工作狀態(tài)。(TR0/TR1) 將工作狀態(tài)控制字寫入控制寄存器,三、 工作模式寄存器和控制寄存器 1定時(shí)器控制寄存器(TCON,88H), TF0(TF1)計(jì)數(shù)溢出標(biāo)志位 若有溢出,TF0(TF1)1 無溢出,TF0(TF1)0 有溢出時(shí),當(dāng)轉(zhuǎn)向中斷服務(wù)時(shí),再由硬件自動(dòng)清0
22、。 TF0(TF1)的使用方式: 中斷方式時(shí),作中斷請(qǐng)求標(biāo)志位來使用, 查詢方式時(shí),作查詢狀態(tài)位來使用。 TF0(TF1)也可以用程序置位或清零,例如執(zhí)行指令SETB TF1后TF11。所以定時(shí)器/計(jì)數(shù)器1的中斷請(qǐng)求還能用程序安排產(chǎn)生。, TR0(TR1)定時(shí)器T0(T1)運(yùn)行控制位 當(dāng)TR0(TR1)1時(shí),啟動(dòng)定時(shí)器開始工作。 當(dāng)GATE0時(shí),TR0(TR1)置1,啟動(dòng)定時(shí)器開始工作。當(dāng)GATE=1時(shí),且INTi*為高電平時(shí),TR0(TR1)置1啟動(dòng)定時(shí)器工作;由軟件清零關(guān)閉定時(shí)器。,2. 定時(shí)器工作方式寄存器(TMOD,89H) 作用:設(shè)置兩個(gè)定時(shí)器/計(jì)數(shù)器工作方式。 但TMOD寄存器不能
23、位尋址,只能用字節(jié)傳送指令設(shè)置其內(nèi)容。,M1、M0工作方式選擇位。可形成4種編碼,對(duì)應(yīng)于四種工作方式。,M1 M0,工作方式,功 能 描 述,0 0 0 1 1 0 1 1,方式 0 方式1 方式2 方式3,13位計(jì)數(shù)器 16位計(jì)數(shù)器 自動(dòng)重裝初值的8位計(jì)數(shù)器 定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器 定時(shí)器1:停止計(jì)數(shù), 定時(shí)方式或計(jì)數(shù)方式選擇位 0定時(shí)工作方式 1計(jì)數(shù)工作方式 GATE門控位 GATE0以運(yùn)行控制位TR0(TR1)啟動(dòng)定時(shí)器 GATE1 以外中斷請(qǐng)求信號(hào) 和TR0(TR1)共同啟動(dòng)定時(shí)器 復(fù)位時(shí),TMOD0。 舉例如下:,設(shè) 定時(shí)器1為定時(shí)工作方式,要求由軟件啟動(dòng)定時(shí)器1,按方式2工作
24、。定時(shí)器0為計(jì)數(shù)方式,要求由軟件啟動(dòng)定時(shí)器0,按方式1工作。 MOV TMOD,#25H。,四、 定時(shí)器/計(jì)數(shù)器的四種工作模式 四種工作方式: 即方式0、方式1、方式2和方式3。 其中: 方式0、1和2下,T0和T1的工作方式相同, 方式3下,兩個(gè)定時(shí)器的工作方式不同。 1、 方式0 13位計(jì)數(shù)結(jié)構(gòu)的工作方式。 圖5-7是定時(shí)器/計(jì)數(shù)器0在工作方式0下的邏輯結(jié)構(gòu)。 T1的結(jié)構(gòu)和操作與T0完全相同。,圖5-7 T0(或T1)方式0結(jié)構(gòu),當(dāng)GATE0時(shí), 若TR0=1,接通計(jì)數(shù)控制K,啟動(dòng)T0在原計(jì)數(shù)值上加1計(jì)數(shù),直至溢出。 若TR00,則關(guān)斷控制開關(guān),停止計(jì)數(shù)。 當(dāng)GATE1,且TR01時(shí), 或
25、門、與門全部打開,外信號(hào)電平 通過引腳 直接開啟或關(guān)斷定時(shí)器計(jì)數(shù)。 輸入1電平時(shí),允許計(jì)數(shù),否則停止計(jì)數(shù)。,由于定時(shí)器/計(jì)數(shù)器以加1方式計(jì)數(shù), 當(dāng)定時(shí)器/計(jì)數(shù)器用于計(jì)數(shù)工作方式時(shí),假定要求的計(jì)數(shù)長(zhǎng)度為N,則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值 X213N。 在方式0下,計(jì)數(shù)的長(zhǎng)度范圍為18192。,2、 方式1 計(jì)數(shù)器由TH 8位和TL8位構(gòu)成。 當(dāng)定時(shí)器/計(jì)數(shù)器用于計(jì)數(shù)工作方式時(shí),假定要求的計(jì)數(shù)長(zhǎng)度為N,則應(yīng)裝入定時(shí)器/計(jì)數(shù)器的初值X216N。 在方式0下,計(jì)數(shù)的長(zhǎng)度范圍為165536。 當(dāng)工作于定時(shí)狀態(tài)時(shí),若需要的定時(shí)時(shí)間為Tc,則需要的機(jī)器周期數(shù)NTc/Tp(Tp機(jī)器周期),則應(yīng)裝入定時(shí)器/計(jì)數(shù)器
26、的初值X216N。 若晶振頻率為12MHz,則當(dāng)X65535時(shí),具有最小的定時(shí)時(shí)間為1us; 當(dāng)N65536時(shí),具有最大的定時(shí)時(shí)間為65536us65ms。,圖6-3 T0(或T1)方式1結(jié)構(gòu)16位計(jì)數(shù)器,3、 方式2 方式2具有自動(dòng)重新加載功能,即自動(dòng)加載計(jì)數(shù)初值。 在該工作方式下,把16位計(jì)數(shù)器分為兩部分,即 以TL作計(jì)數(shù)器, 以TH作預(yù)置寄存器,初始化時(shí)把計(jì)數(shù)初值分別裝入TL和TH中。 當(dāng)計(jì)數(shù)溢出時(shí),由預(yù)置寄存器TH以硬件方法自動(dòng)給計(jì)數(shù)器TL重新加載,繼續(xù)計(jì)數(shù),循環(huán)重復(fù)。,圖6-4 T0(或T1)方式2結(jié)構(gòu)8位計(jì)數(shù)器,4方式3 前三種工作方式下,T0和T1的設(shè)置和使用是完全相同的。但是在
27、工作方式3下,二者的設(shè)置和使用卻是不同的,因此要分開介紹。 (1) 在工作方式3下,T0被拆成兩個(gè)獨(dú)立的8位計(jì)數(shù)器TL0和TH0。其中TL0既可以作計(jì)數(shù)使用,又可以作定時(shí)使用。 T0的各控制位、引腳和中斷源,即、GATE、TR0、TF0 和T0(P3.4)引腳、 (P3.2)引腳全歸它使用。 功能和操作與方式1完全相同,而且邏輯電路結(jié)構(gòu)也很相似,如圖6-5所示。,圖6-5 T0工作方式3邏輯結(jié)構(gòu),而此時(shí)TH0只可用作簡(jiǎn)單的定時(shí)器使用。而且由于T0的控制位已被TL0獨(dú)占,因此只好借用定時(shí)器/計(jì)數(shù)器1的控制位TR1和TF1,即以計(jì)數(shù)溢出去置位TF1,而定時(shí)的啟動(dòng)和停止則受TR1的狀態(tài)控制。 由于T
28、L0既能作定時(shí)器使用也能作計(jì)數(shù)器使用,而TH0只能作定時(shí)器使用,卻不能作計(jì)數(shù)器使用。因此,在工作方式3下,定時(shí)器/計(jì)數(shù)器0可以構(gòu)成兩個(gè)定時(shí)器或一個(gè)定時(shí)器和一個(gè)計(jì)數(shù)器。,(2)工作方式3下的定時(shí)器/計(jì)數(shù)器1 如果T0已工作在工作方式3,則T1只能工作在方式0、1或方式2下,因?yàn)樗倪\(yùn)行控制位TR1及計(jì)數(shù)溢出標(biāo)志位TF1已被T0借用,如圖6-6所示。,此時(shí),T1通常是作為串行口的波特率發(fā)生器使用,以確定串行通信的速率。因?yàn)橐呀?jīng)沒有計(jì)數(shù)溢出標(biāo)志位TF1可供使用,因此只能把計(jì)數(shù)溢出直接送給串行口。,若將T1強(qiáng)行設(shè)置為模式3,就會(huì)使T1立即停止工作。,以晶振fosc=12MHz計(jì)算,五、 定時(shí)器/計(jì)數(shù)器
29、的應(yīng)用舉例 主要任務(wù): 編程。 編程時(shí)應(yīng)注意的問題: 1. 能正確寫入控制字(即初始化定時(shí)器/計(jì)數(shù)器)2. 會(huì)進(jìn)行定時(shí)/計(jì)數(shù)初值的計(jì)算。,寫入控制字的次序: 1. 把工作方式控制字寫入TMOD寄存器; 2. 把定時(shí)/計(jì)數(shù)初值裝入TL0、TH0(或TL1、TH1) 3. 置位TR0(或TR1)以啟動(dòng)計(jì)數(shù) 4. 置位ET0(或ET1)允許定時(shí)器/計(jì)數(shù)器中斷(如果需要); 5. 置位EA使CPU開放中斷。,定時(shí)器/計(jì)數(shù)器初值的計(jì)算: 計(jì)數(shù)初值最大計(jì)數(shù)值需要計(jì)數(shù)的值 最大計(jì)數(shù)值在不同工作方式下是不同的, 方式0為:8192 方式1為:65536 方式2為:256 方式3為:256 如果定時(shí),需要計(jì)數(shù)的
30、值=定時(shí)時(shí)間/機(jī)器周期,例1:設(shè)單片機(jī)晶振頻率fosc6MHz,使用定時(shí)器0以方式0產(chǎn)生周期為2ms的等寬正方波脈沖,并由P1.0輸出。以中斷方式完成。 (1)計(jì)算計(jì)數(shù)初值 實(shí)現(xiàn)正方波脈沖的方法:P1.0端以1ms為周期交替輸出高低電平。 則:定時(shí)時(shí)間應(yīng)為1ms。 若晶振為6MHz,則一個(gè)機(jī)器周期2us。 設(shè)待求的計(jì)數(shù)初值為X,則: (213X)2us1000us 得:X769211110000 01100B TH10F0H, TL10CH。,(2)TMOD寄存器初始化 T1在方式0下, M1M000; 定時(shí)功能,應(yīng)使 0; 實(shí)現(xiàn)T1的運(yùn)行控制,則GATE0。 所以: TMOD00H。 (3)
31、由定時(shí)器控制寄存器TCON中的TR1位控制定時(shí)的啟動(dòng)和停止,則TR11,啟動(dòng);TR10,停止。,(4)程序清單:ORG 0000H LJMPSTART ORG000BH LJMPTINT START:MOV SP,#60H MOV TMOD,#00H;設(shè)置T1工作方式0 MOV TL0,#0CH MOV TH0,#0F0H;設(shè)置計(jì)數(shù)初值 SETB EA SETB ET0 SETBTR1;啟動(dòng)T1運(yùn)行 SETB P1.0 ;高電平 SJMP $,TINT: CPLP1.0;輸出取反 MOVTL0,#0CH ;重新設(shè)置計(jì)數(shù)初值 MOVTH0,#0F0H RETI END;程序結(jié)束,例2:設(shè)單片機(jī)晶
32、振頻率fosc6MHz,使用定時(shí)器1以方式1產(chǎn)生周期為2S的等寬正方波脈沖,并由P1.7輸出。以中斷方式完成。 (1)計(jì)算計(jì)數(shù)初值 設(shè)待求的計(jì)數(shù)初值為X,則: (216X)2us1000,000us 得: X155363CB0H, 則: TH13CH,TL10B0H。 (2)TMOD寄存器初始化,M1M001, C/T 0, GATE0 所以: TMOD10H,(4)程序清單:ORG 0000H LJMPSTART ORG001BH LJMPTINT START:MOV SP,#60H MOV TMOD,#10H;設(shè)置T1工作方式0 MOV TH1,#3CH;設(shè)置計(jì)數(shù)初值 MOV TL1,#0
33、B0H SETB EA SETB ET1 SETBTR1;啟動(dòng)T1運(yùn)行 SETB P1.7 ;高電平 MOV R7,#10 SJMP $,TINT: MOVTL0,#0B0H ;重新設(shè)置計(jì)數(shù)初值 MOVTH0,#3CH DJNZ R7,LOOP MOV R7,#10 CPLP1.7 ;輸出取反 LOOP:RETI END;程序結(jié)束,查詢方式實(shí)現(xiàn):ORG1000H START:MOVTMOD,#10H;設(shè)置T1工作方式1 MOVTH1,#3CH;設(shè)置計(jì)數(shù)初值 MOVTL1,#0B0H MOV IE,#00H MOV R7,#10 SETBTR1 SETB P1.7 LOOP:JB TF1,LOOP1 AJMP LOOP LOOP1:MOVTH1,#3CH MOVTL1,#0B0H CLR TF1 DJNZ R7,LOOP MOV R7,#10 CPL P1.7 ALMP LOOP END,例3:有一自動(dòng)罐裝藥粒系統(tǒng),每瓶罐裝藥粒100片,每滿一瓶,累加器A加1操作,若滿200瓶,向P1.0輸出0,然后停止計(jì)數(shù)。要求用定時(shí)器1以工作方式2計(jì)數(shù)。(查詢方式) (1)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業(yè)安全文化建設(shè)手冊(cè)
- 2025年企業(yè)內(nèi)部保密工作制度實(shí)施指南
- 反餐飲浪費(fèi)管理制度
- 超市員工績(jī)效考核制度
- 超市商品采購及談判制度
- 2026年熱帶海洋環(huán)境與島礁生態(tài)全國重點(diǎn)實(shí)驗(yàn)室科研助理崗位招聘?jìng)淇碱}庫及完整答案詳解一套
- 養(yǎng)老院老人健康飲食營(yíng)養(yǎng)師管理制度
- 2026年白云區(qū)云城街招聘城中村改造工作人員的備考題庫附答案詳解
- 2026年英德市國防教育訓(xùn)練中心面向社會(huì)公開招聘1名專職民兵教練員備考題庫及答案詳解一套
- 興義市人民醫(yī)院2025年公開引進(jìn)高層次、急需緊缺人才備考題庫完整答案詳解
- 機(jī)房用電安全管理培訓(xùn)課件
- 2026秋招:華夏銀行筆試題及答案
- 便攜式血糖儀培訓(xùn)課件
- 醫(yī)院物價(jià)制度培訓(xùn)課件
- 2026年通遼職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試題庫附答案
- 2025年精麻藥品考試試題附答案
- 山東省青島嶗山區(qū)2024-2025學(xué)年上學(xué)期八年級(jí)數(shù)學(xué)期末試題(含答案)
- 眼外傷課件教學(xué)課件
- 顎式破碎機(jī)機(jī)構(gòu)優(yōu)化設(shè)計(jì)
- 人力資源人才盤點(diǎn)表型模板
- 老年醫(yī)學(xué)發(fā)展與挑戰(zhàn)
評(píng)論
0/150
提交評(píng)論