第十五届蓝桥杯备赛记录

        在此博客上记录2023至2024年,我在寒假假期所学有关蓝桥杯—单片机的相关知识。方便日后整理温习。

(0基础入门一)

1.1 开发软件

Keil5 编写程序        STC-ISP 下载程序

1.2 新建工程

1.每一个不同的工程项目对应一个不同的文件夹。每个项目下应该有一个固定的文件夹user。

第十五届蓝桥杯备赛记录_第1张图片第十五届蓝桥杯备赛记录_第2张图片

2.芯片选择AT89C52。(芯片的选择不一定,根据要求进行选择)

3.打开“品”字工具栏,修改相关信息。(注意要对应)

第十五届蓝桥杯备赛记录_第3张图片

4.点开魔术棒勾选生成HEX文件。 

第十五届蓝桥杯备赛记录_第4张图片

1.3 认识LED原理图

找到LED灯连接的IO口,了解LED是零量还是一量。找到是P几口控制这些LED灯。从图中可知,P1口控制这8盏LED灯

第十五届蓝桥杯备赛记录_第5张图片

1.4 编写程序

1.右键点击User栏添加用户主程序(main.c)

2.引用51头文件(右键添加即可)

3.编写主体框架

//引用头文件
#include 
//程序主体框架
void main()
{
	while(1)
	{
	//程序代码地方
	}
}

1.5范例程序

点亮任意LED灯

//假设点亮最第一盏灯
#include 

void main(){
	while(1){
		P1_0 = 0;
        /*P1 = 0xfe,oxfe = 0111 1111*/
    }
}

1.6 进阶点灯

1.6.1 LED灯闪烁

1.延时函数生成,并删除nop语句

第十五届蓝桥杯备赛记录_第6张图片

2.函数生成

//假设第一盏LED灯闪烁
#include 
//延时函数生成
void Delay500ms()		//@12.000MHz
{
	unsigned char i, j, k;

	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}
//主函数区域
void main(){
	while(1){
	P1_0 = 0;
	Delay500ms();//引用延时函数
	P1_0 = 1;
	Delay500ms();
	}
}

1.6.2 LED流水灯

程序思路:

方法一:通过给P1口赋不同的值从而达到流水灯的效果

方法二:通过内置函数库实现流水灯效果

_crol_ :循环左移        _cror_:循环右移        所属库:intrtins.h

#include 
#include 

void Delay500ms()		//@12.000MHz
{
	unsigned char i, j, k;
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}


unsigned char Led = 0xfe;//0111 1111

void main(){
	while(1){
	P1 = Led;
	Delay500ms();
	Led = _crol_(Led,1);
	}
}

1.6.3 延迟时间的改变

首先在STP-ISP中将定时长度改为1毫秒,并复制代码

第十五届蓝桥杯备赛记录_第7张图片

将代码改为

void Delay(unsigned int x)		//@12.000MHz
{
	unsigned char i, j;
	while(x--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

上述操作完成后,在主函数中对延迟函数进行引用时将代码改为

Dalay(x);//x = float

此方法能实现让流水灯流动速度加快或减慢

#include 
#include 

void Delay(unsigned int x)		//@12.000MHz
{
	unsigned char i, j;
	while(x--)
	{
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
	}
}

unsigned char Led = 0xfe;
unsigned int Time = 1000;

void main(){
	while(1){
	P1 = Led;//0111 1111
	Delay(Time);
	Led = _crol_(Led,1);
	Time = Time - 100;
	}
}

你可能感兴趣的:(蓝桥杯,职场和发展)