新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR,51單片機IO結構

        AVR,51單片機IO結構

        作者: 時間:2013-02-27 來源:網絡 收藏
        AVR,51單片機IO結構

        的真正雙向就復雜多了,單是控制端口的寄存器也有4個 PORTx.DDRx,PINx,SFIOR(PUD位),不過功能也強勁多了

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

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

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

        所有的端口引腳都具有與電壓無關的上拉電阻。

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

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

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

        數據寄存器 – PORTx

        數據方向寄存器 – DDRx

        端口輸入引腳 – PINx。

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

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

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

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

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

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

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

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

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

        不論如何配置DDxn,都可以通過讀取PINxn 寄存器來獲得引腳電平

        PINxn寄存器的各個位與其前面的鎖存器組成了一個同步器。

        這樣就可以避免在內部時鐘狀態發生改變的短時間范圍內由于引腳電平變化而造成的信號不穩定。

        其缺點是引入了延遲。

        手機電池相關文章:手機電池修復


        51單片機相關文章:51單片機教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        上拉電阻相關文章:上拉電阻原理


        關鍵詞: AVR 51單片機 IO結構

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 安顺市| 中宁县| 宁都县| 松江区| 北流市| 定边县| 浑源县| 红桥区| 赤城县| 梁河县| 潮州市| 昌图县| 曲沃县| 玉田县| 思南县| 高州市| 赣州市| 龙泉市| 囊谦县| 唐河县| 区。| 瑞金市| 祁连县| 扬州市| 资源县| 玉田县| 长春市| 嵊泗县| 明溪县| 天峨县| 绿春县| 华阴市| 大关县| 红原县| 定结县| 巫山县| 崇明县| 交城县| 开远市| 江门市| 盐城市|