仿真电路

  • 元件:

英文名|中文名|属性
:-|:-|:-|:-
LED-GREN|绿色LED|-
RX8|8位电阻排|元件值设置为1k

  • 电路图:
    电路图

  • 仿真图:
    仿真图

程序设计

  • main.c:
    #include <AT89X51.H>
    #define uchar unsigned char
    #define uint unsigned int
    //主程入口
    void main()
    {
    uchar n; //用来标记哪一个LED亮
    uint t;  //用来计时
    for (n = 0; n <= 7; n++)
    //0到7循环8次,对应8个LED依次点亮
    {
      P1 = ~(1 << n); //控制P1输出
      for (t = 60000; t; t--)
        ; //粗略延时
    }
    }

注解

  • 二极管正极通过排阻连接电源,负极连接P1

    当P1某一脚高电平(红色)时,LED灭
    反之P1某一脚低电平(蓝色)时,LED亮

  • P1 = ~(1 << n);
    先将 1 左移 n 位,然后按位取反,最后赋值给 P1

    例如 n = 1 时 P1 = 0b11111101
    此时P1.1脚低电平,P1其余脚高电平
    即点亮P1.1脚相连的LED

最后修改:2020 年 04 月 06 日
如果觉得我的文章对你有用,请随意赞赏