将常用的数据类型全部采用此种方法定义,形成一个头文件,便于我们以后编程直接调用。 文件名 MacroAndConst.h 其内容如下: #ifndef _MACRO_AND_CONST_H_ #define _MACRO_AND_CONST_H_
typedef unsigned int uint16; typedef unsigned int UINT; typedef unsigned int uint; typedef unsigned int UINT16; typedef unsigned int WORD; typedef unsigned int word; typedef int int16; typedef int INT16; typedef unsigned long uint32;
typedef unsigned long UINT32; typedef unsigned long DWORD; typedef unsigned long dword; typedef long int32; typedef long INT32; typedef signed char int8; typedef signed char INT8; typedef unsigned char byte; typedef unsigned char BYTE; typedef unsigned char uchar; typedef unsigned char UINT8; typedef unsigned char uint8; typedef unsigned char BOOL;
#endif
至此,似乎我们对于源文件和头文件的分工以及模块化编程有那么一点概念了。那么让我们趁热打铁,将上一章的我们编写的LED闪烁函数进行模块划分并重新组织进行编译。
在上一章中我们主要完成的功能是P0口所驱动的LED以1Hz的频率闪烁。其中用到了定时器,以及LED驱动模块。因而我们可以简单的将整个工程分成三个模块,定时器模块,LED模块,以及主函数 对应的文件关系如下
main.c Timer.c --àTimer.h Led.c --àLed.h 在开始重新编写我们的程序之前,先给大家讲一下如何在KEIL中建立工程模板吧,这个模板是我一直沿用至今。希望能够给大家一点启发。 下面的内容就主要以图片为主了。同时辅以少量文字说明。 我们以芯片AT89S52为例。
|