基于Keil C51编译器的程序优化
2014-08-27徐斯
时代农机 2014年2期
徐 斯
(湖南机电职业技术学院,湖南 长沙 410151)
80C51单片机是目前国内外工业测控领域中使用极为广泛的一类8位MCU,C51是面向80C51单片机的C语言。C语言是一种结构化的程序设计高级语言,在单片机应用系统开发中采用C语言编程,易于开发复杂的单片机应用程序,易于进行单片机应用程序的移植,有利于产品中的单片机重新选型,可大大加快单片机应用程序的开发速度。用C51编写的应用程序须经C51编译器转换生成单片机可执行的代码程序。Keil C51编译器生成的代码紧凑、使用方便、全面支持8051单片机主流产品及其众多的派生系列。
1 灵活选择变量的存储器类型和数据类型
(1)变量的数据类型选择。①尽可能使用最小的数据类型char、unsigned char或bit。这类数据只占用1B或者1位,由于80C51是8位机,显然对它们的操作要比对int或long类型数据操作要方便得多。②尽可能使用unsigned数据类型,原因是80C51机器指令不支持符号运算。当在C源代码中使用了有符号的变量,尽管从字面上看,其操作十分简单,但C51编译器将要增加相应的库函数,产生更多的程序代码去处理符号运算。所以除了根据变量长度来选择变量类型以外,还要考虑该变量是否会用于负数的场合,如果程序中可以不需要负数,那么可把变量都定义成无符号类型的。
(2)变量的存储器类型选择。由于单片机系统的存储器资源有限,为了提高执行效率,对存储器类型的设定,应该根据以下原则:只要条件满足,尽量先使用直接寻址片内数据存储……
登录APP查看全文
