学习历程--普中51单片机A2--LED实验

前些天学习了普中的LED实验部分,现将自己的一些学习内容记录一下。

学习历程--普中51单片机A2--LED实验_第1张图片

这个是led的电路图,普中的a2系列开发版中led的连接只需设置好管脚就可以了,不需要自己进行杜邦线单独接线,还是很方便的,唯一不足就是有的时候不能同时实现多个功能。

1、点亮第一个led

第一步肯定是点亮led灯,附上代码

#include "reg52.h"

sbit LED1=P2^0;	//将P2.0管脚定义为LED1,这样可以方便阅读,也方便修改

void main()
{
	LED1=0;	//LED1端口设置为低电平
	while(1)
	{
		
	}		
}

代码十分简单,唯一需要注意的就是单片机的管脚为低电平的时候led灯才能亮。led灯本质就是一个发光二极管,有单向导通性,阴极接低电平才能亮。

2、led闪烁

先附上代码

#include "reg52.h"

typedef unsigned int u16;	
typedef unsigned char u8;

sbit LED1=P2^0;	//将P2.0管脚定义为LED1

void delay_10us(u16 ten_us)
{
	while(ten_us--);	
}


void main()
{	
	while(1)
	{
		LED1=0;	
		delay_10us(50000); 
		LED1=1;	
		delay_10us(50000); 	
	}		
}

这个是普中给的代码,其实就是多了一个延时函数,主函数里面多了点亮和熄灭的函数,当然也可以根据点亮第一个led的代码进行修改使用。

#include "reg52.h"

sbit LED1=P2^0;	//将P2.0管脚定义为LED1,这样可以方便阅读,也方便修改
unsigned int i = 0;
void main()
{
	
	while(1)
	{
		LED1=0;	  //LED1端口设置为低电平
        for(i=0;i<50000;i++);

        LED1=1;	  //LED1端口设置为高电平
        for(i=0;i<50000;i++);
	}		
}  

 这段代码就省去了延时函数,读起来会简单一些,但是函数比较大的时候就不建议了。

3、led流水灯

附上代码

#include "reg52.h"
void main()
{
     unsigned char a[]={~0x01,~0x02,~0x04,~0x08,~0x10,~0x20,~0x40,~0x80};//直接通过寄存器来控制led
     unsigned char i;
     unsigned int j;
 
     while(1)
     {
        for(i=0;i<8;i++)  //led从第一个流动到第八个
        {
            P2 = a[i];  //i的变化,可以定位到第几个led
            for(j=0;j<30000;j++); //延时作用
        }

     }
}

流水灯有很多类型,这个类型是从第一个滚动到第八个led灯,然后重复。

你可能感兴趣的:(51单片机,51单片机,单片机,嵌入式硬件)