- 1、本文档共125页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机的C语言程序设计基础
10.4.3 C51程序的开发流程 C51程序开发与在Windows中运行的项目工程的开发有所不同,在Windows中,一般程序的编译结果是后缀名为“.exe”的可执行文件,该文件在Windows系统中能直接运行。 而单片机C51程序的开发属于嵌入式开发,遵循主流的交叉编译模式,即在宿主机(运行Keil μVision3的PC机)上开发编译,在目标机(51系列单片机)上运行。 在宿主机上的编译结果为COFF文件或是满足Intel规范的文件,文件包含了可执行的机器码,要经过编程器烧写到单片机的程序区(Flash ROM)才能执行。 一个单片机C51应用程序的开发流程如下 在Keil μVision3中新建项目工程 建立并编辑源文件 编译调试项目工程 生成目标文件 下载到程序存储器中 程序运行。 有关Keil μVision3的具体使用,请见Keil μVision3的使用操作说明。 10.5 C51与汇编语言的混合编程 目前多数开发人员都在用C51开发单片机程序,但在一些速度和时序敏感的场合下,C51略显不足,而有些特殊的要求必须通过汇编语言程序来实现,但是用汇编语言编写的程序远不如用C51语言编写的可读性好和效率高。因此采用C51与汇编语言混合编程是解决这类问题的最好方案。 10.5.1 C51与MCS-51汇编语言的比较 无论是采用C51语言还是汇编语言,源程序都要转换成机器码,单片机才能执行。对于用C51编制的程序,要经过编译器,而采用汇编语言编写的源程序要经过汇编器汇编后产生浮动地址作为的目标程序,然后经过链接定位器生成十六进制的可执行文件。 用MCS-51汇编语言编程时,需要考虑它的存储器结构,尤其要考虑其片内数据存储器与特殊功能寄存器的合理正确使用,及按实际地址处理端口数据。就是说编程者必须具体地组织、分配存储器资源和正确处理端口数据。 C语言能直接对计算机的硬件进行操作,与汇编语言相比它具有如下优点: C51要比MCS-51汇编语言的可读性好。 程序由若干函数组成,为模块化结构。 使用C51编写的程序可移植性好。 编程及程序调试的时间短。 C51中的库函数包含了许多标准的子程序,且具有较强的数据处理能力。大大减少编程工作量。 对单片机中的寄存器分配、不同存储器的寻址以及数据类型等细节可由编译器来管理。 10.5.1 C51与MCS-51汇编语言的比较 汇编语言的特点如下: 代码执行效率高。 占用存储空间少。 可读性和可移植性差。 使用C51编程,虽不像汇编语言那样要具体地组织、分配存储器资源和处理端口数据,但是对数据类型和变量的定义,必须与AT89C51的存储器的存储器结构相关联,否则编译器就不能正确地映射定位。用C51编写的程序与标准C程序编写的不同之处必须根据AT89C51的存储器结构以及内部资源定义相应的数据类型和变量。 10.5.1 C51与MCS-51汇编语言的比较 所以用C51编程时,如何定义与单片机相对应的数据类型和变量,是使用C51编程的一个重要问题。 混合编程多采用如下的编程思想,程序的框架或主体部分以及数据处理及运算用C51编写,时序要求严格的部分用汇编语言编写。这种混合编程的方法将C语言和汇编语言的优点结合起来,已经成为目前单片机程序开发的最流行的编程方法。 10.5.1 C51与MCS-51汇编语言的比较 10.5.2 C51与汇编语言混合编程的方法 在把汇编语言程序加入到C语言程序前,须使汇编语言和C51程序一样具有明确的边界、参数、返回值和局部变量;必须为汇编语言编写的程序段指定段名并进行定义;如果要在它们之间传递参数,则必须保证汇编程序用来传递参数的存储区和C51函数使用的存储区是一样的。 在C51中使用汇编语言有以下三种方法。 C51代码中嵌入汇编代码 可通过预编译指令“asm”在C51代码中嵌入汇编代码。方法是用#pragma语句,具体结构为: #pragma asm 汇编指令行 #pragma endasm 这种方法是通过asm和endasm告诉C51编译器,中间的行不用编译为汇编行,例如: #include reg51.h extern unsigned char code newval[256] ; void func1(unsigned char param) { unsigned char temp; temp = newval[param] temp*=2; temp/=3; #pragma asm ; 预编译指令asm MOV P1,R7 ; 这些汇编语言代码行不用再编译为汇编行 NOP NOP NOP MOV P1,#0 #pragma endasm } C51代码中嵌入汇编代码 注意,Keil μVision3的默认设置不支
您可能关注的文档
- 华南理工企业管理考研真题及大纲.doc
- 华夏柏欣商业顾问服务建议书.pptx
- 华强职校学生上网调查分析.ppt
- 华宜兄弟财务分析报告ppt.ppt
- 华瑞人力资源岗位等级咨询方案.doc
- 华怡大厦营销推广报告.doc
- 华硕电脑试块制作方案.doc
- 华科计算机网络实验报告1.doc
- 华电保定汽轮机原理ppt3.ppt
- 华美办公楼装修施工项目HSE实施方案.doc
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
最近下载
- 矿用隔爆兼本安型控制器工艺流程图.doc VIP
- 政治学概论政治学概论编写组05政党与政党制度.ppt VIP
- 《乡村旅游规划与实践》课件——项目七 乡村旅游商品开发与设计.pptx VIP
- 国家义务教育质量监测心理健康测试题.pdf VIP
- 《分数加法和减法》单元整体设计 -2023-2024学年五年级下册数学人教版.doc VIP
- 《0~3岁婴幼儿保育与教育》PPT教学课件(全).pptx VIP
- 小学科学实验课学生合作学习策略与互动模式研究教学研究课题报告.docx
- 测绘工程管理与法律法规 测绘违法案例60讲 5测绘违法案例五.ppt
- 第六届中国国际“互联网+”大学生创新创业大赛项目计划书【模板】.pdf
- 政治学05 政党与政党制度.ppt VIP
文档评论(0)