欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 51单片机应用开发(进阶)---模块化编程

51单片机应用开发(进阶)---模块化编程

2025/4/13 0:18:16 来源:https://blog.csdn.net/luojuan198780/article/details/143816971  浏览:    关键词: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();}		}
}

五、实验效果

六、仿真实现


总结

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词