- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 单片机原理与C51语言程序设计基础教程 重点内容: 程序设计及编程方法 Keil C51和A51接口编程基础 C与汇编语言混合编程实现 模块化程序设计 本章小结 第6章 C与汇编语言混合编程 一、程序设计及编程方法 无论是高级语言还是汇编语言,源程序都要转换成目标代码(机器语言)单片机才能执行。在Kell中程序的编译过程如图6.1所示。 C语言程序经过c51编译器、汇编语言程序经过汇编器编译后可以产生浮动地址目标程序,经过连接定位器生成十六进制的可执行文件。 1、单片机程序编制过程 一、程序设计及编程方法 单片机用c语言编程具有开发周期短、可读性强、可移植性好和修改方便等特点,但是对c语言进行汇编生成的汇编代码往往较长。直接用汇编语言编程虽然编写的程序较短,在直接对机器硬件进行控制方面具有相当的优势,但是开发周期长,修改也不方便。 较好的解决办法是程序的框架或主体部分用c语言编写,要求执行效率高的部分用汇编语言编写。这种混合编程的方法将c语言和汇编语言的优点结合起来,成为目前单片机开发最流行的编程方法。 2、混合编程的优势 二、Keil C51和A51接口编程基础 1.A51中的段 A51中的代码及数据分为不同的段,各段及功能如表6-1所示。 1、宏汇编器A51 二、Keil C51和A51接口编程基础 A51中保留了些关键字如表6-2所示。 1、宏汇编器A51 二、Keil C51和A51接口编程基础 2.A51中的伪指令 宏汇编器A51有一些伪指令,可以让我们定义符号值,预留和初始化内存,以及控制代码的位置。下面主要介绍在混合编程中会经常碰到的程序连接伪指令和段伪指令。 (1)程序连接伪指令 程序连接伪指令可以使我们通过允许模块间的引用和和模块的命名来实现各模块之间通信。 ①PUBLIC 伪指令 PUBLIC 列出将在其它目标模块中使用的符号。伪指令 PUBLIC 使指定符号在生成的目标模块中可用。这实际上就是把这些符号的名称公用化。伪指令 PUBLIC 的格式如下: PUBLIC 符号 PUBLIC指令后可以指定多个符号名,各个名字之间用逗号隔开。 例如: PUBLIC Timer0_Init //指定一个外部可以使用的函数名。 1、宏汇编器A51 二、Keil C51和A51接口编程基础 ②EXTERN/EXTRN EXTERN/EXTRN指令与PUBLIC指令对应,如果要使用其他模块中的符号,则必须用EXTERN/EXTRN指令进行说明。指令格式为: EXTRN class: type (symbol , symbol ...) EXTERN class: type (symbol , symbol ...) class是该符号被定义处的存储空间类型,可以是下列类型之一:BIT, CODE, CONST, DATA, EBIT, ECONST, EDATA, ECODE, HDATA, HCONST, IDATA, XDATA, 或 NUMBER (声明一个无类型符号);type是外部符号的符号类型,可以是下列类型之一:BYTE, WORD, DWORD, NEAR, FAR。symbol是一个外部符号名。 例如: EXTRN CODE (PUT_CRLF), DATA (BUFFER) EXTERN CODE (BINASC, ASCBIN) EXTRN NUMBER (TABLE_SIZE) EXTERN CODE:FAR (main) EXTRN EDATA:BYTE (VALUE, COUNT) EXTRN NCONST:DWORD (LIMIT) 通过以上指令说明后,本程序段中才可以访问外部变量。 1、宏汇编器A51 二、Keil C51和A51接口编程基础 ③NAME NAME指令用来标识当前模块。指令格式为:NAME 目标模块名 目标模块名最多可包含40个字符,此模块名与对应该模块的文件名无关,每个模块只能有一个模块名,如果源程序中没有给出模块名,则以不带扩展名的文件名做为模块名。 (2)段伪指令 一个段是一个代码或数据存储块,它根据汇编器从x51汇编源文件中的代码或数据创建。我们在源模块中怎样使用段,取决于我们的应用的复杂度。较小的应用需要较少的存储空间,一般比大型多模块应用的复杂度低。下面分别介绍。 ①RSEG(Relocatable Segment) RSEG为再定位段指令,用于选择一个已经在前面定义的再定位段做为当前段。 指令格式为: RSEG 段名 段名必须是在前面已经声明过了的可再定位段。 1、宏汇编器A51 二、Keil C51和A51接口编程基础 ②绝对段伪指令 绝对段伪指令为CSEG、D
您可能关注的文档
- “爱琴海”杯晋城首届单身职工相亲联谊会活动方案.doc
- 夏季超有效 减肥食谱七天瘦10斤.pdf
- 让香菜保持久一些的小窍门.pdf
- 健康瘦身 美女必吃的10种减肥食物.pdf
- 最快减肥秘籍-郑多燕减肥.pdf
- 自制美味的沙琪玛.pdf
- 姚晨被求婚流泪答应 钟爱黑发的大嘴女星.pdf
- Excel在成本核算中的应用.ppt
- 盘点伦敦奥运闭幕式上的女神妆.pdf
- 单片机原理与C51语言程序设计14.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
最近下载
- 重庆市两江新区2024-2025学年数学六年级第一学期期末检测试题含解析.doc VIP
- 人教版(2024年新版)七年级上册美术全册教学设计.docx
- Desouttter马头电动装配系统CVI3 系列 CVI3 Controllers CVI3 Vision (6159326910) CVI3 tightening controllers Conf.pdf
- 【MOOC】时间序列分析-中南财经政法大学 中国大学慕课MOOC答案.docx
- 2024-2025学年重庆市六年级数学第一学期期末检测试题含解析.doc VIP
- 高中政治(必修1+必修2)期末测试卷(二)(原卷版).docx VIP
- 高中生物 2023-2024学年安徽省合肥高一(上)期末生物试卷.pdf
- 太阳能光伏产业链垂直一体化构建研究.docx VIP
- SSCI收录管理学种期刊目录.docx
- GB51016-2014 非煤露天矿边坡工程技术规范.pdf
文档评论(0)