普中51单片机------点亮LED灯(含源码,小白可入)

实验介绍:利用51单片机,通过对CPU中相关寄存器的改写,实现对开发板上的LED灯实现控制。

实验设备:普中51-实验开发板  

实验目录:

1、点亮一个LED灯;

2、闪烁LED灯;

3、LED流水灯;

一、硬件部分

 下图为开发板中LED模块,其中8个LED灯,采用的是贴片LED灯,其原理是与上面的相同。 

二、原理图

        下图为开发板上LED模块的电路图,如图所示,8个LED灯左端(正极)接入VCC,右端(负极)各接入一个电阻,此处的电阻起到的作用是限流,防止通路上的电流过大而烧毁LED,在电阻的右端,分别连接P20-P27接口。

 通过分析电路硬件图以及原理图,我们得到相应的操作,要是LED(以D1为例)发亮,现在正极已经接上VCC,只要使得负极接地(0V)处于低电平就能够点亮,其负极与单片机的P2.0相连。那么现在的目标就是使P2.0端口输出低电平即可,将问题转化为控制单片机引脚输出高低电平的问题。

        在单片机中,CPU通过控制相关寄存器,寄存器通过驱动器来控制某个端子的高低电平,这也就是说,我们只要配置相应的CPU寄存器(P2寄存器)来实现我们的功能。

        P2寄存器是一个八位寄存器,每个位分别控制一个LED灯,当某个位为0时(低电平)相应的LED灯就会发亮。

三、代码分享

1、点亮一个LED灯;

代码分享:#include <REGX52.H>//52单片机头文件

#include <REGX52.H>//52单片机头文件
void main()//定义一个主函数
{
		P2=0xFE;//为P2寄存器赋值,采用16进制,其中0x为16进制标志,F为1111 E为1110
		while(1);//while为一个循环,使代码始终停在这,不然单片机的运行速度很快,将代码跑完我们肉眼都看不清现象。
}

实验现象:

2、 闪烁LED灯;

        在点亮一个LED灯后,我们提出稍微高的要求,使一个LED灯闪烁发光。其实原理一样,只需要在代码中修改一下,一会使它的输出口为0,一会使它的输出口为1(此处我们先不对闪烁的时间进行要求)。

代码分享:

#include <REGX52.H>//定义51单片机的头文件
int i;//定义整型变量i;
void main()//主函数
{
	while(1)//使程序一直执行
    {
        i=50000;//定义i的大小,用于控制间隔时间
        P2=0xFE;//点亮D1;
        while(i--);
        i=50000;
        P2=0xFF;//使D1熄灭; 
        while(i--);      
    }
}

实验现象:  

1234

3、LED流水灯 

     在使一个LED灯闪烁发光后,我们再提出稍微高的要求,使8个LED连续点亮。其实原理一样,只需要在代码中修改一下,分别使8个LED的接口输出低电平。

代码分享:

#include <REGX52.H>//定义52开发板头文件
#include <intrins.h>//定义包含左移函数的头文件
 
char c;//定义一个字符变量
int i;//定义一个整型变量
void main()//定义主函数
{
		c=0xFe;//使字符变量中的值为1111 1110
	 	while(1)//程序循环执行;
		{
			P2=c;//令P2寄存器为1111 1110
		  	i=50000;//定义延迟时间
			 while(i--);
			 c=_crol_(c,1);//采用左移函数执行一次,1111 1110向左移一位
		}
}

实验现象:   

12345

         此处,我们解释一下左移函数,_crol_是循环左移,_cror_是循环右移,后面写上变量的名称,以及移动的位数, c=_crol_(c,1),刚开c=1111 1110,执行一次后,循环左移c=1111 1101,执行两次后c=1111 1011;

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值