51单片机应用开发(进阶)---模块化编程
实现目标
1、掌握.h 文件的格式、extern 的用法;
2、握模块化编程方法步骤;
3、具体实现:(1)提供一个C文件,将其按照功能模块进行模块化。
一、为什么要进行模块化编程?
传统的编程方式:
所有的函数均在main.c里,若使用的模块比较多,则一个文件内会有很多代码,不利于代码的组织和管理。而且很影响开发人员的思路。
模块化编程:
把各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数的声明,其他.c文件想使用其中的代码时,只需要 **#include<XXX.h>**即可。使用模块化编程可以极大的提高代码的可阅读性、可维护性以及可移植性。
二、预备知识
2.1 .c文件
存放的是函数、变量的定义
2.2 .h文件
可被外部调用的函数、变量的声明
2.3 预编译
三、模块化编程主要步骤
0、文件夹的创建
建一个文件夹装工程,再新建一个文件装各模块文件。
1、新建一个51单片机工程(参照以前)
建好工程后,新建两个组:USER、和DRIVER。
2、新增与模块对应的 .h .c 文件
将main.c 添加至USER文件夹;将delay.c 添加至DRIVER文件夹。
(1) .h 文件格式
#ifndef _DELAY_H_
#define _DELAY_H_
void Delay(unsigned int xms);
#endif
(2) .c 文件格式
#include "delay.h"
void Delay(unsigned int xms)
{
while(xms--)
{
unsigned char i, j;
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
(3)主函数C文件
#include <REG52.h>
#include "delay.h"
void main()
{
while(1)
{
Delay(10);
}
}
3、将各 .c文件添加至工程的组
将main.c 添加至USER组;将delay.c 添加至DRIVER组。
4、给有.h文件的组添加路径包含
如果不给.h 文件的路径包含进来,将会出现下面的错误。
四、练习
给定下面程序,请参照上面的步骤,将其模块化。要求:(1)创建USER、和DRIVER两个组;(2)新建main.c/delay.c/ delay.h/seg.c /seg.h 。
#include <REGX52.H>
sbit A1 = P2^2;
sbit B1 = P2^3;
sbit C1 = P2^4;
unsigned char gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void Delay500ms()//@11.0592MHz
{
unsigned char i, j, k;
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
int i;
C1 = 0;B1 =0;A1 =0;//数码管1 工作
while(1)
{
for(i = 0;i < 16;i++)
{
P0 = gsmg_code[i]; //显示
Delay500ms();
}
Delay500ms();
for(i = 15;i >= 0;i--)
{
P0 = gsmg_code[i]; //显示
Delay500ms();
}
}
}
五、实验效果
六、仿真实现
总结
原文地址:https://blog.csdn.net/luojuan198780/article/details/143816971
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!