標題: 51單片機的IO口操作基礎知識介紹 [打印本頁]
作者: hushao 時間: 2016-1-5 01:42
標題: 51單片機的IO口操作基礎知識介紹
以我們常用的STC單片機為例:STC單片機所有IO口均可由軟件配置成4種工作類型。4種類型分別為:準雙向口/弱上拉(標準8051輸出模式)、強推挽輸出/強上拉、僅為輸入(高阻)或開漏輸出功能。每個口有2個寄存器中的相應位控制每個引腳的工作類型。上電復位后的工作模式為準雙向/弱上拉模式。2V以上為高電平,0.8V以下為低電平,每個I/O口驅(qū)動能力可以達到20mA。
那么我們通過配置哪兩個寄存器來設定I/O口的工作模式呢:這兩個寄存器就是PxM1和PxM0,P0口對應的就是P0M1和P0M0,P1口對應的就是P0M1和P0M0,P2口對應的就是P0M1和P0M0,P3口對應的就是P0M1和P0M0。以P0口的設置為例:
如果有P0M1為10100000;P0M0為11000000,我們對照上表可以知道:P0.7管腳為開漏輸出;P0.6為強推挽輸出;P0.5為輸入(高阻);P0.4到P0.0為準雙向口。
單片機I/O控制電路典型接法:
1、典型三極管控制電路
如果用弱上拉控制,建議加上拉電阻R1(3.3K - 10K),如果不加上拉電阻R1,建議R2的阻值在15K以上,或用強推挽輸出。
2、典型發(fā)光二極管控制電路
采用準雙向口模式,用灌電流驅(qū)動發(fā)光二極管限流電阻盡量大于1K,最小不要小于470Ω。

推挽/強上拉口模式,用拉電流驅(qū)動發(fā)光二極管,限流電阻一般為1K。
3、混合電壓供電系統(tǒng)3V/5V器件I/O口互連
STC單片機如果供電是5V,當它連接3.3V器件時,為防止3.3V器件承受不了5V,可將相應的5V單片機I/O口先串一個330Ω的限流電阻到3.3V器件I/O口,程序初始化時將5V器件的I/O口設置成開漏配置,斷開內(nèi)部上拉電阻,相應的3.3V器件I/O口外部加10K上拉電阻到3.3V器件的VCC,這樣高電平是3.3V,低電平是0V,輸入輸出一切正常。
4、當I/O口作為PWM輸出I/O口時,需要設置成強推挽輸出/強上拉輸出,同時加輸出限流電阻10K即可。
作者: 單片機我來了 時間: 2018-4-1 08:19
P0口對應的就是P0M1和P0M0,P1口對應的就是P0M1和P0M0,P2口對應的就是P0M1和P0M0,P3口對應的就是P0M1和P0M0。是不是錯了?還有怎么設置啊,我在keil軟件里寫
P2M0 == 11111111;
P2M1 == 00000000;
或者輸入
P2M0 = 1;
P2M1 = 0;
都報錯說MAIN.C(28): error C202: 'P2M0': undefined identifier。(沒定義變量)
作者: 山水2000 時間: 2018-4-5 10:32
STC89C52RC I/O口有4種工作類型嗎,怎么配置不了,哪些型號有這功能。
作者: 留住這一刻2014 時間: 2018-10-3 19:51
山水2000 發(fā)表于 2018-4-5 10:32
STC89C52RC I/O口有4種工作類型嗎,怎么配置不了,哪些型號有這功能。
這個單片機只有準雙向口!你可以上STC官網(wǎng)查詢!
作者: 13872888583 時間: 2021-4-3 18:15
請問樓主,P0M0,P1M0,在表格里面怎么對應著看看,我在一本書看到樓主一樣的,也是沒有介紹清楚
作者: wangzhihuiwzh 時間: 2023-3-30 22:42
你說的是對的,P后面的數(shù)字是端口號,值的位數(shù)對應是端口的第幾個,我用stc8是可以的,用stc12C5A60S2就存在P0M0之類的沒定義的問題,我感覺是軟件用的reg52的問題,那里面可能沒定義,這個我也不清楚,希望有人解答
作者: ax6808 時間: 2023-9-17 11:32
還沒見過這么寫的:P2M0 == 11111111;P2M1 == 00000000;
應寫成十六進:P2M0 =0xff ; P2M1 =0x00;
報錯原因是你這樣寫編譯器只能把P2M0/P2M1當成變量了而你沒定義變量類型(而實際是寄存器).
作者: ax6808 時間: 2023-9-17 11:34
任何混合供電系統(tǒng)的I/O都要結(jié)合具體連接情況,嚴謹來說是"必要時加適當阻值的限流電阻,一般0-330Ω";注意是必要時!
0Ω就是可不接情況:接口已設開漏且距離很近無其他風險,是可不接。但萬一你調(diào)試時錯改成非開漏或其他特殊情況,就可能直接輸出5V到3V芯片去了,那不就危險了么?串了限流電阻就基本可以高枕無憂了;并非“應該是完全沒必要加限流電阻了嘛!”。
又如這個口是連接電纜到設備外部的,一般都會接個限流電阻,可能還需要穩(wěn)壓防靜電浪涌等等,才能防止外部引入不可預測的高壓、靜電、短路開路等等各種干擾的危害!
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |