www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]51單片機中斷級別 中斷源 默認中斷級別 序號(C語言用)

51單片機中斷級別

中斷源

默認中斷級別

序號(C語言用)

INT0---外部中斷0

最高

0    

T0---定時器/計數(shù)器0中斷

2

1

INT1---外部中斷1

3

2

T1----定時器/計數(shù)器1中斷

4

3

TX/RX---串行口中斷

5

4

T2---定時器/計數(shù)器2中斷

最低

5

中斷允許寄存器IE

位序號

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

符號位

EA

-------

ET2

ES

ET1

EX1

ET0

EX0

EA---全局中允許位。

EA=1,打開全局中斷控制,在此條件下,由各個中斷控制位確定相應中斷的打開或關閉。

EA=0,關閉全部中斷。

-------,無效位。

ET2---定時器/計數(shù)器2中斷允許位。   EA總中斷開關,置1為開;

ET2=1,打開T2中斷。                    EX0為外部中斷0INT0)開關,……

ET2=0,關閉T2中斷。                    ET0為定時器/計數(shù)器0T0)開關,……      

ES---串行口中斷允許位。                   EX1為外部中斷1INT1)開關,……

ES=1,打開串行口中斷。                  ET1為定時器/計數(shù)器1T1)開關,……

ES=0,關閉串行口中斷。                  ES為串行口(TX/RX)中斷開關,……

ET1---定時器/計數(shù)器1中斷允許位。        ET2為定時器/計數(shù)器2T2)開關,……

ET1=1,打開T1中斷。

ET1=0,關閉T1中斷。

EX1---外部中斷1中斷允許位。

EX1=1,打開外部中斷1中斷。

EX1=0,關閉外部中斷1中斷。

ET0---定時器/計數(shù)器0中斷允許位。

ET0=1,打開T0中斷。

ET0=0,關閉T0中斷。

EX0---外部中斷0中斷允許位。

EX0=1,打開外部中斷0中斷。

EX0=0,關閉外部中斷0中斷。

中斷優(yōu)先級寄存器IP

位序號

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

位地址

---

---

---

PS

PT1

PX1

PT0

PX0

-------,無效位。

PS---串行口中斷優(yōu)先級控制位。

PS=1,串行口中斷定義為高優(yōu)先級中斷。

PS=0,串行口中斷定義為低優(yōu)先級中斷。

PT1---定時器/計數(shù)器1中斷優(yōu)先級控制位。

PT1=1,定時器/計數(shù)器1中斷定義為高優(yōu)先級中斷。

PT1=0,定時器/計數(shù)器1中斷定義為低優(yōu)先級中斷。

PX1---外部中斷1中斷優(yōu)先級控制位。

PX1=1,外部中斷1中斷定義為高優(yōu)先級中斷。

PX1=0,外部中斷1中斷定義為低優(yōu)先級中斷。

PT0---定時器/計數(shù)器0中斷優(yōu)先級控制位。

PT0=1,定時器/計數(shù)器0中斷定義為高優(yōu)先級中斷。

PT0=0,定時器/計數(shù)器0中斷定義為低優(yōu)先級中斷。

PX0---外部中斷0中斷優(yōu)先級控制位。

PX0=1,外部中斷0中斷定義為高優(yōu)先級中斷。

PX0=0,外部中斷0中斷定義為低優(yōu)先級中斷。

定時器/計數(shù)器工作模式寄存器TMOD

位序號

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

位符號

GATE

C/T

M1

M0

GATE

C/T

M1

M0

        |-----------------定時器1------------------------|--------------------定時器0----------------------|

GATE---門控制位。

GATE=0,定時器/計數(shù)器啟動與停止僅受TCON寄存器中TRX(X=0,1)來控制。

GATE=1,定時器計數(shù)器啟動與停止由TCON寄存器中TRX(X=0,1)和外部中斷引腳(INT0INT1)上的電平狀態(tài)來共同控制。

C/T---定時器和計數(shù)器模式選擇位。

C/T=1,為計數(shù)器模式;C/T=0,為定時器模式。

M1M0---工作模式選擇位。

M1

M0

工作模式

0

0

方式0,為13位定時器/計數(shù)器

0

1

方式1,為16位定時器/計數(shù)器

1

0

