中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種實用的PIC編程器的設計

        一種實用的PIC編程器的設計

        作者: 時間:2010-01-15 來源:網絡 收藏

        3.2 PC指針的處理及尋址方法
        在對其編程的過程中,需要知道當前的PC指針指向的Flash存儲區(qū)單元地址,也就是當前的操作單元。由于無法直接讀取其PC指針的值,故采用在 89C5l的RAM區(qū)定義一個變量用來記錄的PC指針(12位,占用2字節(jié))。該變量的值始終和的PC指針一致,讀取該值便可取得當前所操作的PIC的Flash存儲單元地址。

        變量的操作應該遵循如下運算規(guī)則:
        ①只有“加1”這一種運算;
        ②03FF+1=0000(03FF為PIC10F202的存儲器末地址)}
        ③當變量的值不等于03FF時,其“加l”運算與指針值“加1”同步;
        ④初始情況下,指針的值指向03FF。
        PICl0F202的Flash單元地址為0000H~03FFH。在以上運算規(guī)則下,記錄PC指針的變量值也只能是0000H~03FFH,通過“加1”運算即可尋址到每一個Flash存儲單元。

        3.3 數(shù)據的讀取
        從Flash存儲單元中讀取數(shù)據位的方法:先是6個時鐘下降沿輸入6位命令字,在接收到這個命令字后,PIC將當前PC指針所對應ROM存儲單元的值按位由ISDAT輸出。在第6個下降沿結束后,經延時,在時鐘脈沖每個上升沿對ISDAT采樣,一共16個上升沿,輸出16位的數(shù)據。第2~13位是12位的數(shù)據;14、15位無效;首位和末位分別是起始位和結束位,如圖5所示。

        讀取數(shù)據時有兩點值得注意:
        ①命令字的輸入和其他操作相同,但數(shù)據輸出時是上升沿有效;
        ②由于01FFH和0204H是系統(tǒng)預定值單元,當尋址到這兩個單元時,執(zhí)行讀取指令后必須保留其內容,以便編程時恢復。

        3.4 寫入Flash方法
        數(shù)據寫入Flash的過程如下:
        每次導入一個字節(jié)的數(shù)據(12位),輸入開始寫入的指令碼,經過一段時間參數(shù)的延時,再輸人結束寫入指令碼,就完成一個字節(jié)的寫入過程。但需要注意的是,無論是數(shù)據讀取還是寫入,都是對當前PC指針所指向的F1ash單元進行的;而且數(shù)據寫入只有在當前存儲單元已經被擦除的情況下才可以正確地實現(xiàn)。

        指令輸入形式(如芯片擦除、開始寫入、結束寫入和地址加1等)可以查得其命令宇,其輸入方法與圖4和圖5類似,每個指令都需要時鐘脈沖的6個下降沿輸入。僅有“導入數(shù)據”和“讀取數(shù)據”2條命令需要后跟數(shù)據字節(jié),其他的指令在輸入完成后,經延時,便可以進行下一條指令的輸入。字節(jié)寫入流程如圖6所示。

        3.5 配置字編程及代碼保護的處理
        配置字是關于PIC的設置,包括是否使能看門狗,是否采用I/O弱上拉,以及MCLR引腳的配置等。配置字在03FFH單元,PIC進入編程模式時,配置字單元就是Pc指針所指向的單元。配置字的寫入方法與一般的代碼寫入方法一致。一旦設置了代碼保護,用戶代碼空間的0040H以上的字節(jié)讀出為“0”,其他的配置空間依舊可以正確讀出,包括配置字單元和用戶ID區(qū)。配置字可以被多次寫入,但是在任何情況下擦除配置字單元,用戶儲存區(qū)的代碼也同時被擦除??梢酝ㄟ^圖7的方法解除代碼保護,但是這樣的處理會將整個Flastl存儲空間全部清除,所以在代碼保護使能的情況下,是不可能正確讀取代碼值的。即使可以重寫配置字,但是重寫過程中代碼已經被清除。

        3.6 預定值的處理
        每個PIC芯片都沒有廠家設定的預定值。這些值是不應該被更改的,否則PIC芯片就無法正常工作。ROM區(qū)的01FFH單元保存復位向量,系統(tǒng)復位后,PC 指針將指向該單元。0204H單元保存著OSSCAL的值。這兩個單元的值應該先讀出并且保存在一個臨時單元(因為在芯片擦除的過程中會丟失),待到需要編程的代碼執(zhí)行完畢,再從臨時單元讀出并寫入相應的位置。其實際過程就是一個“讀取保存恢復”的過程。

        要讀取預定值,首先必須尋址到預定值所在的單元。其尋址的過程如圖8所示:進入編程模式后,此時指向的存儲單元是03FFH,89C51中記錄PC指針的變量的值也應該設置成03FF。按照該變量的運算規(guī)則,執(zhí)行地址加1指令,變量值也加1,并查詢當前變量的值,直到所需的存儲單元為止?;謴偷倪^程是先尋址到01FF和0204單元,然后把保留的值寫入,具體流程與圖8類似。



        關鍵詞: 設計 編程器 PIC 實用

        評論


        相關推薦

        技術專區(qū)

        關閉