• 蓝桥杯单片机类准备day2之复习+读基本例程


    仍然用到hc573锁存器的8个led灯灯组

    流水灯的主程序(延时函数省略)

    void main(void)
    {
        unsigned char i;
     
     cls_buzz();
       
        while(1)
        {
      for(i=0; i<8; i++)
      {
       P2 = ((P2&0x1f)|0x80);
       P0 = ~(0x01<<i);  
       P2 &= 0x1f;
       delay();
      }
        }
    }

    使用对整个端口赋值。

    考虑到Y4C,选择让锁存器工作的方式(与P2口高三位有关)

    可以单个io口定义,如:

    HC573_C = P2^7;      HC573_B=P2^6;     HC573_A=P2^5;

    HC573_ C = 1 ;       HC573_B = 0;   HC573_A   =  0;

    这样可以选通Y4C=1;

    跳帽决定单片机IO口是否拓展,若WR接地,P2口没有确定输出的情况,则会使或非门输出0;为了拓展功能,我们肯定要WR接P36哇。

    51单片机默认输出高电平。WR端默认高电平。

     蜂鸣器与继电器的控制:

     

     需要注意与这两个连接的不再是锁存器了,中间多了一个ULN2003。

    这个芯片起到一个驱动的作用,可以输出高电流。

     

     驱动电流500mA,最大600mA。用于驱动继电器和蜂鸣器。

    50V电压,且输入与输出电平相反。【输入输出是 非门】

    程序的写法可以参考驱动LED灯灯组。

    锁存器受Y5C控制,继电器对应P04,蜂鸣器对应P06。驱动着两个器件需要低电平。则需要对应的P0口输出高电平。

    可以采用

     P2 = ((P2&0x1f)|0xa0);          //驱动继电器
       P0 = 0x10; 
       P2 &= 0x1f;                         //关掉实时锁存,避免改变工作状态

    驱动蜂鸣器:

     P2 = ((P2&0x1f)|0xa0);          //驱动蜂鸣器
       P0 = 0x40; 
       P2 &= 0x1f;                         //关掉实时锁存,避免改变工作状态

  • 相关阅读:
    Python 字符串和list的功能翻译
    python .strip()
    python 查看对象功能
    python 字典
    洛谷 P1144 最短路计数 Label:水
    心疼自己,再见
    初赛复习 //附复习资料
    51Nod 1079 中国剩余定理 Label:数论
    转载 乘法逆元
    51Nod 1136 欧拉函数 Label:数论
  • 原文地址:https://www.cnblogs.com/page71/p/13518565.html
Copyright © 2020-2023  润新知