久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 單片機學習 > 單片機教程 > 51單(dan)片機中斷概念及操作詳(xiang)解

51單片機中(zhong)斷概念及操作(zuo)詳解 時間:2018-07-25      來源(yuan):未知

51單片機(ji)中(zhong)斷概念(nian)及(ji)操(cao)作詳解

中(zhong)(zhong)(zhong)(zhong)斷(duan)的(de)(de)(de)(de)意思就(jiu)是(shi)中(zhong)(zhong)(zhong)(zhong)止當前的(de)(de)(de)(de)工(gong)作,然后(hou)(hou)去執(zhi)行(xing)另外的(de)(de)(de)(de)任務,執(zhi)行(xing)完(wan)之后(hou)(hou)再回來執(zhi)行(xing)原來的(de)(de)(de)(de)任務。比如說你正在看(kan)書(shu),突然電話響了,你接(jie)(jie)完(wan)電話,又接(jie)(jie)著看(kan)書(shu),這(zhe)(zhe)就(jiu)是(shi)中(zhong)(zhong)(zhong)(zhong)斷(duan)。上面的(de)(de)(de)(de)程序就(jiu)是(shi)設置定(ding)時器中(zhong)(zhong)(zhong)(zhong)斷(duan)的(de)(de)(de)(de),定(ding)時器中(zhong)(zhong)(zhong)(zhong)斷(duan)是(shi)這(zhe)(zhe)樣的(de)(de)(de)(de),當定(ding)時器記(ji)滿65535之后(hou)(hou),就(jiu)會溢出,溢出就(jiu)會觸發中(zhong)(zhong)(zhong)(zhong)斷(duan),中(zhong)(zhong)(zhong)(zhong)斷(duan)完(wan)成后(hou)(hou)又接(jie)(jie)著計(ji)數,當然,如果你想每次定(ding)時時間一樣長(chang)的(de)(de)(de)(de)話,也(ye)要在中(zhong)(zhong)(zhong)(zhong)斷(duan)服務程序中(zhong)(zhong)(zhong)(zhong)重(zhong)新裝入初值。

一.中斷的概念

中斷發生

CPU在處理某一事件(jian)A時,發(fa)生(sheng)了另一事件(jian)B請(qing)求(qiu)CPU迅速(su)去(qu)處理

中(zhong)斷(duan)響應(ying)和中(zhong)斷(duan)服務

CPU暫時中斷當前的工作,轉去(qu)處理事(shi)件B

中斷返回

待CPU將事(shi)件B處理(li)(li)完(wan)畢(bi)后,再回到(dao)原來(lai)事(shi)件A被中斷(duan)的地方(fang)繼續處理(li)(li)事(shi)件A

這(zhe)一過程稱(cheng)為中斷

二.中斷過程(cheng)示(shi)意圖

三.MCS51中斷系統的(de)結構

MCS51的中斷(duan)系統有5個(ge)中斷(duan)源(yuan)(8052有 6個(ge)) ,2個(ge)優先級(ji),可實(shi)現二(er)級(ji)中斷(duan)嵌套

中斷編(bian)號(hao) 中斷名 中斷源(yuan)

0 外部中斷(duan)0 IE0(P3.2)

1 定時器0溢出(chu)中斷 TF0

2 外(wai)部中斷1 IE1(P3.3)

3 定時器1溢(yi)出中斷(duan) TF1

4 串行口中斷 RI

四.中斷(duan)寄存(cun)器

單片(pian)機有10個寄存器主要與中斷(duan)程序的書寫控制有關

中斷(duan)允許控制寄存器IE

定(ding)時器控(kong)制寄存器TCON

串口(kou)控制寄(ji)存器SCON

中斷優先控制寄存器IP

定時器工(gong)作方(fang)式控制寄存器TMOD

定(ding)時器(qi)初值賦予寄存器(qi)(TH0/TH1,TL0/TL1)

五.部分寄存(cun)器詳解

1.中斷允許控制(zhi)寄存器(qi)(IE)

EX0:外部中斷0允(yun)許位;

ET0:定時(shi)/計數器T0中斷允許位;

EX1:外部中斷1允(yun)許位;

ET1:定時/計數器T1中斷允許(xu)位;

