第9章-MCS-51单片机C语言编程.ppt
第9章MCS-51单片机C语言编程9.1C51编程简介MCS-51的编程语言常用的有两种,一种是汇编语言,一种是C语言(C51)。汇编语言的特点:机器代码生成效率很高,可读性差,编程难度大。C51的特点:C语言程序本身不依赖于机器硬件系统,基本上不作修改就可将程序从不同的单片机中移植过来。C51提供了很多数学函数并支持浮点运算,开发效率高,程序的可读性和可维护性较好。而且C51还可以嵌入汇编语言来解决高时效性的代码编写问题。9.1.1MCS-51单片机C51语言简介⑤C51提供了复杂的数据类型(数组、结构、联合、枚举、指针等),极大地增强了程序处理能力和灵活性;提供auto,extern,static,const等存储类型和专门针对MCS-51单片机的data,bdata,idata,pdata,xdata,code等存储类型,自动为变量合理地分配地址;提供small,compact,large等编译模式,以适应片上存储器的大小;完整的编译控制指令为程序调试提供必要的符号信息。⑥头文件中允许定义宏、说明复杂数据类型和函数原型,有利于程序的移植和支持单片机的系列化产品的开发。⑦可方便地接受多种实用程序的服务,有专门的实用程序自动生成;有实时多任务操作系统,可调度多道任务,简化用户编程,提高运行的安全性等。2.单片机C51语言与C语言的异同单片机的C51是继承了标准C的绝大部分的特性,基本语法相同,但其本身在特定的硬件结构上又有所扩展(如专门针对MCS-51单片机的存储类型等),需要在C51的实际编程应用过程中逐步体会。9.1.2C51的基本语法4.C51包含的头文件C51包含的头文件通常有reg51.h,math.h,ctype.h,stdio.h,stdlib.h,absacc.h。其中,常用的有reg51.h(定义特殊功能寄存器和位寄存器)和math.h(定义常用数学运算)。5.C51的运算符C51的运算符与C语言基本相同:+(加)、-(减)、*(乘)、/(除)、(大于)、=(大于等于)、(小于)、=(小于等于)、=(等于)、!=(不等于)、(逻辑与)、||(逻辑或)、!(逻辑非)、(位右移)、(位左移)、(按位与)、|(按位或)、^(按位异或)、~(按位取反)。6.C51的基本语句C51的基本语句与标准C语言基本相同:if(选择语句)、switch/case(多分支选择语句)、while(循环语句)、for(循环语句)、do-while(循环语句)等。9.1.3C51编译器FranklinC51交叉编译器是专为80C51系列单片机设计的一种高效的C语言编译器,使用它可以缩短开发周期,降低开发成本,而且开发出的系统易于维护,可靠性高,可移植性好,代码的使用效率高。1.C51语言程序设计的基本技巧(1)采用结构化程序设计(2)采用模块化程序设计,分别指定个功能模块相应的入口参数和出口参数,而经常使用的一些程序最好编成函数。(3)充分利用C51语言的预处理命令。(4)采用宏定义“#define”(或集中起来)将一些常用的常数、各种特殊功能寄存器或程序中一些重要的、依据外界条件可变的常量放在一个头文件中进行定义,然后采用文件包含命令“#include”将其加入到程序中去,便于修改,有利于文件的维护和更新。2.C51语言与汇编语言程序的混合编程9.2KeilC51开发系统简介KeilC51工具包各部分功能如下:(1)C51是C语言编译器,其使用方法为:C51sourcefile[编译控制指令]或者C51@commandfile其中:sourcefile----C源文件(.C)。大量的编译控制指令完成C51编译器的全部功能。包括C51输出文件C.LST,.OBJ,.I和.SRC文件及源文件(.C)的控制等。Commandfile----一个连接控制文件,其内容包括:.C源文件及各编译控制指令,它没有固定的名字,开发人员可根据自己的习惯指定,它适用于控制指令较多的场合。(2)A51是汇编语言编译器,使用方法为:A51sourcefile[编译控制指令]或者A51@commandfile其中:sourcefile----汇编源文件(.asm或.a5