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

📄 getdot.c

📁 keil c 开发的典型动态LED显示屏控制器,cpu为51系列
💻 C
📖 第 1 页 / 共 2 页
字号:
		         } 
			   }
	          break;
	  case 3: for(j=0;j<12;j++){
	            k = 12+j*24;
				if(SelRam)  {
				   DotRam1[k] = 0xFF;
				   DotRam1[k+1] = 0xFF;
           		   DotRam1[k+2] = 0xFF;
				   DotRam1[k+3] = 0xFF;
				   DotRam1[k+4] = 0xFF;
           		   DotRam1[k+5] = 0xFF;
		         } 
                else  {
				   DotRam2[k] = 0xFF;
				   DotRam2[k+1] = 0xFF;
           		   DotRam2[k+2] = 0xFF;
				   DotRam2[k+3] = 0xFF;
				   DotRam2[k+4] = 0xFF;
           		   DotRam2[k+5] = 0xFF;
		         } 
			   }
	          break;
	  case 4: for(j=0;j<12;j++){
                k = 18+j*24;
				if(SelRam)  {
				   DotRam1[k] = 0xFF;
				   DotRam1[k+1] = 0xFF;
           		   DotRam1[k+2] = 0xFF;
				   DotRam1[k+3] = 0xFF;
				   DotRam1[k+4] = 0xFF;
           		   DotRam1[k+5] = 0xFF;
		         } 
                else  {
				   DotRam2[k] = 0xFF;
				   DotRam2[k+1] = 0xFF;
           		   DotRam2[k+2] = 0xFF;
				   DotRam2[k+3] = 0xFF;
				   DotRam2[k+4] = 0xFF;
           		   DotRam2[k+5] = 0xFF;
		         } 
			   }
	          break;
	  case 5: for(j=0;j<6;j++){
	            for(n=0; n<48; n++) {
				  k = n*6+j;
     			  if(SelRam)     DotRam1[k] = 0x88;
                  else           DotRam2[k] = 0x88;
		         } 
			   }
	          break;
	  case 6: for(j=0;j<6;j++){
	            for(n=0; n<48; n++) {
				  k = n*6+j;
     			  if(SelRam)     DotRam1[k] = 0x44;
                  else           DotRam2[k] = 0x44;
		         } 
			   }
	          break;
	  case 7: for(j=0;j<6;j++){
	            for(n=0; n<48; n++) {
				  k = n*6+j;
     			  if(SelRam)     DotRam1[k] = 0x22;
                  else           DotRam2[k] = 0x22;
		         } 
			   }
	          break;
	  case 8: for(j=0;j<6;j++){
	            for(n=0; n<48; n++) {
				  k = n*6+j;
     			  if(SelRam)     DotRam1[k] = 0x11;
                  else           DotRam2[k] = 0x11;
		         } 
			   }
	          break;
	  case 9: for(j=0;j<12;j++) {
	            for(n=0; n<6; n++ ) {
				  k = j*24+n;
				  if(SelRam)  {
				     DotRam1[k] = 0x88;
					 DotRam1[k+6] = 0x11;
					 DotRam1[k+12] = 0x22;
					 DotRam1[k+18] = 0x44;
					}
                  else    {
				     DotRam2[k] = 0x88;
					 DotRam2[k+6] = 0x11;
					 DotRam2[k+12] = 0x22;
					 DotRam2[k+18] = 0x44;
					}
				 }
			   }
	          break;
	  case 10:for(j=0;j<12;j++) {
	            for(n=0; n<6; n++ ) {
				  k = j*24+n;
				  if(SelRam)  {
				     DotRam1[k] = 0x44;
					 DotRam1[k+6] = 0x88;
					 DotRam1[k+12] = 0x11;
					 DotRam1[k+18] = 0x22;
					}
                  else    {
				     DotRam2[k] = 0x44;
					 DotRam2[k+6] = 0x88;
					 DotRam2[k+12] = 0x11;
					 DotRam2[k+18] = 0x22;
					}
				 }
			   }
	          break;
	  case 11:for(j=0;j<12;j++) {
	            for(n=0; n<6; n++ ) {
				  k = j*24+n;
				  if(SelRam)  {
				     DotRam1[k] = 0x22;
					 DotRam1[k+6] = 0x44;
					 DotRam1[k+12] = 0x88;
					 DotRam1[k+18] = 0x11;
					}
                  else    {
				     DotRam2[k] = 0x22;
					 DotRam2[k+6] = 0x44;
					 DotRam2[k+12] = 0x88;
					 DotRam2[k+18] = 0x11;
					}
				 }
			   }
	          break;
	  case 12:for(j=0;j<12;j++) {
	            for(n=0; n<6; n++ ) {
				  k = j*24+n;
				  if(SelRam)  {
				     DotRam1[k] = 0x11;
					 DotRam1[k+6] = 0x22;
					 DotRam1[k+12] = 0x44;
					 DotRam1[k+18] = 0x88;
					}
                  else    {
				     DotRam2[k] = 0x11;
					 DotRam2[k+6] = 0x22;
					 DotRam2[k+12] = 0x44;
					 DotRam2[k+18] = 0x88;
					}
				 }
			   }
	          break;

      default  :  break;
     }
    SelRam = !SelRam;
    return;
   }
  if(CutDownEn==0) return;
  if(CountTime==BakCountTime) return;

  BakCountTime = CountTime;
  k1 = (CountTime/100)*64;
  k2 = ((CountTime%100)/10)*64;
  k3 = (CountTime%10)*64;

  for(j=0; j<32; j++){
    k = j*6+48;
	n = j*2;
	m = n+1; 
    if(SelRam){
	           DotRam1[k]   = CharDot[k1+n];
		       DotRam1[k+1] = CharDot[k1+m];
			   DotRam1[k+2] = CharDot[k2+n];
		       DotRam1[k+3] = CharDot[k2+m];
			   DotRam1[k+4] = CharDot[k3+n];
		       DotRam1[k+5] = CharDot[k3+m];
     }
	else      {
	           DotRam2[k]   = CharDot[k1+n];
		       DotRam2[k+1] = CharDot[k1+m];
			   DotRam2[k+2] = CharDot[k2+n];
		       DotRam2[k+3] = CharDot[k2+m];
			   DotRam2[k+4] = CharDot[k3+n];
		       DotRam2[k+5] = CharDot[k3+m];
     }
   }
  SelRam = !SelRam;
  return;
}

