51單片機中斷/定時器/計數(shù)器

89C51/52的中斷系統(tǒng)有5個中斷源 ,2個優(yōu)先級,可實現(xiàn)二級中斷嵌套 。

image.png

1、(P3.2)可由IT0(TCON.0)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.2引腳上出現(xiàn)有效的中斷信號時,中斷標志IE0(TCON.1)置1,向CPU申請中斷。

2、(P3.3)可由IT1(TCON.2)選擇其為低電平有效還是下降沿有效。當CPU檢測到P3.3引腳上出現(xiàn)有效的中斷信號時,中斷標志IE1(TCON.3)置1,向CPU申請中斷。

3、TF0(TCON.5),片內(nèi)定時/計數(shù)器T0溢出中斷請求標志。當定時/計數(shù)器T0發(fā)生溢出時,置位TF0,并向CPU申請中斷。

4、TF1(TCON.7),片內(nèi)定時/計數(shù)器T1溢出中斷請求標志。當定時/計數(shù)器T1發(fā)生溢出時,置位TF1,并向CPU申請中斷。

5、RI(SCON.0)或TI(SCON.1),串行口中斷請求標志。當串行口接收完一幀串行數(shù)據(jù)時置位RI或當串行口發(fā)送完一幀串行數(shù)據(jù)時置位TI,向CPU申請中斷。

IE寄存器:
中斷允許控制寄存器分為兩層結(jié)構(gòu),第一級結(jié)構(gòu)為中斷允許總控制EA,只有當EA處于中斷允許狀態(tài),中斷源中斷請求才能夠得到允許;當EA處于不允許狀態(tài)時,無論IE寄存器中其他位處于什么狀態(tài),中斷源中斷請求都不會得到允許。第二級結(jié)構(gòu)為5個中斷允許控制位,分別對應(yīng)5個中斷源的中斷請求,當對應(yīng)中斷允許控制位為1時,中斷源中斷請求得到允許。


image.png

EX0:外部中斷0允許位。EX0=1,允許外部中斷0中斷;EX0=0,禁止外部中斷0中斷。當EX0=1( SETB EX0 )時,同時單片機P3.2引腳上出現(xiàn)中斷信號時,單片機中斷主程序的執(zhí)行而“飛”往中斷服務(wù)子程序,執(zhí)行完后通過中斷返回指令RET 動返回主程序。當EX0=0( CLR EX0)時,即使單片機P3.2引腳上出現(xiàn)中斷信程序也不會從主程序“飛” 出去執(zhí)行,因為此時單片機的CPU相當于被“堵上了耳朵”,根本接收不到P3.2引腳上的中斷信號,但是這并不表示這個信號不存在。如果單片機的CPU有空查一下TCON中的IE0位,若為1就說明有中斷信號出現(xiàn)過。
ET0:T0溢出中斷允許位。ET0=1,允許T0中斷;ET0=0,禁止T0中斷。
EX1:外部中斷1允許位。EX1=1,允許外部中斷1中斷;EX1=0,禁止外部中斷1中斷。當EX1=1( SETB EX1)時,并且外部P3.3引腳上出現(xiàn)中斷信號時,單片機CPU會中斷主程序而去執(zhí)行相應(yīng)的中斷服務(wù)子程序;當EX1=0( CLR EX1)時使外部P3.3引腳上即使出現(xiàn)中斷信號,單片機的CPU也不能中斷主程序轉(zhuǎn)而去行中斷服務(wù)子程序。 [3] 因此,可以這樣認為,EX0和EX1是決定CPU能否感覺到外部引腳P3.2P3.3上的中斷信號的控制位。
ET1:T1溢出中斷允許位。ET1=1,允許T1中斷;ET1=0,禁止T1中斷。
ES:串行中斷允許位。ES=1,允許串行口中斷;ES=0,禁止串行口中斷。
EA:中斷總允許位。EA=1,CPU開放中斷;EA=0,CPU禁止所有的中斷請求??傇试SEA好比一個總開關(guān)。EA就相當于每家水管的總閘,如果總閘不開,各個龍頭即使開了也不會有水;反過來,如果總閘開了而各個分閘沒開也不會有水,所當我們想讓P3.2和P3.3引腳上的信號能夠中斷主程序則必須將EA位設(shè)置為0(CLR EA)。

TCON寄存器:


image.png

各位的標識如下:
TF1:定時器1溢出標志位。當定時器1計滿溢出時,由硬件使TF1置1,并且申請中斷,進入中斷服務(wù)程序,有硬件自動清0 ,在查詢方式下用軟件清0.
TR1:定時器運行控制位,TR1置1是開啟定時器1,TR1置0時關(guān)閉定時器1.
TF0:定時器0溢出標志位。當定時器0計滿溢出時,由硬件使TF0置1,并且申請中斷,進入中斷服務(wù)程序,有硬件自動清0 ,在查詢方式下用軟件清0.
TR0:定時器運行控制位,TR0置1是開啟定時器0,TR0置0時關(guān)閉定時器0.
IE1:外部中斷1請求標志位。
IT1:外部中斷1觸發(fā)方式選擇位。當IT1置0時,為低電平觸發(fā);當IT1置1時,為下降沿觸發(fā)。
IE0:外部中斷0請求標志位。
IT0:外部中斷0觸發(fā)方式選擇位。當IT0置0時,為低電平觸發(fā);當IT0置1時,為下降沿觸發(fā)。

