蓝桥杯比赛单片机设计与开发 工程创建和点亮LED

蓝桥杯单片机设计与开发(1)

蓝桥杯单片机组比赛采用的是国信长天CT107D开发板,处理器采用的是STC15F2K60S,今天我向大家介绍的是怎样 建立多文件多文件工程 以及 74HC138 的使用的方法。

对文件工程的创建方法:

(1)多文件创建有两个要点:
1.以.h开头文件的包括;
2…c文件的添加
(2)1.首先创建文件夹“点亮LED”,并且在文件夹内创建者三个文件夹
用来存储工程文件,.c和.h文件夹存储在命名为FWLIB文件夹内部。工程生成的HEX文件存储在OBJ中,main.c和主头文件村吹在USER中。

2.打开keil 5,创建工程,命名后保存在USER文件夹下在这里插入图片描述
保存后会出现mcu的选择界面:在这里插入图片描述在选择框中选择 STC MCU Database 中search ST15F2K60S,点击OK。

3 . 在这里插入图片描述
点击keil中这个图标并在其中添加这三个文件夹
在这里插入图片描述
点击OK。
然后点击这个图标,在这里插入图片描述
选择Output界面,勾选Creat HEX File,选择select folder for objects,然后选择创建的文件夹OBJ,用于存储生成的HEX文件。
此时工程创建已经基本完毕,下面是文件的添加
4.点击keil中的NEW或者(CTRL+N)创建代码编辑页面命名为main.c点击保存,保存在USER文件夹下在这里插入图片描述
再利用同样方法创建命名为include.h也保存在USER文件夹下。(名字可以自由命名,不一定非要按照我写的)在这里插入图片描述
保存后在这里插入图片描述
双击USER文件夹将main.c添加入工程中。
重磅来啦~~~~~
.h的文件的添加在这里插入图片描述
点击这个图标选择C51,选择include paths在这里插入图片描述
选择保存.h文件夹的路径(!注意这里必须是保存.h的文件夹,不能是文件夹的上一层)。
所有的.h文件添加方法都可以参照这个方法
main.c中可以写

# include "include.h"



void main()
{
	while(1)
	{
		
	}
	
}

include.h中写

#ifndef _INCLUDE_H_
#define _INCLUDE_H_



#include "STC15F2K60S.h"
#include "intrins.h"



#endif

在以同样的方法创建两个空白编辑页面命名为enable138.c和.h保存在FWLIB中创建的enable138文件夹下在这里插入图片描述
点击工程中的FWLIB将enable138.c添加入工程中,再以同样的方法在C51中添加.h文件。
74HC138的封装程序:
enable.c 文件

#include "enable138.h"

void enable138(uchar x)
{
	P2&=0X1f;    //先将138 A B C 置位0 0 0输出Y0为低,其他为高
	P2|=(x<<5); //X左移5位后通过或非门对对应的74HC573送入数据
	
	_nop_();
	_nop_();
	P2&=0X1f;//在此将P2置位
}

enable.h文件

#ifndef _ENABLE_H_
#define _ENABLE_H_


#include "include.h"
#define LED 4
#define DU 7
#define WE 6
#define ULN2003  5

extern void enable138(uchar x);

#endif

上边程序可作为蓝桥杯中74HC138的封装程序,直接调用即可。
下边为include.h文件

#ifndef _INCLUDE_H_
#define _INCLUDE_H_

#define uchar unsigned char 
#define uint unsigned int

#include "STC15F2K60S2.h"
#include "intrins.h"
#include "enable138.h"
#endif

点亮所有led,所有外设初始化:

# include "include.h"
void suoyouwaishe_Init()
{

	P0=0xff;
	enable138(LED);
	P0=0x00;
	enable138(ULN2003);
	P0=0x00;
	enable138(WE);
	P0=0xff;
	enable138(DU);

}


void main()
{
	suoyouwaishe_Init();
	while(1)
	{
		P0=0x00;//点亮所有led
		enable138(4);
		
	}
	
}

解释:138封装中定义的DU位数码管段选,WE为数码管位选。

写文章真的好难,哈哈!!我以后会坚持与大家分享各种蓝桥杯的程序写法,欢迎各位吐槽与提问,大家一起进步!!

发布了2 篇原创文章 · 获赞 2 · 访问量 108

猜你喜欢

转载自blog.csdn.net/weixin_44874337/article/details/104163334