新闻中心

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 下一页

评论


相关推荐

技术专区

关闭