51單片機外部中斷響應(yīng)條件:
1、中斷源有中斷請求;
2、中斷源的中斷允許位為1(設(shè)置IE寄存器相關(guān)位);
3、CPU開中斷(設(shè)置IE寄存器開中斷,即EA=1)

以外部中斷0為例
主程序中需要有以下代碼:
EA=1;//打開總中斷開關(guān)
EX0=1;//開外部中斷0
IT0=0/1;//設(shè)置外部中斷的觸發(fā)方式

中斷服務(wù)函數(shù):

void   int0   ()  interrupt   0   
{
    do anything that you want
}

定時器/計數(shù)器

CPU時序的有關(guān)知識:
振蕩周期:為單片機提供定時信號的振蕩源的周期(晶振周期或外加振蕩周期)
狀態(tài)周期:2個振蕩周期為1個狀態(tài)周期,用S表示。
機器周期:1個機器周期含6個狀態(tài)周期,12個振蕩周期。
指令周期:完成1條指令所占用的全部時間,它以機器周期為單位。

定時器的其他知識點:
1、51單片機有兩組定時器/計數(shù)器,因為既可以定時,又可以計數(shù),故稱之為定時器/計數(shù)器。
2、定時器/計數(shù)器和單片機的CPU是相互獨立的。定時器/計數(shù)器工作的過程是自動完成的,不需要CPU的參與。
3、51單片機中的定時器/計數(shù)器是根據(jù)機器內(nèi)部的時鐘或者是外部的脈沖信號對寄存器中的數(shù)據(jù)加1。
4、有了定時器/計數(shù)器之后,可以增加單片機的效率,一些簡單的重復加1的工作可以交給定時器/計數(shù)器處理。CPU轉(zhuǎn)而處理一些復雜的事情。同時可以實現(xiàn)精確定時作用。

與定時器/計數(shù)器有關(guān)的寄存器:
1、TMOD寄存器
2、TCON寄存器
3、IE寄存器
4、THx/TL寄存器

工作方式寄存器TMOD:
工作方式寄存器TMOD用于設(shè)置定時/計數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:


image.png

M1M0:工作方式設(shè)置位。定時/計數(shù)器有四種工作方式。一般我們廳方式1和方式2:


image.png

C/T :定時/計數(shù)模式選擇位。C/T =0為定時模式;C/T =1為計數(shù)模式。
GATE:是門控位, GATE=0時,用于控制定時器的啟動是否受外部中斷源信號的影響。只要用軟件使TCON中的TR0或TR1為1,就可以啟動定時/計數(shù)器工作;GATA=1時,要用軟件使TR0或TR1為1,同時外部中斷引腳INT0/1也為高電平時,才能啟動定時/計數(shù)器工作。即此時定時器的啟動條件,加上了INT0/1引腳為高電平這一條件。

控制寄存器TCON:
TCON的低4位用于控制外部中斷,已在前面介紹。TCON的高4位用于控制定時/計數(shù)器的啟動和中斷申請。其格式如下:


image.png

TF1(TCON.7):T1溢出中斷請求標志位。T1計數(shù)溢出時由硬件自動置TF1為1。CPU響應(yīng)中斷后TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態(tài)。所以,TF1可用作查詢測試的標志。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。
TR1(TCON.6):T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數(shù)器的啟動與停止。
TF0(TCON.5):T0溢出中斷請求標志位,其功能與TF1類同。
TR0(TCON.4):T0運行控制位,其功能與TR1類同。

IE中斷開關(guān)寄存器:
用于開啟cpu中斷和對應(yīng)的中斷位。

THx和TL定時/計數(shù)存儲寄存器:
THx存儲高8位數(shù)據(jù),TLx存儲低8位數(shù)據(jù)。

定時器/計算器初值計數(shù)公式:
計數(shù)個數(shù)與計數(shù)初值的關(guān)系為:X=2^n-N
N是需要計數(shù)的值;n與設(shè)置定時器/計數(shù)器的工作方式有關(guān)(可能為8、13、16);X是需要設(shè)置在THx和TLx的初值。

使用定時器/計算器的初始化流程:
1、對TMOD賦值,以確定T0和T1的工作方式。
2、計算初值,并將其寫入TH0、TL0或TH1、TL1。
3、中斷方式選擇,則對EA賦值,開放定時器中斷。
4、使TR0或TR1置位,啟動定時/計數(shù)器定時或計數(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 單片機STC89C52學習——17 定時器和計數(shù)器 匯總:00 單片機STC89C52學習參考教程:普中科技 1 ...
    aaa小菜雞閱讀 1,382評論 0 0
  • 一、MCS-51單片機的定時器/計數(shù)器概念 單片機中的定時器和計數(shù)器其實是同一個物理的電子元件,只不過計數(shù)器記錄的...
    Dorajimmy閱讀 1,444評論 0 1
  • 51定時器 使用51定時/計數(shù)器步驟 啟動定時/計數(shù)器(通過TCON控制器) 設(shè)置定時/計數(shù)器工作模式(通過TMO...
    David_Rao閱讀 1,238評論 0 1
  • 表情是什么,我認為表情就是表現(xiàn)出來的情緒。表情可以傳達很多信息。高興了當然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,696評論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風險厭惡者,不喜歡去冒險,但是人生放棄了冒險,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 7,876評論 0 4

友情鏈接更多精彩內(nèi)容