嵌入式C语言编程心得教程.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式C语言编程心得教程

一、.H文件与.C文件的关系: 迄今为止,写过的程序都是一些很简单的程序,从来没有想到要自己写.H文件,也不知道.H文件到底什么用,与.C文件什么关系。只是最近写键盘程序,参考别人的程序时,发现别人写的严格的程序都带有一个“KEY.H”,里面定义了.C文件里用到的自己写的函数,如Keyhit()、Keyscan()等。 经过查找资料得知,.H文件就是头文件,估计就是Head的意思吧,这是规范程序结构化设计的需要,既可以实现大型程序的模块化,又可以实现根各模块的连接调试。 1、.H文件介绍: 在单片机C程序设计中,项目一般按功能模块化进行结构化设计。将一个项目划分为多个功能,每个功能的相关程序放在一个C程序文档中,称之为一个模块,对应的文件名即为模块名。一个模块通常由两个文档组成,一个为头文件*.h,对模块中的数据结构和函数原型进行描述;另一个则为C文件*.c ,对数据实例或对象定义,以及函数算法具体实现。 2、.H文件的作用 作为项目设计,除了对项目总体功能进行详细描述外,就是对每个模块进行详细定义,也就是给出所有模块的头文件。通常H头文件要定义模块中各函数的功能,以及输入和输出参数的要求。模块的具体实现,由项目组成根据H文件进行设计、编程、调试完成。为了保密和安全,模块实现后以可连接文件OBJ、或库文件LIB的方式提供给项目其他成员使用。由于不用提供源程序文档,一方面可以公开发行,保证开发人员的所有权;另一方面可以防止别人有意或无意修改产生非一致性,造成版本混乱。所以H头文件是项目的详细设计和团队工作划分的依据,也是对模块进行测试的功能说明。要引用模块内的数据或算法,只要用包含include指定模块H头文件即可。 3、.H文件的基本组成 /*如下为键盘驱动的头文档*/ #ifndef _KEY_H_ //防重复引用,如果没有定义过_KEY_H_,则编译下句 #define _KEY_H_ //此符号唯一, 表示只要引用过一次,即#i nclude,则定义符号_KEY_H_ ///////////////////////////////////////////////////////////////// char keyhit( void ); //击键否 unsigned char Keyscan( void ); //取键值 ///////////////////////////////////////////////////////////////// #endif .c文件是整个程序中的一个或几个函数组成,在别的.C文件里可以调用它,不只是在主函数中。这样做可以增强程序的模块化,提高程序的可读性。当编制好一个模块时你可以保存在一个工程下,文件名改为**.C。这样在另一个.C文件中的文件头处只要你对它进行说明就可以调用它。比如#include string.c 那么你就可以在你说明了的.C文件中调用它,这样一个模块可以在很多处调用,使得编程复杂度降低。程序编译时把你所说明的文件复制到你调用处程序就可以运行了。 .H文件是对单片机一些端口及一些常用的程序的库说明, 比如我们在程序中用到端口一即P1,我们能够用它是因为在库中已对它进行了说明,对P1赋予了一个端口地址,这样程序编译是才不会出错,不然会提示你UNDIFINED。 分开多个文件写就有很多的.c和.h文件了,当然要加上#include语句把其它的包含进来,分开多个文件写有利于管理,其实我觉得.c和.h区别不是很大,只是.h一般都是写定义、声明的东西,.c文件一般都写函数的具体实现 h文件就是头文件,一般进行声明、宏定义等。比如要编写流水灯的程序,h文件这样写: #ifndef _LED_H #define _LED_H define LED_ON P1.1=1; define LED_OFF P1.1=0; //还可以进行函数的声明 //void LED_twikle(void); #endif 在你的c文件中要加入#includeLED.h 二、尽量使用宏定义#define 开始看别人的程序时,发现程序开头,在文件包含后面有很多#define语句,当时就想,搞这么多标示符替换来替换去的,麻不麻烦啊,完全没有理解这种写法的好处。原来,用一个标示符表示常数,有利于以后的修改和维护,修改时只要在程序开头改一下,程序中所有用到的地方就全部修改,节省时间。 #define KEYNUM 65//按键数量,用于Keycode[KEYNUM] #define LINENUM 8//键盘行数 #define ROWNUM 8//键盘列数 注意的地方: 1、宏名一般用大写 2、宏定义不是C语句,结尾不加分号 三、不要乱定义变量类型 以前写程序,当需要一个新的变量时,不管函数内还

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档