numericaltube.c

来自「实现了数码管的拉幕式显示」· C语言 代码 · 共 58 行

C
58
字号
#include <REG52.H>
unsigned char code dispcode[]={0xC0,0xF9,0xA4,0xB0,//0-3
								0x99,0x92,0x82,0xF8,//4-7
								0x80,0x90,0x88,0x83,//8-B
								0xC6,0xA1,0x86,0x8E,0xff};
unsigned char dispbitcode[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb};
unsigned char dispbuf[6]={16,16,16,16,16,16};
unsigned char dispbitcnt;
unsigned int t02scnt;
unsigned char t5mscnt;
unsigned char u;
unsigned char i;

void main(void)
{
  TMOD=0x02; //timer0 initial
  TH0=0x06;
  TL0=0x06;
  TR0=1; //timer0 starting
  ET0=1; //timer0 interrupt enable
  EA=1;	 //interrupt enable
  while(1);
}

void t0(void) interrupt 1 using 0
{
  t5mscnt++;
  if(t5mscnt==4)
    {
      t5mscnt=0;
      P0=dispcode[dispbuf[dispbitcnt]];//P0=0xff
      P2=dispbitcode[dispbitcnt];//led on low level//P2
      dispbitcnt++;
      if(dispbitcnt==6)
        {
          dispbitcnt=0;
        }
    }
  t02scnt++;
  if(t02scnt==1600)
    {
      t02scnt=0;
      u++;
      if(u==7)
        {
          u=0;
        }
      for(i=0;i<6;i++)
        {
          dispbuf[i]=16;
        }
      for(i=0;i<u;i++)
        {
          dispbuf[i]=i;
        }
    }
}

⌨️ 快捷键说明

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