模块化编程

将代码拆分成多个小功能模块,便于下次写程序时直接调用。

 将此代码进行模块化处理

#include <REGX52.H>
void Delay(unsigned char time)		//@12.000MHz 单位为1ms
{		while(time--)
	{
		unsigned char i, j;

	i = 2;
	j = 239;
	do
	{
		while (--j);
	} while (--i);
	}
}



unsigned char  NumberTab[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
void nixie(unsigned char Location,Number)
{
	switch(Location)
	{	case 8:P24=0;P23=0;P22=0;break;
		case 7:P24=0;P23=0;P22=1;break;
		case 6:P24=0;P23=1;P22=0;break;
		case 5:P24=0;P23=1;P22=1;break;
		case 4:P24=1;P23=0;P22=0;break;
		case 3:P24=1;P23=0;P22=1;break;
		case 2:P24=1;P23=1;P22=0;break;
		case 1:P24=1;P23=1;P22=1;break;
	};
	
		P0   =NumberTab[Number];
	    Delay(1);
	    P0  =0X00;
	    
}
void main()
{
	
while(1)
{	nixie(1,5);//表示第1位显示5
	nixie(2,2);
	nixie(3,0);
	nixie(5,5);
	nixie(6,2);
	nixie(7,1);

}
while(1)
{}
}

处理结果:

main.c

#include <REGX52.H>
#include "Nixie.h"

void main()
{
	
while(1)
{	nixie(1,5);//表示第1位显示5
	nixie(2,2);//表示第2位显示2
	nixie(3,0);
	nixie(5,5);
	nixie(6,2);
	nixie(7,1);
}
while(1)
{}
}

time.c

void Delay(unsigned char time)        //@12.000MHz 单位为1ms
{        while(time--)
    {
        unsigned char i, j;

    i = 2;
    j = 239;
    do
    {
        while (--j);
    } while (--i);
    }
}

time.h

#ifndef __TIME_H_
#define __TIME_H_

void Delay(unsigned char time);

#endif

nixie.c   


#include <REGX52.H>
#include "time.h"


unsigned char  NumberTab[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
void nixie(unsigned char Location,Number)//Location表示位数,Number表示显示什么数字
{	
	
		switch(Location)
		{	case 8:P24=0;P23=0;P22=0;break;
			case 7:P24=0;P23=0;P22=1;break;
			case 6:P24=0;P23=1;P22=0;break;
			case 5:P24=0;P23=1;P22=1;break;
			case 4:P24=1;P23=0;P22=0;break;
			case 3:P24=1;P23=0;P22=1;break;
			case 2:P24=1;P23=1;P22=0;break;
			case 1:P24=1;P23=1;P22=1;break;
		};
	
		P0   =NumberTab[Number];
	    Delay(1);
	    P0  =0X00;//解决消影问题
	    
}

nixie.h

#ifndef __NIXIE_H_
#define __NIXIE_H_

void nixie(unsigned char Location,Number);

#endif

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值