<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 關(guān)于單片機中斷詳解

關(guān)于單片機中斷詳解

作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò ) 收藏



另外中斷的處理函數是這樣聲明的


void abc() interrupt X using n
{
處理語(yǔ)句;
}


我們看到,只是普通的函數 加上了 interrupt X using Y 了而已,X 的取值是有規定的:


如果是外部中斷0的中斷處理函數,則X為0 即void abc() interrupt 0 using n


若是定時(shí)器0的中斷處理函數,則 X 為1


若是外部中斷1的中斷處理函數,則 X 為2


若是定時(shí)器1的中斷處理函數,則 X 為3


若是串口中斷的中斷處理函數,則 X 為4

n 是中斷號,取值范圍為 0 - 31




關(guān)于中斷的學(xué)習,也到此告一段落了,當然還有一些問(wèn)題沒(méi)解決.......

Q1:為什么count==40的時(shí)候數碼管也不能閃爍???

本文引用地址:http://dyxdggzs.com/article/201612/324143.htm

/*
實(shí)現目的:
讓LED燈以1000ms(即1s)產(chǎn)生流水燈效果,并用定時(shí)器0讓數碼管以500ms從0~F閃爍
*/
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit d1=P2^1;
uchar weixuan=0x00;//位選全開(kāi)
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};//段選
uchar temp,count,num;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
{
for(y=0;y<113;y++)
{
}
}
}
void main()
{
count=0;
num=0;
P1=weixuan;
P0=table[num];
temp=0xfe;
P2=temp;
TMOD=0x01;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
delay(1000);
temp=_crol_(temp,1);
P2=temp;
/*
if(count==10)
{
count=0;
num++;
if(num==16)
{
num=0;
}
P0=table[num];
} */
}
}
void time0() interrupt 1
{
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
count++;
if(count==10)
{
count=0;
num++;
if(num==16)
{
num=0;
}
P0=table[num];
}
}


/*
PS:我們不能把數碼管500ms閃爍時(shí)間是否到達的語(yǔ)句寫(xiě)在主程序中,
若寫(xiě)在主程序中,有可能發(fā)生如下錯誤情況:當主程序在LED燈顯示語(yǔ)句當中時(shí),
此時(shí)恰好定時(shí)器0進(jìn)入中斷并且count剛好加到了10,當定時(shí)器0中斷再次進(jìn)入時(shí),
主程序仍未退出LED流水燈的顯示程序,那么此時(shí)count的值便變成了11,
這樣的話(huà),count==10這個(gè)點(diǎn)永遠檢測不到,因此數碼管閃爍失去了控制


在調試代碼當中發(fā)現delay(uint z)函數與中斷是同時(shí)執行的。。。
*/


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 單片機中斷詳

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>