|
4.1 单片机C51语言概述 |
单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。具有C语言编程基础的读者,能够轻松地掌握单片机C51语言的程序设计。
单片机C51语言特点很多,总结起来主要有以下几点。
●单片机C51语言兼具高级语言与低级语言的优点。
●语法结构和标准C语言基本一致,语言简洁,便于学习。
●运行于单片机平台,支持的微处理器种类繁多,可移植性强。对于兼容的8051系列单片机,只要将一个硬件型号下的程序稍加修改,就可移植到另一个不同型号的单片机中运行。
●具有高级语言的特点,尽量减少底层硬件寄存器的操作。
●单片机C51语言提供了完备的数据类型、运算符及函数供使用。
●C51语言是一种结构化程序设计语言,可以使用一对花括号“{}”将一系列语句组合成一个复合语句,程序结构清晰明了。
●C51语言代码执行的效率方面十分接近于汇编语言,且比汇编语言的程序易于理解,便于代码共享。
“Hello world”程序已经成为各种编程语言的入门经典程序。本节将通过这个简单的程序,让读者了解单片机C51语言的基本结构和功能。本书将在后面的章节中逐步介绍单片机及其C51程序设计的方方面面。
【范例4-1】 示例代码4-1是一个简单的“Hello world”程序。
示例代码4-1
【运行结果】使用Keil μVision3编译程序可以完成该程序的编译和仿真操作,仿真运行结果如图4-1所示。
图4-1 “Hello world”程序
【代码解析】初次观察这个程序,读者会觉得非常熟悉。这不就是一个典型的C语言程序吗?其实,单片机C51程序和C语言程序的结构和语法非常类似。这便为读者的学习带来极大的方便。在该程序中,首先使用“#include”加入头文件,然后开始执行main主函数。在主函数中,通过while循环不断在单片机串口输出字符串“Hello world!\r\n”。
通过这个程序可见,使用C51语言大大简化了单片机的程序设计。用户可以更多地关注程序结构,而无须将精力耗费在单片机硬件资源的细节上。
在学习任何一种编程语言的时候,按照一定的规范培养良好的编程习惯都很重要。良好的编程规范可以帮助开发人员理清思路、方便整理代码,同时也便于他人阅读理解以促进代码的交流。在进行C51语言程序设计时,应该注意以下几方面的编程规范。
在最开始学习一门编程语言时,培养良好的编程规范至关重要。有的时候,如果代码不规范或者杂乱,将直接影响程序的交流甚至打乱程序设计人员自己的思路。在进行C51语言程序设计时,应该从如下几方面来考虑编程规范。
1.完备和详尽的程序注释
注释语句只对代码起到功能描述的作用,在实际的编译链接过程中不起作用。这样,可以增加程序的可读性,方便日后查阅修改或者与他人的代码交流。在C51语言中,注释可以采用如下几种方法:
●用“//”符号开头来注释一行,如“//变量声明”。
●用“/*”符号开头,并以“*/”符号结束。采用这种方法,可以对C51源程序中的任何部分进行注释,如“/*声明整型变量count */”。
2.整齐的代码书写格式
单片机C51语言是一种结构化的程序设计语言,在书写代码的时候应该遵循整齐规范的结构。这样有助于查看程序的条理,帮助设计者理清思路,也便于他人的阅读。在程序设计中,可以从如下几个方面来考虑:
●if、do、while等块结构语句中的“{”和“}”要配对对齐,这样便于理解该结构的起始点和结束点。
●为了程序理解的方便,最好将每个语句单独写在一行,并加以注释。如果相连的语句具有相近的功能,则可以放置在一行。
●代码书写时,可以通过适当的空格及Tab键来实现代码对齐,这样代码整齐美观,便于阅读。
●对于源程序文件不同结构部分之间要留有空行来区分。例如,头文件声明、自定义函数声明、main()函数及自定义函数之间均要空一行。
3.简洁清晰的命名
C51语言的程序设计中,往往需要定义多个变量或者函数。在命名的时候,用户需要指定一个简洁且最能反映该变量或函数功能的名称。例如,Max表示最大值、Min表示最小值等。另外,在命名时不要和系统保留的标识符及关键字产生冲突或者歧义。