其实模块化编程在c语言中就是属于:把一个c语言程序分别放在不同的文件中,使用时随时调用即可;
接着我们把上节课的代码用模块化编程实现:
定义一个源文件:main.c:
#include <REGX52.H>
#include "Delay.h"
#include "Nixie.h"
void main()
{
while(1)
{
//add(1,1);
//Delay(2);
//add(2,2);
//Delay(2);
add(3,5);
Delay(2);
//add(4,4);
//Delay(2);
add(5,2);
Delay(2);
//add(6,6);
//Delay(2);
add(7,0);
Delay(2);
//add(8,8);
//Delay(99);
}
}
然后在定义一个Delay.c源文件:
void Delay(int x) //@11.0592MHz
{
unsigned char data i, j;
while(x--)
{ i = 11;
j = 190;
do
{
while (--j);
} while (--i);}
}
然后在定义一个头文件Delay.h:
#ifndef __DELAY_H__
#define __DELAY_H__
void Delay(int x);
#endif
然后再定义一个源文件Nixie,c:
#include <REGX52.H>
#include "Delay.h"
char shuzitable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0X7F,0x6F};
void add(char weizhi,shuzi)
{
switch(weizhi)
{
case 1:P2_4=1;P2_3=1;P2_2=1;break;
case 2:P2_4=1;P2_3=1;P2_2=0;break;
case 3:P2_4=1;P2_3=0;P2_2=1;break;
case 4:P2_4=1;P2_3=0;P2_2=0;break;
case 5:P2_4=0;P2_3=1;P2_2=1;break;
case 6:P2_4=0;P2_3=1;P2_2=0;break;
case 7:P2_4=0;P2_3=0;P2_2=1;break;
case 8:P2_4=0;P2_3=0;P2_2=0;break;
}
P0=shuzitable[shuzi];
Delay(1);
P0=0x00;
}
最后在定义一个头文件Nixie.h:
#ifndef __NIXIE_H__
#define __NIXIE_H__
void add(char weizhi,shuzi);
#endif
最后这个代码就实现了