void MoveBit( void){
  SRD = BMov0;
  SCLK = 0;
  SCLK = 1;
  SRD = BMov1;
  SCLK = 0;
  SCLK = 1;
  SRD = BMov2;
  SCLK = 0;
  SCLK = 1;
  SRD = BMov3;
  SCLK = 0;
  SCLK = 1;
  SRD = BMov4;
  SCLK = 0;
  SCLK = 1;
  SRD = BMov5;
  SCLK = 0;
  SCLK = 1;
  SRD = BMov6;
  SCLK = 0;
  SCLK = 1;
  SRD = BMov7;
  SCLK = 0;
  SCLK = 1;
 }

void ScanLed(void)
{
  unsigned char i,n;
  unsigned int k;

  if(Line == 0x0F ) Line = 0x00;
  else              Line = Line + 0x01; 

  switch(Line){
    case 0x00: n = 0;  break;
    case 0x01: n = 6;  break;
    case 0x02: n = 12; break;
    case 0x03: n = 18; break;
    case 0x04: n = 24; break;
    case 0x05: n = 30; break;
    case 0x06: n = 36; break;
    case 0x07: n = 42; break;
    case 0x08: n = 48; break;
    case 0x09: n = 54; break;
    case 0x0A: n = 60; break;
    case 0x0B: n = 66; break;
    case 0x0C: n = 72; break;
    case 0x0D: n = 78; break;
    case 0x0E: n = 84; break;
    case 0x0F: n = 90; break;
    default  : n = 0;  break;
   }

  for(i=0; i<3; i++){
    switch(i){
      case 0x00: k = n;     break;
      case 0x01: k = n+96;  break;
      case 0x02: k = n+192; break;
      default  : k = 0;     break;
     }
	if(SelRam){
      BMov = DotRam2[k]; 
      MoveBit();
	  BMov = DotRam2[k+1]; 
      MoveBit();
	  BMov = DotRam2[k+2]; 
      MoveBit();
	  BMov = DotRam2[k+3]; 
      MoveBit();
	  BMov = DotRam2[k+4]; 
      MoveBit();
	  BMov = DotRam2[k+5];
      MoveBit();
	 }
    else{
      BMov = DotRam1[k]; 
      MoveBit();
	  BMov = DotRam1[k+1]; 
      MoveBit();
	  BMov = DotRam1[k+2]; 
      MoveBit();
	  BMov = DotRam1[k+3]; 
      MoveBit();
	  BMov = DotRam1[k+4]; 
      MoveBit();
	  BMov = DotRam1[k+5];
      MoveBit();
	 }
   }
  _nop_();

  OE = 0;
  _nop_();
  STR = 0;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  STR = 1;
  _nop_();
  _nop_();

  L0 = Line&0x01;
  L1 = Line&0x02;
  L2 = Line&0x04;
  L3 = Line&0x08;
  OE = 1;
  _nop_();
  _nop_();

}

⌨️ 快捷键说明

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