⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 int01.c

📁 单片机外部中断、定时器、LED显示程序
💻 C
字号:
/*=========================================
****                           ************
****       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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -