以下是基于8051单片机的代码实现:

#include <reg51.h>

#define LED1 P1_0
#define LED2 P1_1
#define LED3 P1_2
#define LED4 P1_3

void delay(unsigned int time) // 延时函数
{
    unsigned int i, j;
    for (i = time; i > 0; i--)
        for (j = 125; j > 0; j--);
}

void main()
{
    TMOD = 0x01; // 定时器0工作在模式1
    TH0 = 0x3C; // 定时器初值
    TL0 = 0xB0;
    TR0 = 1; // 启动定时器0
    while (1)
    {
        if (TF0) // 定时器0溢出
        {
            TF0 = 0; // 清除溢出标志
            LED1 = ~LED1; // LED1亮灭
            TH0 = 0x3C; // 重新设置定时器初值
            TL0 = 0xB0;
        }
        delay(1000); // 延时1s
        if (TF0) // 定时器0溢出
        {
            TF0 = 0; // 清除溢出标志
            LED2 = ~LED2; // LED2亮灭
            TH0 = 0x3C; // 重新设置定时器初值
            TL0 = 0xB0;
        }
        delay(1000); // 延时1s
        if (TF0) // 定时器0溢出
        {
            TF0 = 0; // 清除溢出标志
            LED3 = ~LED3; // LED3亮灭
            TH0 = 0x3C; // 重新设置定时器初值
            TL0 = 0xB0;
        }
        delay(1000); // 延时1s
        if (TF0) // 定时器0溢出
        {
            TF0 = 0; // 清除溢出标志
            LED4 = ~LED4; // LED4亮灭
            TH0 = 0x3C; // 重新设置定时器初值
            TL0 = 0xB0;
        }
        delay(1000); // 延时1s
    }
}

代码中,定时器0工作在模式1,每次溢出后LED亮灭一次,并重新设置定时器初值。延时函数用于控制每个LED的点亮时间为1s


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

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