ES :串(chuan)行口(kou)中(zhong)斷允許位;

EA :CPU中斷允許(xu)(總允許(xu))位。

2.定時器/計數(shu)器控(kong)制寄存(cun)器控(kong)制寄存(cun)器(TCON)

IT0:外部(bu)中斷0觸發方式控制位

當(dang)IT0=0時,為(wei)電(dian)(dian)平(ping)觸發方(fang)式(shi)(低(di)電(dian)(dian)平(ping)有效)

當(dang)IT0=1時,為邊沿(yan)觸發方式(下降沿(yan)有效)

IE0:外(wai)部中斷(duan)0中斷(duan)請求標志(zhi)位

IT1:外部(bu)中斷(duan)1觸發方式控(kong)制(zhi)位

IE1:外(wai)部中斷(duan)1中斷(duan)請求標志位

TF0:定時/計數器T0溢出中斷請(qing)求標志位

TF1:定時(shi)/計數(shu)器T1溢出中斷請求標志位

3.串行口控制寄存器(SCON)

RI:串行(xing)口(kou)接(jie)收(shou)中斷標志位(wei)。當允許串行(xing)口(kou)接(jie)收(shou)數據時,每(mei)接(jie)收(shou)完一個(ge)串行(xing)幀,由(you)硬(ying)件(jian)置位(wei)RI。注(zhu)意,RI必須(xu)由(you)軟件(jian)清除。

TI:串(chuan)(chuan)行口發送(song)中斷(duan)標志(zhi)位(wei)。當CPU將一個(ge)發送(song)數(shu)據寫入串(chuan)(chuan)行口發送(song)緩沖器時,就啟動(dong)了發送(song)過程。每發送(song)完一個(ge)串(chuan)(chuan)行幀,由硬件置位(wei)TI。CPU響應中斷(duan)時,不(bu)能(neng)自動(dong)清除TI,TI必須(xu)由軟(ruan)件清除。

4.中斷優先級控制寄存器(qi)(IP)

PX0:外部中(zhong)斷(duan)0優先(xian)級設(she)定位

PT0:定(ding)時(shi)/計(ji)數器T0優先級(ji)設定(ding)位

PX1:外部中斷(duan)0優先級設定位

PT1:定(ding)時/計數器T1優先級設定(ding)位

PS :串行口優先(xian)級設定位

PT2:定(ding)時/計數器T2優(you)先級設定(ding)位

六.中斷(duan)響應條件

中(zhong)斷(duan)源有中(zhong)斷(duan)請求

此中(zhong)斷源的中(zhong)斷允許位為1

開(kai)中(zhong)斷(即EA=1)

一.定時器相關(guan)寄存器

工作方式寄存器(TMOD)

該寄存(cun)器用于設置定(ding)時(shi)/計數器的(de)工作方式(shi),低四位用于定(ding)時(shi)器0,高四位用于定(ding)時(shi)器1。

GATE:門(men)控位。GATE=0時(shi),只要用軟件使(shi)TCON中的TR0或TR1為(wei)(wei)1,就可以(yi)啟動定時(shi)/計數(shu)器工作;GATA=1時(shi),要用軟件使(shi)TR0或TR1為(wei)(wei)1,同(tong)時(shi)外部(bu)中斷引腳(jiao)INT0/1也為(wei)(wei)高電平時(shi),才(cai)能啟動定時(shi)/計數(shu)器工作。即此時(shi)定時(shi)器的啟動條(tiao)件,加上了INT0/1引腳(jiao)為(wei)(wei)高電平這一條(tiao)件。

C/T:定(ding)時/計數(shu)模式(shi)選擇位。C/T=0為定(ding)時模式(shi);C/T=1為計數(shu)模式(shi)。

定時(shi)器(qi)/計(ji)數器(qi)控制(zhi)寄(ji)(ji)存(cun)器(qi)控制(zhi)寄(ji)(ji)存(cun)器(qi)(TCON)

該寄存器的(de)低4位用于控制(zhi)外部中(zhong)斷(duan)(duan),已在前面(mian)介紹,高4位用于控制(zhi)定時/計數器的(de)啟(qi)動(dong)和中(zhong)斷(duan)(duan)申請。

