C51程序的基本单位是函数,每个C51语言程序是由一个或多个函数组成。在这些函数中必须包含一个主函数main(),也可以包含一个main()函数和若干个其它的功能函数。主函数是程序的入口,主函数中的所有语句执行完毕,则程序结束。
下面通过一个可以实现LED闪烁控制功能的源程序说明C51程序的基本结构,电路如图4.1所示:
图4.1 LED指示灯闪烁电路
由上面的C51程序实例不难看出,从数据运算操作、程序控制语句以及函数的使用上来说,C51语言与标准C语言相同,但在数据类型、变量存储模式、输入/输出处理等方面有一定区别,如果程序设计者具备了标准C语言的编程基础,只要注意C51与标准C语言的不同之处,并熟悉51单片机的硬件结构,就能很快地掌握C51的编程,因此和标准C语言相同的内容这里不再介绍,本章只重点介绍C51与标准C有区别的地方。
C51与标准的C语言主要区别如下:(www.xing528.com)
(1)C51中定义的库函数和标准的C语言定义的库函数不同。标准的C语言中的部分库函数不适合于嵌入式控制器系统,被排除在C51之外,如字符屏幕和图形函数。有些函数可以继续使用,但这些库函数都必须针对51单片机的硬件特点进行相应开发。例如库函数printf和scanf,在标准C语言中用于屏幕打印和接收字符,而在C51中主要用于串行口数据的收发。
(2)数据类型有一定的区别。C51在标准C语言的基础上又扩展了bit、sbit、sfr和sfr16这4种数据类型。通过这4种数据类型就可实现对51单片机的特殊功能寄存器以及位变量进行定义和访问。
(3)C51变量的存储模式与标准C中变量的存储模式不同。标准C语言是为通用计算机设计的,通用计算机中只有一个程序和数据统一编址的内存空间,而C51中的变量存储模式与单片机的存储器紧密相关。
(4)数据存储类型的不同。51单片机存储区可分为内部数据存储区、外部数据存储区以及程序存储区。
(5)C51与标准C的输入输出处理不同,C51中的输入/输出是通过单片机的串行口来完成的,输入/输出指令执行前必须对串行口进行初始化。
(6)C51函数对标准C进行了扩展。标准C语言没有处理单片机中断的定义,C51中增加了专门的中断函数。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。