大家好哇,当我们拿到一块单片机开发板时,觉得它的模块好多呀,能实现的功能也可多了,迫不及待地想知道各个模块都能实现哪些好玩的功能,(至少我是这样,嘿嘿),如果有一样的小伙伴,咱们先保留好奇心和求知欲哦~慢慢来,脚踏实地从最简单的开始学起,打好基础并且从中找到属于自己的一套高效率学习方法。(不过可以去找找看单片机做成的小实物的视频,激发我们的学习兴趣)那么这篇文章呢,就从入门学起:点亮一个LED。
同样如此,先给出代码和结果,在作出相应的分析与解释。
#include<reg52.h>
sbit led1=P2^0;
void main()
{
while(1)
{
led1=0;
}
}
首先呢,在实现每一个功能的时候,我们需要看我们开发板的原理图(型号不一样可能会有微小差异,但思路都是不差上下的)A4开发板LED模块的原理图如图:
可以看出来LED1对应的是STC89C52RC芯片的P20口,二极管具有单向导电性,看图得在内部已经给了阳极高电平,所以要使灯点亮,只需给阴极低电平即可,阴极连接着P20端口,需要我们来通过编程给它输出低电平。要用到P20端口,就要先定义这个端口,单片机这块位定义我们用sbit,且中间用^符号表示,即
sbit LED1=P2^0;
定义完后根据我们上面的分析,需要给一个低电平,那我们就让LED1=0,就是把0赋值给LED1,就是相当于P2^0端口。#include<reg52.h>是头文件,包含了这些端口比如P2^0。
这里还有一种写法就是我们用这个头文件#include<regx52.h>,这样就不需要像上面那种定义P2^0,可以直接这样写P2_0=0;因为这个头文件已经这样定义过了,打开头文件给大家看看
这样第一个LED灯就点亮啦,完整代码在最上面。这里再给大家第二种方法,就是不用单个位定义,用整体P2口的方法,这样的话,让灯点亮给低电平,那让灯不点亮自然要给它高电平,我们给P2_7到P2_0口直接整体赋值11111110,不过需要把它转换成16进制,前缀0x就表示后面的值用的是16进制,代码如下:
#include<regx52.h>
void main()
{
while(1)
{
P2=0xFE;
}
}
结果如下,第一个LED成功点亮!
这里解释一下,数码管亮是由于管脚冲突,不用在意它,看LED灯的模块就好,有什么问题欢迎留言哦~祝大家更上一层楼!come on