keil5 的模块化编程详解 |
您所在的位置:网站首页 › keil5怎么编写程序 › keil5 的模块化编程详解 |
模块化编程是什么?就是可以吧你学的程序分成一个个模块,方便修改和移植。从事单片机和嵌入式这方面,编程具有强大移植性可以说是重中之重,如果你写一些LED数码管之类的小程序, 用模块化编程有些小题大做。但是在团队做项目中,需要不同的人负责不同的一段程序,这时候就需要模块化编程了,在个人编大程序时也要用,因为好修改,想想你的代码几十行还好,如果 几百几千行呢?所以说到这里,可见模块化编程几乎是所有大程序要做的,不然怎么修改?尤其是单片机这种灵活的语言。(建议有C语言基础的同学看) 先提前说说与模块化编程有关的关键字加上英文意思; static(静止的) extern(外部的) typedef(类型定义) #define(定义) ********************************** #ifndef __**_H_ //如果有**.h文件,就。。。 #define __**_H_ //如果没有就寻找**.h文件
#endif //否则就结束 呵呵,先看看热热身 ,我们知道C语言有.c文件和.h文件,.c文件就是我们写的程序。.h文件呢是库文件,在写C语言程序的时候, #include“***.h”或include,就是寻找库文件路径的意思,只是开始寻找的起点不同, 比如printf输出函数在stdio库里就有这个函数,我们只不过是拿来用而已,我想表达的是,库文件里面存了方便我们去写程序的函数(也是程序,不过以函数的形式打包来让我们用) 顺便说说code这个关键字吧,比如 int code arr[]={};意思是把这个 i 变量的所占用的空间放在ROM中,也就是只读存储器,这样动态数据就可以拥有更多的空间速度也快了CPU也轻松了。单片机的内存是很宝贵的,RAM的容量运比ROM的小,而RAM又与CPU挂钩,其实我们手机的性能好不好与RAM有很大关系,我们说的运行内存就是RAM,太专业的小编也不会,我们知道code可以节省单片机内存就知道了。 关键字这些与内存挂钩,C语言难也是难在内存上,我们掌握基本的用法来编C51就行不是吗,我这里是浅谈, 想深入了解static的点这个链接 https://blog.csdn.net/keyeagle/article/details/6708077 static 在程序中的作用是,当你在变量或函数面前加static后,表示该函数或变量就只能在这个C文件里用了,相当于一把锁来锁住它们。 想深入了解extern的点这个链接 https://www.cnblogs.com/Lunais/p/5991135.html typedef和#define在两个宏定义很常用,以后还会专门为typedef搞个库方便调用, 比如现在要定义数据类型 可以这样 typedef int P;(加分号) #define P int(不允许加任何符号) 在后面要用到int来定义变量时可以直接,P i=0(int i=0); 我们用宏定义给这个数据可惜起了一个新名字P;C51的大程序里用的很多; typedef unsigned int uInt8; typedef unsigned char uChar16; 表示用uInt8新名字来代替unsigned int的类型 接下来开始模块化编程,想按照步骤试试一遍,首先建立一个文件夹
建立四个文件夹,c文件夹放.c文件,h文件夹放.h文件,main文件夹放main.c主函数文件,project文件夹放一些项目文件; 这样可能有点晕是吧,没事下面就懂了;打开keil软件新建项目
全部保存效果是这样的 一个C文件对应一个h文件,名字一样,这样好找。现在可以先在C文件里编程,也可以先提前设置好一些东西,这个前后顺序是没关系的,我先设置吧
问题来了,这么多的C文件,我们要把编译的路径告诉给软件,不然找不到H也就是库文件,之前不是模块化编程我们不用理路径,是应为软件自带了#include"reg52.h"这些了,而现在我们是要自己 造出#include“”这些,所以要给路径,
第五是搞路径的如图
编译后有两个警告是因为两个H文件夹没用,接下来编程;
还有就是特别注意,#include" **.h"这里的名字一定是和H文件夹的名字一样。 是的delayh文件书写格式是这样的;把函数名搞都里面;其实还要在void前面加extern的,但是keil5软件是默认前面已经加了,所以可加可不加;还有就是#ifndef后面加的这些__DELAY_H_ 红色部分是可以以随便起不与其它重复的名称的,但是不管起什么名都得和下面#define一样,
所以接下来
那写个主程序main编译后就直观了。 零错误警告 看到了吗,箭头的地方是那些h文件,是不是层层叠起来的,所以现在有点明白了这些格式的含义和模块化编程的强大了吗, 都练习几次,加深理解,还有学到这里读者可以去网上看看别的模块化程序,还有很多技巧笔者就不多说了,有了基础可以慢慢理解别人的的知识,然后 会做,最后形成自己的编程风格。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |