<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è) > 嵌入式系統 > 設計應用 > 中斷的原理和使用心得(一)

中斷的原理和使用心得(一)

作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò ) 收藏
又是很長(cháng)時(shí)間沒(méi)有寫(xiě)東西了,感覺(jué)時(shí)間長(cháng)不寫(xiě)人都變懶了。其實(shí),說(shuō)實(shí)話(huà):不是我不寫(xiě),我也在總結,單片機以前學(xué)過(guò)一次,都是這看一點(diǎn),那看一點(diǎn),沒(méi)有系統的學(xué)習?,F在工作閑的發(fā)慌,總感覺(jué)在浪費青春,才想起自己還有個(gè)愛(ài)好。就想把單片機系統的學(xué)一遍。所以,我現在也是一邊學(xué)習、一邊總結,可以說(shuō)我也是個(gè)十足的菜鳥(niǎo),還不如你呢!
很多單片機初學(xué)者都會(huì )對中斷、定時(shí)/計數器、串口有些恐懼。原因有:
1.沒(méi)學(xué)之前被老鳥(niǎo)嚇。到,很多學(xué)單片機的新手問(wèn)單片機難不難,就會(huì )有些老鳥(niǎo)故意嚇唬說(shuō)中斷、定時(shí)器很難等等。
2.很多新手聽(tīng)說(shuō)難學(xué),在編程時(shí)會(huì )極力避免使用中斷、定時(shí)器,以至于越不使用,越不會(huì )用,就越害怕使用。(其實(shí)我說(shuō)的只是我自己遇到的一些,不必究其細節,目的只有一個(gè),讓你在學(xué)習單片機之前放下恐懼)
本節先說(shuō)說(shuō)中斷的使用:
概念:中斷是為了使單片機具有對外部或內部隨機發(fā)生的事件實(shí)時(shí)處理而設置的,中斷功能的存在,很大程度上提高了單片機處理外部或內部事件的能力。(純屬抄襲,但就是這個(gè)理)
51單片機的中斷有:外部中斷INT0、外部中斷INT1、定時(shí)器T0、定時(shí)器T1、
串行口中斷TI、RI。
我就對其一一分析,可能分析的不到位,希望大家給予指點(diǎn),因為我也是才學(xué),也是自己總結的,不可能就正確。
1. 外部中斷INT0:對應單片機12引腳(P3^2口),只看名字就知道,處理外部事件的,因為它是外部中斷。它是如何處理外部事件呢?我用生活中實(shí)際的例子對應單片機的中斷操作說(shuō)說(shuō),可能不是很恰當,但是,目的是說(shuō)明問(wèn)題。
例:你正在看書(shū),突然手機鈴響了,你放下書(shū)去接電話(huà)。(這個(gè)例子都被一些出書(shū)的列舉的不愛(ài)用了,但我不只是就看書(shū),電話(huà)鈴響了,接電話(huà)就完了)
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitd1=P1^0;
voiddelay(uintz);
voidmain()
{
EA=1;//開(kāi)總中斷
EX0=1;//開(kāi)外部中斷0
IT0=1;//下降沿觸發(fā)
while(1)
{
}
voidexter0()interrupt0
{
d1=0;
}
我用例子對應程序來(lái)分析:
EA=1;就是你開(kāi)著(zhù)手機,如果你都不開(kāi)手機哪肯定不會(huì )影響到你看書(shū)了。
EX0=1;如果你手機是雙卡單待,相當于你SIM1卡開(kāi)著(zhù)。(即待機)
IT0=1;是下降沿觸發(fā),就相當短信提醒,短信響一下就停了,然后你就會(huì )去看短 信來(lái)處理短信內容,短信內容就相當于你中斷要做的事情。

voidexter0()interrupt0
{
d1=0;
}  //點(diǎn)亮小燈程序,這就是中斷內容,就相當于你看短信。

每一句分析完了,我用例子寫(xiě)個(gè)程序,更直白點(diǎn):

#include
#defineuintunsignedint
#defineucharunsignedchar
sbitd1=P1^0; //前面的就沒(méi)必要說(shuō)了吧!
voidmain()
{
打開(kāi)手機;
打開(kāi)手機SIM1卡:
短信提醒設為鈴聲,電話(huà)設為靜音;(注,電話(huà)設為靜音,意思是忽略電話(huà)的影響)
while(1)
{
你一直在看書(shū);
}
voidexter0()interrupt0   短信處理程序
{
查看短信;
}

中斷INT1:就不說(shuō)了,就是手機SIM1卡和SIM2卡的區別。

外部中斷INT0 不是對應著(zhù)12引腳嗎:1。你打開(kāi)中斷,2,設置觸發(fā)方式。剩下的事就是等待外部中斷的,只要12引腳有任何動(dòng)靜,CPU都會(huì )根據情況去處理的。
舉例說(shuō)明這句話(huà):1.如果你設置下降沿觸發(fā),則12引腳有個(gè)高電平到低電平的跳變,則中斷就會(huì )被執行。2.如果設置低電平觸發(fā),則12引腳有底電平中斷才會(huì )執行,沒(méi)有中斷不會(huì )執行。

先寫(xiě)到著(zhù),實(shí)在不知道這樣寫(xiě),會(huì )不會(huì )把人搞暈。。。。
我寫(xiě)的這些只是簡(jiǎn)單的應用,先不用去考慮什么中斷標志位什么的東西,因為那些動(dòng)作是由硬件自動(dòng)處理的,等到定時(shí)器,串口需要軟件處理時(shí),再詳細說(shuō)吧!


關(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>