可变化的跑马灯.c

来自「几个C应用实例:绘图型LCD时钟,89S51演奏生日快乐...等等」· C语言 代码 · 共 45 行

C
45
字号
/*

程序描述: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 + =
减小字号Ctrl + -
显示快捷键?