51內核的單片機有個比較惱人的特性就是復位期間,IO口呈高電平狀態(tài),萬一IO口控制的設備是使用高電平觸發(fā)的話,在復位的瞬間會造成設備觸發(fā)。
總結一下接觸過的解決方法:
1、把MCU換成別的體系的,譬如AVR、PIC等,這些單片機復位時IO口呈浮空高阻狀態(tài),不會造成觸發(fā)。
2、使用反相驅動,MCU輸出低電平反相成高電平再去控制設備。復位時的高電平反相后變成低電平,不會觸發(fā)。這是比較常用的方法,穩(wěn)定,但布線復雜了不少。
3、使用光耦隔離。光耦隔離后MCU也是輸出低電平打開光耦再驅動被控設備,復位時的高電平不會打開光耦,不會造成誤觸發(fā)。
4、使用多余的IO口鎖定,這種方法比較奇怪,在沒用的IO口里挑一個出來接到NPN管的基極,再把NPN管的發(fā)射極接到被控的IO口,復位時所有的IO口呈高電平,NPN管導通,把被控的IO口強行拉低,相當于把被控IO口的電平鎖定為低,避免觸發(fā)被控的設備。這種方法必須配合軟件,復位完畢后必須軟件把接NPN管基極的那根IO置低電平,釋放被控的IO口。這種方法比較少用,畢竟需要有多余的IO口,還必須加上三極管、電阻,布線復雜了不少,成本也增加不少。
5、使用濾波電容。在被控IO口對地之間接一uF級電容及K級電阻,類似緩沖作用。開機瞬間IO口通過電阻向電容充電,電平有一個逐漸上升的過程。只要電容及電阻的參數選擇得當,那么復位時由于緩沖作用IO口還沒來得及觸發(fā)設備時那么MCU已經復位完畢把電平拉低了,這樣也就避免了誤觸發(fā)。這種方法有一定限制,會造成設備的響應速度變慢,因此被控的IO口電平不能變化太快,否則由于電容的緩沖作用,設備無法有效控制。
-
AVR
+關注
關注
11文章
1122瀏覽量
78589 -
PIC
+關注
關注
8文章
507瀏覽量
87479 -
51單片機
+關注
關注
273文章
5697瀏覽量
123204
原文標題:總結51單片機避免復位觸發(fā)的幾種方法
文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論