在MSP430單片機(jī)的手冊中,對于端口復(fù)位后的狀態(tài),是這樣描述的:復(fù)位后,所有端口處于輸入狀態(tài)。
就這個(gè)問題,我們來簡單說一下單片機(jī)上電復(fù)位后端口的狀態(tài)問題。
首先,單片機(jī)上電后端口的狀態(tài)應(yīng)盡量避免處于輸出狀態(tài)(無論是輸出低還是輸出高)
為什么要這樣說呢?因?yàn)閱纹瑱C(jī)外圍電路的動(dòng)作就是靠單片機(jī)端口輸出低電平或者高電平來控制的。假如單片機(jī)端口一上電就處于輸出高或者低電平的狀態(tài),那么很容易出現(xiàn)誤動(dòng)作。例如,有一個(gè)端口是控制繼電器的,在正常狀態(tài)下,單片機(jī)端口輸出低電平使得繼電器吸合,輸出高電平斷開繼電器。平時(shí)我們要求繼電器處于斷開狀態(tài),那就要讓單片機(jī)的這個(gè)端口處于輸出高電平的狀態(tài),但是如果這個(gè)單片機(jī)的端口在上電復(fù)位后是處于輸出低電平的狀態(tài),這時(shí)候就會(huì)出現(xiàn)問題了,即使我們在程序中一開始就把這個(gè)端口置為輸出高電平,但是在復(fù)位期間,這個(gè)端口的狀態(tài)我們是無法控制的,于是就會(huì)出現(xiàn)一個(gè)瞬間的低電平,雖然這個(gè)低電平持續(xù)的時(shí)間很短,有時(shí)候不足以使繼電器吸合,當(dāng)繼電器仍會(huì)有輕微的吸合動(dòng)作。這顯然是我們不希望看到的。
有些單片機(jī)復(fù)位后端口默認(rèn)為輸入口的原因
前面我們說了,單片機(jī)上電后,如果端口默認(rèn)為輸出口,那么不管是輸出低電平還是高電平,都可能會(huì)引起誤動(dòng)作,甚至?xí)a(chǎn)生致命后果。
而假如端口上電后默認(rèn)為輸入口呢?我們知道,單片機(jī)的輸出控制操作一般都是根據(jù)輸入信號(hào)來實(shí)現(xiàn)的。這樣的話,就會(huì)好很多,我們可以根據(jù)輸入情況做處理,尤其是對于瞬間的輸入,我們可以通過軟件抗干擾技術(shù)來進(jìn)行過濾,這樣我們就能自己掌握主動(dòng),讓誤操作不會(huì)發(fā)生。
單片機(jī)復(fù)位后端口處于高阻態(tài)的原因
單片機(jī)復(fù)位后端口處于高阻態(tài)的原因無外乎降低功耗和安全性的原因。但是在程序中,對于單片機(jī)復(fù)位后的狀態(tài),也要有合理的分配,例如不能讓端口一直處于高阻態(tài),這樣容易引起電流變化(我們在設(shè)計(jì)中發(fā)現(xiàn),如果端口處于高阻態(tài),會(huì)導(dǎo)致靜態(tài)電流不穩(wěn)定),當(dāng)然端口狀態(tài)的設(shè)置要與硬件電路配合,對于那些不用的端口,建議設(shè)置為輸出。(MSP430數(shù)據(jù)手冊中說:不用的端口,建議設(shè)置為輸出,置于輸出高電平還是低電平,區(qū)別不大,因?yàn)檫@些端口沒有連接任何外部器件。)
電路中也一樣,要根據(jù)實(shí)際情況設(shè)置上拉或者下拉電阻等等。
-
繼電器
+關(guān)注
關(guān)注
133文章
5429瀏覽量
151031 -
電阻
+關(guān)注
關(guān)注
87文章
5613瀏覽量
174488 -
msp430
+關(guān)注
關(guān)注
181文章
2406瀏覽量
230758
原文標(biāo)題:單片機(jī)通電后所有接口都是高電平嗎
文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
為什么自己焊的電路板單片機(jī)P1.0腳通電后是低電平?
單片機(jī)主機(jī)發(fā)出一個(gè)3ms的高電平脈沖,從機(jī)是不是接收到的是3ms低電平的脈沖啊
Arduino到底是不是單片機(jī)?
單片機(jī)到底是不是嵌入式看完就知道
51單片機(jī)進(jìn)行高電平復(fù)位的方法說明

單片機(jī)到底是不是嵌入式?

單片機(jī)到底是不是嵌入式?

單片機(jī)到底是不是嵌入式?

深度:單片機(jī)到底是如何軟硬件結(jié)合的?

深度:單片機(jī)到底是如何軟硬件結(jié)合的?

單片機(jī)通電后所有接口都是高電平嗎?

評論