- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
keil下C51启动代码详解
由于CPU和程序启动代码文件STARTUP.a51的重要性,一些8051派生的CPU产品要求初始化CPU来满足设计中的相应的硬件,因此,有时候用户需要对STARTUP.a51进行修改,所以进行注释一下:
;;startup.A51: 用户上电初始化程序;;;使用以下EQU命令可定义在CPU复位时需要用0进行初始化的内存空间;;IDATA存储器的空间的绝对起始地址总是零
IDATALEN? EQU? 80H????? ;需用0进行初始化的IDATA存储器空间的字节数;XDATASTART? EQU? 0H???? ;XDATA存储器空间的绝对起始地址XDATALEN? EQU? 0H?????? ;需用0进行初始化的XDATA存储器的空间字节数;PDATASTART? EQU? 0H???? ;PDATA存储器的空间的绝对起始地址PDATALEN? EQU? 0H?????? ;需用0进行初始化的PDATA存储器的空间字节数;注意:IDATA存储器的空间在物理上包括了8051单片机的DATA和BIT存储空间;至少要保证与C51编译器运行库有关的存储器的空间进行0初始化;;再入函数模拟初始化;;以下用EQU指令定义了再入函数模拟堆栈指针的初始化;;使用SMALL存储器模式时再入函数的堆栈空间IBPSACK? EQU? 0?? ;使用SMALL存储器模式再入函数时将其设置成1IBPSTACKTOP? EQU? 0FFH+1??? ;将堆栈顶设置为最高地址加1;;使用LARGE存储器模式时再入函数的堆栈空间XBPSTACK? EQU? 0???? ;使用LARGE存储器模式再入函数时将其设置成1XBPSTACKTOP? WQU? 0FFFFH+1???? ;将堆栈顶设置为最高地址加1;;使用COMPACT存储器模式时再入函数的堆栈空间PBPSTACK? EQU? 0???? ;?使用COMPACT存储器模式再入函数时将其设置成1PBPSTACKTOP? WQU? 0FFFFH+1???? ;将堆栈顶设置为最高地址加1;;;使用COMPACT存储器模式时,64KB X DATA存储器空间的分页定义;;以下用EQU指令定义PDATA类型变量在XDATA存储器空间的页地址;使用EQU指令定义PFAGE时必须与L51连接定位器PDATA指令的控制参数一致;PPAGEENABLE? EQU? 0???? ;使用PDATA类型变量时将其设置成1PPAGE? EQU? 0????? ;定义页号;;NAME? ? C_STARTUP?? ;模块名为 ? C_STARTUP? C_51STARTUP? SEGMENT CODE???? ;代码段? STACK? SEGMENT IDATA????? ;堆栈段RSEG? ? STACK????????????? ;堆栈DS 1EXTRN COE(? C_START)????????? ;程序开始地址PUBLIC ? C_STARTUPCSEG AT 0x8000???????????????? ;定义用户程序的起始地址,用MON51仿真器时可能有用? C_STARTUP: LFMP STARTUP1RSEG? ? C_51STARTUPSTARTUP1:;;初始化串口MOV SCOM, #40HMOV TMOD, #20HMOV TH1, #0FDHSETB TR1CLR T1;单片机上电IDATA内存清零,如果不需要上电清零IDATA,可以注销IF到IFEDN之间的;语句,或者修改IDTALEN的长度,为了让CPU具有掉电保护功能,需要确定IDTALEN的长度IF IDATALEN 0MOV R0, # IDATALEN-1CLR AIDATALOOP: MOV @R0,ADJNZ R0,IDATALOOPENDIF;;单片机上电XDATA内存清零,如果不需要上电清零XDATA,可以注销IF到IFEDN之间的;语句,或者修改XDTALEN的长度IF XDATALEN 0MOV DPTR, #XDATASTARTMOV R7,#LOW (XDATALEN)IF (LOW(XDATALEN)) 0MOV R6, #(HIGH(XDATALEN))+1ELSEMOV R6, #HIGH (XDATALEN)ENDIFCLR AXDATALOOP: MOVX @DPTR, AINC DPTRDJNZ R7, XDATALOOPDJNZ R6, XDATALOOPEND IF;;送PDATA存储器页面高位地址IF PPAGEENABLE
您可能关注的文档
最近下载
- 人脸识别门禁.pdf VIP
- 单一制和复合制课件高中政治选择性必修一当代国际政治与经济.pptx VIP
- 创新创业基础(高职高专版)PPT教学完整课件.ppt
- 老旧小区弱电方案和施工组织设计.docx VIP
- 数据脱敏处理与使用管理规则.docx VIP
- 和利时LE系列可编程控制器选型手册.pdf VIP
- 信息系统专职人员培训和考核制度.docx VIP
- 英语课程标准研究与教材分析(第2版)课件全套 第1--9章 英语课程标准和英语课程的基本概念 ---英语教材难度分析.pptx
- 烹饪概论课件.ppt VIP
- 江苏凤凰少年儿童出版社小学四年级上册《书法练习指导》教学计划与教学设计.pdf VIP
文档评论(0)