<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 中斷的原理和使用心得(一)

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

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

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

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

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

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

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

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


          關(guān)鍵詞: 中斷原理使用心

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();