51单片机——LED灯篇

一、LED与单片机P2管脚相连

760be2a5e0624f1982d8dda0ae574c64.jpg

 二、点亮一个LED灯

#include <STC89C5xRC.H>

void main()

{

 P2 = 0xFE; //1111 1110

}

P2有8个管脚,对应8个二进制位。

LED灯右侧接电源是正极(1),左侧给负极(0)即可点亮。

三、一个LED灯闪烁

#include <STC89C5xRC.H>

#include <INTRINS.H>

void Delay500ms() //@12.000MHz

{

 unsigned char i, j, k;

 _nop_(); //An empty function, from INTRINS.H

 i = 4;

 j = 205;

 k = 187;

 do

 {

  do

  {

   while (--k);

  } while (--j);

 } while (--i);

}

 

void main()

{

 P2=0xFE;

 Delay500ms();

 P2=0xFF;

 Delay500ms();

}

Delay500ms这个函数是延时函数,先让P20灯亮,延迟500ms后,再让它灭,即可实现闪烁效果。

四、流水灯

#include <STC89C5xRC.H>

#include <INTRINS.H>

 

void Delay500ms() //@12.000MHz

{

 unsigned char i, j, k;

 _nop_();

 i = 4;

 j = 205;

 k = 187;

 do

 {

  do

  {

   while (--k);

  } while (--j);

 } while (--i);

}

 

void main()

{

    while(1)

    {

 P2=0xFE; //1111 1110

 Delay500ms();

 P2=0xFD; //1111 1101

 Delay500ms();

 P2=0xFB; //1111 1011

 Delay500ms();

 P2=0xF7; //1111 0111

 Delay500ms();

 P2=0xEF; //1110 1111

 Delay500ms();

 P2=0xDF; //1101 1111

 Delay500ms();

 P2=0xBF; //1011 1111

 Delay500ms();

 P2=0x7F; //0111 1111

    Delay500ms();

    }

}

先让P20亮(其他都灭),延时500ms,

再让P21亮(其他都灭),再延时500ms,

。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值