int01.c

来自「单片机外部中断、定时器、LED显示程序」· C语言 代码 · 共 69 行

C
69
字号
/*=========================================
****                           ************
****       INT0中断实验        ************/

//=======声明区============================
#include<reg51.h>
#define LED P2
void delay(int);
void left(int x);
void right(int x);
//=====主程序===============================
main()
{ IE=0x85;
  IP=0x01;
  TCON=0x05;
  LED=0x00;
  while(1)
 {delay(500000);
  LED=~LED;
 }
}
//===子程序部分==============================
/*INT0的中断子程序,单灯左移3圈*/
void int0(void) interrupt 0
{  unsigned saveLED=LED;
   left(2);
    LED=saveLED;
}
/*INT1的中断子程序,单灯右移3圈*/
void int1(void) interrupt 2
{  unsigned saveLED=LED;
   right(2);
   LED=saveLED;
}

/*延迟函数,延迟约x*1ms*/
void delay(int x)
{  int i,j;
   for(i=0;i<x;i++)
    for(j=1;j<120;j++);
}
/*单灯左移函数,执行x圈*/
void left(int x)
{  int i,j;
   for(i=0;i<x;i++)
   { LED=0xfe;
     for(j=0;j<7;j++)
     { delay(25000);
       LED=(LED<<1)|0x01;//左移1位后LSB设为1
     }
     delay(2500);
   }
}
/*单灯右移函数,执行x圈*/
void right(int x)
{  int i,j;
   for(i=0;i<x;i++)
   { LED=0x7f;
     for(j=0;j<7;j++)
     { delay(25000);
       LED=(LED>>1)|0x80;//右移1位后MSB设为1
     }
     delay(2500);
   }
}
//==================================================


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?