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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 將MCLR管腳作為PIC微處理器的輸出

          將MCLR管腳作為PIC微處理器的輸出

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

            雖然微處理器制造商盡量向設(shè)計(jì)人員提供幾乎完全符合其設(shè)計(jì)需要的產(chǎn)品,但仍然經(jīng)常有必要為產(chǎn)品增加一個(gè)輸出管腳。這種情況在使用8管腳或更少管腳的小型設(shè)計(jì)時(shí)更加有效。

            本設(shè)計(jì)實(shí)例采用Microchip公司的PIC10F222。PIC10F222有SOT23-6封裝,提供三個(gè)I/O引腳,一個(gè)輸入管腳,RAM、flash和一個(gè)ADC模塊。必須對(duì)這些微型處理器編程,就像那些大型微處理器一樣。為給這些微處理器編程,需要MCLR、兩個(gè)I/O管腳(數(shù)據(jù)和時(shí)鐘)和供電管腳(VCC和GND)。為進(jìn)入編程模式,需要MCLR和電源。因?yàn)槲⑻幚砥鞅仨殔^(qū)分正常和編程模式,通常要達(dá)到約12V電壓才進(jìn)入編程模式。然后,在正常工作中,可以配置MCLR引腳為外部復(fù)位或僅作為輸入引腳。

          圖1在PIC微處理器的MCLR輸入引腳增加一個(gè)MOSFET和相關(guān)電路可將其轉(zhuǎn)變?yōu)檩敵瞿_


            本設(shè)計(jì)使用一個(gè)模擬輸入和三個(gè)輸出引腳。因此,需要一個(gè)額外的輸出引腳。出于這個(gè)原因,電路使用MCLR引腳作為輸出。簡(jiǎn)單地說(shuō),圖1 只顯示了GP3/MCLR輸出電路。為允許GP3/作為輸出使用,電路使用微處理器提供的可配置弱上拉功能。GP3/的可選功能為輸入,在微處理器配置字中,必須使能全局弱上拉位。雖然不能分別配置弱上拉,但是這不是問(wèn)題,因?yàn)榭梢耘渲闷溆嘁_作為模擬輸入或數(shù)字輸出。

            根據(jù)供電電壓,弱上拉使用20kΩ ~ 150kΩ的電阻,所以這個(gè)電路使用晶體管Q1驅(qū)動(dòng)更高的負(fù)載,例如LED。當(dāng)禁止上拉功能時(shí),R1驅(qū)動(dòng)晶體管關(guān)閉。因?yàn)榫w管柵極為電阻驅(qū)動(dòng),最大鎖存頻率由所選的晶體管決定。最壞的情形發(fā)生在需要關(guān)閉Q1的時(shí)候。R1和Q1的柵源極電容決定了晶體管的關(guān)閉時(shí)間。

            MCLR管腳的編程電壓大約為12V。因此,Q1必須經(jīng)受柵源極電壓高于這個(gè)值。本設(shè)計(jì)使用能經(jīng)受±18V電壓的MOSFET。出于這個(gè)原因,不應(yīng)該使用數(shù)字MOSFET。可以將這個(gè)電路用于其它,對(duì)大多數(shù)Freescale公司的RS08KA系列微處理器都適用。



          關(guān)鍵詞: MCLR管腳 PIC微處理器

          評(píng)論


          技術(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); })();