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

📄 ex4-5.c

📁 < 嵌入式C语言程序设计>>一书的源代码
💻 C
字号:
/*
标题:范例 4-5
版本:1.0
Target:89S51
程序描述:Port B 在正常状况下会输出跑马灯,
            当INT0 引脚有+5V的脉冲出现时,8颗LED会一闪一灭4次。 */
/* ***************************************************** */
#include <REGX51.H>
void delay (void)  {          /* delay 函数 */
  unsigned char i,j;          /* 这个函数执行时间的延迟 */
     for (i=0;i<255;i++)
          for(j=0;j<255;j++)
          ;
}
void delay_4isr (void)  {     /* delay_4isr 函数 */
  unsigned char i,j;          /* 这个函数执行时间的延迟 */
     for (i=0;i<255;i++)
          for(j=0;j<255;j++)
          ;
}
static void xint0_isr(void) interrupt IE0_VECTOR
{
  unsigned char i,j=0XFF;     /* 变量 j */
  for(i=0;i<16;i++)
  {
      j=~j;
      P1 = j;              /* 将数值输出到 LED 输出埠 */
      delay_4isr ();
  }
}
void main (void)  {
  unsigned char j=0XFF;    /* 变量 j */
  EA=0;                    /* 设定系统不接受所有的中断 */
  EX0=1;                   /* 设定接受INT0的中断 */
  PX0=1;
  EA=1;                    /* 设定系统接受中断 */
  while (1)                /* 无穷循环 */
                            /* 依次让LED 0,1,2,3,4,5,6,7闪烁 */
  {   
      j=(j<<1) | 0x01;
      if(j==0XFF) j=0XFE;
      P1 = j;              /* 将数值输出到 LED 输出端口 */
      delay();             /* 调用 delay 函数*/
  }
}

⌨️ 快捷键说明

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