TF1:T1溢出(chu)中斷(duan)請求(qiu)標志位(wei)。T1計數溢出(chu)時由(you)硬(ying)件(jian)自動置(zhi)TF1為1。CPU響應中斷(duan)后(hou)TF1由(you)硬(ying)件(jian)自動清0。

TR1:T1運(yun)行(xing)控制位。TR1置(zhi)(zhi)1時,T1開始工作(zuo);TR1置(zhi)(zhi)0時,T1停止工作(zuo)。TR1由軟件(jian)置(zhi)(zhi)1或清0。所(suo)以(yi),用軟件(jian)可控制定(ding)時/計(ji)數器的啟動與停止。

TF0:T0溢出中斷請求標志位,其功能與TF1類同。

TR0:T0運行控制位,其功能與TR1類同。

中(zhong)斷(duan)允許控制寄存器(IE)

ET0:定時/計數器(qi)T0中斷允許位;

ET1:定時/計數(shu)器T1中(zhong)斷允許(xu)位;

EA :CPU中斷(duan)允(yun)許(總(zong)允(yun)許)位(wei)。

二(er).定時器溢出中斷的處(chu)理過(guo)程

1、設置定(ding)時器工(gong)作方(fang)式

2、為(wei)定時器裝入(ru)初值

3、定時器中斷允許位(wei)置為1

4、開總(zong)中斷

5、開定時器,等(deng)待產生溢出(chu)中(zhong)斷請(qing)求

三.實現簡單時鐘

說明:

1.使用動態數(shu)碼管顯示

2.選擇工(gong)作方式1,以16位(wei)的(de)定時(shi)器0進行工(gong)作,即TMOD=0x01,中斷編號為1;

3.定時(shi)50ms,即每隔(ge)50ms產生一次中(zhong)斷:

TH0=(65536-50000)/256; //16位定(ding)時器的高8位

TL0=(65536-50000)%256; //16位定時器的(de)低8位

具體(ti)的時間(jian)與單片機的晶振有關,請了(le)解機器(qi)周(zhou)期(qi)、指令周(zhou)期(qi)、時鐘周(zhou)期(qi)等(deng)相關知識。

#include

#define uchar unsigned char

#define uint unsigned int

uchar hour,min,sec;

uchar code wei[8]= {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //共陰極數碼(ma)管位(wei)選編(bian)碼(ma)

uchar code duan[11]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x01}; //共(gong)陰極(ji)數碼(ma)管段(duan)選編碼(ma)

void delay(uint z)

{

uint i,j;

for(i=z;i>0;i--)

for(j=110;j>0;j--);

}

void timer0_init()

{

TMOD=0X01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

ET0=1;

TR0=1;

EA=1;

}

void main()

{

uchar i;

timer0_init();

while(1)

{

num[0]=duan[hour/10];

num[1]=duan[hour%10];

num[2]=0x40; //顯示一橫

num[3]=duan[min/10];

num[4]=duan[min%10];

num[5]=0x40; //顯示一橫(heng)

num[6]=duan[sec/10];

num[7]=duan[sec%10];

for(i=0; i<8; i++) //顯示部(bu)分

{

P0=wei[i]; //位選(xuan)

P1=num[i]; //段選

delay(2);

P1=0x00; //消(xiao)隱

}

}

/*啟動(dong)定(ding)時器后,沒次計數溢(yi)出就會進入中斷(duan)服務函數,重(zhong)新賦初值,再進行計數,來達到(dao)定(ding)時的效果*/

void timer0() interrupt 1 //定時(shi)器中斷服務(wu)函數

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t++;

if(hour==24)

hour=0;

if(min==60)

{

hour++;

min=0;

}

if(sec==60)

{

min++;

sec=0;

}

if(t==20)

{

sec++;

t=0;

}

}

上一篇:單片機AD轉換方法 為什么要AD轉換?

下一篇:單片機開關方式 控制開關電源三種方式

熱點文章推薦(jian)
華清學員(yuan)就(jiu)業榜單
高薪(xin)學員經驗分享(xiang)
熱點(dian)新聞推薦(jian)
前臺專線(xian):010-82525158 企業(ye)培訓洽(qia)談專線:010-82525379 院校(xiao)合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部