51单片机自学笔记(四)——点亮LED灯、流水灯

51单片机自学笔记(四)

LED灯

LED全称为半导体发光二极管,是采用半导体材料制成的,是一种直接将电能转换为光能,电信号转换为光信号的发光器件。其特色是功耗低、高亮度、色彩艳丽、抗振动、寿命长(正常发光时长8—10万小时)、冷光源等,是真正的“绿色照明”。实物图:
在这里插入图片描述
LED在电路图中的符号为: 在这里插入图片描述
它具备二极管的基本特性,即正向导通,反向截止。要想点亮LED须要从正向流过工做电流。
不一样LED小灯的工做压降不一样,普通发光二极管的工做压降范围为:1.6—2.1V。工做电流为:1—20mA。web

点亮单片机中LED灯

单片机中LED模块原理图:在这里插入图片描述
经过观察电路原理图能够得出:要点亮开发板上LED小灯只须要控制P2口输出低电平便可(即给P2口赋值“0”)。
1.点亮单片机上全部的LED灯
代码以下:svg

#include <reg52.h>

sbit LED1 = P2^0;
sbit LED2 = P2^1;
sbit LED3 = P2^2;
sbit LED4 = P2^3;
sbit LED5 = P2^4;
sbit LED6 = P2^5;
sbit LED7 = P2^6;
sbit LED8 = P2^7;

void main()
{ 
 
  
  LED1 = 0;
  LED2 = 0;
  LED3 = 0;
  LED4 = 0;
  LED5 = 0;
  LED6 = 0;
  LED7 = 0;
  LED8 = 0;
}

运行结果以下:在这里插入图片描述
2.LED小灯的闪烁
代码:ui

#include <reg52.h>

unsigned int i;

void main()
{ 
 
  
  while(1)
  { 
 
  
    P2 = 0;
    i = 65535;
    while(i--);
    P2 = 0xff;
    i = 65535;
    while(i--);
  }
}

3.流水灯
代码:spa

#include <reg52.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char

uchar temp;
void delay(uint z)
{ 
 
  
  uint x,y;
  for(x = z;x > 0;x--)
     for(y = 114;y > 0;y--)
}

void main()
{ 
 
  
   temp = 0xfe;
   P2 = temp;
   delay(100);
   while(1)
   { 
 
  
      temp = _crol_(temp, 1);
      P2 = temp;
      delay(100);
   }
}