51单片机学习笔记5-模块化编程

目录

动态数码管模块化编程如下:

✅main.c

✅NiXie.c

✅NiXie.h

✅Delay.c

✅Delay.h


✅ 传统编程:所有代码(主函数、功能函数、变量定义)全部堆砌在 main.c 一个文件中,代码量一多就杂乱无章,可读性、维护性极差;

✅ 模块化编程:功能拆分、分文件存放 ------ 把 LED、按键、延时、串口等不同功能的代码,分别放到独立的 .c 文件中,通过 .h 头文件做声明,在 main.c 中只需 #include "xxx.h" 引入即可调用,完美解决了传统编程的痛点,

动态数码管模块化编程如下:

✅main.c

cpp 复制代码
#include <REGX52.H>
#include "NiXie.h"

void main()
{
	while(1)
	{
		NiXie(1,1);
		NiXie(2,2);
		NiXie(3,3);
		NiXie(4,4);
		NiXie(5,5);
		NiXie(6,6);
	}
	
}

✅NiXie.c

cpp 复制代码
#include <REGX52.H>
#include "Delay.h"

unsigned char NiXieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void NiXie(unsigned char Location,unsigned char Number)
{
	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=NiXieTable[Number];
  	Delay(1);
	P0= 0x00;
}

✅NiXie.h

cpp 复制代码
#ifndef _NIXIE_H_
#define _NIXIE_H_

void NiXie(unsigned char Location,unsigned char Number);    

#endif

✅Delay.c

cpp 复制代码
void Delay(unsigned int xms)		//@12MHz
{
	unsigned char i, j;
	while(xms)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
		xms--;
	}
	
}

✅Delay.h

cpp 复制代码
#ifndef _DELAY_H_
#define _DELAY_H_

void Delay(unsigned int xms);    

#endif
相关推荐
szxinmai主板定制专家4 小时前
X86 工控机 vs RK3588 异构主控:AMR 控制器 BOM、散热、长期运维对比
运维·stm32·单片机·嵌入式硬件·fpga开发·am62x
HQB20267 小时前
屹晶微电子 EG1130|2‑24V 输入 / 最高 28V 输出 内置 MOS 异步升压 DC‑DC|SOT23‑6|摄像头 / 车充 / 电池充电电源
嵌入式硬件·硬件工程
泛凡(Linyongui)8 小时前
基于 CW32L010 的智能厨卫调温旋钮方案--低成本 EC21 编码旋钮全解析
单片机·嵌入式硬件·c#
十年磨一剑~9 小时前
Linux 内核中断处理机制与软硬件协同流程
linux·嵌入式硬件
糖糖单片机设计10 小时前
基于单片机的热水器节能控制系统
单片机·嵌入式硬件
数字新视界10 小时前
数字孪生技术赋能智能化转型与创新实践
嵌入式硬件·物联网·系统架构·机房管理·动力与环境监控系统
HQB202611 小时前
屹晶微电子 EG1195|10‑120V/10A+ 外置 MOS 异步降压控制器|ESOP‑8|电动车转换器 / 快充 / 工业电源
嵌入式硬件·硬件工程
不悔哥12 小时前
开源LineageOS:旧手机刷上开源系统
嵌入式硬件·智能手机·开源
服务器硬件项目经理12 小时前
《超节点修仙录》· 第一卷·炼气期【第04话】 超节点 vs 普通服务器——不就是多插了几张卡吗?
运维·服务器·人工智能·嵌入式硬件·深度学习·机器学习
一次调频AGCAVC13 小时前
一次调频系统控制柜的组成及一次调频装置主机功能详述
人工智能·嵌入式硬件