第五章:项目工程的创建

第五章:项目模版的创建

前言

一个好的项目软件框架可以让我们很快的清除的了解整个项目的代码

1. 创建两个文件夹

  • app:存放主函数mian.cincludes总头文件
  • bsp:存放各个模块的驱动代码,每个模块包括一个.c和一个.h文件

image-20241103114710307

image-20241103120323304

image-20241103120410097

2. 在KEIL编译器添加文件

1. 新增文件组,新增app和bsp这两个文件组

image-20241103120557071

image-20241103120656732

2.在对应文件组添加.c.h文件

image-20241103120840460

image-20241103120955097

image-20241103121046027

image-20241103121144824

  • bsp文件组同理,但是bsp文件组只需要添加.c文件即可

image-20241103121341869

3. 添加头文件

1.点击魔法棒

image-20241103122341978

2.选择C51->点击 ...

image-20241103122602541

image-20241103122724718

image-20241103122822289

image-20241103122913661

编写代码完善项目模版

1. main.c

#include "includes.h"

int main(void)
{
	bsp_LedInit();
	while(1)
	{
		LED_Blink();
	}
	return 0;
}

2. includes.h

#ifndef _INCLUDES_H_
#define _INCLUDES_H_

/*
*********************************************************************************************************
*                                         C语言标准库
*********************************************************************************************************
*/
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "stdint.h"

/*
*********************************************************************************************************
*                                         	51库
*********************************************************************************************************
*/
#include "reg52.h"
#include "bsp_delay.h"
#include "bsp_led.h"

/*
*********************************************************************************************************
*                                         	公共变量
*********************************************************************************************************
*/

#endif

3. bsp_led.c

#include "bsp_led.h"

/*
*********************************************************************************************************
*	函 数 名: bsp_LedInit
*	功能说明: LED灯初始化,初始状态
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_LedInit(void)
{
	LED0 = OFF;
	LED1 = OFF;
}

/*
*********************************************************************************************************
*	函 数 名: LED_On
*	功能说明: 开启LED灯
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void LED_On(void)
{
	LED0 = ON;
	LED1 = ON;
}

/*
*********************************************************************************************************
*	函 数 名: LED_Off
*	功能说明: 关闭LED灯
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void LED_Off(void)
{
	LED0 = OFF;
	LED1 = OFF;
}

/*
*********************************************************************************************************
*	函 数 名: LED_Blink
*	功能说明: LED闪烁
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void LED_Blink(void)
{
	LED_On();
	bsp_DelayMS(BlinkDelay);
	LED_Off();
	bsp_DelayMS(BlinkDelay);
}

4. bsp_led.h

#ifndef _BSP_LED_H
#define _BSP_LED_H

#include "includes.h"

#define ON     1
#define OFF    0

#define BlinkDelay   500

sbit LED0 = P1^0;
sbit LED1 = P1^1;


/*
*********************************************************************************************************
*	函 数 名: bsp_LedInit
*	功能说明: LED灯初始化,初始状态
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_LedInit(void);

/*
*********************************************************************************************************
*	函 数 名: LED_On
*	功能说明: 开启LED灯
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void LED_On(void);


/*
*********************************************************************************************************
*	函 数 名: LED_Off
*	功能说明: 关闭LED灯
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void LED_Off(void);
	
/*
*********************************************************************************************************
*	函 数 名: LED_Blink
*	功能说明: LED闪烁
*	形    参: 无
*	返 回 值: 无
*********************************************************************************************************
*/
void LED_Blink(void);




#endif

5. bsp_delay.c

#include "bsp_delay.h"

/*
*********************************************************************************************************
*	函 数 名: bsp_DelayMS
*	功能说明: ms级延时函数
*	形    参: ms:延时多少个毫秒
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_DelayMS(unsigned int ms)
{
	unsigned char i, j;
	while(ms--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

6.bsp_delay.h

#ifndef _BSP_DELAY_H
#define _BSP_DELAY_H


#include "includes.h"

/*
*********************************************************************************************************
*	函 数 名: bsp_DelayMS
*	功能说明: ms级延时函数
*	形    参: ms:延时多少个毫秒
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_DelayMS(unsigned int ms);

#endif

结尾

如果您觉得这些内容有所帮助,还请点赞、评论和转发来支持一个正在努力码字的程序员。非常感谢!

如果您需要技术支持,欢迎私信我或留下您的联系方式。我是“代码之外”,期待与您的下次相遇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值