久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16204|回復: 0
收起左側

中斷的相關理解及使用詳解

[復制鏈接]
ID:94349 發表于 2015-11-10 02:03 | 顯示全部樓層 |閱讀模式
所謂的中斷就是:
做事:
在做A事情的時候,被打斷去做B事情,回來后再返回繼續做A事情。
程序:
在執行A程序的時候,打斷轉而執行B程序,完成后B程序后繼續返回執行A程序。

簡而言之,如下:


52單片機一共有6個中斷源,他們的符號、名稱及產生的條件分別解釋如下:


6個中斷源中,其默認的中斷級別如下:


中斷允許寄存器_IE

EA=1;開全局中斷
ET2=1;打開T2中斷(僅52有T2中斷)
ES=1;打開串行口中斷
ET1=1;打開T1中斷

EX1=1;打開外部中斷1中斷
EX0=1;打開外部中斷0中斷

中斷優先級寄存器_IP

PS=1;串行口中斷定義為高優先級
PT1=1;定時器/計數器1中斷定義為高優先級
PX1=1;外部中斷1中斷定義為高優先級
PT0=1;定時器/計數器0定義為高優先級中斷
PX0=1;外部中斷0中斷定義為高優先級
注意:當以上值為零時,則自然被定義為低優先級中斷。

定時器/計數器工作方式寄存器_TMOD

GATE:門控位
C/T:模式選擇,計數器方式:C/T=1;定時器模式:C/T=0
M0M1:工作方式選擇
每個定時器/計數器均有4種工作方式,其主要有M0M1確定:



定時器/計數器控制寄存器_TCON

TF1:定時器1溢出標志位
當定時器1計數滿時,有硬件置位,并申請中斷,進入中斷后,由硬件自動清零。
備注:使用定時器中斷,改為無需人工操作,如使用軟件查詢的時候,查詢到改位為1,徐軟件清零。
TR1=1;啟動定時器1
TF0;定時器0溢出標志,同TF1。
TR0=1;啟動定時器0
IE1;IT1=0時,電平觸發,INT1腳為底時置1。IT1=1時,跳變沿觸發,第一個機器周期采樣INT1為低IE置1
IT1=0;電平觸發方式,引腳INTI1上低電平有效
IT1=1;跳變沿觸發方式,引腳INTI1上的電平從高到低的負跳變沿有效

IE0;外部中斷0請求標志,同IE1
IT0:外部中斷0觸發方式選擇位同IT1。

通常定時器初始化過程如下:
對TMOD賦值,以確定T0和T1的工作方式
計算初值,并將初值寫入TH0、TL0和TH1、TL1
中斷方式時,則對IE賦值,開放中斷
使TR0或者TR1置位,啟動定時器/計數器定時或者計數

程序對應如下:
//定時器0工作方式1
TMOD=0X01;            //定時器0工作方式1(M1M0為01)
TH0=(65536-45872)/256;   //裝初值,11.0592MHz晶振定時50ms,數為45872
TL0=(65536-45872)%6;
EA=1;                //開總中斷
ET0=1;               //開定時器0中斷
TR0=1;               //啟動定時器0
while(1){};            //程序停止在此處等待中斷發生

//定時器0工作方式0
TMOD=0X00;            //定時器0工作方式0(M1M0為00)
TH0=(8192-4607)/32;   //裝初值
TL0=(8192-4607)2;
EA=1;                //開總中斷
ET0=1;               //開定時器0中斷
TR0=1;               //啟動定時器0
while(1){};            //程序停止在此處等待中斷發生
備注:(8192-4607)/32  對32求模是因為定時器方式0為13位計數器,
計數時只用了TL0的低五位。
五位最多裝在32個數,再加1便會進位。與16為計數器裝在256個數不同。因此此處對32求模。

//定時器0工作方式2
TMOD=0X02;            //定時器0工作方式0(M1M0為02)
TH0=6;   //裝初值
TL0=6;
EA=1;                //開總中斷
ET0=1;               //開定時器0中斷
TR0=1;               //啟動定時器0
while(1){};            //程序停止在此處等待中斷發生

//定時器0工作方式3
TMOD=0X03;            //定時器0工作方式0(M1M0為03)
TH0=6;   //裝初值
TL0=6;
EA=1;                //開總中斷
ET0=1;               //開定時器0中斷
ET1=1;               //開定時器1中斷
TR0=1;               //啟動定時器0
TR1=1;               //啟動定時器1
while(1){};            //程序停止在此處等待中斷發生
注:TL0占用定時器T1的中斷請求標志,因此為了避免沖突,設計程序時,T0的方式3不可用在有中斷的場合。

