版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023/1/311第6章80C51的中斷系統(tǒng)及定時(shí)/計(jì)數(shù)器80C51單片機(jī)的中斷系統(tǒng)6.180C51單片機(jī)的中斷處理過程6.280C51單片機(jī)的定時(shí)/計(jì)數(shù)器6.380C52的定時(shí)/計(jì)數(shù)器26.4與上對(duì)比,單片機(jī)中也有同樣的問題。CPU正在執(zhí)行原程序,突然,被意外事情打斷,轉(zhuǎn)去執(zhí)行新程序。CPU執(zhí)行新程序結(jié)束后,又回到原程序中繼續(xù)執(zhí)行。這樣的過程就叫。中斷
某同學(xué)正在教室寫作業(yè),忽然被人叫出去,回來后,繼續(xù)寫作業(yè)。這就是生活中中斷的例子。
6.180C51單片機(jī)的中斷系統(tǒng)2023/1/3136.180C51單片機(jī)的中斷系統(tǒng)6.1.180C51中斷系統(tǒng)的結(jié)構(gòu)
CPU進(jìn)行工作A時(shí)發(fā)生了事件B,請(qǐng)求CPU馬上處理
CPU暫時(shí)中斷當(dāng)前工作A,轉(zhuǎn)去處理事件B
事件B處理完后,回到工作A被中斷的地方繼續(xù)處理A工作
中斷的概念中斷源中斷請(qǐng)求
中斷服務(wù)中斷返回中斷系統(tǒng)中斷的優(yōu)點(diǎn):
CPU利用率高
控制實(shí)時(shí)性強(qiáng)系統(tǒng)可靠性好中斷舉例中斷源、中斷允許控制、中斷優(yōu)先級(jí)處理、中斷嵌套、中斷響應(yīng)過程中斷和子程序調(diào)用的區(qū)別中斷服務(wù)程序1中斷服務(wù)程序2中斷事件1中斷事件
25.2MCS-51單片機(jī)的中斷流程、中斷嵌套
主程序單片機(jī)中斷的應(yīng)用舉例例1假設(shè)某消防隊(duì)坐落在道路的一邊,正常情況下,交通紅綠燈以30s的間隔輪流點(diǎn)亮,當(dāng)有消防任務(wù)時(shí),消防官兵只需要按一下設(shè)置在路邊的消防緊急按鈕,則道路交通燈就會(huì)變成紅燈并持續(xù)10s時(shí)間,禁止其他車輛通行,使消防車可以順利通過,用51單片機(jī)的中斷可以實(shí)現(xiàn)上述功能。例2在工業(yè)應(yīng)用場(chǎng)合經(jīng)常利用中斷電路來實(shí)現(xiàn)系統(tǒng)的故障顯示。假設(shè)有四個(gè)終端設(shè)備和主控室相連接,主控室可以采用報(bào)警或指示燈等方式表示終端設(shè)備是否正常工作。當(dāng)終端設(shè)備正常工作時(shí),主控室指示燈滅,當(dāng)終端設(shè)備工作異常時(shí),主控室指示燈亮,用單片機(jī)中斷電路可以實(shí)現(xiàn)??偨Y(jié):?jiǎn)纹瑱C(jī)的中斷能實(shí)現(xiàn)哪些功能?解決快速CPU和慢速外設(shè)之間的矛盾,使CPU和外設(shè)可以并行工作。具備故障處理能力,提高機(jī)器自身的可靠性。中斷方式消除了CPU在查詢方式中的等待現(xiàn)象,大大提高了CPU的工作效率。及時(shí)采集、實(shí)時(shí)控制。將現(xiàn)場(chǎng)采集的數(shù)據(jù)通過中斷方式及時(shí)傳送給CPU,經(jīng)過處理后立即做出反應(yīng),實(shí)現(xiàn)現(xiàn)場(chǎng)控制。2023/1/319
80C51中斷系統(tǒng)的結(jié)構(gòu)5個(gè)中斷源、2個(gè)優(yōu)先級(jí)中斷請(qǐng)求中斷允許寄存器中斷請(qǐng)求標(biāo)志寄存器想要接聽電話必須有兩個(gè)條件:電話鈴必須響;你聽到鈴聲響。對(duì)于51單片機(jī)同樣如此,光有中斷源是不夠的,還必須能夠被接收到。51單片機(jī)采用設(shè)置中斷請(qǐng)求標(biāo)志寄存器TCON和串行口中斷請(qǐng)求標(biāo)志寄存器SCON。接收到則相應(yīng)位置1。這樣MCS-51單片機(jī)工作時(shí),在每個(gè)機(jī)器周期中都會(huì)去查詢中斷標(biāo)志寄存器,看哪位是1,如果某位是1,就說明其對(duì)應(yīng)中斷源有中斷請(qǐng)求,并被單片機(jī)接受到。2023/1/3111
中斷源
中斷服務(wù)程序入口地址****6.1.280C51的中斷源外部中斷0(INT0)0003H外部中斷1(INT1)0013HT0溢出中斷(TF0)000BHT1溢出中斷(TF1)001BH串行口中斷(RI或TI)0023H2023/1/3112觸發(fā)方式設(shè)置及中斷標(biāo)志電平方式(ITx=0),INTx引腳低電平時(shí)IEx=1,響應(yīng)中斷后IEx不自動(dòng)清0(INTx引腳狀態(tài))。邊沿方式(ITx=1),INTx引腳負(fù)跳變時(shí)IEx=1,響應(yīng)中斷后IEx自動(dòng)清0。外部中斷標(biāo)志IE1、IE0(用IEx表示)2023/1/3113兩種觸發(fā)方式比較:
電平方式時(shí),INTx低電平必須保持到響應(yīng)時(shí),否則就會(huì)漏掉;在中斷服務(wù)結(jié)束前,INTx低電平必須撤除,否則中斷返回之后將再次產(chǎn)生中斷。
例,8255的中斷請(qǐng)求在接受讀或?qū)懖僮骱蠹幢粡?fù)位,因此以其去請(qǐng)求電平觸發(fā)方式的中斷比較方便。邊沿方式時(shí),采樣到有效下降沿后,在IEx中將鎖存一個(gè)1。若CPU暫時(shí)不能響應(yīng),申請(qǐng)標(biāo)志也不會(huì)丟失,直到響應(yīng)時(shí)才清0。
例,ADC0809的轉(zhuǎn)換結(jié)束信號(hào)EOC為正脈沖,經(jīng)反相后就可以作為80C51的INTx信號(hào)。2023/1/3114溢出中斷標(biāo)志TF1、TF0(用TFx表示)溢出中斷請(qǐng)求標(biāo)志TFx,Tx啟動(dòng)后就開始由初值進(jìn)行加1計(jì)數(shù),直至產(chǎn)生溢出使TFx=1向CPU請(qǐng)求中斷。CPU響應(yīng)中斷后TFx自動(dòng)清0。
SCON的中斷標(biāo)志RI:串口接收中斷標(biāo)志,響應(yīng)中斷時(shí)不能自動(dòng)清除
TI:串口發(fā)送中斷標(biāo)志,響應(yīng)中斷時(shí)不能自動(dòng)清除
MCS-51系列單片機(jī)中斷源中斷標(biāo)志2023/1/31176.1.380C51中斷的控制中斷允許控制中斷源的開放和屏蔽由IE控制(1,開放;0,禁止)EX0:外中斷0允許ET0:T0中斷允許
EX1:外中斷1允許ET1:T1中斷允許ES:串口中斷允許
EA:CPU中斷允許單片機(jī)復(fù)位時(shí),IE各位清0,禁止所有中斷***單片機(jī)復(fù)位時(shí),TCON和SCON各位清0***中斷的開放和禁止
2023/1/3119中斷優(yōu)先級(jí)控制中斷優(yōu)先級(jí)由IP控制(1,高級(jí);0,低級(jí))PX0:外中斷0優(yōu)先級(jí)
PT0:T0中斷優(yōu)先級(jí)PX1:外中斷1優(yōu)先級(jí)PT1:T1中斷優(yōu)先級(jí)PS:串口中斷優(yōu)先級(jí)同一優(yōu)先級(jí)的自然順序:自高至低:INT0、TO、INT1、T1、串口。
中斷優(yōu)先原則:(概括為四句話)1、低級(jí)不打斷高級(jí)2、高級(jí)不睬低級(jí)3、同級(jí)不能打斷4、同級(jí)、同時(shí)中斷,事先約定。
2023/1/3121
中斷優(yōu)先級(jí)遵循的原則***幾個(gè)中斷同時(shí)申請(qǐng),先響應(yīng)高級(jí)的中斷正進(jìn)行的中斷服務(wù),同級(jí)或低級(jí)中斷不能對(duì)其中斷,但可以被高級(jí)中斷所中斷。
為此,中斷系統(tǒng)內(nèi)設(shè)有對(duì)應(yīng)高、低2個(gè)優(yōu)先級(jí)狀態(tài)觸發(fā)器(用戶不能尋址)。狀態(tài)觸發(fā)器的復(fù)位由中斷返回指令RETI控制。2023/1/31226.2
80C51單片機(jī)中斷處理過程6.2.1中斷響應(yīng)條件和時(shí)間
中斷響應(yīng)條件****有中斷請(qǐng)求
相應(yīng)的中斷允許位為1CPU開中斷(即EA=1)
遇下面情況之一將不被響應(yīng)(此間中斷條件失效,中斷丟失)
正在處理同級(jí)或高級(jí)中斷
當(dāng)前選擇周期不是所執(zhí)行指令的最后一個(gè)機(jī)器周期
正在執(zhí)行RETI或訪問IE或IP
的指令
2023/1/3123中斷響應(yīng)時(shí)間中斷響應(yīng)至少需要3個(gè)完整的機(jī)器周期(3~8個(gè))!受阻時(shí)要附加3~5個(gè)機(jī)器周期(無同級(jí)或高級(jí)中斷正進(jìn)行)
排序周期不是指令的最后機(jī)器周期(如MUL,5個(gè))排序周期恰逢RETI類指令(要再跟指令,若是MUL,8個(gè))響應(yīng)時(shí)間(1)最快響應(yīng)時(shí)間以外部中斷的電平觸發(fā)為最快。從查詢中斷請(qǐng)求信號(hào)到中斷服務(wù)程序需要三個(gè)機(jī)器周期:1個(gè)周期(查詢)+2個(gè)周期(長(zhǎng)調(diào)用LCALL)(2)最長(zhǎng)響應(yīng)時(shí)間
若當(dāng)前指令是RET、RETI和IP、IE指令,緊接著下一條是乘除指令發(fā)生,則最長(zhǎng)為8個(gè)周期:2個(gè)周期執(zhí)行當(dāng)前指令(其中含有1個(gè)周期查詢)+4個(gè)周期乘除指令+2個(gè)周期長(zhǎng)調(diào)用=8個(gè)周期。2023/1/31256.2.2中斷響應(yīng)過程
CPU響應(yīng)中斷過程將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器置1(阻斷后來同級(jí)或低級(jí)中斷)執(zhí)行硬件LCALL指令(PC入棧,中斷服務(wù)程序入口址送PC
)執(zhí)行中斷服務(wù)程序
編寫中斷服務(wù)程序注意中斷服務(wù)程序入口存放指令LJMP或AJMP現(xiàn)場(chǎng)保護(hù)與現(xiàn)場(chǎng)恢復(fù)2023/1/31266.2.3中斷返回中斷服務(wù)程序最后指令必須是RETI,其功能:將斷點(diǎn)從堆棧彈送PC,CPU從原斷點(diǎn)繼續(xù)執(zhí)行將相應(yīng)優(yōu)先級(jí)狀態(tài)觸發(fā)器清0,恢復(fù)原來工作狀態(tài)注意不能用RET代替RETI
中斷服務(wù)程序中PUSH和POP必須成對(duì)使用2023/1/31276.2.4中斷程序舉例【例6-1】單外部中斷源示例voidEx0()interrupt0{Flag=~Flag;}while(1){if(Flag==0)//左移{ScanNum=_crol_(ScanNum,1);P2=ScanNum;}else//右移{ScanNum=_cror_(ScanNum,1);P2=ScanNum;}DelayMs(500);}2023/1/3128【例6-2】如圖所示,編寫程序?qū)崿F(xiàn):系統(tǒng)上電后,數(shù)碼管顯示“P”。按下S0鍵則數(shù)碼管進(jìn)行加計(jì)數(shù),S1鍵則數(shù)碼管進(jìn)行減計(jì)數(shù)。計(jì)數(shù)值顯示在數(shù)碼管上。voidEx0Isr()interrupt0{if(Flag0==0)Flag0=1;Flag1=0; }voidEx1Isr()interrupt2{ if(Flag1==0)Flag1=1;Flag0=0; }
2023/1/31296.380C51單片機(jī)的定時(shí)/計(jì)數(shù)器結(jié)構(gòu)基本型:T0,定時(shí)、計(jì)數(shù)。T1,定時(shí)、計(jì)數(shù)、串口波特率發(fā)生器。增強(qiáng)型:增加了T2。見5.3.4節(jié)。6.3.1定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)和工作原理TH1、TL1TH0、TL0TCONTMOD2023/1/3130工作原理---實(shí)質(zhì)是16位加1計(jì)數(shù)器定時(shí)器模式時(shí),對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)。定時(shí)時(shí)間=計(jì)數(shù)值*機(jī)器周期計(jì)數(shù)器模式時(shí),是對(duì)外部脈沖計(jì)數(shù)。脈沖由T0(P3.4)或T1(P3.5)引腳輸入。
注意:(若計(jì)數(shù)值為N,計(jì)數(shù)初值為X)溢出信號(hào)使TF0或TF1置1,并發(fā)出中斷請(qǐng)求,16位時(shí)有:X=65536-N12MHz晶振時(shí),計(jì)數(shù)頻率低于0.5MHz
2023/1/3131控制寄存器TCONTFx:Tx溢出標(biāo)志位。響應(yīng)中斷后TFx有硬件自動(dòng)清0。用軟件設(shè)置TFx可產(chǎn)生同硬件置1或清0同樣的效果。TRx:Tx運(yùn)行控制位。置1時(shí)開始工作;清0時(shí)停止工作。TRx要由軟件置1或清0(即啟動(dòng)與停止要由軟件控制)。6.3.2定時(shí)/計(jì)數(shù)器的控制2023/1/3132工作方式寄存器TMODGATE:門控位。GATE=0時(shí),只要TRx為1,就可啟動(dòng)計(jì)數(shù)器工作;GATA=1時(shí),定時(shí)器的啟動(dòng)還要加上INTx引腳為高電平這一條件。
C/T:模式選擇位。清0為定時(shí)模式,置1為計(jì)數(shù)方式。M1M0:工作方式設(shè)置位。可設(shè)置四種工作方式(見下頁)。2023/1/3133門控位作用當(dāng)GATE=0時(shí)僅由TR0控制與門的開啟。與門輸出1時(shí),控制開關(guān)接通,計(jì)數(shù)開始;當(dāng)GATE=1時(shí)與門的開啟由INT0和TR0共同控制。這種方式可以用來測(cè)量INT0引腳上正脈沖的寬度。
2023/1/3134注意:TMOD不能進(jìn)行位尋址
定時(shí)器的四種工作方式主要特點(diǎn):方式0:13位定時(shí)器。TH0的8位+TL0的低5位方式1:16位定時(shí)器。TH0的8位+TL0的8位方式2:能重復(fù)置初始值的8位定時(shí)器。TL0和TH0必須賦相同的值。方式3:只適用于定時(shí)器0,T0被拆成兩個(gè)獨(dú)立的8位定時(shí)器TL0,TH0。其中:TL0與方式0、1相同,可定時(shí)或計(jì)數(shù)。用定時(shí)器T0的GATE、C/T、TR0、TF0、T0、和INT0控制。
TH0只可用作簡(jiǎn)單的內(nèi)部定時(shí)功能。占用T1的控制位TF1、TR1和INT1,啟動(dòng)關(guān)閉僅受TR1控制。注意:方式0的計(jì)數(shù)初值高8位和低5位確定麻煩
,實(shí)際應(yīng)用中常由16位的方式1取代。例如:設(shè)定時(shí)器T0為定時(shí)工作方式,要求用軟件啟動(dòng)定時(shí)器T0工作,按方式1工作;定時(shí)器T1為計(jì)數(shù)工作方式,要求軟件啟動(dòng),工作方式為方式2。則根據(jù)TMOD各位的定義可知,其控制字為:即控制字為61H,其指令形式為:
MOVTMOD,#61H格式:D7D6D5D4D3D2D1D0GATEC/TM1M0GATEC/TM1M001100001定時(shí)器的初始值的計(jì)算對(duì)于不同的工作方式,計(jì)數(shù)器位數(shù)不同,故最大計(jì)數(shù)值M也不同:
方式0:M=213=8192
方式1:M=216=65536
方式2:M=28=256
方式3:定時(shí)器0分為2個(gè)8位計(jì)數(shù)器,每個(gè)M均為256。因?yàn)槎〞r(shí)/計(jì)數(shù)器是作加1計(jì)數(shù),并在計(jì)滿溢出時(shí)產(chǎn)生中斷,因此初值X的計(jì)算如下:
X=M–計(jì)數(shù)值
計(jì)算出來的結(jié)果X轉(zhuǎn)換為16進(jìn)制數(shù)后分別寫入TL0(TL1)、TH0(TH1)。注意!方式0時(shí)初始值寫入時(shí),對(duì)于TL不用的高3位應(yīng)填入0!2023/1/3138C/T=1時(shí),則為計(jì)數(shù)模式,有:
X=213-N=8192-NC/T=0時(shí),則為定時(shí)模式,有:
X=213-N=8192-N,N=t/Tcy【例5-3】若計(jì)數(shù)個(gè)數(shù)N為2,求計(jì)數(shù)初值。公式法計(jì)算:X=8192-2=8190=1FFEH求補(bǔ)法計(jì)算:對(duì)0000000000010B取反加1為:
1111111111110B(1FFEH)初值計(jì)算:公式法
求補(bǔ)法:X=對(duì)N求補(bǔ)2023/1/31396.3.3定時(shí)/計(jì)數(shù)器的工作方式T0有方式0、1、2、3;T1有方式0、1、2。以T0為例說明。方式0:13位方式
2023/1/3140方式1:16位方式
X=216-N=65536-N計(jì)數(shù)范圍:1~65536
計(jì)數(shù)初值要分成2個(gè)字節(jié)分別送入TH0、TL02023/1/3141【例6-4】若要求定時(shí)器T0工作于方式1,定時(shí)時(shí)間為1ms,當(dāng)晶振為6MHz時(shí),求送入TH0和TL0的計(jì)數(shù)初值各為多少?應(yīng)怎樣送入TH0和TL0?由于晶振為6MHz,所以機(jī)器周期Tcy為2μS,因此:N=t/Tcy=1×10-3/2×10-6=500X=216-N=65536-500=65036=FE0CH也可以利用以下2條語句完成:
TH0=(65536-500)/256;商為計(jì)數(shù)初值的高字節(jié)
TL0=(65536-500)%256;余數(shù)為計(jì)數(shù)初值的低字節(jié)分別將FEH送入TH0中,0CH送入TL0中即可。2023/1/3142方式2:8位自動(dòng)重裝方式
X=28-N=256-N計(jì)數(shù)范圍:1~256
特別適合與脈沖信號(hào)發(fā)生器2023/1/3143方式3:(僅T0有此方式,T1的方式3將停止計(jì)數(shù))
TL0進(jìn)行8位定時(shí)/計(jì)數(shù)TH0進(jìn)行8位定時(shí)(T1方式2時(shí),可出借TR1、TF1)在單片機(jī)的串行應(yīng)用中,T1常作為串行口波特率發(fā)生器,此時(shí)可將T0設(shè)為方式3。用T1、工作方式0實(shí)現(xiàn)1秒延時(shí)函數(shù),晶振頻率為12MHz。解:方式0采用13位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:8192×1s=8.192ms,因此,定時(shí)時(shí)間不可能選擇50ms,可選擇定時(shí)時(shí)間為5ms,再循環(huán)200次。定時(shí)時(shí)間為5ms,則計(jì)數(shù)值為5ms/1s=5000,T1的初值為:
X=M計(jì)數(shù)值=81925000=3192=C78H=0110001111000B13位計(jì)數(shù)器中TL1的高3位未用,填寫0,TH1占高8位,所以,X的實(shí)際填寫值應(yīng)為:X=0110001100011000B=6318H舉例1用T1方式0實(shí)現(xiàn)1秒延時(shí)函數(shù)如下:voiddelay1s(){unsignedchari;TMOD=0x00; //置T1為工作方式0
for(i=0;i<0xc8;i++)
{
//設(shè)置200次循環(huán)次數(shù)
TH1=0x63;
//設(shè)置定時(shí)器初值TL1=0x18;TR1=1; //啟動(dòng)T1while(!TF1);//查詢計(jì)數(shù)是否溢出,即定時(shí)5ms時(shí)間到,TF1=1TF1=0;
//5ms定時(shí)時(shí)間到,將定時(shí)器溢出標(biāo)志位TF1清零}}舉例1用T1、工作方式2實(shí)現(xiàn)1秒延時(shí),晶振頻率為12MHz。解:因工作方式2是8位計(jì)數(shù)器,其最大定時(shí)時(shí)間為:256×1s=256s,為實(shí)現(xiàn)1秒延時(shí),可選擇定時(shí)時(shí)間為250s,再循環(huán)4000次。定時(shí)時(shí)間選定后,可確定計(jì)數(shù)值為250,則T1的初值為:
X=M計(jì)數(shù)值=256250=6=6H。采用T1方式2工作,因此,TMOD=0x20。舉例2用定時(shí)器工作方式2實(shí)現(xiàn)的1秒延時(shí)函數(shù)如下:voiddelay1s(){unsignedinti;
//i取值為0~4000,故不能定義成unsignedcharTMOD=0x20; //設(shè)置T1為方式2TH1=6; //設(shè)置定時(shí)器初值,放在for循環(huán)之外TL1=6;
for(i=0;i<4000;i++)
{
//設(shè)置4000次循環(huán)次數(shù)
TR1=1; //啟動(dòng)T1
while(!TF1);
//查詢是否溢出,即定時(shí)250s到,TF1=1
TF1=0; //250s定時(shí)到,將溢出標(biāo)志位TF1清零}}舉例22023/1/31486.3.4定時(shí)/計(jì)數(shù)器應(yīng)用舉例初始化程序應(yīng)完成:對(duì)TMOD賦值,以確定T0和T1的工作方式;求初值,并寫入TH0、TL0或TH1、TL1;中斷方式時(shí),要對(duì)IE賦值,開放中斷;使TR0或TR1置位,啟動(dòng)定時(shí)/計(jì)數(shù)器工作。2023/1/3149計(jì)數(shù)應(yīng)用【例6-3】有一包裝流水線,產(chǎn)品每計(jì)數(shù)24瓶時(shí)發(fā)出一個(gè)包裝控制信號(hào)。試編寫程序完成這一計(jì)數(shù)任務(wù)。用T0完成計(jì)數(shù),用P1.0發(fā)出控制信號(hào)。確定方式字:T0在計(jì)數(shù)的方式2時(shí):M1M0=10,GATE=0,C/T=1方式控制字為06H
求計(jì)數(shù)初值X:N=24X=256-24=232=E8H應(yīng)將E8H送入TH0和TL0中2023/1/3150while(1){if(Flag=
=1){Flag=0;P37=0;P0=SegCode[Counter];DelayMs(20);P37=1; }}主程序(部分)
中斷服務(wù)程序
voidC0Isr(
)interrupt1{Flag=1;Counter++;if(Counter=
=13)Counter=0;}2023/1/3151定時(shí)應(yīng)用定時(shí)時(shí)間較小時(shí)(小于70ms)。晶振為11.0592MHz時(shí),Tcy為1.085μS??芍苯硬捎梅绞?完成定時(shí)任務(wù)。
【例6-4】利用定時(shí)/計(jì)數(shù)器T0的方式1,產(chǎn)生10ms的定時(shí),并使P2.7引腳上輸出周期為20ms的方波,采用中斷方式,設(shè)系統(tǒng)的晶振頻率為11.0592MHz。確定方式字:T0在定時(shí)的方式1時(shí):M1M0=01,GATE=0,C/T=0方式控制字為01H
求計(jì)數(shù)初值X:Tcy為1.085μSN=10ms/1.085μS=9216X=65536-9216=DC00H應(yīng)將DC送TH0,00H送TL0
2023/1/3152voidmain(void){TMOD=0x01;TL0=0xDC;TH0=0x00;IE=0x82;TR0=1;while(1); }主程序
中斷服務(wù)程序
voidT0Isr()interrupt1{P27=~P27;TL0=0xDC;TH0=0x00;}2023/1/3153定時(shí)時(shí)間較大時(shí)(大于70ms)。實(shí)現(xiàn)方法:一是采用1個(gè)定時(shí)器定時(shí)一定的間隔(如20ms),然后用軟件進(jìn)行計(jì)數(shù);二是采用2個(gè)定時(shí)器級(jí)聯(lián),其中一個(gè)定時(shí)器用來產(chǎn)生周期信號(hào)(如20ms為周期),然后將該信號(hào)送入另一個(gè)計(jì)數(shù)器的外部脈沖輸入端進(jìn)行脈沖計(jì)數(shù)。
【例6-5】編寫程序,實(shí)現(xiàn)用定時(shí)/計(jì)數(shù)器T0定時(shí),使P2.7引腳輸出周期為1s的方波。設(shè)系統(tǒng)的晶振頻率為11.0592MHz。確定方式字:T0在定時(shí)的方式1時(shí):M1M0=01,GATE=0,C/T=0方式控制字為01H
求計(jì)數(shù)初值X:Tcy為1μSN=20ms/12/11.0592=18432X=65536-18432=B800H應(yīng)將B8送TH0,00H送TL0
采用定時(shí)20ms,然后再計(jì)數(shù)25次的方法實(shí)現(xiàn)2023/1/3154voidmain(void){TMOD=0x01; TL0=0x00;TH0=0xB8;IE=0x82;TR0=1;while(1); }voidT0Isr()interrupt1{staticucharCounter;Counter++;if(Counter==25){P27=~P27;Counter=0; } TL0=0x00;TH0=0xB8;}主程序
中斷服務(wù)程序
2023/1/3155門控位的應(yīng)用【例6-6】測(cè)量INT0引腳上出現(xiàn)的正脈沖寬度,并將結(jié)果(以機(jī)器周期的形式)存放在30H和31H兩個(gè)單元中。將T0設(shè)置為方式1的定時(shí)方式,且GATE=1,計(jì)數(shù)器初值為0,將TR0置1。INT0引腳上出現(xiàn)高電平時(shí),加1計(jì)數(shù)器開始對(duì)機(jī)器周期計(jì)數(shù)。INT0引腳上信號(hào)變?yōu)榈碗娖綍r(shí),停止計(jì)數(shù)然后讀出TH0、TL0的值
單定時(shí)器產(chǎn)生多定時(shí)間隔(略)2023/1/3156while(1){TMOD=0x09;TL0=0;TH0=0;while(P32);TR0=1;while(!P32);while(P32);TR0=0;Low=TL0;High=TH0;}
主程序(部分)
6.480C52的定時(shí)/計(jì)數(shù)器T2T2矢量地址002BH;T2還
溫馨提示
- 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. 人人文庫(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代產(chǎn)品設(shè)計(jì)中的民族圖案與色彩研究
- 現(xiàn)代紋樣設(shè)計(jì)在商業(yè)品牌推廣中的應(yīng)用實(shí)踐
- 現(xiàn)代辦公環(huán)境下的AI餐廳服務(wù)應(yīng)用研究
- 現(xiàn)代物流行業(yè)的服務(wù)創(chuàng)新與升級(jí)
- 現(xiàn)代辦公環(huán)境下的報(bào)告制作技巧
- 2024年五年級(jí)語文上冊(cè) 第六單元 口語交際:父母之愛說課稿 新人教版
- Module7 Unit2 This little girl can't walk(Period 1) (說課稿) -2024-2025學(xué)年外研版(三起)英語五年級(jí)上冊(cè)
- 7《什么比獵豹的速度更快》說課稿-2024-2025學(xué)年五年級(jí)上冊(cè)語文統(tǒng)編版001
- 13美麗的冬天 說課稿-2024-2025學(xué)年道德與法治一年級(jí)上冊(cè)統(tǒng)編版
- 2024-2025學(xué)年高中化學(xué) 第1章 第4節(jié) 第2課時(shí) 有機(jī)物分子式與分子結(jié)構(gòu)的確定說課稿 新人教版選修5
- 2025屆河北衡水?dāng)?shù)學(xué)高三第一學(xué)期期末統(tǒng)考試題含解析
- 2024年山東省青島市普通高中自主招生物理試卷(含解析)
- 2024信息技術(shù)數(shù)字孿生能力成熟度模型
- 交通銀行股份有限公司操作風(fēng)險(xiǎn)管理政策
- 提高數(shù)學(xué)教師命題能力培訓(xùn)
- 數(shù)字證書使用承諾函
- 獵聘網(wǎng)在線人才測(cè)評(píng)題庫(kù)
- 《社區(qū)康復(fù)》課件-第八章 視力障礙患者的社區(qū)康復(fù)實(shí)踐
- 透析患者的血糖管理
- 瀝青拌合站講義課件
- 《逆向建模與產(chǎn)品創(chuàng)新設(shè)計(jì)》課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論