方式28位初值自動重裝的8位定時器/計數(shù)器

1

1

方式3,僅適用于T0,分成兩個8位計數(shù)器,T1停止工作

定時器/控制器控制寄存器TCON

位序號

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

符號位

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

TF1---定時器1溢出標志位。

當定時器1記滿溢出時,由硬件使TF11,并且申請中斷。進入中斷服務程序后,由硬件自動清0。需要注意的是,如果使用定時器中斷,那么該位完全不用人為去操作,但是如果使用軟件查詢方式的話,當查詢到該位置1后,就需要用軟件清0

TR1---定時器1運行控制位。

由軟件清0關閉定時器1。當GATE=1,且INIT為高電平時,TR11啟動定時器1;當GATE=0時,TR11啟動定時器1。

TF0---定時器0溢出標志,其功能及其操作方法同TF1。

TR0---定時器0運行控制位,其功能及操作方法同TR1。

IE1---外部中斷1請求標志。

IT1=0時,位電平觸發(fā)方式,每個機器周期的S5P2采樣INT1引腳,若NIT1腳為定電平,則置1,否則IE10。

IT1=1時,INT1為跳變沿觸發(fā)方式,當?shù)谝粋€及其機器周期采樣到INIT1為低電平時,則IE11。IE1=1,表示外部中斷1正向CPU中斷申請。當CPU響應中斷,轉向中斷服務程序時,該位由硬件清0。

IT1外部中斷1觸發(fā)方式選擇位。

IT1=0,為電平觸發(fā)方式,引腳INT1上低電平有效。

IT1=1,為跳變沿觸發(fā)方式,引腳INT1上的電平從高到低的負跳變有效。

IE0---外部中斷0請求標志,其功能及操作方法同IE1

IT0---外部中斷0觸發(fā)方式選擇位,其功能及操作方法同IT1。

從上面的知識點可知,每個定時器都有4種工作模式,可通過設置TMOD寄存器中的M1M0位來進行工作方式選擇。

方式1的計數(shù)位數(shù)是16位,對T0來說,由TL0寄存器作為低8TH0寄存器作為高8位,組成了16位加1計數(shù)器。

關于如何確定定時器T0的初值問題定時器一但啟動,它便在原來的數(shù)值上開始加1計數(shù),若在程序開始時,我們沒有設置TH0TL0,它們的默認值都是0,假設時鐘頻率為12MHz,12個時鐘周期為一個機器周期,那么此時機器周期為1us,記滿TH0TL0就需要216 -1個數(shù),再來一個脈沖計數(shù)器溢出,隨即向CPU申請中斷。因此溢出一次共需65536us,約等于65.6ms,如果我們要定時50ms的話,那么就需要先給TH0TL0裝一個初值,在這個初值的基礎上記50000個數(shù)后,定時器溢出,此時剛好就是50ms中斷一次,當需要定時1s時,我們寫程序時當產生2050ms的定時器中斷后便認為是1s,這樣便可精確控制定時時間啦。要計50000個數(shù)時,TH0TL0中應該裝入的總數(shù)是65536-50000=15536.,把15536256求模:15536/256=60裝入TH0中,把15536256求余:15536/256=176裝入TL0中。

以上就是定時器初值的計算法,總結后得出如下結論:當用定時器的方式1時,設機器周期為TCY,定時器產生一次中斷的時間為t,那么需要計數(shù)的個數(shù)為N=t/TCY ,裝入THXTLX中的數(shù)分別為:

THX=(65536-N)/256    ,      TLX=(65536-N)%256       <x01>

中斷服務程序的寫法

void 函數(shù)名()interrupt 中斷號 using 工作組

{

   中斷服務程序內容

}

在寫單片機的定時器程序時,在程序開始處需要對定時器及中斷寄存器做初始化設置,通常定時器初始化過程如下:

1)對TMOD賦值,以確定T0 T1的工作方式。

2)計算初值,并將初值寫入TH0、TL0TH1、TL1。

3)中斷方式時,則對IE賦值,開放中斷。

4)使TR0TR1置位,啟動定時器/計數(shù)器定時或計數(shù)。

例:利用定時器0工作方式1,實現(xiàn)一個發(fā)光管以1s亮滅閃爍。

程序代碼如下:

#include<reg52.h>

