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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)存儲(chǔ)體0或1的選用說(shuō)明(程序)

          PIC單片機(jī)存儲(chǔ)體0或1的選用說(shuō)明(程序)

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

            中級(jí)產(chǎn)品PIC16C6X的數(shù)據(jù)存儲(chǔ)器通常分為兩個(gè),即0(Bank0)和1(Bank1)。每個(gè)存儲(chǔ)體都是由專(zhuān)用寄存器和通用寄存器兩部分組成的。兩個(gè)存儲(chǔ)體中的一些寄存器單元實(shí)際上是同一個(gè)寄存器單元,卻又具備有不同的地址。例如本版介紹的PIC16F84的狀態(tài)寄存器STATUS-Reg的兩個(gè)地址是03H和83H。又如通用寄存器也是如此。

            不同型號(hào)的,其數(shù)據(jù)存儲(chǔ)器的組成(即功能)是不完全相同的,所以設(shè)計(jì)人員一旦選用了某個(gè)的型號(hào)后,常要查找該單片機(jī)的數(shù)據(jù)存儲(chǔ)器資料,以便編程用。

            筆者以PIC16F84在MPLAB集成開(kāi)發(fā)軟件的環(huán)境下編寫(xiě)的源程序中,有關(guān)RB口(RB7、RB6…RB0)初始化為例,說(shuō)明選用存儲(chǔ)體0或1的方法如下:

            程序清單

            file:PIC01?ASM

            List P=16F84

            #include P16F84.inc

            STATUS EQU 03H

            RB   EQU 06H

            TRISB EQU 86H

            ORG  0x00 ;復(fù)位向量(PIC16F84)

            GOTO MAIN ;轉(zhuǎn)至主程序開(kāi)始處

            ORG  0x08 ;從地址08H開(kāi)始存放程序

            MAIN

            CLRF  PORTB ;初始化

            BSF  STATUS,5 ;RP0置1,選中Bank1

            ;以便設(shè)置寄存器TRISB

            MOVLW 0x0F  ;初始化數(shù)據(jù)00001111B

            MOVWF TRISB   ;RB口D3~D0為輸入;

            …      ;D7~D4為輸出

            以上實(shí)例說(shuō)明:源程序中的寄存器TRISB是在16F84數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)體1(Bank1)中,所以利用編程達(dá)到選擇TRISB的目的。



          關(guān)鍵詞: PIC單片機(jī) 存儲(chǔ)體

          評(píng)論


          相關(guān)推薦

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