t13.c

来自「51系列单片机在基本的开发例程」· C语言 代码 · 共 35 行

C
35
字号
/* t13.c 三十七选一 */
/* 按 0 <Int> 键产生INT0中断,停止 3 秒种后又重新启动 */
#include <reg51.h>
unsigned int i,j,k;
unsigned char a;
unsigned char led[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
                       0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

void delay(i)
{ while(i--)
   { j=7650;while(j--);}
}

/* 显示当前循环变量 3 秒钟 */
void stop(void)
{ P0=led[a/10];P2=led[a%10];
  delay(30);
}

/* 中断函数 */
void  key_int0() interrupt 0
{ stop();}

void main(void)
{ P0=0x80;P2=0x80;delay(10);P0=0xff;P2=0xff;
  P1=0xfe;
  IE=0x81;
  while(1)
   { for(a=1;a<=37;a++)
      { P0=led[(a*3+1)%16];P2=led[(a*5+1)%16];  /* 显示乱码 */
        delay(1);
      }
   }
}

⌨️ 快捷键说明

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