基于Keil的51单片机汇编程序多文件编译

时间:2024-03-03 点赞:45453 浏览:89506 作者原创标记本站原创

本文是一篇文件论文范文,关于文件方面毕业论文参考文献格式,关于基于Keil的51单片机汇编程序多文件编译相关在职毕业论文范文。适合文件及地址及工程师方面的的大学硕士和本科毕业论文以及文件相关开题报告范文和职称论文写作参考文献资料下载。

引言:本文结合KeilμVision2程序开发流程,描述了51单片机汇编程序多文件编译的实现方法.通过多文件编译的使用,大大提高了汇编程序代码的可读性、可扩展性,同时也很大程度地提高程序代码的执行效率以及内存空间的使用率,避免内存空间的浪费.

一、序言

近年来,随着C语言的进一步推广使用,绝大多数的工程师都倾向于使用C语言进行单片机系统开发,汇编语言由于可读性、通用性、可移植性差的原因,很难满足产品开发的需求.但是汇编语言具有执行效率高、占用内存空间小等特点,在某些应用领域还是具有无可替代的作用.

本文结合KeilμVision2程序开发流程,描述了51单片机汇编程序多文件编译的实现方法.通过多文件编译的使用,大大提高了汇编程序代码的可读性、可扩展性,同时也很大程度地提高程序代码的执行效率以及内存空间的使用率,避免内存空间的浪费.


二、KeilμVision2程序开发流程简介

KeilμVision2是美国KeilSoftware公司出品的51系列兼容单片机软件集成开发环境,该软件提供宏汇编器、链接/、库管理器、调试器以及目标文件转换器等工具,是51单片机系统开发的首选工具.

KeilμVision2集成开发环境的编译流程如下:首先宏汇编器对汇编源程序文件进行编译,生成扩展名为.OBJ的目标文件和扩展名为.LST的列表文件,紧接着链接/将所有的.OBJ文件进行绝对地址分配,链接生成包含绝对地址的目标文件和扩展名为.M51的地址文件,最后由目标文件转换器生成可用于编程器烧写、扩展名为.HEX的可执行文件.

三、汇编程序多文件编译实现

在KeilμVision2集成开发环境下,我们可以根据不同的硬件模块、功能模块分开编写应用子程序,进行模块化管理,实现多文件编译,这样就可以大大提高汇编程序代码的可读性、可扩展性.以下首先对段和模块的概念进行描述.

一个段可以是一块程序代码或者是一个数据块.根据其地址空间是否可以被链接/更改,段可以分为可定位段和绝对地址段.在定义可重定位段的时候需要对其段名、类型及其属性进行定义.一个段可以分在不同的程序模块中,只要具有相同的段名,在编译过程中链接/会把它们合并到一起.在定义绝对地址段的时候直接人为分配绝对地址,链接/不能对改地址进行更改.绝对地址段没有段名,也不能给其他段结合.

模块是一个可以被单独编译的代码单元,可以包含一个或多个段或者部分段,一个模块既可以是单个文本文件,也可以通过INCLUDE指令把几个文本文件合并在一起.在程序编译过程中,汇编器会把一个模块编译为一个目标文件,也就是一个模块对应一个.OBJ文件.

根据以上对段和模块的描述,汇编程序的多文件编译可以通过以下三个方法来实现:

1.通过INCLUDE指令合并源文件

在代码编写时,通过INCLUDE指令可以将一个源文件插入到当前源文件中,这样汇编器在编译的时候就会将INCLUDE指令之后的文件合并到当前文件进行编译,生成一个扩展名为.OBJ的目标文件.INCLUDE指令的格式如下:

$INCLUDE(文件名)

通过该方式实现多文件编译时,插入的源文件既可以是扩展名为.A的汇编源程序文件,也可以是扩展名为.INC的包含文件.注意在被包含的源文件结尾不能有END指令,否则编译会停止运行.

2.通过绝对地址段实现多文件编译

KeilμVision2中提供以下定义绝对地址段的指令,通过这些指令可以定义代码段和各种数据段,并指定其绝对地址.

由于绝对地址段在定义的时候对地址进行了分配,链接/不能够对其地址进行更改,因此很容易造成地址重叠或者内存空间浪费,而且在后续对程序进行维护、升级的时候很有可能需要重新对地址进行分配,非常不利于程序的扩展和维护.因此绝对地址段通常是用在某些特定的场合,例如确定中断向量的入口地址、数据存储空间等.

3.通过可重定位段实现多文件编译

在KeilμVision2中,通过SEGMENT指令即可定义可重定位段.定义可重定位段时必须指定段的名称和存储类型,其格式如下:

四、总结

通过以上三种方式,均可以实现多文件编译,但是在实际使用过程中,INCLUDE指令通常用于包含特殊功能寄存器的定义等;绝对地址段则通常用于确定中断向量的入口地址、数据存储空间;而可重定位段的方式则广泛地用于各种代码段或数据段的定义.

通过多文件编译的方式,解决了单文件编译会导致程序文件过于臃肿、可读性差、不便于维护等缺点,大大提高汇编程序代码的可读性以及可维护性.

相关论文

基于51单片机的音乐播放器设计

本文是一篇音乐播放器论文范文,关于音乐播放器相关毕业论文格式模板,关于基于51单片机的音乐播放器设计相关学士学位论文范文。适合音乐播放。

MCS—51单片机多串口通讯技术应用

关于单片机及电子产品及集成电路方面的免费优秀学术论文范文,单片机类有关小论文格式,关于MCS—51单片机多串口通讯技术应用相关论文范文参。

51单片机C语言编程中延时程序的

本文是一篇参考文献论文范文,参考文献方面有关毕业论文参考文献格式,关于51单片机C语言编程中延时程序的相关函授毕业论文范文。适合参考文。