最近玩的有点疯,以至于突然觉得自己啥都忘了,为了防止自己变傻,我觉得有必要把学过的东西再复习一遍,思来想去不知道要咋办,那就只能拿51开刀了
【1】51单片机使用的电平为TTL电平,就是说5为高电平,0为低电平;程序里1表示高电平,0表示低电平;
【2】对于51单片机的学习,需要一定的c语言基础,因此我们需要会点c,但是不要担心,51单片机用的c语言很基础;
【3】要具备一定的电路基础。
【4】开发环境用的keil 5;烧录软件用的stc;
【5】注意,我只提供大概思路,建立在我会的基础上
开始进行51单片机的学习,那么我们要先从成为一个点灯大师开始!!!!
下面的是我的LED模块的原理图
首先明确进制转换,单片机里通过CPU控制寄存器,从而控制端口输出,但是进行控制的过程中,我们不能用简单的10进制进行输入,要转换成16进制。
想要点亮一个灯,很简单,把我P2口的电平输入为 “1111 1110”,即可,但是直接输入这串数字,他默认是十进制,会以为是1千万多,怎么办,变成16进制,此时想点灯就非常简单了
给出代码:
#include //51单片机的头文件
void main()//主函数为void类型,不需要返回值
{
P2 = 0xFE;//0x是16进制的符号,FE就是1111 1110
while(1)
{
}//写个死循环,让程序一直执行
}
如果你成功的运用了这段代码,恭喜你,点亮了51单片机学习的第一盏灯!!!!!
废话不多说,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)
如果你学会了上边的东西,那么恭喜你,你已经成为了一个合格的点灯大师了!!!但是我们不能局限于点灯,成为一位合格的点灯大师确实是一个值得骄傲的成就,但这仅仅是开始。在掌握了这门技能之后,我们不应止步于此。每一个领域的精通都是一个新的起点,一个迈向更广阔天地的机会。我们必须保持好奇心和学习的热情,不断探索新的领域,扩展我们的技能和知识。
在这个快速变化的世界里,只有不断学习和适应,我们才能保持竞争力。每一次学习新技能、每一次克服挑战,都是我们成长的机会。记住,没有终点的学习之旅是通往卓越的唯一路径。让我们保持对知识的渴望,对未知的好奇,对挑战的勇气,因为每一步的进步,都让我们离梦想更近一步。不要满足于现状,不断挑战自我,向着更高的目标迈进。全面发展,不仅是一个目标,更是一种生活方式。让我们一起努力,为了更美好的明天而奋斗!