#define uchar unsigned char

#define uint  unsigned int

sbit led1=P1^0;

uchar num;

void main()

  TMOD=0x01;      //設置定時器0位工作模式1M1,M00,1

  TH0=(65536-45872)/256;  //裝初值11.0592M晶振定時50ms數(shù)為45872

  TL0=(65536-45872)%256;

  EA=1;    //開總中斷

  ET0=1;   //開定時器0中斷

  TR0=1;   //啟動定時器0

  while(1)

  {

     if(num==20)    //如果到了20次,說明1秒時間

 {

    led1=~led1;    //讓發(fā)光管狀態(tài)取反

num=0;

 }

  }

}

void T0_time()interrupt 1

{

   TH0=(65536-45872)/256;  //重新裝載初值

   TL0=(65536-45872)%256;

   num++;    

}

擴展閱讀:51單片機中斷系統(tǒng)

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

Holtek推出新一代無刷直流電機 (BLDC) 控制專用單片機 HT32F65233。采用 Arm? Cortex?-M0+ 低功耗內核, 具備 2.5 V~5.5 V 寬電壓操作。系統(tǒng)電壓為 5 V 時,可獲得更高的...

關鍵字: BLDC單片機 電機驅動 計數(shù)器

單片機定時器通過晶振頻率來產生精準的計數(shù)脈沖,從而實現(xiàn)微秒級別的時間控制。 單片機定時器依托于一個穩(wěn)定的計數(shù)器,該計數(shù)器與單片機上的晶振部件相連。晶振經過12分頻后,為單片機提供穩(wěn)定且精準的1MHZ脈沖。由于晶振的頻率極...

關鍵字: 單片機 定時器

采用51單片機最小開發(fā)板,由8位自制獨立按鍵控制。單片機芯片為STC89C52RC,晶振為@12.000 mhz。8X8LED點陣屏模塊由MAX7219驅動,MAX7219包含一個自動掃描電路。你只需要把要顯示的數(shù)據(jù)發(fā)送...

關鍵字: 51單片機 MAX7219 寄存器

編碼器?是一種傳感器,主要用于測量旋轉運動的角度、角速度和位移等參數(shù)。常見的編碼器類型包括增量式編碼器和絕對值編碼器,前者通過檢測脈沖的增加或減少來測量旋轉方向和距離,后者則直接輸出當前的絕對位置信息?。

關鍵字: 編碼器? 定時器

一款語音控制的番茄時間定時器,內置Seeed Studio XIAO ESP32S3感測和圓形顯示。用免提時間管理保持高效!

關鍵字: 定時器 ESP32S3 語音控制

你可能會想象他們使用先進的人工智能相機來計算訪客人數(shù),但實際上,一個簡單的基于傳感器的系統(tǒng)就能有效地完成這項工作!通過在入口和出口點放置紅外傳感器,這些系統(tǒng)檢測移動方向并保持準確計數(shù)。不需要花哨的技術。

關鍵字: Arduino IR傳感器 計數(shù)器

【2025年3月20日, 德國慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領域的半導體領導者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼: IFNNY)近日宣布,其旗下ModusToolboxTM開發(fā)平臺中的AIROC?...

關鍵字: MCU 物聯(lián)網(wǎng) 定時器

在現(xiàn)代嵌入式系統(tǒng)中,實時性保障是確保系統(tǒng)穩(wěn)定運行和高效處理任務的關鍵。特別是在涉及硬實時任務(如DMA傳輸)時,合理設計多級中斷系統(tǒng)和任務調度方案至關重要。本文將探討如何使用ARM Cortex-M的NVIC優(yōu)先級分組機...

關鍵字: 中斷系統(tǒng) 嵌入式系統(tǒng)

該項目利用OLED顯示器和兩個輸入開關,允許用戶增加屏幕上顯示的兩個數(shù)字(10和單位)。代碼由設置和循環(huán)函數(shù)組成,用于管理顯示和開關輸入。

關鍵字: OLED 顯示器 計數(shù)器

眾所周知,說到延時,很多人都會想到用軟件件來實現(xiàn),比如定時器之類的。今天就來說說用硬件來實現(xiàn)定時的方式,雖說沒有那么準,但是有些場合還是用得到的。

關鍵字: CD4060 定時器
關閉