<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > PIC系列單片機數據存儲器的特點(diǎn)和功能

PIC系列單片機數據存儲器的特點(diǎn)和功能

作者: 時(shí)間:2013-09-09 來(lái)源:網(wǎng)絡(luò ) 收藏
品種雖多,但各產(chǎn)品內部硬件資源的設置仍是很有規律的。筆者以PIC16C71A和PIC16C63/65/65A兩個(gè)品種為實(shí)例,查看它們片內的結構,找出它們的特點(diǎn)并說(shuō)明某些寄存器的主要功能,以供用戶(hù)快速編程。表1和表2分別是PIC16C71A和PIC16C63/65/65A產(chǎn)品片內的資源表,其它系列產(chǎn)品的片內數據存儲器結構的資源與表1、表2資源都很相似,其差別僅僅是片內功能部件的種類(lèi)和數量不同(PIC16C57/58有4個(gè)存儲體)。筆者從下述幾個(gè)方面介紹表1和表2的特點(diǎn)和主要功能。

  1統一編址 各類(lèi)數據存儲器都是以寄存器方式工作和尋址的。專(zhuān)用寄存器包括了定時(shí)寄存器TMRO、選擇寄存器OPTION(又稱(chēng)為項選寄存器)、程序計數器PCL、狀態(tài)寄存器STATUS、間接尋址寄存器INDF和FSR、端口I/O寄存器(如PORTA、PORTB…)和相對應的端口I/O控制寄存器(又稱(chēng)為端口I/O數據方向寄存器,如TRIAS、TRISB…)、保持寄存器PCLATH和中斷控制寄存器INTCON等。上述的專(zhuān)用寄存器都是PIC16C63/65/65A和PIC16C71A共同有的,它們不僅是寄存器名稱(chēng)、功能相同,而且寄存器的地址也完全相同。如果再查看其它PIC單片機,如PIC16C62/62A/64/64A、PIC16C71/72/73/73A/74/74A、PIC16C8X……它們的專(zhuān)用寄存器名稱(chēng)凡是與以上相同者其地址也完全與上述相同,可見(jiàn)盡管單片機品種多,但掌握它們的規律后,學(xué)習是不難的。

  型號不同的PIC單片機,其數據存儲器的內部資源僅僅是功能種類(lèi)和多少的不同。如PIC16C71A型,其引腳為18腳,主要功能是帶有8位的A/D轉換部件,有4個(gè)A/D通道模擬輸入,所以在表1中與其A/D轉換部件有關(guān)的專(zhuān)用寄存器ADRES(用于存放A/D轉換的數值結果)、A/D控制寄存器ADCON0(用于控制A/D轉換器的操作)和A/D控制寄存器ADCON1(用于控制選擇A/D引腳的功能)等。對PIC16C65/65A型,其引腳是40腳的,其功能比PIC16C71A單片機強,因而數據存儲器表2中的專(zhuān)用寄存器的種類(lèi)就比表1的增加了很多。

  專(zhuān)用寄存器的每個(gè)寄存單元都有相對應的固定用途,它們可分成兩類(lèi):一類(lèi)用于供CPU操作(如INDF和FSR、STATUS、PCL……);另一類(lèi)用于控制外圍功能芯片的操作。

學(xué)習PIC單片機數據存儲器時(shí),不僅要了解各寄存器單元的功能,而且還應在編制程序時(shí)會(huì )調用它們完成編程目的。下面筆者將以編程實(shí)例說(shuō)明它們的用途。
  2間接尋址寄存器INDF和FSR 位于PIC單片機數據存儲器的最頂端、地址00單元(地址碼最?。┑拈g接尋址寄存器INDF是一個(gè)空的寄存器。它只有地址碼,在物理上不是一個(gè)真正的寄存器。它的功能常常與寄存器FSR(又稱(chēng)寄存器選擇寄存器)配合工作,實(shí)現間接尋址目的。初學(xué)專(zhuān)用寄存器INDF和FSR時(shí),記住下述的邏輯關(guān)系對編程是有幫助的:使用寄存器INDF的任何指令,在邏輯上都是對寄存器FSR所指向的RAM進(jìn)行訪(fǎng)問(wèn),即對INDF(本身)進(jìn)行間接尋址(訪(fǎng)問(wèn)),讀出的應是FSR內容。以下的一個(gè)簡(jiǎn)單程序是用間接尋址方式清除RAM地址20h~2Fh單元寄存器內容的實(shí)例。
   MOVLW 0x20 ;20h→w,對指向RAM單元的指針
          ;初始化
   MOVWF FSR ;20h→FSR,FSR指向RAM
LOOP CLRF INDF ;清除INDF,即清除FSR內容所指
         ;向的單元20h→2Fh
   INCF   FSR ;(指針)FSR內容加1
   BTFSS FSR,4;判別(指令)FSR的D3位,若為零
        ??;執行下條循環(huán)指令;若為1間跳
        ??;執行。
GOTO LOOP;跳轉到LOOP(循環(huán))
CONTINUE…    ;已完成功能,繼續執行程序
  由上述指令看出,因寄存器INDF和FSR的配合工作,達到了對RAM地址20h~2Fh的寄存器清零目的。由于完成上述功能的指令數很少,這就會(huì )簡(jiǎn)化指令系統,使PIC單片機的指令集得以精簡(jiǎn)。
  說(shuō)明:上述各條指令易于看懂,所以無(wú)需再復述,但其中的一條判別指令“BTFSS FSR,4”比較關(guān)鍵。該條指令是保證題設中要選擇RAM地址單元上限值2Fh時(shí),其對應的二進(jìn)制數為00101111B,此時(shí)FSR的第4位恰為1。所以上述指令中用了一條判斷指令;BTFSS FSR,4,判斷FSR的D3位值是否為1,若不為1而為0,則執行下條循環(huán)指令GOTO LOOP,使FSR中的地址不斷加1,直到寄存器FSR的D3位為1時(shí),這時(shí)它的內容代表的RAM地址恰為2Fh。
  由此可見(jiàn),學(xué)習PIC單片機數據存儲器中的專(zhuān)用寄存器時(shí),不必要對每個(gè)產(chǎn)品的專(zhuān)用寄存器進(jìn)行學(xué)習,只需先學(xué)習它們的共同點(diǎn),然后選中一個(gè)產(chǎn)品型號的專(zhuān)用寄存進(jìn)行詳細分析,有條件時(shí)進(jìn)行必要的相關(guān)指令操作,就能完全掌握單片機技術(shù)。

A/D轉換寄存器 這里摘錄一段筆者從網(wǎng)上下載的用PIC16F877單片機芯片(帶Flash存儲器的)完成有關(guān)A/D轉換的源程序部分指令,并用它說(shuō)明有關(guān)A/D轉換寄存器在指令中的用法。這里先引用部分源程序,源程序中的注釋是筆者按照指令在程序中的作用所加的注釋(不是某條指令的直接功能),這是初學(xué)者讀以下指令時(shí)應注意的。A/D轉換器部分源程序清單如下:


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: PIC系列 單片機 數據存儲器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>