求一个单片机AT89C51的C语言程序 控制8个灯的 要求有中断程序 至少有两种状态

2025-02-25 20:25:05
推荐回答(3个)
回答1:

#include
#include
#define uchar unsigned char
uchar cnt,led=0xfe;
bit flag;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
cnt++;
if(cnt>=10)
    {
    cnt=0;
    if(flag)
        {
        P1=led;
        led=_crol_(led,1);
        }
    else
        {
        P1=led;
        led=_cror_(led,1);
        }
    }
}

回答2:

#include
void Delay10ms(unsigned int c); //延时10ms
void main()
{
unsigned char CLP = 0x00;
while (1)
{
P2 = CLP;
Delay10ms(50); //延时函数
CLP++;
}
void Delay10ms(unsigned int c) //误差 0us
{
unsigned char a, b;
for (;c>0;c--)
{
for (b=38;b>0;b--)
{
for (a=130;a>0;a--);
}
}
}

回答3:

单片机AT89C51的C语言程序可以帮你做个框架。