单片机--LED灯基础知识

单片机—LED灯基础知识

1.有两种编程方法:
(1)并行操作:P1=0X##
-在LED灯编程中,数字1代表灯关,0代表灯亮,P1代表所有LED灯。
-可以通过2进制数转16进制数来控制灯的开关,前面一般都加上0x,例如:有8个LED灯,都为关闭状态时,可写为2进制数1111 1111,将其转换为16进制数为FF,可写为P1=0XFF

#include <reg52.h>
void main()
{   P1=0xF0; #代表前4个灯亮
}

(2)位操作:sbit LED1=P1^0
#其中0的意思是LED灯的第一个灯,以此类推1代表第二个灯。
现在我们让第一个和第二个灯亮

#include <reg52.h>    #reg52代表单片机类型型号
 LED1=P1^0;            #定义变量
 LED2=P1^1;
void main()
{   LED1=0;
    LED2=0;
  }                    #0代表让灯亮

2.LED灯闪亮(亮一下然后延迟)

#include <reg52.h>
unsigned int i;
while(1) #死循环,一直循环
{ P1=0;
 i=65535;
 while(i--); #延迟
 P1=0XFF;
 i=65535;
 while(i--);
 }

延迟函数

#include <reg52.h>
void delay(unsigned int z) #延迟函数
{   unsigned  int x,y;
   for(x=z;x>0;x--)
    for(y=114;y>0;y--);
	}
void main()
{   
     
	 while(1)
	 { P1=0;
	   delay(200);
	   P1=0XFF;
	   delay(200); #8个灯闪亮
	}
      
}

3.流水灯模式
左移右移函数(挨个亮)
左移:”<<”每执行一次左移,最低位补0,其它位向左移移位。
右移:”>>”每执行一次右移,最高位补0,其它位向右移一位。
循环移位函数:(1)标准库函数:intrins.h
(2)字符型循环左移:crol
(3)字符型循环右移:cror
流水灯代码实现:

#include <intrins.h>
#include <reg52.h>
void delay(unsigned int z)
{  int x,y;
   for(x=z;x>0;x--)
   for(y=144;y>0;y--);
   }
   void main()
   {   P1=0XFE;
     delay(200);
     while(1)
     { P1=crol(P1,1) #1代表移动了1位
     delay(200);
     }
    }
     
  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值