51单片机学习——点亮LED灯

Posted 马己

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51单片机学习——点亮LED灯相关的知识,希望对你有一定的参考价值。

51单片机学习——点亮LED灯

 

1、对照开发板原理图对端口进行赋值

如下图,要使LED2点亮,需要在其正极输入高电平,在负极输入低电平。而这需要PNP型三极管Q16导通,即标点LEDS6要为低电平。

根据标点找到对应控制元件。图中,要使74HC138起作用,其ENLED要为低电平,ADDR3要为高电平。要使LED6为低电平,则A2A1A0的值分别为110,即ADDR0=0,ADDR1=1,ADDR2=1。

控制ADDR0、R1、R2、R3电平的端口为P1.0、P1.1、P1.2、P1.3

控制ENLED电平的端口为P1.4

找到对应的控制端口后,将P1.0、P1.1、P1.2、P1.3、P1.4 分别赋值01110就可让PNP型三极管Q16导通。

再通过标点DB0找到对应控制端口P0.0

将P0.0赋值为0 就可以让LED2点亮 

 2、程序代码

完整代码如下:

#include <reg52.h>

sbit ADDR0=P1^0;  
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
sbit LED2=P0^0;

void main()

	ADDR0=0;  //端口初始化
	ADDR1=1;
	ADDR2=1;
	ADDR3=1;
	ENLED=0;
	while(1)
			
		LED2=0;
	

本篇为记录学习过程,如有错误,欢迎指正。 

 

以上是关于51单片机学习——点亮LED灯的主要内容,如果未能解决你的问题,请参考以下文章

STM32怎么实现单片机控制LED灯常亮10S后熄灭?

怎么用Verilog的语言点亮一个灯!

汇编语言编一个八个灯,由左至右循环闪烁的程序~~~谢谢

求教如何用单片机控制LED灯的亮度

单片机串口通信控制led灯的点亮

51单片机C程序怎样把LED灯从左到右点亮然后又从右到左点亮然后循环