8*8双色点阵怎么用,C语言代码怎么写?

2025-02-27 16:36:07
推荐回答(2个)
回答1:

1、8*8双色点阵实际上是两个8*8点阵,必须增加一个端口来控制是使用哪个颜色的8*8点阵;或者连接成一个8*16点阵来控制。C语言代码和控制8*8点阵类似,增加扫描端口就可以了。

2、例程:

#include  
unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; 
unsigned char code digittab[10][8]={
                                    {0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00}, //0 
                                    {0x00,0x00,0x00,0x00,0x21,0x7f,0x01,0x00}, //1 
                                    {0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00}, //2 
                                    {0x00,0x00,0x22,0x49,0x49,0x49,0x36,0x00}, //3 
                                    {0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00}, //4 
                                    {0x00,0x00,0x72,0x51,0x51,0x51,0x4e,0x00}, //5 
                                    {0x00,0x00,0x3e,0x49,0x49,0x49,0x26,0x00}, //6 
                                    {0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00}, //7 
                                    {0x00,0x00,0x36,0x49,0x49,0x49,0x36,0x00}, //8 
                                    {0x00,0x00,0x32,0x49,0x49,0x49,0x3e,0x00} //9
                                    }; 
  
unsigned int timecount; 
unsigned char cnta; 
unsigned char cntb; 
  
void main(void) 

  TMOD=0x01; 
  TH0=(65536-1000)/256; 
  TL0=(65536-1000)%256; 
  TR0=1; 
  ET0=1; 
  EA=1; 
  while(1) 
    {; 
    } 

  
void t0(void) interrupt 1 using 0 

  TH0=(65536-1000)/256; 
  TL0=(65536-1000)%256; 
  P3=tab[cnta]; 
  P1=digittab[cntb][cnta]; 
  cnta++; 
  if(cnta==8) 
    { 
      cnta=0; 
    } 
  timecount++; 
  if(timecount==333) 
    { 
      timecount=0; 
      cntb++; 
      if(cntb==10) 
        { 
          cntb=0; 
        } 
    } 
}

回答2:

8*8双色点阵实际上是两个8*8点阵,你必须增加一个端口来控制是使用哪个颜色的8*8点阵;或者你连接成一个8*16点阵来控制。
C语言代码和控制8*8点阵类似,增加扫描端口就可以了。