AVR單片機端口設置
DDRA=OXFF;
PORTA=OXFF;
與
PORTA=OXFF;
DDRA=OXFF;
是有區(qū)別的,這兩種順序對應IO口的電平變化是不一樣的。這個區(qū)別是在產品性能上面的,從表面上看不出明顯區(qū)別,沒有一定電路功底的可能不太好理解。DDRA、PORTA、在上電時默認都為0x00;如果你設方向DDRA后設PORTA的話,設定為輸出方向的全部輸出低電平、再設定電平,這個時候輸出高電平,那么在輸出高電平的這個IO口上面,就會有一個從低電平到高電平的瞬間變化,因為在變化期間IO口方向已經為輸出,所以這個信號是有一定能量的,會產生一定的干擾。如果先設電平再設方向的話:上面說的瞬間變化就不會發(fā)生了。
[單片機端口的設置]
ATMEGA8單片機I/O口初始化的問題
一般不用的IO口設置為輸入,打開上拉。
輸入,即使什么地方出錯,如短路等等,不會有電平沖突。如設置為輸出剛好又錯誤的接到了相反的電平上面,費浪幾十毫安電流是在所難免的,時間長了可能會損壞器件。
上拉是為了穩(wěn)定IO口電平,如只輸入不上拉,那么IO口是高阻狀態(tài),外部有干擾信號時它就很容易接收到這個信號,造成IO口內部電路高頻變化,同樣會費浪電流,更壞的是CPU很容易因此而受到干擾出現死機等。
在網上看到一些對電阻的上拉和下拉不太明白的,輸入端的上拉及下拉非常簡單但也非常重要。
上拉:通過一個電阻對電源相連。下拉:通過一個電阻到地。
上下拉一般有兩個用處:提高輸出信號的驅動能力、確定輸入信號的電平(防止干擾)。
用過8051的都知道CPU的I/O上通常接有排阻(上拉到5V),這里主要是為了提高輸出驅動能力的。因為8051的CPU不是標準的I/O口,輸出為低電平時可以吸收均20mA的電流,但輸出為高的時候是通過內部一個很大的電阻上拉的,輸出高電平時驅動能力很差,所以就通過外部上拉來提高電平輸出驅動能力。
一般一個三極管的基極都有兩個電阻,一個限流一個上拉或下拉,此處的上下拉主要為了確定輸入信號的電平。其實目標是為了防止干擾,因為器件的輸入接口一般內阻都很大,很容易受干擾。接一個上下拉電阻其實也就是降低了輸入阻抗,提高了抗干擾能力。
一般元器件不用的輸入口通要求接上拉或下拉電阻。注意,不用的輸出接口就不要接東西了。
【更多資源】
編輯:admin 最后修改時間:2018-05-19