- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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;声明须保留可重定位的内部存储
您可能关注的文档
最近下载
- 城管执法队员百分制考核细则.docx VIP
- 高血压的诊治PPT课件.pptx VIP
- 第二单元第04课时用混合运算解决实际问题(1)(教学课件)数学人教版三年级上册(新教材).pptx
- 健身会所操课教练工作流程及规范 .pdf VIP
- 《江苏省工业、建筑业、服务业、生活和农业用水定额(2025年)》.docx VIP
- 国投证券-固态电池系列报告(一):未来已来固态电池行业迎来产业驱动.pdf VIP
- Hubsan哈博森无人机ZINO说明书用户手册.pdf
- 高中政治必修二《经济与社会》选择题专练30题 .pdf VIP
- 高危高尿酸血症药物降尿酸治疗专家共识(2025版).pptx VIP
- 2025湖南郴州桂阳县招聘25名城市社区专职工作者笔试备考题库及答案解析.docx VIP
文档评论(0)