MSP430F169(一) —— 点亮发光二极管

LED模块

1. LED灯工作原理

在这里插入图片描述
发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。PN结加反向电压,少数载流子难以注入,故不发光。当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。

2. LED电路

在这里插入图片描述

代码分析

1. 位运算LED流水灯

void LED_light_By_Bit_Open()
{
	volatile unsigned int j;
	volatile unsigned int i;
	for (;;)
	{
	for (j = 0;j < 8;j++)			//从左向右依次点亮
	{
	    P6OUT = P6OUT << 1;
	    i = 5000;
	    do(i--);
	    while (i != 0) ;
	}
	P6OUT = 0XFF;	
	for (j = 0;j < 8;j++)			//从右向左依次点亮
	    {
	        P6OUT = P6OUT >> 1;
	        i = 5000;
	        do(i--);
	        while (i != 0) ;
	    }
	P6OUT = 0XFF;
	}
}

2. switch LED流水灯

void LED_Runing(unsigned char LED_NUM)
{
	switch(LED_NUM)
	{
        case 0:
          LED8 &= ~(1<<0);  //点亮D1灯
          break;
        case 1:
          LED8 &= ~(1<<1);  //点亮D2灯
          break;
        case 2:
          LED8 &= ~(1<<2);  //点亮D3灯
          break;
        case 3:
          LED8 &= ~(1<<3);  //点亮D4灯
          break; 
        case 4:
          LED8 &= ~(1<<4);  //点亮D5灯
          break;
        case 5:
          LED8 &= ~(1<<5);  //点亮D6灯
          break;
        case 6:
          LED8 &= ~(1<<6);  //点亮D7灯
          break;
        case 7:
          LED8 &= ~(1<<7);  //点亮D8灯
          break;				
        default:
          LED8 = 0x00;     //点亮所有的LED灯
          break;
	}
}

发布了3 篇原创文章 · 获赞 3 · 访问量 112

猜你喜欢

转载自blog.csdn.net/qq_43313294/article/details/105528101