• 单片机之模块化编程


    引言

    单片机编程时,如果代码量不多,可以将所有的函数和定义等放在一个main.c文件中,但是随着代码量的增加,如果将所有代码都放在同一个.C文件中,会使得程序结构混乱、可读性与可移植性变差,而模块化编程就是解决这个问题的常用而有效的方法。

    模块化设计的原则

    “高内聚,低耦合”

    高内聚:一个C文件里面的函数,只有相互之间的调用,而没有调用其它文件里面的函数,这样可以视为高内聚。尽量减小不同文件里函数的交叉引用。

    低耦合:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每一个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。

    模块化编程的方法

    1.创建一个.c源文件和一个.h头文件

    原则上文件可以任意命名;但强烈推荐如下原则:.c文件与.h文件同名;文件名要有意义,最好能够体现该文件代码的功能定义。
    例如:IIC通信源文件与头文件命名为IIC.c与IIC.h。

    2.防重复包含


    头文件中需要防重复包含处理,防止头文件在被多个文件引用的时候,让编译器在编译时不会多次编译。
    在.h文件中加入如下代码

    #ifndef XXX
    
    #define XXX
    
    //Your Code
    
    #endif
    

      

    其中的XXX原则上可以是任意字符,在同一个工程中各个.h文件的XXX不能相同,因此强烈推荐如下的规则:将.h文件的文件名全部都大写,“.”替换成下划线”_”,首尾各添加2个下划线”__”作为XXX。

    例如IIC.h中的写法:

    #ifndef __IIC_H__
    #define __IIC_H__
    
    //code
    
    #endif
    

      

    3.代码的封装

    .c文件中通常是:

    函数的定义
    只被本.c文件调用的宏定义
    .h文件中通常是
    函数的声明
    被外部调用的宏定义

    4.添加到工程中

    只需要将.文件添加到工程中,.h文件不同添加到工程里,同时在.c文件里把对应的.h文件包含进来。

    以下是一个IIC.h和IIC.c文件的内容

    IIC.h的内容

    #ifndef __I2C_H__
    #define __I2C_H__
    #include <reg52.h>
    #define uchar unsigned char
    sbit SDA=P2^0;
    sbit SCL=P2^1;
    void delay();
    void start();
    void stop();
    void ack();
    void nack();
    void write_byte(uchar date);
    uchar read_byte();
    void write_at24c02(uchar address ,uchar date);
    uchar read_at24c02(uchar address);
    #endif

    IIC.c的内容

    #include "i2c.h"
    void delay()
    {
    	;;
    }
    /*各个函数的定义*/
    

    main.c内容

    #include <reg52.h>
    #include "i2c.h"
    void main() {   //code }

     

    欢迎大家关注我的个人博客 http://www.wangchaochao.top/
    微信扫码关注我的公众号

    不定期更新个人学习笔记和技术总结,欢迎大家互相学习交流!

  • 相关阅读:
    几种sap增强的查找方法
    BAPI_ACC_DOCUMENT_POST Enter rate / GBP rate type M for Error SG105
    SAP TAX CODE 自动计算税金(BAPI_ACC_DOCUMENT_POST CALCULATE_TAX_FROM_GROSSAMOUNT)
    Python入门资料
    认知决定你的格局,和财富差距 (转)
    微信支付,支付宝支付,银联支付——三大支付总结
    Android 日志记录杂谈-Logger,Timber,logback-android
    好全的Android面试题
    Android界面性能调优手册
    50 篇 Android 干货文章
  • 原文地址:https://www.cnblogs.com/whik/p/6651313.html
Copyright © 2020-2023  润新知