<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)端口設(shè)置

          AVR單片機(jī)端口設(shè)置

          作者: 時(shí)間:2013-01-05 來(lái)源:網(wǎng)絡(luò) 收藏

          DDRA=OXFF;

          PORTA=OXFF;

          PORTA=OXFF;

          DDRA=OXFF;

          是有區(qū)別的,這兩種順序?qū)?yīng)IO口的是不一樣的。這個(gè)區(qū)別是在產(chǎn)品性能上面的,從表面上看不出明顯區(qū)別,沒(méi)有一定電路功底的可能不太好理解。DDRA、PORTA、在上電時(shí)默認(rèn)都為0x00;如果你設(shè)方向DDRA后設(shè)PORTA的話,設(shè)定為輸出方向的全部輸出低電平、再設(shè)定電平,這個(gè)時(shí)候輸出高電平,那么在輸出高電平的這個(gè)IO口上面,就會(huì)有一個(gè)從低電平到高電平的瞬間變化,因?yàn)樵谧兓陂gIO口方向已經(jīng)為輸出,所以這個(gè)信號(hào)是有一定能量的,會(huì)產(chǎn)生一定的干擾。如果先設(shè)電平再設(shè)方向的話:上面說(shuō)的瞬間變化就不會(huì)發(fā)生了。

          [單片機(jī)端口的設(shè)置]

          ATMEGA8單片機(jī)I/O口初始化的問(wèn)題

          一般不用的IO口設(shè)置為輸入,打開(kāi)上拉。

          輸入,即使什么地方出錯(cuò),如短路等等,不會(huì)有電平?jīng)_突。如設(shè)置為輸出剛好又錯(cuò)誤的接到了相反的電平上面,費(fèi)浪幾十毫安電流是在所難免的,時(shí)間長(zhǎng)了可能會(huì)損壞器件。

          上拉是為了穩(wěn)定IO口電平,如只輸入不上拉,那么IO口是高阻狀態(tài),外部有干擾信號(hào)時(shí)它就很容易接收到這個(gè)信號(hào),造成IO口內(nèi)部電路高頻變化,同樣會(huì)費(fèi)浪電流,更壞的是CPU很容易因此而受到干擾出現(xiàn)死機(jī)等。

          在網(wǎng)上看到一些對(duì)電阻的上拉和下拉不太明白的,輸入端的上拉及下拉非常簡(jiǎn)單但也非常重要。

          上拉:通過(guò)一個(gè)電阻對(duì)電源相連。下拉:通過(guò)一個(gè)電阻到地。

          上下拉一般有兩個(gè)用處:提高輸出信號(hào)的驅(qū)動(dòng)能力、確定輸入信號(hào)的電平(防止干擾)。

          用過(guò)8051的都知道CPU的I/O上通常接有排阻(上拉到5V),這里主要是為了提高輸出驅(qū)動(dòng)能力的。因?yàn)?051的CPU不是標(biāo)準(zhǔn)的I/O口,輸出為低電平時(shí)可以吸收均20mA的電流,但輸出為高的時(shí)候是通過(guò)內(nèi)部一個(gè)很大的電阻上拉的,輸出高電平時(shí)驅(qū)動(dòng)能力很差,所以就通過(guò)外部上拉來(lái)提高電平輸出驅(qū)動(dòng)能力。

          一般一個(gè)三極管的基極都有兩個(gè)電阻,一個(gè)限流一個(gè)上拉或下拉,此處的上下拉主要為了確定輸入信號(hào)的電平。其實(shí)目標(biāo)是為了防止干擾,因?yàn)槠骷妮斎虢涌谝话銉?nèi)阻都很大,很容易受干擾。接一個(gè)上下拉電阻其實(shí)也就是降低了輸入阻抗,提高了抗干擾能力。

          一般元器件不用的輸入口通要求接上拉或下拉電阻。注意,不用的輸出接口就不要接?xùn)|西了。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();