当前位置:   article > 正文

c语言单片机模块化编程,初步认识51单片机-2.4单片机C语言模块化编程

单片机c语模块化编程

原标题:初步认识51单片机-2.4单片机C语言模块化编程

2.2

这里插入一节,讲讲单片机C语言的模块化编程。什么叫做模块化编程。前面我们写的代码全部在.c文件中,试想一下,如果代码过多,怎么阅读。另外与你合作的人如何看懂你的代码。简单的讲,没有可读性和移植性。模块化编程就是为了解决这个问题。当一个工程量比较大时,我们会把这个工程分成一段一段的任务,每个人完成不同段的任务。同时每个段之间是有联系的。假设开发人员A需要条用B的某个功能模块,那么A只要关注模块的功能和如何调用就行了,至于这个功能是如何实现的,可以不用理会。另外,对于单个人员开发完某个工程,下一个工程可能需要同样的功能模块,同样只需要知道如何调用该模块就可以了,无需再去研究该段代码实现功能的过程。还有一个工程如果过大,出现了错误,不容易排查错误。但是按照一个一个模块的思路来排查,思路就显得更清晰。

下面我们来看看如何建立单片机C语言模块化编程

(1)打开Keil软件,Project->New uVersion Project

cfa9dc0edaffe6b9899c5ea2ae6f3a5b.png

打开led文件夹,在file name中输入led并保存

(2)选择单片机型号,前面讲过不罗嗦

(3)弹出一个对话框,选择yes

59d913cc844f2997a517975d5623484c.png

(4)新建一个空白文件或者使用ctrl+N,然后保存(ctrl+S),取名为src

cf610a640e541fdebe31768e93c6606b.png

然后双击src文件夹,在file name中输入main.c并保存。

在main.c中输入以下程序:

#include

void main(void)

{

}

然后保存

(5)点击project->options for Target ‘target 1’…

fecee1cefb68b4beb86be81216ca1466.png

(6)在target中,选择晶振为11.0592

829463fa2ed0a70ca78771f5b5f895bb.png

(7)然后点击output, 勾选Creat HEX File,然后点击Select Folder for Objects…

f0bb2b6a314552b29cf4c12178da88b3.png

(8)此时会弹出一个对话框,新建一个文件夹并取名为output,然后双击output文件夹,点击确定

f72a0ceff28de7f536fae7b9fe9402ca.png

(9)然后点击Listing,之后点击Select Folder for listings

d6605db0ca9241021330e60f52f07fd8.png

(10)在弹出的对话框中双击output,点击ok,再次点击ok.

2b7375f2d0ec747492aa86ed788a7a49.png

(11)回到主界面,右键单击source group, 选择add files to group”sourcegroup1”…

73f6b348d00775e0820b082a8b8f096a.png

(12)在弹出的对话框中双击src,点击main.c,再点击Add,然后点击close

206b9ea3fe212fab1710f4e818fe612b.png

(13)src文件夹中存放源码,当我们点击编译时,输出相关的文件会存放在output中

048143142e8c0bc31480a2842bb63b08.png

(14)现在我们新建四个文件,led.c,led.h,delay.c,delay.h. 我们把前面写的程序分成三个模块,main.c部分,led.c部分,delay.c延时部分. 如何新建这些文件,同样的,点击创建空白文件(ctrl+N),然后保存(ctrl+S),将保存路径选择在src文件夹中,如果要建立led.c,则filename为led.c,如果要建立led.h,则filename为led.h

6187ea82a099f18a4c3201882ea22ffa.png

(15)建好这四个文件后,在led.c中输入如下内容:

#include

sbit = P1^0;

void ledON(void)

{

LED =0;

}

void ledOFF(void)

{

LED=1;

}

复制代码

然后点击保存。

在led.h中输入

#ifndef _LED_H_

#define _LED_H_

extern void ledON(void);

extern void ledOFF(void);

#endif

复制代码

在delay.c中输入,

unsigned int i;

void delay(void)

{

for(i=0;i<30000;i++);

}

复制代码

在delay.h中输入:

#ifndef _DELAY_H_

#define _DELAY_H_

extern void delay(void);

#endif

复制代码

在main.c中输入:

#include

#include "delay.h"

#include "led.h"

void main(void)

{

while(1)

{

ledON();

delay();

ledOFF();

delay();

}

}

复制代码

(16)添加led.c,delay.c文件

584af335da047ece4b49633fed9b7d2e.png

(17)点击编译,检查错误,完成。

责任编辑:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/482363
推荐阅读
相关标签
  

闽ICP备14008679号