第五章:项目模版的创建
前言
一个好的项目软件框架可以让我们很快的清除的了解整个项目的代码
1. 创建两个文件夹
- app:存放主函数
mian.c
和includes
总头文件 - bsp:存放各个模块的驱动代码,每个模块包括一个
.c
和一个.h
文件
2. 在KEIL编译器添加文件
1. 新增文件组,新增app和bsp这两个文件组
2.在对应文件组添加.c
和.h
文件
- bsp文件组同理,但是bsp文件组只需要添加
.c
文件即可
3. 添加头文件
1.点击魔法棒
2.选择C51->点击 ...
编写代码完善项目模版
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
结尾
如果您觉得这些内容有所帮助,还请点赞、评论和转发来支持一个正在努力码字的程序员。非常感谢!
如果您需要技术支持,欢迎私信我或留下您的联系方式。我是“代码之外”,期待与您的下次相遇