如果大家写过类似电子钟这样的比较长的程序的话,肯定在网上下载过相关的程序看过,有没有觉得别人的程序看起来让自己觉得很郁闷呢? 呵呵。现在我们来介绍一种在KEIL中C语言的模块写法。这样的写法其实也是很好用的,一些稍长的程序中经常见到。结构如下图所示:
是不是看起来不陌生?这就对了。其实如果学过PC机的C语言的话,对多文件的编译比较熟悉那么这个就不是什么问题了,因为这基本上是相同 的。如果您是高手对此很熟悉的话,那么请略过本文;如果您是对此不是很熟悉并对此有点兴趣,那么本文或许对您有所帮助。如果在本文中有讲的不对的地方请跟帖提出。或者在我的主页给我留言进行交流。
因 为这个教程不大容易用文字的形式来讲清楚,如果用视频来做的话效果应该好的多,但是俺没这个条件(俺普通话不好怕吓到大家,哈哈) 。可能一帖会写不完,另外打字是件很痛苦的事情,所以这个请见谅。下面正式开始。
我们主的目的是学习模块化的写法,所以功能是次要的,熟悉了这个写法以后功能是大家自己控制的,我们现在将以LED灯的控制为例子讲起。
这样,我们先建立三个.c的文件,分别命名为main.c、delay.c和led_on.c,并将在建立文件的时候尽量做到看到文件名即能看出程序的功能, 这样的话比较直观,不容易混乱。然后将这三个文件都添加进工程。(这个不能不会吧?)
在delay.c中我们加入如下代码:
void delay1s()
{
unsigned int m,n;
for(m=1000;m>0;m--)
for(n=20;n>0;n--);
}
当然这个延时函数的实际延时时间并不是一秒,我们暂且不用管它,知道他是起延时作用的就可以了。
在led_on.c这个文件中我们加入如下代 码:
void led_on()
{
P0=0x00;
delay1s();
P0=0xff;
delay1s();
}
然后在main.c函数中我们添加如下代码:
void main()
{
led_on();
}
这个程序的功能简单的很,就是实现LED的闪烁。
下面问题来了,就是如何将这三个C文件关联起来。
其实在单个.c文件的程序中,我们在写程序的时候第一件事就是写上#include ,如果你是一个好学者,你一定问过为什么要这样写一句话,要是你上过辅导班,老师一定跟你讲reg52.h是头文件,这句话的作用的把头文件包含进来。当然这是很正确的,你可以打开reg52.h ,看一