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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)之16C84單片機(jī)介紹(一)

          PIC單片機(jī)之16C84單片機(jī)介紹(一)

          作者: 時(shí)間:2012-11-14 來源:網(wǎng)絡(luò) 收藏
          入堆棧。在執(zhí)行RETURN,RETLW,RETFIE等指令時(shí),堆棧被彈出。PUSH(壓入)和POP(彈出)不影響PCLATH。

            堆棧是作為循環(huán)緩沖器。當(dāng)堆棧被壓入38次后,第9次壓入將占據(jù)第一次壓入的位置,第十次壓入將占據(jù)第二次壓入的位置,等等。同樣當(dāng)堆棧彈出第9次時(shí),與第一次彈出是一樣的。注意,沒有狀態(tài)位來 指明堆棧上溢式下溢的條件。沒有PUSH,POP指令助記符,但CALL,R ETURN,RETLW,RETFIE等指令的執(zhí)行或中斷發(fā)生,將實(shí)際發(fā)生壓棧退棧。

            4-2程序存儲(chǔ)器的頁

            16C84具有1K的程序存儲(chǔ)器,CALL,GOTO指令只有11位的地址范圍,這11位的地址范圍允許分支在2K程序存儲(chǔ)器頁大小的范圍。

            為將來16C8X程序存儲(chǔ)器的擴(kuò)展,必須由另外兩位來說明程序 存儲(chǔ)器的頁。這些頁位來自于PCLATH4:3>。當(dāng)執(zhí)行CALL、GOTO指令時(shí),用戶必須確保這些頁位的編程等指向要求的程序存儲(chǔ)器的頁。

            如果執(zhí)行CALL指令,整個(gè)13位被壓入堆棧。所以對(duì)于返回指令不要求 對(duì)PCLATH4:3>位的管理。因?yàn)镻C的值將會(huì)由退棧而獲得。注意:16C84忽略了PCLATH4:3>位,這些位用于程序存儲(chǔ)頁1,2,3(0800H-1FFFH),不可以把PIC16C84的PCLATH4:3>位用作通用讀/寫位,這會(huì)影響將來產(chǎn)品的向上兼容。

            4-3間接尋址,INDF和FSR的作用

            INDF寄存器不是物理寄存器,只是被用來與FSR寄存器連接以執(zhí)行間接尋址。

            使用INDF寄存器,就可以實(shí)現(xiàn)間接尋址。

            使用INDF寄存器的任何指令,實(shí)際尋址數(shù)據(jù)是由文件選擇寄存器(FSR)所決定的。讀INDF自身(FSR=0),將產(chǎn)生00H。向INDF寫,結(jié)果無操作(顯然可以提供狀態(tài)位)。8位FSR寄存器同狀態(tài)寄存器STATUS7>(IRP)組合可以得到9位地址。

            然而PIC16C84是不用IRP的。使用下面的例程序,通過間接尋址清零。2OH~2FH單位。

            MOVLW 20H ;初始化RAM的指針

            MOVF FSR ;到FSR

            NEXT CLRF INDF ;通過間接尋址清0,由FSR的內(nèi)容所指問的寄存器。

            INCF FSR ;(FSR)+1→FSR

            BIFSS FSR,4;當(dāng)FSR的第4位為1跳過下一條指令

            GOTO NEXT ;否則入。

          存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理



          上一頁 1 2 3 4 5 下一頁

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