<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è) > 嵌入式系統 > 設計應用 > 51單片機的邊沿觸發(fā)及電平觸發(fā)簡(jiǎn)介及測量

51單片機的邊沿觸發(fā)及電平觸發(fā)簡(jiǎn)介及測量

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

  的外部中斷有兩種觸發(fā)方式可選:電平觸發(fā)和邊沿觸發(fā)。選擇電平觸發(fā)時(shí),單片機在每個(gè)機器周期檢查中斷源口線(xiàn),檢測到低電平,即置位中斷請求標志,向CPU請求中斷。選擇邊沿觸發(fā)方式時(shí),單片機在上一個(gè)機器周期檢測到中斷源口線(xiàn)為高電平,下一個(gè)機器周期檢測到低電平,即置位中斷標志,請求中斷。

本文引用地址:http://dyxdggzs.com/article/201705/358762.htm

  這個(gè)原理很好理解。但應用時(shí)需要特別注意的幾點(diǎn):

  1)電平觸發(fā)方式時(shí),中斷標志寄存器不鎖存中斷請求信號。也就是說(shuō),單片機把每個(gè)機器周期的S5P2采樣到的外部中斷源口線(xiàn)的電平邏輯直接賦值到中斷標志寄存器。標志寄存器對于請求信號來(lái)說(shuō)是透明的。這樣當中斷請求被阻塞而沒(méi)有得到及時(shí)響應時(shí),將被丟失。換句話(huà)說(shuō),要使電平觸發(fā)的中斷被CPU響應并執行,必須保證外部中斷源口線(xiàn)的低電平維持到中斷被執行為止。因此當CPU正在執行同級中斷或更高級中斷期間,產(chǎn)生的外部中斷源(產(chǎn)生低電平)如果在該中斷執行完畢之前撤銷(xiāo)(變?yōu)楦唠娖?了,那么將得不到響應,就如同沒(méi)發(fā)生一樣。同樣,當CPU在執行不可被中斷的指令(如RETI)時(shí),產(chǎn)生的電平觸發(fā)中斷如果時(shí)間太短,也得不到執行。

  2)邊沿觸發(fā)方式時(shí),中斷標志寄存器鎖存了中斷請求。中斷口線(xiàn)上一個(gè)從高到低的跳變將記錄在標志寄存器中,直到CPU響應并轉向該中斷服務(wù)程序時(shí),由硬件自動(dòng)清除。因此當CPU正在執行同級中斷(甚至是外部中斷本身)或高級中斷時(shí),產(chǎn)生的外部中斷(負跳變)同樣將被記錄在中斷標志寄存器中。在該中斷退出后,將被響應執行。如果你不希望這樣,必須在中斷退出之前,手工清除外部中斷標志。

  3)中斷標志可以手工清除。一個(gè)中斷如果在沒(méi)有得到響應之前就已經(jīng)被手工清除,則該中斷將被CPU忽略。就如同沒(méi)有發(fā)生一樣。

  4)選擇電平觸發(fā)還是邊沿觸發(fā)方式應從系統使用外部中斷的目的上去考慮,而不是如許多資料上說(shuō)的根據中斷源信號的特性來(lái)取舍。比如,有的書(shū)上說(shuō)(《Keil C51使用技巧及實(shí)戰》),就有類(lèi)似的觀(guān)點(diǎn)。

  MCS51 單片機系列屬于8位單片機,它是Intel公司繼MCS48系列的成功設計之后,于1980年推出的產(chǎn)品。由于MCS51系列具有很強的片內功能和指令系統,因而使單片機的應用發(fā)生了一個(gè)飛躍,這個(gè)系列的產(chǎn)品也很快成為世界上第二代的標準控制器。51系列單片機有5個(gè)中斷源,其中有2個(gè)是外部輸入中斷源 INT0和INT1??捎芍袛嗫刂萍拇嫫鱐CON的IT1(TCON.2)和IT0(TCON.1)分別控制外部輸入中斷1和中斷0的中斷觸發(fā)方式。若為 0,則外部輸入中斷控制為電平觸發(fā)方式;若為1,則控制為邊沿觸發(fā)方式。這里是下降沿觸發(fā)中斷。

  1 問(wèn)題的引出

  幾乎國內所有的單片機資料對單片機邊沿觸發(fā)中斷的響應時(shí)刻方面的定義都是不明確的或者是錯誤的。例如文獻[1]中關(guān)于邊沿觸發(fā)中斷響應時(shí)刻的描述為“對于脈沖觸發(fā)方式(即邊沿觸發(fā)方式)要檢測兩次電平,若前一次為高電平,后一次為低電平,則表示檢測到了負跳變的有效中斷請求信號”,但實(shí)際情況卻并非如此。

  我們知道,單片機外部輸入的中斷觸發(fā)電平是TTL電平。對于TTL電平,TTL邏輯門(mén)輸出高電平的允許范圍為

  2.4~5 V,其標稱(chēng)值為3.6 V;輸出低電平的允許范圍為0~0.7 V,其標稱(chēng)值為0.3 V[2],在0.7 V與2.4 V之間的是非高非低的中間電平。

  這樣,在實(shí)際應用中,假設單片機外部中斷引腳INT0輸入一路由+5 V下降到0 V的下降沿信號,單片機在某個(gè)時(shí)鐘周期采樣INT0引腳得到2.4 V的高電平;而在下一個(gè)時(shí)鐘周期到來(lái)進(jìn)行采樣時(shí),由于實(shí)際的外部輸入中斷觸發(fā)信號由高電平變?yōu)榈碗娖酵枰欢ǖ臅r(shí)間,因此,檢測到的可能并非真正的低電平(小于0.7 V),而是處于低電平與高電平之間的某一中間電平,即0.7~2.4 V的某一電平。對于這種情況,單片機是否會(huì )依然置位中斷觸發(fā)標志從而引發(fā)中斷呢?關(guān)于這一點(diǎn),國內的絕大部分教材以及單片機生產(chǎn)商提供的器件資料都沒(méi)有給予準確的定義,但在實(shí)際應用中這種情況確實(shí)會(huì )碰到。

  以美國Analog公司生產(chǎn)的運算放大器芯片AD708為例,其轉換速率(slew rate)為0.3 V/μs,在由AD708芯片組成的比較器電路中,其輸出方波的下降沿由2.4 V下降到0.7 V,所需時(shí)間約為: (2.4 V-0.7 V)/0.3V·μs-1=4.67 μs。即需要約 4.67 μs的過(guò)渡時(shí)間,下降沿才真正地由高電平下降為低電平,在實(shí)際應用電路中,這個(gè)下降時(shí)間往往可達10 μs以上。對于精密的測量系統,這么長(cháng)的不確定時(shí)間是無(wú)法接受的,因此,有必要對單片機邊沿中斷觸發(fā)時(shí)刻進(jìn)行精確的測定。



關(guān)鍵詞: 51單片機

評論


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