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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C8051F320-并行端口與交*開關(guān)

          C8051F320-并行端口與交*開關(guān)

          作者: 時(shí)間:2012-08-16 來源:網(wǎng)絡(luò) 收藏

          具有25個(gè)I/O引腳,分別為P0、P1、P2、P3.0。為了能根據(jù)需要使用內(nèi)部數(shù)字系統(tǒng)資源,必須利用數(shù)字將所用的資源映射到具體引腳上。分析如下:

          如果沒有用到任何資源,那么所有25個(gè)引腳都可以作為正常的并行引腳使用,若用到數(shù)字資源,必須犧牲一部分并行口,將引腳提供給內(nèi)部資源使用。假設(shè)有A、B、C三種資源,所需要的引腳數(shù)分別為2、1、3。

          1、如果ABC都不用,那么可以正常使用P0、P1、P2以及P3.0

          2、如果使用A資源,那么將會(huì)占用P0.0、P0.1,其余引腳照樣可以作為并行口用,但是被占用的口無法控制

          3、如果同時(shí)使用ABC資源,則需要6個(gè)腳,故P0口只剩下P0.6、P0.7可用,其他口不受影響

          以上只是大概意思,不精確。以下為詳細(xì)筆記。

          一、寄存器

          P0口有P0MDIN、P0MDOUT、P0SKIP三個(gè)控制寄存器,同理P1、P2都有,P3沒有SKIP

          PxMDIN:設(shè)置對(duì)應(yīng)是否作為模擬輸入,“0”表示模擬輸入。當(dāng)任意引腳作為模擬輸入時(shí),不能作為IO口受到控制

          PxMDOUT:設(shè)置對(duì)應(yīng)為漏極開路或推挽,“0”表示開漏。開漏時(shí)只能輸出低電平或高阻,若需要輸出高電平,需要另外加上拉電阻,其電流小于推挽。不過實(shí)測(cè)還沒感覺出開漏與推挽的區(qū)別,待查。

          PxSKIP:用來保護(hù)特定的引腳不被內(nèi)部資源使用。為“1”時(shí),表示該引腳被跳過。本來內(nèi)部數(shù)字資源是按照優(yōu)先級(jí)列表按順序占用,如果某個(gè)腳你希望留下來自己用,那么可以設(shè)置為“1”,那么該腳必然不被占用,可以作為正常的IO口。

          二、

          寄存器XBR0、XBR1用來分配引腳給內(nèi)部數(shù)字資源,收到PxSKIP寄存器的影響,分配優(yōu)先級(jí)見下圖:
          點(diǎn)擊瀏覽下一頁

          三、實(shí)測(cè)細(xì)節(jié)

          準(zhǔn)備工作:

          1、P0口連接八個(gè)發(fā)光二極管,P1.0連接觸點(diǎn)開關(guān),P1.1~P1.7連接7個(gè)發(fā)光二極管。

          2、編程,首先令PxMDIN=FF,PxMDOUT=FF。再令PxSKIP=0,但P1.0例外,跳過,否則沒法測(cè)試

          main函數(shù)的作用是開關(guān)控制所有的燈,按下全亮,松開全暗。

          *XBR1的D6必須等于1,要不所有引腳全都不受控。


          上一頁 1 2 下一頁

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