入门单片机:点亮一个LED

大家好哇,当我们拿到一块单片机开发板时,觉得它的模块好多呀,能实现的功能也可多了,迫不及待地想知道各个模块都能实现哪些好玩的功能,(至少我是这样,嘿嘿),如果有一样的小伙伴,咱们先保留好奇心和求知欲哦~慢慢来,脚踏实地从最简单的开始学起,打好基础并且从中找到属于自己的一套高效率学习方法。(不过可以去找找看单片机做成的小实物的视频,激发我们的学习兴趣)那么这篇文章呢,就从入门学起:点亮一个LED。

同样如此,先给出代码和结果,在作出相应的分析与解释。

#include<reg52.h>
sbit led1=P2^0;
void main()
{
	while(1)
	{
	   led1=0;
	}
}

首先呢,在实现每一个功能的时候,我们需要看我们开发板的原理图(型号不一样可能会有微小差异,但思路都是不差上下的)A4开发板LED模块的原理图如图:

入门单片机:点亮一个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

 这样第一个LED灯就点亮啦,完整代码在最上面。这里再给大家第二种方法,就是不用单个位定义,用整体P2口的方法,这样的话,让灯点亮给低电平,那让灯不点亮自然要给它高电平,我们给P2_7到P2_0口直接整体赋值11111110,不过需要把它转换成16进制,前缀0x就表示后面的值用的是16进制,代码如下:

#include<regx52.h>
void main()
{
	while(1)
	{
	  P2=0xFE;
	}
}

结果如下,第一个LED成功点亮!

入门单片机:点亮一个LED

 这里解释一下,数码管亮是由于管脚冲突,不用在意它,看LED灯的模块就好,有什么问题欢迎留言哦~祝大家更上一层楼!come on

上一篇:药房连锁门店-亿云发数字媒体应用解决方案


下一篇:STM32(7):中断方式让按键点亮LED