0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

万事开头难,51单片机的头文件怎么写?

j4AI_wujianying 来源:杨湘祁 作者:电子发烧友 2019-03-12 16:00 次阅读

众里寻他千百度,默然回首还是看不懂你的代码!

我相信,对于初学单片机编程或其他语言编程的朋友来说,刚开始我们编程时总喜欢把所有的代码都写在一个文件中。

(当然如果你是绝世天才那就另当别论了,哈哈)。其实我也如此,刚开始我就想,将所有的代码都写在一个文件中那该多

方便,打开一个文件都可以看清。当然,起初我们很容易看明白,因为你我都知道,咱写的代码只有那寥寥几行,倒着背都

能背下来。但当后来我们写的代码越来越多时,我们往往苦于阅读自己的代码。

因此,我们可以将一个程序写在多个文件中(即以.c为后缀的文件中)。这时聪明的你就会问了,那么我写了了这么多文

件,最后只通过一个按钮编译,生成HEX这个家伙,那么各文件又是怎样联系一起的呢?(啊,说了这么多,终于说到点子

上了,ZC一下,看来我的语言表达能力的确得练练)这就是头文件存在的价值呀!

好了,说重点。那么头文件中都改装些什么呢?简单来说就是 预处理+引脚定义+函数名。再多的汉字也表达不了我的意

思,还是代码说话吧。/****下面是一个关于GPS模块的程序头文件,文件名:GPS.h****/#ifndef _GPS_H_ #define _GPS_H_ //_GPS_H_与文件名一致,只是改为大写 #define uint unsigned int #define uchar unsigned char typedef struct{ //你知道结构体是干啥的吗?装几个变量int month;int year;int data;int hour;int minute;int second; //这几个变量用来"装"GPS接收到的时间}dataTime; ..... //后面仍是一个结构体,类似,所以我想偷一下懒用。。。代替 /******下面是一系列函数名,再GPS.C中编写函数*******/ void gpsInit(void); //GPS初始化程序,gpsInit为函数名我比较喜欢用匈牙利/驼峰命名法,强 烈推荐 int gpsRmcParse(char *line, gpsInfo *gps); //RMC为接收到的数据头 int gpsGgaParse(char *line, gpsInfo *gps); int gpsGsvParse(char *line, gpsInfo *gps); void integerToString(int x, char *str); //整型转字符串 #endif //程序结束

上面就是这个头文件,我们可以就看到它的格式就是这样的#ifndef ......#define............#endif

如果使用的什么模块要接到I/O口,就在头文件中写

#includesbit ...sbit ...sbit ...sbit ...//等这样的代码,至于意思嘛,你当然懂!

现在,头文件写完了,那么接下来的工作就简单多了,将你的头文件加载到所要使用该头文件中内容的C文件中。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 51单片机
    +关注

    关注

    269

    文章

    5642

    浏览量

    120433
  • 头文件
    +关注

    关注

    0

    文章

    22

    浏览量

    9793

原文标题:51单片机的头文件究竟该如何写?

