这里插入一节,讲讲单片机C语言的模块化编程。什么叫做模块化编程。前面我们写的代码全部在led.c文件中,试想一下,如果代码过多,怎么阅读。另外与你合作的人如何看懂你的代码。简单的讲,没有可读性和移植性。模块化编程就是为了解决这个问题。当一个工程量比较大时,我们会把这个工程分成一段一段的任务,每个人完成不同段的任务。同时每个段之间是有联系的。假设开发人员A需要条用B的某个功能模块,那么A只要关注模块的功能和如何调用就行了,至于这个功能是如何实现的,可以不用理会。另外,对于单个人员开发完某个工程,下一个工程可能需要同样的功能模块,同样只需要知道如何调用该模块就可以了,无需再去研究该段代码实现功能的过程。还有一个工程如果过大,出现了错误,不容易排查错误。但是按照一个一个模块的思路来排查,思路就显得更清晰。
下面我们来看看如何建立单片机C语言模块化编程
(1)打开Keil软件,Project->New uVersion Project
打开led文件夹,在file name中输入led并保存
(2)选择单片机型号,前面讲过不罗嗦
(3)弹出一个对话框,选择yes
(4)新建一个空白文件或者使用ctrl+N,然后保存(ctrl+S),取名为src
然后双击src文件夹,在file name中输入main.c并保存。
在main.c中输入以下程序:
- #include
- void main(void)
- {
- }
- 然后保存
(5)点击project->options for Target ‘target 1’…
(6)在target中,选择晶振为11.0592
(7)然后点击output, 勾选Creat HEX File,然后点击Select Folder for Objects…
(8)此时会弹出一个对话框,新建一个文件夹并取名为output,然后双击output文件夹,点击确定
(9)然后点击Listing,之后点击Select Folder for listings
(10)在弹出的对话框中双击output,点击ok,再次点击ok.
(11)回到主界面,右键单击source group, 选择add files to group”sourcegroup1”…
(12)在弹出的对话框中双击src,点击main.c,再点击Add,然后点击close
(13)src文件夹中存放源码,当我们点击编译时,输出相关的文件会存放在output中
(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
(15)建好这四个文件后,在led.c中输入如下内容:
- #include
- sbit LED = 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文件
(17)点击编译,检查错误,完成。
上一篇:51单片机之寄存器-3.1单片机定时器
下一篇:初步认识51单片机-2.3单片机控制DS18B20温度传感器模块
推荐阅读最新更新时间:2024-03-16 14:48
设计资源 培训 开发板 精华推荐
- 柔灵科技陈涵:将小型、柔性的脑机接口睡眠设备,做到千家万户
- 微灵医疗李骁健:脑机接口技术正在开启意识与AI融合的新纪元
- USB Type-C® 和 USB Power Delivery:专为扩展功率范围和电池供电型系统而设计
- 景昱医疗耿东:脑机接口DBS治疗技术已实现国产替代
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计