新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > P89C51RD2的Boot ROM與ISP功能的實現

        P89C51RD2的Boot ROM與ISP功能的實現

        作者: 時間:2012-04-09 來源:網絡 收藏

        對上段程序分析如下:首先,將校驗和單元清零,開始接收第1個ASCII碼,并判斷是否為:。如果是,則說明是一個命令字的開始,下面便依次接收字節數DATA_LEN、數據首地址高8位DATA_ ADDRH、數據首地址低8位DATA_ADDRL和數據操作類型DATA_MODE。這跟其命令字格式是完全對應的。然后,程序根據接收數據字節數 DATA_ LEN來決定下面的數據接收,并將接收的數據存儲在從80H開始的內部數據存儲器中,以備下一步的處理。最后,進入校驗和的接收,將程序計算所得的校驗和與上位機傳輸的校驗和作比較,如果不等,回傳X字符,通知上位機進行異常處理;如果相等,則轉入相應的命令執行。

        3.3 命令的執行

          命令解釋和執行的源代碼和反匯編程序如下:

        源程序 反匯編程序

        FCBF E5 35 RUN_MODE: MOV A,DATA_MODE
        ;35H數據操作類型
        FCC1 23 RL A ;A=A*2
        FCC2 90 FC C6 MOV DPTR,#BASE_ADDR ;程序散轉
        FCC5 73 JMP @A+DPTR
        FCC6 81 D4 BASE_ADDR: AJMP PRO_DATA
        ;00=傳送編程數據并完成編程
        FCC8 81 F8 AJMP SEND_CHAR_OK
        ;01=傳文件結束符
        FCCA 81 FE AJMP SETUP_FOSC
        ;02=指定振蕩器頻率
        FCCC A1 70 AJMP MPRO_DAT
        ;03=雜項編程
        FCCE A1 04 AJMP READ_CHECK
        ;04=顯示指定地址段FLASH數據或查空
        FCD0 A1 9F AJMP READ_DATA
        ;05=各種讀
        FCD2 A1 B3 AJMP SETUP_BPS
        ;06=直接裝載波特率

          在正確地接收命令后,通過DATA_MODE項(即命令格式中的RR)來判斷并轉入相應的程序。程序中對每一個跳轉地址都作出了相應的注釋。

        4 幾點說明

          ① 上述帶源代碼的程序均是 中反匯編得來的,并且大部分是連續的。這一點可以從地址分布上看出來,讀者可以將其合并在一起看,相信可以加強理解。有興趣的讀者也可以參照以上給出的方法將全部代碼讀出,電路圖和源程序幾乎都不必重編了。

          ② 中既包括了的程序,也包括了IAP的程序。限于篇幅,只給出了的部分源程序,部分子程序只作了說明而未列出源程序。

        參考文獻
        1 廣州周立功單片機發展有限公司. P89C51Rx+/Rx2/66x系列單片機的在線編程
        2 P89C51RB2/P89C51RC2/ DATA SHEET. Philips Semiconductors, 2001 Jun 27
        3 何立民. MCS-51系列單片機應用系統設計. 北京:北京航空航天大學出版社,1990


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新安县| 仙游县| 高台县| 香港| 尼木县| 晋州市| 江华| 亚东县| 台东县| 木兰县| 政和县| 扎鲁特旗| 曲沃县| 灵武市| 那曲县| 望城县| 常州市| 昭苏县| 柳州市| 行唐县| 海丰县| 巴里| 台中县| 广东省| 门源| 洛阳市| 双桥区| 五原县| 安图县| 渑池县| 安乡县| 册亨县| 合川市| 绥江县| 石屏县| 福安市| 营口市| 保定市| 玉树县| 阳西县| 蛟河市|