Keil C51与汇编的区别是什么

如题所述

C51可以用标准C语言(以及一定的扩展)来书写源程序,所以具有更好的通用性、可读性和可维护性。缺点是有时候无法精准地进行细微操作,执行效率也会为了“通用性”而做出一定(某些情况下,巨大)的牺牲。

汇编语言直接用指令助记符书写,更接近于机器语言,对程序的控制更精细、代码效率更高。缺点是对于不熟悉51指令的人而言阅读很困难,并且代码块一旦跨平台移植就得重写。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-12-28
随着单片机硬件性能的提高,编写应用程序更着重于程序本身的效率。

Franklin或KEII.C51交叉编译器是专为51系列单片机设计的一种高效的C语言编译器,用其开发的应用程序易于维护,可移植性好,是目前较流行的51系列单片机的开发工具。

一、C51语言程序设计的基本技巧

首先,C51语言程序设计要尽可能采用结构化的设计方法。可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可使程序的可读性、移植性增强。

C51语言的主程序结构:

#include

main0{while(1);}

这是最小的C程序,包括头部文件和程序主体。头部文件为引用的外部资源文件,包括硬件信息和外部模块提供的可使用的函数和变量的说明。

语句定义后,就可以在C语言程序中像汇编一样使用这些硬件设备。

在C5l中常用项目来管理,项目一般分为C文件块和头部文件块,常把不同的功能写在不同的C文件中,依靠项目的管理,最后把所有文件连接起来,这样就可以得到烧录的HEX文件或BIN文件。没有在头部文件中列出的文件,可以算是该C文件的内部函数和变量,外部C不能使用。另外,在程序设计过程中要充分利用C51语言的预处理命令。

对于一些常用的常数,如TRUE、FAlSE、PI,以及各种特殊功能寄存器,或程序中一些重要的依据外界条件可变的常量,可采用宏定义(#de-fine)或集中起来放在一个头文件中进行定义,再采用文件包含命令(#in-elude)将其加入到程序中,这样当需要修改某个参量时,只需修改相应的包含文件或宏定义,而不必对使用它们的每个程序文件都进行修改,有利于文件的维护和更新。

举例:利用宏定义和条件编译,源程序不作任何修改就可适用于不同时钟频率的单片机系统,并可根据情况的不同取不同的delay值,完成不同的目的。程序如下:

#define flag 1#ifdef flag==l#define fose 6Mdelay=10;#elif flag==0#define fose 8Mdelay=12;#else#define fosc 12Mdelay=20;#endiFMain0{ for(I=O;l
相似回答