【51单片机零基础-chapter5:模块化编程】

模块化编程


将以往main中泛型的代码,放在与main平级的c文件中,在h中引用.

简化main函数

将原来main中的delay抽出

然后将delay放入单独c文件,并单独开一个delay头文件,里面放置函数的声明,相当于收纳delay的c文件里面写的函数的接口.

注意,单个c文件所有用到的变量需要在该文件里面声明或引用,函数也是.

存放头文件的地址修改处,但是一般用不着

预编译

c 复制代码
#define AAA

#ifdef AAA
fx//会执行
#endif

#ifndef AAA
gx//不会执行,因为AAA已经定义
#endif

所以无论头文件定义什么,一般都会包围语句

fx.h:

c 复制代码
#ifndef __FX_H__		//加

#define  __FX_H__
void fx(...)

#endif		//加

#include <.h>是安装目录里面找

#include ".h" 是程序目录里面找

可以软件里add new新建文件

也可也外部已有文件add existing


同时在主文件里右键open头文件可以打开则成功

c 复制代码
模块化编程
main.c``````````````````````````````````
#include <REGX52.H>
#include "Delay.h"
#include "light.h"
void main(){
	while(1){
		light(1,9);Delay(1);
		light(2,8);Delay(1);
		light(3,5);Delay(1);
		light(6,2);Delay(1);
		light(7,1);Delay(1);
		light(8,1);Delay(1);
	}
}

Dalay.c`````````````````````````````````
#include <REGX52.H>
void Delay(unsigned char x)		//@12.000MHz
{
	while(x--){
		unsigned char i, j;
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

Delay.h`````````````````````````````````````````
#ifndef __DELAY_H__
#define __DELAY_H__
void Delay(unsigned char x);
#endif

light.h
#ifndef __LIGHT_H__
#define __LIGHT_H__
void light(unsigned char location,num);
#endif

light.c
#include <REGX52.H>
#include "Delay.h"
unsigned char lednum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void light(unsigned char location,num){
	switch(location){
		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=lednum[num];
	Delay(1);
	P0=0x00;
}
相关推荐
二年级程序员7 小时前
51单片机的五类指令(五)——位操作类指令
单片机·嵌入式硬件·51单片机
猫猫的小茶馆14 小时前
【PCB工艺】软件是如何控制硬件的发展过程
开发语言·stm32·单片机·嵌入式硬件·mcu·51单片机·pcb工艺
电子艾号哲1 天前
51单片机总结
单片机·嵌入式硬件·51单片机
二年级程序员2 天前
51单片机的五类指令(一)——数据传送类指令
汇编·单片机·嵌入式硬件·51单片机
二年级程序员2 天前
51单片机的五类指令(三)——逻辑操作类指令
单片机·嵌入式硬件·51单片机
二年级程序员2 天前
51单片机的五类指令(二)——算术运算类指令
单片机·嵌入式硬件·51单片机
F133168929573 天前
WD8001打奶棒芯片
stm32·单片机·嵌入式硬件·51单片机
猫猫的小茶馆4 天前
【PCB工艺】时序图(Timing Diagram)
stm32·单片机·嵌入式硬件·mcu·51单片机·pcb工艺
@小张要努力4 天前
第十三届蓝桥杯国赛电子类单片机学习记录(客观题)
单片机·嵌入式硬件·mcu·学习·蓝桥杯·51单片机·proteus
wind_one14 天前
002-51单片机-引脚功能
单片机·嵌入式硬件·51单片机