51单片机学习——先成为一个点灯大师

最近玩的有点疯,以至于突然觉得自己啥都忘了,为了防止自己变傻,我觉得有必要把学过的东西再复习一遍,思来想去不知道要咋办,那就只能拿51开刀了

明确几点

【1】51单片机使用的电平为TTL电平,就是说5为高电平,0为低电平;程序里1表示高电平,0表示低电平;

【2】对于51单片机的学习,需要一定的c语言基础,因此我们需要会点c,但是不要担心,51单片机用的c语言很基础;

【3】要具备一定的电路基础。

【4】开发环境用的keil 5;烧录软件用的stc;

【5】注意,我只提供大概思路,建立在我会的基础上

 从点灯开始

1.原理图

开始进行51单片机的学习,那么我们要先从成为一个点灯大师开始!!!!

     下面的是我的LED模块的原理图

 

51单片机学习——先成为一个点灯大师_第1张图片

 2.点亮一个LED灯

 首先明确进制转换,单片机里通过CPU控制寄存器,从而控制端口输出,但是进行控制的过程中,我们不能用简单的10进制进行输入,要转换成16进制。

51单片机学习——先成为一个点灯大师_第2张图片

想要点亮一个灯,很简单,把我P2口的电平输入为  “1111 1110”,即可,但是直接输入这串数字,他默认是十进制,会以为是1千万多,怎么办,变成16进制,此时想点灯就非常简单了

给出代码:

#include //51单片机的头文件
void main()//主函数为void类型,不需要返回值
{
    P2 = 0xFE;//0x是16进制的符号,FE就是1111 1110
    while(1)
    {
    }//写个死循环,让程序一直执行
}

如果你成功的运用了这段代码,恭喜你,点亮了51单片机学习的第一盏灯!!!!!

51单片机学习——先成为一个点灯大师_第3张图片 点亮了第一个LED

 3.LED灯闪烁

废话不多说,LED灯闪烁本质就是让LED灯一亮一灭,就是一个电平的改变,再结合运用延时函数,就可完成,直接给出代码:

#include
#include
void Delay( int x)	//一个延时函数,函数主体是stc生成的,这里只需要我们稍微改一下
{
	unsigned char data i, j;


	while(x)
		{
			_nop_();
	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
		x--;
		}
}



void main()
{
	while(1)
	{
	P2 = 0xFE;//亮
	Delay(500);//亮500毫秒
	P2 = 0xFF;//灭
	Delay(500);//灭500毫秒
	}
	
	
}

如果你有一定的c语言基础的话,函数很好懂,就是对我们函数的一个调用,非常简单,看代码都能看懂,如果感觉吃力,请去补习c语言

4.LED流水灯

这个其实也不难,还是通过程序,让灯一个一个亮,就是电平的变化

0111 1111;1011 1111;1101 1111;1110 1111;1111 0111;

1111 1011;1111 1101;1111 1110;

当然不能这么输入,要转换为对应的16进制来 ,然后结合延时函数,闲话不多说,直接上代码!!!

但是学完c语言的我肯定要搞事情。把延时函数搞一个函数体

void Delay( int x);//头文件Delay.h

 函数

#include
void Delay( int x)	//@11.0592MHz
{
	unsigned char data i, j;


	while(x)
		{
			_nop_();
	i = 2;
	j = 199;
	do
	{
		while (--j);
	} while (--i);
		x--;
		}
}

main文件

#include
#include"Delay.h"
void main()
{
	while(1)
	{
	  P2 = 0x7F;//0111 1111
	  Delay(500);
	  P2 = 0xBF;//1011 1111
	  Delay(500);
	  P2 = 0xDF;//1101 1111
		Delay(500);
		P2 = 0xEF;//1110 1111
		Delay(500);
		P2 = 0xF7;//1111 0111
		Delay(500);
		P2 = 0xFB;//1111 1011
		Delay(500);
		P2 = 0xFD;//1111 1101
		Delay(500);
		P2 = 0xFE;//1111 1110
		Delay(500);
		
	}
	
	
}

 

然后就是一个非常厉害的流水灯了!!!!!! 

完整代码放我的gitee了  打回原形: 单片机的学习 (gitee.com)

结语

   如果你学会了上边的东西,那么恭喜你,你已经成为了一个合格的点灯大师了!!!但是我们不能局限于点灯,成为一位合格的点灯大师确实是一个值得骄傲的成就,但这仅仅是开始。在掌握了这门技能之后,我们不应止步于此。每一个领域的精通都是一个新的起点,一个迈向更广阔天地的机会。我们必须保持好奇心和学习的热情,不断探索新的领域,扩展我们的技能和知识。 

   在这个快速变化的世界里,只有不断学习和适应,我们才能保持竞争力。每一次学习新技能、每一次克服挑战,都是我们成长的机会。记住,没有终点的学习之旅是通往卓越的唯一路径。让我们保持对知识的渴望,对未知的好奇,对挑战的勇气,因为每一步的进步,都让我们离梦想更近一步。不要满足于现状,不断挑战自我,向着更高的目标迈进。全面发展,不仅是一个目标,更是一种生活方式。让我们一起努力,为了更美好的明天而奋斗!

你可能感兴趣的:(51单片机学习,51单片机,学习,嵌入式硬件,c语言)