蓝桥杯单片机组简易问题与代码(2)
今日问题:外部中断实现流水灯的停止和开始
程序仅供参考,鼓励大家独立完成
#include <stc15f2k60s2.h>
#define uint unsigned int
#define uchar unsigned char
uint LED=0,LED_RUN=0,Flag;
void allinit();
void enxit();
void delay(uint ms);
void main()
{
allinit();
enxit();
while(1)
{
if(LED_RUN==1)
{
P0=~(0x01<<LED);
LED++;
if(LED==8)LED=0;
delay(1000);
}
}
}
void allinit()
{
P2=0xa0;P0=0x00;P2=0x80;P0=0xff;
// P2=0xc0;P0=0x01;P2=0xff;P0=0xff;
}
void enxit()
{
IT0=0;
EX0=1;
EA=1;
}
void delay(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
for(j=845;j>0;j--);
}
//void exint() interrupt 0
//{
// if(P32==0)
// {
// delay(5);
// if(P32==0)
// {
// Flag=1;
// }
// while(!P32);
// if(Flag==1)
// {
// if(LED_RUN==0)
// LED_RUN=1;
// else LED_RUN=0;
// Flag=0;
// }
// }
//}
//void exint0() interrupt 0 //按下检测
//{
// if(P32==0)
// {
// if(LED_RUN==0)
// LED_RUN=1;
// else LED_RUN=0;
// }
}void exint0() interrupt 0 //抬起检测
{
if(P32==1)
{
if(LED_RUN==0)
LED_RUN=1;
else LED_RUN=0;
}
}
感谢您阅读!