欢迎来到天天文库
浏览记录
ID:27236318
大小:777.01 KB
页数:119页
时间:2018-12-01
《单片机的c语言编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章单片机的C语言编程单片机应用系统是由硬件和软件组成的,这是与一般的数字逻辑电路系统的不同之处。汇编语言是能够利用单片机所有特性直接控制硬件的唯一语言,对于一些需要直接控制硬件的场合,汇编语言是必不可少的。但汇编语言不是一种结构化的程序设计语言,对于较复杂的单片机应用系统,它的编写效率很低。为了提高软件的开发效率,许多软件公司致力于单片机高级语言的开发研究,许多型号的单片机内部ROM已经达到64KB甚至更大,且具备在系统编程(ISP,InSystemProgrammable)功能,进一步推动了
2、高级语言在单片机应用系统开发中的应用。51系列单片机支持三种高级语言:PL/M、C、BASICBASIC语言适用于简单编程而对编程效率、运行速度要求不高的场合,8052单片机内固化有BASIC语言解释器。PL/M是一种结构化的语言,很象PASCAL,PL/M编译器好象汇编器一样产生紧凑的机器代码,可以说是高级汇编语言,但它不支持复杂的算术运算,无丰富库函数支持,学习PL/M无异于学习一种新的语言。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用
3、的程序设计,是目前使用最广的单片机编程语言。C语言作为一种非常方便的语言而得到广泛的支持,很多硬件开发都用C语言编程,如:各种单片机、DSP、ARM等。C语言程序本身不依赖于机器硬件系统,基本上不作修改或仅做简单修改就可将程序从不同的单片机中移植过来直接使用。C语言提供了很多数学函数并支持浮点运算,开发效率高,故可缩短开发时间,增加程序可读性和可维护性。单片机的C语言编程称为C51编程,应用C51编程具有以下优点:(1)C51编译器管理内部寄存器和存贮器的分配,编程时,无需考虑不同存储器的寻址和数
4、据类型等细节问题;(2)程序有规范的结构,可分成不同的函数,这种方式具有良好的模块化结构,使已编好程序容易移植;(3)有丰富的子程序库可直接引用,具有较强的数据处理能力,从而大大减少用户编程的工作量;(4)C语言和汇编语言可以交叉使用。汇编语言程序代码短、运行速度快、但复杂运算编程耗时。用汇编语言编写与硬件有关的部分程序,用C语言编写与硬件无关的运算部分程序,充分发挥两种语言的长处,提高开发效率。C51编译器(KeilC)与标准ANSIC编译器的主要区别单片机C编译器之所以与ANSIC有所不同,主
5、要是由于它们所针对的硬件系统有其各自不同的特点。C51的特点和功能主要是80C51单片机自身特点引起的。(1)头文件:51单片机有不同的厂家和系列,不同单片机的主要区别在于内部资源,为了实现内部资源功能,只需将相应的功能寄存器的头文件加载在程序中,就可实现指定的功能。因此,C51系列头文件集中体现了各系列芯片的不同功能。(2)数据类型:由于51系列器件包含了位操作空间和丰富的位操作指令,因此C51比ANSIC多一种位类型。(3)数据存储类型:51系列单片机有程序存储器和数据存储器。数据存储器又分片
6、内和片外数据存储器。片内数据存储器还分直接寻址区和间接寻址区,分别对应code、data、idata、xdata以及根据80C51系列特点而设定的pdata类型。(4)数据运算操作和程序控制:从数据运算操作和程序控制语句以及函数的使用上来讲,它们几乎没有什么明显的区别。只是在函数的使用上,由于单片机系统的资源有限,它的编译系统不允许太多的程序嵌套。由于51系列单片机是8位机,所以扩展16位字符Unicode不被C51支持。ANSIC所具备的递归特性不被C51支持,所以在C51中如果要使用递归特性,
7、必须用REETRANT关键字声明。(5)C51与标准ANSIC库函数:部分库函数不适合单片机处理系统,因此被排除在外,如字符屏幕和图形函数。也有一些库函数继续使用,但这些库函数是厂家针对硬件特点相应开发的,与ANSIC的构成和用法有很大的区别,如printf和scanf。在ANSIC中,这两个函数通常用作屏幕打印和接收字符,而在C51中,主要用于串口数据的发送和接收。4.1C51程序结构特点同标准C一样,C51的程序是由函数组成。C语言的函数以“{”开始,以“}”结束。其中必须有一个主函数main
8、(),程序的执行从主函数main()开始,调用其他函数后返回主函数main(),最后在主函数中结束整个程序,而不管函数的排列顺序如何。C语言的语句规则:1.每个变量必须先说明后引用。2.C语言程序一行可以书写多条语句,但每个语句必须以“;”结尾,一个语句也可以多行书写。3.C语言的注释用/*……*/表示。4.“{”花括号必须成对,位置随意,多个花括号可同行书写,也可逐行书写。为层次分明,增加可读性,同一层的“{”花括对齐,采用逐层缩进方式书写。C语言程序的组成结构:全局变量说明/*
此文档下载收益归作者所有