维普资讯
51单片机 C语言的编程技巧
◆牛余朋 牛傲其
Franklin或 KeiC51交叉编译器 外部模块提供的可使用的函数和变量 集中起来放在一个头文件中进行定义.
是专为51系列单片机设计的一种高效 的说明 可以用文本方式打开reg52.h. 再采用文件包含命令 #include将‘其
的C语言编译器 ,使用它可以缩短开 仔细研究下.会有一些写程序的体会 加人到程序中去。这样当需要修改某个
发周期.降低开发成本 .而且开发出的 51为 reg51h,52为 reg52h.以次类 参量时,只须修改相应的包含文件或宏
系统易于维护.可靠性高.可移植性好. 推 ,比如 winbond的78E58就 为 定义.而不必对使用它们的每个程序文
也完全可以 w78e58h这些H文件中的描述。另外 件都作修改.从而有利于文件的维护和
和汇编语言相比.因此 目前它已成为开 下面几个用来定义的简单命令也是经 更新,现举例说明如下:
发 51系列单片机的流行工具 常使用的.请初学者注意: 例:对于不同的单片机晶振,程序
sn.定义一个8位的设备。 取不同的延时时间.而且可根据外界条
srf16.定义一个 16位的设备= 件的变化修改延时时间的长短。对于这
sbit.定义一个位的设备。 样的程序,可利用宏定义和条件编译来
C语言是一种高级程序设计语言.
用这些语句定义后 .就可以在 C 实现。
它提供了十分完备的规范化流程控制
中象汇编一样使用这些硬件设备.这是 程序如下:
结构 因此采用C51语言设计单片机
单片机应用比标准C特殊的地方.其 #aefine falg 1
应用系统程序时。首先要尽可能地采用
它差别很少 耕fdef flag==1
结构化的程序设计方法。这样可使整个
另外在 C51中.常用项 目来管理。 #define foac6M
应用系统程序结构清晰,易于调试和维
项目一般分为两大块:C文件块和头部 delay=lO;
护。对于一个较大的程序.可将整个程
文件块。我们常把不同功能写在不同的 #elif flag = = 0
序按功能分成若干个模块.不同的模块
C文件中依靠项 目的管理.最后把所 #define foec 8M
完成不同的功能。对于不同的功能模
有文件连接起来.这样就可以得到可以 delay=12;
块。分别指定相应的八口参数和出口参
烧录的HEX文件或 BIN文件 用头部 eIse
数,而经常使用的一些程序最好编成函
文件把各个不同的C互相连接起来。 井define fosc 12M
数.这样既不会引起整个程序管理的混
一 个C文件基本上要对应有一个H头 delay=20;
乱,还可增强可读性.移植性也好。
部文件.这个H文件就包含本C文件 #endif
C51语言的主程序结构:
中可以提供给外面使用的变量和函数, main()
#include