1樓:
這個不是寫得很清楚了嘛。。。
如果給p1m1賦值0x03,給p1m0賦值0x05,那麼p1口各個引腳對應的模式就是:
p1m1 p1m0 io口模式
0 0 p1.7準雙向口
0 0 p1.6準雙向口
0 0 p1.5準雙向口
0 0 p1.4準雙向口
0 0 p1.3準雙向口
0 1 p1.2推輓輸出
1 0 p1.1高阻
1 1 p1.0開漏
2樓:匿名使用者
表已經標明瞭呀。
舉個例子吧
p1.0為推輓輸出,p1.1輸入,其餘為準雙向。則配置成:
p1m1=0000 0010b
p1m0=0000 0001b
這樣,p1m1.0=0,p1m0.0=1,推輓輸出p1m1.1=1,p1m0.1=0,輸入
3樓:小兆
根據你的外圍電路選擇一種模式,第一種和普通的51微控制器是一樣的,第二種的輸出電流比第一種大,後面的兩種圖中說的很明白了。
其實我說的這些也白說,最終還是要看你在引腳上接什麼東西才能選擇其中的一種模式。
關於sct15微控制器讀io口狀態的問題 5
4樓:匿名使用者
首先你的程式中while迴圈中的程式有明顯錯誤:
「p1=0x00;if(ds==1) //判斷ds(p1.0口)是否加高電平」
因為你前面定義埠:「sbit ds=p1^0; //脈衝訊號輸入口」 已經把p1.0定義為脈衝輸入,當「p1 =0x00」時,p1.
0至p1.7都變成低電平了, p1.0自然就被微控制器內部控制為0電平,你後面的「if(ds==1) //判斷ds」判斷語句已經沒有任何意義了。
微控制器不能檢測負電壓,只能檢測高低電平。
這個脈衝要從外部輸入,例如用按鍵代替。不可以用程式本身從內部施加控制,一旦內部控制成低電平,怎麼檢測都是低電平。
另外,stc15w4k48s4微控制器手冊提到的「要先鎖存為1」,指的就是這個道理,你應該這樣寫:「ds = 1;」,或者寫:「p1 = 0xff;」,然後判斷:
「if(ds==1)」,就是對外部脈衝的正確判斷。
如果只是外部輸入脈衝,內部程式不改變埠狀態,只寫一次「ds = 1 」就可以。
求教各位一個關於stc微控制器io口的問題
5樓:匿名使用者
什麼問題,stc微控制器io口可以配置, 傳統51微控制器輸出高電平帶負載能力很差,而stc微控制器可配置為推輓輸出,高電平驅動能力可達20ma
當然也可以配置為開漏輸出和 浮空輸入 及傳統弱上拉
怎樣使stc89c52的io口處於輸入狀態
6樓:0427付強
stc89c52微控制器的io口沒有方向暫存器,和標準的89c51一樣,p0口為漏極開路結構,p1、p2、p3口為內部上拉,由於內部上拉電流並不大,允許外部將其拉低,因此作為輸入狀態時,可以先將其賦值為高,然後外部下拉,再讀資料。
比如你想讓p1.0為1,那就直接賦值
p1=0x01;
而讀取p1.0狀態的時候,也是類似,無需其他操作:
if(p1==0x01)……
STC系列微控制器 定義IO口的工作狀態
當然可以啊,只要對應的位按照你的設定來寫暫存器,那相應的埠就是你需要的狀態了。 蘇蘇蘇蘇蘇小旭 如果給p1m1賦值0x03,給p1m0賦值0x05,那麼p1口各個引腳對應的模式就是 p1m1 p1m0 io口模式 0 0 p1.7準雙向口 0 0 p1.6準雙向口 0 0 p1.5準雙向口 0 0 ...
微控制器IO口是怎樣擴充套件的,微控制器擴充套件io口怎麼用
4終 1 首先可以使用38譯碼器進行拓展,三個引腳的二進位制輸入可變成8個引腳的分別輸出。2 然後附74hc138晶片真值表。3 還可以使用鎖存器拓展 74hc573,顧名思義,就是可以通過控制le引腳鎖住輸入io的點平,保持輸出不變,如下圖。4 還可以用序列輸入並行輸出的移位快取器74hc595進...
stc微控制器io口怎麼設定成強上拉
剛查了stc的文件,stc89c52rc是不能配置埠的,只有stc12 stc11等一些新的系列有這個功能。設定成推輓 強上拉,高電平輸出時,和接一個npn三極體的效果一樣的,輸出電流很大。低電平時,是灌入電流,不是輸出電流,這個是由你所接的裝置決定的。注意灌入和輸出電流都不要太大,否則會燒壞微控制...