新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > c語言模塊化編程的方法

        c語言模塊化編程的方法

        作者: 時間:2012-09-15 來源:網絡 收藏

        模塊化設計原則:
        第一步:創建頭文件(源文件與頭文件同名如delay.c與delay.h)
        第二步:防止重復包含處理
        在.h文件里加入
        #ifndefXXXX
        #defineXXXX
        .......
        #endif

        例如:
        #ifndef_DELAY_H__
        #define_DELAY_H__
        .......
        #endif
        第三步: 代碼封裝(內部調用【.h封裝外部調用的部分】)
        封裝成函數或者宏定義以便提高可讀性和可修改文件,盡量少用或者不用全局變量
        第四步:使用源文件
        .c文件添加到文件中
        實例:
        delay.h文件

        #ifndef __DELAY_H__
        #define __DELAY_H__
        #define uchar unsingned char
        #define uint unsigned int
        void delay50us(uint t);
        void delay50ms(uint t);
        #endif

        delay.c文件
        #includereg52.h>
        #include"實例.h"
        void delayus(uint t)//延時函數
        { uint j;
        for(;t>0;t--)
        for(j=6245;j>0;j--);


        }
        void delayms(uint t)//延時函數
        { uint j;
        for(;t>0;t--)
        for(j=6245;j>0;j--);


        }
        數碼管.h文件

        #ifndef __DELAY_H__
        #define __DELAY_H__
        #define"實例.h"
        #define uint unsigned int
        void dispaytable(uchar *p);
        void dispayt(uchar num0,uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6,uchar num7,);
        #endif

        數碼管.c文件
        #include"數碼管.h"
        #include"模塊化編程實例.h"
        unsigned char code smg_du[]={0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0x7f};
        unsigned char code smg_we[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};
        void display_table(uchar *p)
        {
        uchar i;
        foe(i=0;i8;i++)
        {
        P1=smg_du[*p];
        P2=smg_we[i];
        delay_50us(20);
        }
        }
        void display(uchar num0,uchar num1,uchar num2,uchar num3,uchar num4,uchar num5,uchar num6,uchar num7,)
        {
        P1=smg_du[mun0];
        P2=smg_we[0];
        delay_50us(20);

        P1=smg_du[mun1];
        P2=smg_we[1];
        delay_50us(20);

        P1=smg_du[mun2];
        P2=smg_we[2];
        delay_50us(20);

        P1=smg_du[mun3];
        P2=smg_we[3];
        delay_50us(20);

        P1=smg_du[mun4];
        P2=smg_we[4];
        delay_50us(20);

        P1=smg_du[mun5];
        P2=smg_we[5];
        delay_50us(20);

        P1=smg_du[mun6];
        P2=smg_we[6];
        delay_50us(20);

        P1=smg_du[mun7];
        P2=smg_we[7];
        delay_50us(20);

        }


        mian.c文件
        #include"數碼管.h"
        #includereg52.h>
        #include"模塊化編程實例.h"
        sbit rst=P3^6;
        unsigned char table[]={2,3,4,5,6,7,8,9};
        void main()
        {
        rst=0;
        while(1)
        { display_tale(table);
        }
        }

        pid控制相關文章:pid控制原理


        c語言相關文章:c語言教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 罗山县| 大石桥市| 夏邑县| 青海省| 巩留县| 南阳市| 尚义县| 岳西县| 杂多县| 绥化市| 新邵县| 新丰县| 双柏县| 永宁县| 景宁| 永年县| 东乡| 赫章县| 宜君县| 蕉岭县| 巩义市| 冀州市| 景泰县| 山阳县| 郓城县| 故城县| 黑水县| 肇源县| 合江县| 新巴尔虎左旗| 禹州市| 房产| 长垣县| 洛浦县| 丹阳市| 崇阳县| 洪江市| 南木林县| 海城市| 西乌珠穆沁旗| 衡阳县|