文章出处:【微信号:wujianying_danpianji,微信公众号:单片机精讲吴鉴鹰】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    万事开头难,开关电源设计就应该这样一步一步来

    针对开关电源很多人觉得很难,其实不然。设计一款开关电源并不难,难就难在做精,等你真正入门了,积累一定的经验,再采用分立的结构进行设计就简单多了。万事开头难,笔者在这就抛砖引玉,慢慢讲解如何一步一步设计开关电源。
    的头像 发表于 01-07 09:21 2.1w次阅读
    <b class='flag-5'>万事开头难</b>,开关电源设计就应该这样一步一步来

    求高人指点

    本人刚刚学习单片机万事开头难啊!我现在就被困在这儿啊!在网站上能看到很多精彩实验的例程,但是由于不太会读程序,所以一直止步不前。想请高人指点!QQ:347644353
    发表于 06-03 14:44

    从0开始学习51单片机第一集

    还下载了郭老师的单片机视频来热身。我看了一个下午,我想睡觉了。俗话说得好啊,万事开头难呢!以前我从没有体会到这句话的份量。我真的完全忘记了以前学过的了。我着急,着急着找回以前的感觉。神赐我力量!好啦
    发表于 09-21 23:58

    循迹智能车的制作--我如何进入单片机的世界的

    `万事开头难,只有经历过来之后才感觉:哦,原来就是这样的呀不多说了,共有三个模块最小系统循迹模块驱动(298的)`
    发表于 10-19 17:32

    单片机无线通信模块开发与应用

    得很,因为,万事开头难嘛,这么着,让我来带路吧。https://www.elecfans.com/soft/33/2012/20120210259804.html
    发表于 11-10 11:50

    51基础怎么入门pic

    我之前用开发板学的51,现在能用用板做些小项目,做了几年电子维修,对硬件比较熟悉,不想再买开发板了想用仿真入门pic,万事开头难,折腾了两天仿真电路搞好了,没搞懂pic怎么用c语言生成hex.下载
    发表于 07-24 12:13

    至芯科技奋斗的小孩之altera系列基础应用

    本帖最后由 zxopen09 于 2016-9-27 10:47 编辑 万事开头难,这里为大家分享一些基础性的东西,希望能帮助到初学者,会不断更新,麻烦收藏。---------------------------------------------------------------------------
    发表于 08-02 17:30

    学习STM32一段时间了,想上系统应该怎么开始学习

    没接触过这个,都说万事开头难,想请教一下,应该怎么开始学习,看什么资料或者视频?大家指导一下吧
    发表于 04-10 06:36

    FPGA学习基础资料

    学习FPGA基础资料,俗话说万事开头难,将自己学习的一些资料给大家分享出来,希望能够帮到大家,顺便赚点积分下载更多的学习资料!
    发表于 03-17 14:14

    学习51单片机需要学习哪些知识点?

    作为一名入门级的工程师,万事开头难,只要知道学习51单片机需要学习哪些知识点就万事大吉了。然后再系统的将知识点全部掌握即可。那么我们一起看看吧,到底要学习哪些呢?实际上,其实不需要多少
    发表于 10-22 13:49

    【HarmonyOS HiSpark Wi-Fi IoT 套件试用连载】万事开头难,先点个LED灯

    万事开头难,之前花了很多时间搭环境,我的电脑又比较老旧,编译老是报错,后面改用云服务器后,终于可以撸代码了。先点个LED灯试试看吧,哈哈!根据官方教程 https
    发表于 12-24 01:43

    学习单片机的心得体会(转载)精选资料推荐

    实验板,很简单的功能,比论坛实验板还要少功能,还有一个仿真器,也是比较简单的,SST芯片的。然后开始从大家都知道的流水灯写起,万事开头难,第一个程序基本上就抄人家的,翻查了一份快速入门的学习资料,...
    发表于 07-16 06:00

    【乐鑫ESP32-C3 RISC-V处理器IoT开发板试用体验】万事开头难,看着文档搞个Hello_world示例工程!

    ` 本帖最后由 abcd7471 于 2021-7-25 17:20 编辑 万事开头难,拿到开发板已经有一些时间了,今天才有空来搞一下这块板子。开搞之前,首先是阅读官方文档,看快速入门章节
    发表于 07-25 16:56

    如何学习单片机

    1、万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口,说KEIL不会建项目啦、没有实验板啦之类的。遇到困难要一件件攻克,不会建项目,就先学它,这方面网上教程很多,随便找找看一下,做几次
    发表于 01-17 06:09

    怎样使用固件库来进行点灯呢

    学过51再上手32比较简单,但又不简单。简单在于对单片机编程有一定的了解困难在于初识固件库万事开头难粗略地来说无非是打开时钟 初始化引脚 代码风格更正式规范了
    发表于 02-24 06:26