標(biāo)題:
單片機(jī)中斷系統(tǒng)控制流水、跑馬燈
[打印本頁]
作者:
進(jìn)擊的小伙伴。
時(shí)間:
2020-3-27 17:05
標(biāo)題:
單片機(jī)中斷系統(tǒng)控制流水、跑馬燈
#include<AT89X52.H>
void DelayMs(unsigned int n);
void DelayMs(unsigned int n)
{
static unsigned int i;
while(n--)
{
for(i=0;i<89;i++);
}
}
unsigned char LEDState=0;
int main()
{
unsigned char j;
IT0=1;//下降沿觸發(fā)中斷
EX0=1;//INT中斷允許
EA=1;//總中斷允許
PX0=1;//INT0中斷優(yōu)先級(jí)為低級(jí)
IT1=1;//下降沿觸發(fā)中斷
EX1=1;//INT中斷允許
PX1=1;//INT0中斷優(yōu)先級(jí)為低級(jí)
while(1)
{
/*if(P1_0==0)//按鍵按下
{
DelayMs(10);
//等待按鍵抬起,直到按鍵抬起為止
while(P1_0==0);
//消抖
DelayMs(10);//按鍵抬起以后做的事
LEDState=(LEDState+1)%5;
}
else if(P1_1==0)//按鍵按下 反向
{
DelayMs(10);
//等待按鍵抬起,直到按鍵抬起為止
while(P1_1==0);
//消抖
DelayMs(10);//按鍵抬起以后做的事
LEDState=(LEDState+5-1)%5;
}
*/
if(LEDState==0)//閃爍
{
P2=0X00;
DelayMs(100);
P2=~P2;
DelayMs(100);
}
else if(LEDState==1)//上到下跑馬
{
for(j=0;j<8;j++)
{
P2=~(1<<j);
DelayMs(100);
}
}
else if(LEDState==2)//下到上跑馬
{
for(j=0;j<8;j++)
{
P2=~(1<<(7-j));
DelayMs(100);
}
}
else if(LEDState==3)//上到下流水
{
P2=0XFF;
for(j=0;j<8;j++)
{
P2=P2&(~(1<<j));
DelayMs(100);
}
for(j=0;j<8;j++)
{
P2=P2|(1<<j);
DelayMs(100);
}
}
else if(LEDState==4)//下到上流水
{
P2=0XFF;
for(j=0;j<8;j++)
{
P2=P2&(~(1<<(7-j)));
DelayMs(100);
}
for(j=0;j<8;j++)
{
P2=P2|(1<<(7-j));
DelayMs(100);
}
}
}
}
void INT_0(void) interrupt 0
{
LEDState=(LEDState+1)%5;
}
void INT_1(void) interrupt 2
{
LEDState=(LEDState+5-1)%5;
}
復(fù)制代碼
中斷控制流水跑馬燈.zip
2020-3-27 17:04 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
80.17 KB, 下載次數(shù): 11, 下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1