#include<reg52.h> // 51 单片机头文件

#define LED P1 // 定义 LED 灯接口为 P1 口

void delay(unsigned int x) // 定义延时函数 { unsigned int i, j; for (i = 0; i < x; i++) // 外层循环 for (j = 0; j < 100; j++); // 内层循环 }

void main() // 主函数 { unsigned char flag = 0; // 定义标志位为 0 unsigned char i;

while (1) // 进入循环
{
    if (flag == 0) // 如果标志位为 0
    {
        for (i = 0; i < 8; i++) // LED 灯从第 0 个灯亮到第 7 个灯,循环 8 次
        {
            LED = ~(1 << i); // 通过位运算将 P1 口对应的 LED 灯点亮
            delay(500); // 延时 500ms
        }
    }
    else // 如果标志位不为 0
    {
        for (i = 7; i >= 0; i--) // LED 灯从第 7 个灯亮到第 0 个灯,循环 8 次
        {
            LED = ~(1 << i); // 通过位运算将 P1 口对应的 LED 灯点亮
            delay(500); // 延时 500ms
        }
    }
}

}

void key_interrupt() interrupt 1 // 当 INT0 发生中断时,进入中断函数 { static unsigned char flag = 0; // 定义静态变量 flag 并初始化为 0 flag = !flag; // 将 flag 取反 }

51单片机 LED 循环点亮程序详解

原文地址: https://www.cveoy.top/t/topic/n6Cq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录