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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > AVR單片機IO口結(jié)構(gòu)和上拉和下拉電阻的作用

          AVR單片機IO口結(jié)構(gòu)和上拉和下拉電阻的作用

          作者: 時間:2018-11-21 來源:網(wǎng)絡 收藏

            五、單片機IO口(千呼萬喚始出來)

          本文引用地址:http://www.ex-cimer.com/article/201811/394646.htm

            端口引腳配置

            DDxn PORTxn PUD (in SFIOR) I/O 上拉電阻 說明

            0 0 X 輸入 No 高阻態(tài) (Hi-Z)

            0 1 0 輸入Yes 被外部電路拉低時將輸出電流

            0 1 1 輸入 No 高阻態(tài)(Hi-Z)

            1 0 X 輸出 No 輸出低電平 ( 漏電流)

            1 1 X 輸出 No 輸出高電平 ( 源電流)

            //////////////////////////////////////////

            輸入狀態(tài):

            一、上拉輸入狀態(tài):

            1、在IO口線懸空時讀入PINxn的值為1,狀態(tài)穩(wěn)定

            2、在IO口線外接輸入信號時讀入PINxn的值隨外部信號高低電平變化而變化

            二、高阻輸入狀態(tài):

            1、在IO口線懸空時讀入PINxn的值為0,且極易受到干撓,狀態(tài)很不穩(wěn)定

            2、外接上拉電阻,在IO口線外接輸入信號時讀入PINxn的值隨外部信號高低電平變化而變化(等同于內(nèi)接上拉電阻)

            輸出狀態(tài):

            在輸出狀態(tài)下,PORTxn=0則輸出為低電平,PORTxn=1則輸出為高電平

            1、輸出低電平,IO口線懸空時讀入PINxn的值為0

            2、輸出低電平,IO口線連接VCC或強上拉(指上拉阻值很小,相當于直接連接VCC,能提供足夠的上拉電流)時讀入PINxn的值為1

            3、輸出高電平,IO口線懸空時讀入PINxn的值為1

            4、輸出高電平,IO口線連接GND或強下拉(指下拉阻值很小,相當于直接連接GND,能吸收足夠的下拉電流)時讀入PINxn的值為0

            由于無論如何配置DDRxn,我們都可以讀取PINxn值,綜上所述,我們在讀取PINxn的值時,要想獲得正確且穩(wěn)定的值,

            應該選擇在內(nèi)部上拉輸入或高阻輸入且外部上拉這兩種方式中進行。當然在選擇內(nèi)部上拉輸入且外部也上拉的方式也是

            可以的,只是內(nèi)部和外部都加上拉(重復上拉)沒有什么意義。

            還有一點就是我們在讀取軟件賦予的電平時,讀PINxn值之前,要插入一個NOP。

            也就是說在IO口輸出邏輯電平之后再讀入這個輸出的值中間應插入一個NOP。

            的真正雙向IO結(jié)構(gòu)就復雜多了,單是控制端口的寄存器也有4個

            PORTx.DDRx,PINx,SFIOR(PUD位),不過功能也強勁多了

            作為通用數(shù)字I/O 使用時,所有 I/O 端口都具有真正的讀- 修改- 寫功能。

            這意味著用SBI 或CBI 指令改變某些管腳的方向( 或者是端口電平、禁止/ 使能上拉電阻) 時不會無意地改變其他管腳的方向( 或者是端口電平、禁止/ 使能上拉電阻)。

            輸出緩沖器具有對稱的驅(qū)動能力,可以輸出或吸收大電流,直接驅(qū)動LED。

            所有的端口引腳都具有與電壓無關(guān)的上拉電阻。

            并有保護二極管與VCC 和地相連。

            * (很多數(shù)字器件都有保護二極管,在低功耗應用時要考慮保護二極管的電流倒灌的影響)

            每個端口都有三個I/O 存儲器地址:

            數(shù)據(jù)寄存器 –PORTx

            數(shù)據(jù)方向寄存器–DDRx

            端口輸入引腳 –PINx。

            數(shù)據(jù)寄存器PORTx和數(shù)據(jù)方向寄存器DDRx為讀/ 寫寄存器,而端口輸入引腳PINx為只讀寄存器。

            但是需要特別注意的是,對PINx 寄存器某一位寫入邏輯"1“ 將造成數(shù)據(jù)寄存器相應位的數(shù)據(jù)發(fā)生"0“ 與“1“ 的交替變化。

            當寄存器MCUCR 的上拉禁止位PUD置位時所有端口引腳的上拉電阻都被禁止。

            在( 高阻態(tài)) 三態(tài)({DDxn, PORTxn} = 0b00) 輸出高電平({DDxn, PORTxn} = 0b11) 兩種狀態(tài)之間進行切換時,

            上拉電阻使能({DDxn, PORTxn} = 0b01) 或輸出低電平({DDxn,PORTxn} = 0b10) 這兩種模式必然會有一個發(fā)生。

            通常,上拉電阻使能是完全可以接受的,因為高阻環(huán)境不在意是強高電平輸出還是上拉輸出。

            如果使用情況不是這樣子,可以通過置位SFIOR 寄存器的PUD 來禁止所有端口的上拉電阻。

            在上拉輸入和輸出低電平之間切換也有同樣的問題。

            用戶必須選擇高阻態(tài)({DDxn,PORTxn} = 0b00) 或輸出高電平({DDxn, PORTxn} = 0b10) 作為中間步驟。


          上一頁 1 2 下一頁

          關(guān)鍵詞: AVR 下拉電阻

          評論


          相關(guān)推薦

          技術(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); })();