蓝桥杯LED跑马灯(数电知识)

LED原理图(研读573锁存器与138译码器)

573锁存器:8路3态输出的非反转透明锁存器。LE端为高时锁存对于数据是透明的(LE为1时,D端对Q端起作用),反之LE端为低时,数据锁存。

138译码器真值表

得出以下结论:

所以要想D端对Q端起作用,让灯亮起来在LE为1的条件下,D端为0。要想LE为1,则Y4C为1,由74HC02或非门知,Y4为0,又74HC138知,P25为1,P26为0,P27为0。

  #include "reg52.h"

   sbit HC138_A=P2^5;
   sbit HC138_B=P2^6;
   sbit HC138_C=P2^7;
   void Delay(unsigned int t)
   {
    while(t--);
    while(t--);
   }
   void LEDrunning()
   {
      unsigned char i;
      HC138_C=1;
      HC138_A=0;
      HC138_B=0;

       P0=0x00;
       Delay(60000);
       Delay(60000);
       P0=0xff;
       Delay(60000);
       Delay(60000);
    }  
  void main()
  {
    while(1)
      {
     LEDrunning();
      }
  }

要想让灯逐个亮起来,需要在LEDrunning函数中利用for语句对P0的8位进行左移。代码如下

      for(i=1;i<=8;i++)
      {
              P0=0xff<<i;
              Delay(60000);
              Delay(60000);
      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值