中斷方式的寫法:
void T0_time() interrupt 1  //定時器0中斷
{

}

void T1_time() interrupt 3 //定時器1中斷
{

}

定時器T2的介紹
其為16位的定時器計數器。
通過設置特殊功能寄存器T2CON的C/T2位,可以將其設定為定時器或者計數器
通過T2CON中的工作模式選擇位,可將定時器2設置為三種工作模式:捕獲、自動重新裝載、波特率發聲器。

捕獲:捕捉某一瞬間的值,通常用他來測量外部某個脈沖的寬度或周期,使用捕獲功能可以非常準確的測試脈沖寬度和周期。

定時器2控制器存器_T2CON

TF2;定時器2溢出時置位,必須由軟件清零,當RCLK=1或TCLK=1時,TF2 將不會置位。
EXF2;當EXEN2=1且T2EX(單片機P1.1口)的負跳變產生捕獲或重裝時,EXF2置位。
定時器2中斷使能時,EXF2=1將是CPU進入定時器2的中斷服務程序。
EXF2必須用軟件清零。在遞增(遞減)計數模式(DCEN=1),EXF2不會引起中斷
RCLK;接收時鐘標志
RCLK=1時,定時器2的溢出脈沖作為串行口模式1或模式3的接收時鐘,
RCLK=0時,將定時器1的溢出脈沖作為接收時鐘。

TCLK;發送時鐘標志
TCLK=1時,定時器2的溢出脈沖作為串行口模式1或模式3的發送時鐘,
TCLK=0時,將定時器1的溢出脈沖作為發送時鐘

EXEN2;定時器2外部使能標志
EXEN2=1且定時器2未作為串行口時鐘時,允許T2EX的負跳變產生捕獲獲重裝,
EXEN2=0時,T2EX的跳變對定時器2無效

TR2;置1啟動定時器,置零停止定時器2
C/T2;T2的定時器/計數器選擇位
C/T2=1,外部事件計數器(下降沿觸發)
C/T2=0,內部定時器

CP/RL2;捕獲重裝標志
CP/RL2=1且EXEN2=1,T2EX的負跳變產生捕獲
CP/RL2=0且EXEN2=0,定時器2溢出或T2EX的負跳變都可是定時器自動重裝

當RCLK=1或TCLK=1時,該位無效且定時器強制為溢出時自動重裝。

定時器/計數器2的三中工作模式


定時器2模式控制寄存器

設定自動重裝模式為遞增還是遞減。
T2OE;定時器2使能輸出位
DCEN;向下計數使能位

波特率發聲器_T2定時器
寄存器T2CON的TCLK和RCLK允許從定時器1或定時器2獲得串行口接收和發送的波特率
TCLK=0,定時器1作為串行口發送波特率發生器
TCLK=1,定時器2作為串行口發送波特率發生器


除了波特率發聲器模式,T2CON不包含TR2位的設置,TR2為需要單獨設置來啟動定時器。

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 99国产精品一区二区三区 | 美女亚洲一区 | 成人免费视频一区二区 | 久久成人18免费网站 | 久久国产激情视频 | 国产在线二区 | 欧美激情一区二区三级高清视频 | 成人区一区二区三区 | 日韩精品一区二区三区在线观看 | 日韩欧美精品在线 | 天天躁日日躁狠狠的躁天龙影院 | 狠狠综合网 | 国产一区二区不卡 | 欧美精品日韩精品国产精品 | 欧美日韩专区 | 国产精品免费一区二区三区四区 | 国产精品精品视频一区二区三区 | 日韩精品专区在线影院重磅 | 黄色大片在线播放 | 日本三级电影在线免费观看 | 久久久精品一区二区 | 精品国产一区探花在线观看 | h片在线免费观看 | 韩国av一区二区 | 久草福利 | 日韩午夜网站 | 91精品一区二区三区久久久久 | 91小视频 | 亚洲v日韩v综合v精品v | 国产91在线 | 中日 | 激情小视频| 亚欧洲精品在线视频免费观看 | 精品不卡| 欧美日韩国产在线观看 | 一区二区视频 | 午夜播放器在线观看 | 大香网伊人 | 性高湖久久久久久久久aaaaa | 中文字幕亚洲国产 | 欧美日韩电影一区二区 | 日韩在线观看 |