新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC16C5X單片機數據存儲器

        PIC16C5X單片機數據存儲器

        作者: 時間:2016-12-02 來源:網絡 收藏
        程序計數器f2(PC)
        程序計數器給出片內2048x12的ROM地址,不同的型號程序計數器與它們的兩層堆棧為9-11位寛,如表1所示。

        表1 程序計數器PC與堆棧大小
        型號PC寬度/位堆棧寬度/位
        PIC16C54/5599
        PIC16C561010
        PIC16C571111
        系統復位后,PC為全“1”,程序執行每一條指令PC自動加“1”,除非程序指令本身改變PC的內容(例如程序跳轉,中斷服務等),下面的指令將改變PC的值。

        [1].“GOTO”指令:允許直接裝入程序計數器的低8位,對于PIC16C56/57/58,PC的最高位由PA0、PA1兩個頁面選擇位(也即狀態寄存器的5、6位確定),此指令允許跳到任一頁的任意位置。

        [2].“CALL”指令:先把當前PC的值壓入堆棧,然后使第9位清“0”,并把低8位裝入程序計數器PC,對于PIC16C56/57/58,PC的高兩位被裝入頁面選擇位PA0、PA1。

        [3].“RETLW”指令:該返回指令直接把棧頂內容重裝入PC。

        [4].程序計數器可由某位指令改變(例如MOVWF f2,ADDWF f2或BSF f2,5)計算結果將裝入PC低8位,第9位清“0”。對于PIC16C56/57/58,PC的高兩位被裝入頁面選擇位PA0、PA1。

        需要注意的是:在執行“CALL”或其它改變PC值指令時,第9位會被清“0”,所有子程序調用指令和需要計算的跳轉指令時,要把分支程序放在任何頁面(512字節)的前256個單元(地址分別為000-0FFH、200-2FFH、400-4FFH、600-6FFH)。

        多個程序存儲器頁面選擇(對PIC16C56/57/58有效)情況下,當程序計數器指向所在存儲頁的最后地址時,它仍能加1,并繼續執行到下一頁面,但PA0,PA1頁面選擇位不會改變,以后的“GOTO”、“CALL”、“ADDWF f2”、“MOVWFf2”等指令會返回原來的頁面,除非頁面選擇位在程序中被更改。例如NOP指令位于1FFH(0頁),PC加1變為200(1頁),一條在200的“GOTO XXX”指令將返回0頁的XXX地址(若f3的頁預選位“0”)。

        RESET狀態下,PA0、PA1清“0”,0頁會成為預選頁。同時程序計數器PC會對最后一頁的最后一個單元尋址。因此,在這個位置的“GOTO”指令會自動返回至0頁執行。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 武山县| 盈江县| 彭水| 凤冈县| 千阳县| 定兴县| 黎川县| 武邑县| 澎湖县| 太康县| 监利县| 景东| 弋阳县| 来凤县| 平罗县| 芦溪县| 南丰县| 全南县| 大安市| 靖安县| 十堰市| 临沭县| 电白县| 海丰县| 桂阳县| 宜丰县| 阿拉善右旗| 石柱| 彭阳县| 井冈山市| 嫩江县| 永仁县| 诏安县| 太原市| 舞阳县| 和静县| 张家口市| 将乐县| 隆子县| 天气| 榆社县|