使用C51单片机编程:无中断时8个LED全亮,当相应外部中断0时,8个LED依次从左往右移动并重复三次

当相应外部中断1时,8个LED依次从右往左移动,并重复三次

#include <reg51.h>
#include<intrins.h>
void delay_ms(unsigned int x) //误差 0us
{
unsigned char a,b,c;
for(c=x;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
void main(void)
{
ET0=1;//外部中断0、1下降沿中断
ET1=1;
EX0=1;
EX1=1;
EA=1;
while(1)
P0=0xFF; // P1的8个LED,高电平
}

void int0_int() interrupt 0
{
unsigned char i ,j, tmp=0x01;
for(i=3; i>0; i--)
for(j=8; j>0; j--)
{
P0=tmp;
delay_ms(500); //500ms闪烁
tmp = _crol_(tmp,1);
}
}
void int1_int() interrupt 2
{
unsigned char i ,j, tmp=0x80;
for(i=3; i>0; i--)
for(j=8; j>0; j--)
{
P0=tmp;
delay_ms(500); //500ms闪烁
tmp = _cror_(tmp,1);
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-06-21
#include <reg51.h>
void main(void)
{
P1=0xFF; // P1的8个LED全亮
}

void int?_isr(void) interrupt ??
{
uint8 i1,i2,i3;
i1=2;
while(i1--)
{
i2=0x80;
while(i2)
{
p1=i2;
i2>>1;
}
}
}

大概是这个意思,你再完善一下就可以。
第2个回答  2011-06-21
你这个程序很简单啦,你自己看看说就好了~!也不是什么特别难的程序。
相似回答