C51单片机开发新技术.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C51单片机开发新技术 周新莲 王润云 湘〔潭工学院信息系,湘潭 411201) 摘 要:本文从单片机的技术应用角度解决了当前51系列单片机C51、汇编多语言开发的关 健技术,并时BL51,RTX51以及知何进行系统头文件配笠等高级技术作了深入研究,以期开 发出更高性能的单片机系统。 关镇词:单片机,系统头文件,BI-51,RTX51 1 引言 单片机进人中国十余年以来,以其体积小、功能强、扩展灵活、支持芯片众多、使用方便的特点,逐渐 渗透到各行业的工程实际应用中。其中8位单片机8051已成为从小型到中型应用场合的首选,是单片 机领域事实上的标准。但是,我国的51单片机软件开发在不少项目中仍停留在汇编代码编制、调试的 水平上。事实上,早在1985年就推出了8051的C51编译器,使用C语言进行51单片机的开发,可以很 好地利用现成的大量的C程序资源与丰富的库函数,生成的代码编译效率高、可移植性好、完全模块 化,加快项目的进度。 2C51程序员与汇编程序员协同开发 目前,单片机的开发中汇编程序员是大量的。在项目中如何协同C51程序员与汇编程序员的开 发,并非仅仅是个混合编程问题,而应各展所长,互补所短。 汇编语言的难点在于数据处理。由于汇编语言不直接支持浮点运算,而现在单片机开发日趋复杂, 在许多地方须应用高精度的复杂算法。C51直接支持单精度的浮点运算,对于大多数场合已经够用,并 且可以通过算法扩展到双精度。算法的设计上,已有大量的C程序可供选用,基本不须重新开发。在 这些模块中应用C51可以尽快解决问题。 然而,完成同样功能,C51程序经编译联接生成的代码比汇编程序生成的代码稍长。在需要实时响 应的场合,开发者惟恐执行时间太长,所以这些模块一般用汇编代码实现。在开发简单的位控制器时, 汇编代码也比C51有效的多。 在此,笔者要说明的是,凡是汇编能实现的功能用C51都可实现,只是一个熟练程度的问题。而 且,据最新的资料,新版的C51编译器的编译效率可以达到1.1。在单片机项目中应用C51,更重要的 是开发周期可以大大缩短。一般说来,一个熟练的C51程序员的开发速度是汇编程序员的2倍以上. 两者的执行速度相差无几,如果不是有特别苛刻的要求,程序整体用C51开发要更快。 接下来就是C51模块与汇编模块相互调用问题。 标准的C51与汇编程序的参数传递是通过寄存器RI-R7进行,但这种方式会破坏寄存器中的内 容,对于协同开发不太合适。笔者认为,通过开发者之间约定内存或外存的一块共享存储区来传递数据 更有效。但这里要注意的是,C51的数据格式要求是 “高字节在低地址,低字节在高地址,’(对于常用的 int而言),而许多汇编算法是从低地址向高地址进行运算,因此要对数据进行相应的处理 下面以汇编语言做主程序为例,说明一个相互调用的实例。 因为每一个C51函数在汇编语言中都对应一个PUBLIC声明,所以用EXTRVCODE(...)引人即 可。编译链接时采用了覆盖与共享技术,以节省空间,因此汇编程序中用到的存储区必须声明保留,否 则会被C51程序使用并覆盖。 C51单片机开发新技术 一 NAME REMAINW ?PR?MAIN?REMAINW SEGMENTCODE ;声明主程序代码段浮动定位,因为要在此段中调用C51函数,所以必须按照这种格式书写 ?BIT?DDBITSEGMEN丁BIT EXTRNCODE(FLOATl,FLOAT2,PRINTI);声明C51的函数 EXTRNCODE(KEYIN,PRDIG,PRCHAR,ERROR,HASSIS,ZTOF);声明汇编的外部调用子程 EXTRNDATA(DATEI,DATE2,MCHNUM,MISSDAY,MISSMON,DANGCI,TAXM ;声明汇编的外部引用数据段 WXLlDATA24H;声明须保留的内部存储区 KCHLGBITOOH FLAGBBIT01H RSEG?BIT?DDBIT;声明须保留可重定位的内部存储

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档