-
1 # 海盜機器人
-
2 # 二進位制君
微控制器上電覆位狀態下,埠預設狀態一般為高阻態。這有兩個好處:
1、低功耗。無論埠處於高電平狀態還是低電平狀態都會產生電流,而高阻態下基本不會產生電流。所以,未用埠未做處理時,微控制器功耗也可儘可能的低。
2、安全。處於高阻態狀態,埠電平只由外部上下拉電阻決定。透過新增上下拉電阻,我們可以決定上電覆位時的電位狀態。即使不加上下拉電阻,微控制器處於高阻態,也不會對外部產生作用,從而不會產生意想不到的結果。
所以,在使用埠時,我們一般需要設定埠的模式(高阻態、數字埠)、埠方向(輸入、輸出)等。特別注意,對於一些真正開漏埠要實現推輓輸出,必須加上拉電阻。
-
3 # 老馬識途微控制器
微控制器上電後,埠的狀態一般為高阻態。
在《微控制器初級教程》這本書中是這樣說的:復位後,P0~P3口輸出高電平且使這些雙向口皆處於輸入狀態。
在MSP430微控制器的手冊中,對於埠復位後的狀態,是這樣描述的:復位後,所有埠處於輸入狀態。
就這個問題,我們來簡單說一下微控制器上電覆位後端口的狀態問題。
首先,微控制器上電後端口的狀態應儘量避免處於輸出狀態(無論是輸出低還是輸出高)為什麼要這樣說呢?因為微控制器外圍電路的動作就是靠微控制器埠輸出低電平或者高電平來控制的。假如微控制器埠一上電就處於輸出高或者低電平的狀態,那麼很容易出現誤動作。例如,有一個埠是控制繼電器的,在正常狀態下,微控制器埠輸出低電平使得繼電器吸合,輸出高電平斷開繼電器。平時我們要求繼電器處於斷開狀態,那就要讓微控制器的這個埠處於輸出高電平的狀態,但是如果這個微控制器的埠在上電覆位後是處於輸出低電平的狀態,這時候就會出現問題了,即使我們在程式中一開始就把這個埠置為輸出高電平,但是在復位期間,這個埠的狀態我們是無法控制的,於是就會出現一個瞬間的低電平,雖然這個低電平持續的時間很短,有時候不足以使繼電器吸合,當繼電器仍會有輕微的吸合動作。這顯然是我們不希望看到的。
借用馬潮老師在《AVR微控制器》這本書中一句話:這個誤動作可能很輕微,一般情況下也不會出現異常,但是如果這個埠接的是點燃炸藥的引信,而這個引信是非常靈敏的,那麼,結果會怎麼樣呢?
有些微控制器復位後端口預設為輸入口的原因前面我們說了,微控制器上電後,如果埠預設為輸出口,那麼不管是輸出低電平還是高電平,都可能會引起誤動作,甚至會產生致命後果。
而假如埠上電後預設為輸入口呢?我們知道,微控制器的輸出控制操作一般都是根據輸入訊號來實現的。這樣的話,就會好很多,我們可以根據輸入情況做處理,尤其是對於瞬間的輸入,我們可以透過軟體抗干擾技術來進行過濾,這樣我們就能自己掌握主動,讓誤操作不會發生。
微控制器復位後端口處於高阻態的原因微控制器復位後端口處於高阻態的原因無外乎降低功耗和安全性的原因。但是在程式中,對於微控制器復位後的狀態,也要有合理的分配,例如不能讓埠一直處於高阻態,這樣容易引起電流變化(我們在設計中發現,如果埠處於高阻態,會導致靜態電流不穩定),當然埠狀態的設定要與硬體電路配合,對於那些不用的埠,建議設定為輸出。(MSP430資料手冊中說:不用的埠,建議設定為輸出,置於輸出高電平還是低電平,區別不大,因為這些埠沒有連線任何外部器件。)
電路中也一樣,要根據實際情況設定上拉或者下拉電阻等等。
-
4 # 人生須自律
要看微控制器復位後IO口狀態,輸出口的話,是輸出1還是輸出0,輸入口的話,結構是上拉/下拉/高阻 對應1/0/不定態,查一下資料手冊都能查出來,最直觀的可以拿萬用表量。
回覆列表
微控制器復位以後一般預設輸出是高電平,IO口連線的外設一定要考慮復位以後的安全電平,避免因為復位造成系統出現安全隱患,例如:接的是繼電器控制電機的起停,這個設計時就要注意復位時不要出現誤動作,合理程式設計,外設介面該上拉上拉,該下拉下拉。