如何用C语言编写一个LED灯渐变的程序

2025-03-24 17:29:30
推荐回答(4个)
回答1:

#include
//设CPU是时钟12MHz的8051系列
data unsigned char ms;
sbit K1=P0^0;
void SetupTimer0()
{
    TMOD &= 0XF0; //仅保留T1信息
    TMOD |= 0X02; //设置T0: 定时功能,方式2,自动重载8位定时器/计数器
    TH0 = 256-250;//定时每0.25ms中断一次
    TL0 = 256-250;
    TR0 = 1;      //开启定时器
    ET0 = 1;      //定时器0中断打开
}

void Timer0_ISR() interrupt 1 //中断服务程序
{
    static data unsigned char us250;
    if (++us250>=4) {++ms; us250=0;}
}

void main()
{
    data unsigned char p1,p2;
    ms=0;
    SetupTimer0();
    EA = 1;               //全局中断打开
    K1 = 1;
    while(1)
    {
        if (K1) {P1=p1=0XFF; P2=p2=0x00; ms=0; continue;}
        if (ms<150) continue;
        ms=0;
        p1<<=1;        P1=p1;
        p2<<=1; p2|=1; P2=p2;
    }
}

回答2:

我会

回答3:

分是什么?能吃吗?

回答4:

刚学单片机 无能为力