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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)擴(kuò)展IO口后擴(kuò)展口的地址如何確定

          51單片機(jī)擴(kuò)展IO口后擴(kuò)展口的地址如何確定

          作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
          1. 然后它說(shuō)8255的A口、B口、C口、控制寄存器的地址分別為7FFCH、7FFDH、7FFEH、7FFFH。這個(gè)是怎么算出來(lái)的?

          高八位7F是因?yàn)閜2.7為0是選通8255的cs片選端,第八位是FC,FD,FE,FF是由8255內(nèi)部結(jié)構(gòu)決定的,芯片的技術(shù)手冊(cè)上會(huì)有,其實(shí)也是由最后兩位的組合進(jìn)行選擇

          本文引用地址:http://www.ex-cimer.com/article/201611/315857.htm


          2.在用C51的P0,P2口做外部擴(kuò)展時(shí)使用,其中XBYTE [0x0002],P2口對(duì)應(yīng)于地址高位,P0口對(duì)應(yīng)于地址低位。一般P2口用于控制信號(hào),P0口作為數(shù)據(jù)通道。
          比如:P2.7接WR,P2.6接RD,P2.5接CS,那么就可以確定個(gè)外部RAM的一個(gè)地址,想往外部RAM的一個(gè)地址寫(xiě)一個(gè)字節(jié)時(shí),地址可以定為XBYTE [0x4000],其中WR,CS為低,RD為高,那就是高位的4,當(dāng)然其余的可以根據(jù)情況自己定,然后通過(guò)
          XBYTE [0x4000] = 57;
          這賦值語(yǔ)句,就可以把57寫(xiě)到外部RAM的0x4000處了,此地址對(duì)應(yīng)一個(gè)字節(jié)。

          個(gè)人總結(jié):

          以下圖為例

          P0口接了8根 低地址 地址線(xiàn)

          P2口低4位接了4根 高地址 地址線(xiàn)

          P2口高3位接了3根 控制信號(hào)線(xiàn) RD WR CS

          P2口P2.7沒(méi)用

          這樣P0,P2口接的外圍設(shè)備有12位的 地址線(xiàn),3根控制線(xiàn),1根未使用的線(xiàn),

          那么這個(gè)外圍器件的地址范圍是

          XXXX 0000 0000 0000-XXXX FFFF FFFF FFFF

          XXXX 是從0000-FFFF的16種不同的組合,那么由 XXXX 0000 0000 0000-XXXX FFFF FFFF FFFF組成的地址范圍就會(huì)有16中不同的表示范圍,但是這16中不同的地址表示都是指同以物理地址。這就是 物理地址對(duì)應(yīng)的映射地址不唯一。

          例如:0000 0000 0000 0000和1111 0000 0000 0000都是指同一物理地址

          0000 0000 0000 0000和0000 0000 0000 0001指的是不同的物理地址

          這樣X(jué)XXX就可以作為控制信號(hào)線(xiàn)來(lái)使用

          如果想對(duì)XXXX 0000 0000 0000地址進(jìn)行RD=0 WR=1 CS=1 這樣的操作

          RD,WR,CS分別對(duì)應(yīng)P2.4 P2.5 P2.6

          X110 0000 0000 0000(X可以是1或者0,這里選1,那么1110 0000 0000 0000=0xe000)

          那么可以通過(guò)命令:XBYTE[0xe000]=0 來(lái)實(shí)現(xiàn)

          這句C語(yǔ)言命令的匯編命令如下:

          mov dptr,#e000h

          mov a,#0h

          movx @dptr,a

          如果把 X110 0000 0000 0000中X=0,那么 0110 0000 0000 0000=0x6000

          那么實(shí)現(xiàn)以上操作是:XBYTE[0x6000]=0 來(lái)實(shí)現(xiàn)

          從上面可以看出 最高位 未用的位設(shè)置位0或者1沒(méi)有任何影響,只是形式不同而已,

          此處XBYTE[0xe000]=0 和 XBYTE[0x6000]=0 等價(jià)

          如果想對(duì)XXXX 0000 0000 0000地址進(jìn)行RD=1 WR=0 CS=1 這樣的操作

          X101 0000 0000 0000=0xc000(X=1) 或者=0x5000(X=0)

          命令為XBYTE[0xc000]=0,或者XBYTE[0x5000]=0

          如果想對(duì)想對(duì)XXXX 0000 0000 0000地址進(jìn)行RD=1 WR=0 CS=1 這樣的操作,并且向A0-A12這12位數(shù)據(jù)線(xiàn)輸出數(shù)值57,那么命令為:XBYTE[0xc000]=57或者XBYTE[0x5000]=57

          如果想對(duì)想對(duì)XXXX 0000 0000 0001地址進(jìn)行RD=1 WR=0 CS=1 這樣的操作,并且向A0-A12這12位數(shù)據(jù)線(xiàn)輸出數(shù)值57,那么命令為:XBYTE[0xc001]=57或者XBYTE[0x5001]=57

          3.、程序存儲(chǔ)器擴(kuò)展實(shí)例

          1、用一片2716芯片擴(kuò)展2K程序存儲(chǔ)器

          1)地址線(xiàn)連接:2716的存儲(chǔ)容量為2K*8,需11位地址(A10~A0)進(jìn)行存儲(chǔ)單元的選擇。為此先把芯片的A7~A0與地址鎖存器的8位地址輸出對(duì)應(yīng)聯(lián)接,剩下的高位地址(A10~A8)與P2口的P2.2~P2.0相連。這樣2716芯片的內(nèi)存儲(chǔ)單元的問(wèn)題就解決了。

          2)數(shù)據(jù)線(xiàn)的連接:程序存儲(chǔ)器的數(shù)據(jù)輸出引腳到P0口對(duì)應(yīng)連接。

          3)控制信號(hào)線(xiàn)的連接:程序存儲(chǔ)器的擴(kuò)展只涉及到外部存儲(chǔ)器選通信號(hào)PSEN,此信號(hào)與2716的OE端相接,以便進(jìn)行存儲(chǔ)單元的讀出選通。

          4)片選線(xiàn)的連接:因?yàn)檫@是一個(gè)小規(guī)模存儲(chǔ)器擴(kuò)展系統(tǒng),采用線(xiàn)選法比較方便,為此只需在剩下的高位地址線(xiàn)中選取P2.7作芯片選擇信號(hào)與2716的CE端相連即可。

          5)擴(kuò)展芯片的地址范圍:

          最低地址:當(dāng)A0~A10取值為0000000000時(shí)。

          A15

          P2.7

          A14

          P2.6

          A13

          P2.5

          A12

          P2.4

          A11

          P2.3

          A10

          P2.2

          A9

          P2.1

          A8

          P2.0

          A7

          P0.7

          A6

          P0.6

          A5

          P0.5

          A4

          P0.4

          A3

          P0.3

          A2

          P0.2

          A1

          P0.1

          A0

          P0.0

          0

          X

          X

          X

          X

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          .

          1

          0

          .

          1

          0

          .

          1

          0

          .

          1

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0

          0000H、0800H、1000H、1800H、2000H、2800H、…..7800H、7FFFH

          最高地址:當(dāng)A0~A10取值為11111111111時(shí)。

          A15

          P2.7

          A14

          P2.6

          A13

          P2.5

          A12

          P2.4

          A11

          P2.3

          A10

          P2.2

          A9

          P2.1

          A8

          P2.0

          A7

          P0.7

          A6

          P0.6

          A5

          P0.5

          A4

          P0.4

          A3

          P0.3

          A2

          P0.2

          A1

          P0.1

          A0

          P0.0

          0

          X

          X

          X

          X

          1

          1

          1

          1

          1

          1

          1

          1

          1

          1

          1

          0

          0

          .

          1

          0

          .

          1

          0

          .

          1

          0

          .

          1

          1

          1

          1

          1

          1

          1

          1

          1

          1

          1

          1

          07FFH、0FFFH、17FFH、17FF H、27FFH、2FFFH…..7FFFH

          所以,該聯(lián)接方式程序存儲(chǔ)器的地址范圍為:0000H~07FFH、0800H~0FFFH、

          1000H~17FFH………

          這種地址范圍重疊是線(xiàn)選法本身造成的。因此地址范圍的非惟一性是線(xiàn)選法的一大缺點(diǎn)。

          A15接的是CE(片選)

          當(dāng)A15=0時(shí):16位二進(jìn)制地址范圍0XXX X000 0000 0000-0XXX X1111 1111 1111

          當(dāng)A15=1時(shí):16位二進(jìn)制地址范圍1XXX X000 0000 0000-1XXX X1111 1111 1111

          此處X表示該位可為 0或1 中的任意值,那么XXXX的范圍 0000-1111(16)

          那么0XXX X000 0000 0000-0XXX X1111 1111 1111(有16種地址表示)

          1XXX X000 0000 0000-1XXX X1111 1111 1111(也有16種地址表示)

          這就意味著:

          當(dāng)A15=0時(shí),對(duì)于同一物理地址,有16種不同的地址值可以表示(同一地址,地址值不唯一)

          同樣,當(dāng)A15=1時(shí),對(duì)于同一物理地址,有16種不同的地址值可以表示(同一地址,地址值不唯一)



          評(píng)論


          技術(shù)專(zhuān)區(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); })();