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

📄 getdot.c

📁 keil c 开发的典型动态LED显示屏控制器,cpu为51系列
💻 C
📖 第 1 页 / 共 2 页
字号:

#include <intrins.h>
#include "PortDef.h"
#include "GetDot.h"

extern unsigned char xdata DotRam1[288];
extern unsigned char xdata DotRam2[288];
extern unsigned char Line;
extern unsigned int CountTime;
extern unsigned char TestTimes;


extern bit Close;
extern bit Bar;
extern bit Test; 
extern bit TestFlag; 
extern bit Hold; 
extern bit CutDownEn; 
extern bit Great;

unsigned char bdata BMov;
sbit BMov7 = BMov^7;
sbit BMov6 = BMov^6;
sbit BMov5 = BMov^5;
sbit BMov4 = BMov^4;
sbit BMov3 = BMov^3;
sbit BMov2 = BMov^2;
sbit BMov1 = BMov^1;
sbit BMov0 = BMov^0;


bit SelRam=0;
unsigned int BakCountTime=0;
unsigned char code CharDot[]= {
/*0*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x07,0xF0,0x1F,0xF8,
	  0x1E,0x78,0x3C,0x3C,0x38,0x1C,0x78,0x1E,
	  0x78,0x1E,0x78,0x1E,0x70,0x0E,0x70,0x0E,
	  0x70,0x0E,0x70,0x0E,0x70,0x0E,0x78,0x1E,
	  0x78,0x1E,0x78,0x1E,0x38,0x1C,0x3C,0x3C,
	  0x1E,0x78,0x1F,0xF8,0x07,0xE0,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*1*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x01,0xC0,0x01,0xC0,
	  0x03,0xC0,0x0F,0xC0,0x1F,0xC0,0x1F,0xC0,
	  0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,
	  0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,
	  0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,
	  0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*2*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x03,0xF0,0x07,0xF8,
	  0x0F,0x7C,0x1E,0x3C,0x1E,0x1C,0x1E,0x1C,
	  0x1C,0x1C,0x1C,0x3C,0x00,0x3C,0x00,0x7C,
	  0x00,0xF8,0x01,0xF0,0x03,0xE0,0x07,0xC0,
	  0x0F,0x80,0x0F,0x00,0x1E,0x00,0x3C,0x00,
	  0x3C,0x00,0x3F,0xFC,0x3F,0xFC,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*3*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x0F,0xE0,0x1F,0xF0,
	  0x1E,0xF8,0x3C,0x78,0x3C,0x38,0x38,0x38,
	  0x00,0x78,0x00,0x78,0x00,0xF8,0x01,0xF0,
	  0x01,0xF0,0x00,0xF8,0x00,0x3C,0x00,0x3C,
	  0x70,0x1C,0x70,0x1C,0x78,0x3C,0x78,0x3C,
	  0x3E,0x78,0x1F,0xF8,0x0F,0xE0,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*4*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0xF0,
	  0x01,0xF0,0x01,0xF0,0x03,0xF0,0x07,0xF0,
	  0x07,0x70,0x0E,0x70,0x1E,0x70,0x1C,0x70,
	  0x38,0x70,0x78,0x70,0x70,0x70,0x7F,0xFE,
	  0x7F,0xFE,0x00,0x70,0x00,0x70,0x00,0x70,
	  0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*5*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x1F,0xF8,0x3F,0xF8,
	  0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,
	  0x38,0x00,0x3F,0xF0,0x3F,0xF8,0x3E,0x78,
	  0x38,0x3C,0x00,0x3C,0x00,0x1C,0x00,0x1C,
	  0x70,0x1C,0x78,0x3C,0x78,0x3C,0x78,0x3C,
	  0x3E,0xF8,0x1F,0xF0,0x0F,0xE0,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*6*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x03,0xF8,0x07,0xFC,
	  0x0F,0x3E,0x1E,0x1E,0x1C,0x0E,0x3C,0x00,
	  0x3C,0x00,0x3F,0xF8,0x3F,0xFC,0x3F,0x3C,
	  0x3C,0x1E,0x3C,0x1E,0x38,0x0E,0x38,0x0E,
	  0x38,0x0E,0x3C,0x0E,0x3C,0x1E,0x1C,0x1E,
	  0x1F,0x3C,0x0F,0xFC,0x07,0xF0,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*7*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x3F,0xFC,0x3F,0xFC,
	  0x00,0x3C,0x00,0x3C,0x00,0x3C,0x00,0x78,
	  0x00,0x78,0x00,0x78,0x00,0xF0,0x00,0xF0,
	  0x00,0xF0,0x01,0xE0,0x01,0xE0,0x01,0xE0,
	  0x01,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,
	  0x07,0x80,0x07,0x80,0x07,0x80,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*8*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x0F,0xE0,0x1F,0xF0,
	  0x3E,0xF8,0x3C,0x78,0x38,0x38,0x38,0x38,
	  0x38,0x38,0x3C,0x78,0x3E,0xF8,0x1F,0xF0,
	  0x1F,0xF0,0x3E,0xF8,0x78,0x3C,0x78,0x3C,
	  0x70,0x1C,0x70,0x1C,0x78,0x3C,0x78,0x3C,
	  0x3E,0xF8,0x3F,0xF8,0x0F,0xE0,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*9*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x07,0xF0,0x1F,0xF8,
	  0x1E,0x7C,0x3C,0x1C,0x3C,0x1E,0x38,0x1E,
	  0x38,0x0E,0x38,0x0E,0x3C,0x1E,0x3C,0x1E,
	  0x3E,0x7E,0x1F,0xFE,0x0F,0xEE,0x00,0x1E,
	  0x00,0x1E,0x00,0x1E,0x38,0x1C,0x3C,0x3C,
	  0x3E,0x78,0x1F,0xF0,0x0F,0xE0,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*-*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,
	  0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*H*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x38,0x0E,0x38,0x0E,
      0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,
      0x38,0x0E,0x38,0x0E,0x38,0x0E,0x3F,0xFE,
      0x3F,0xFE,0x38,0x0E,0x38,0x0E,0x38,0x0E,
      0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,
      0x38,0x0E,0x38,0x0E,0x38,0x0E,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*<*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x04,0x00,0x0E,0x00,0x1C,
	  0x00,0x38,0x00,0x70,0x00,0xC0,0x01,0x80,
	  0x07,0x00,0x0E,0x00,0x1C,0x00,0x38,0x00,
	  0x70,0x00,0x38,0x00,0x1C,0x00,0x0E,0x00,
	  0x07,0x00,0x01,0x80,0x00,0xE0,0x00,0x70,
	  0x00,0x38,0x00,0x1C,0x00,0x0E,0x00,0x04,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*>*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x20,0x00,0x70,0x00,0x38,0x00,
	  0x1C,0x00,0x0E,0x00,0x03,0x00,0x01,0x80,
	  0x00,0xE0,0x00,0x70,0x00,0x38,0x00,0x1C,
	  0x00,0x0E,0x00,0x1C,0x00,0x38,0x00,0x70,
	  0x00,0xE0,0x01,0x80,0x07,0x00,0x0E,0x00,
	  0x1C,0x00,0x38,0x00,0x70,0x00,0x20,0x00,
	  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
 };


void GenDotRam(void)
{
  unsigned int k,k1,k2,k3;
  unsigned int i;
  unsigned char j,n,m;
  if(Close){
    for(i=0; i<288; i++) {
      if(SelRam)  DotRam1[i] = 0x00;
	  else	      DotRam2[i] = 0x00;
     }
    SelRam = !SelRam;
    Close = 0;
    return;
   }

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

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


  if(Bar){
    BakCountTime = CountTime;
    for(j=0; j<32; j++){
	  k = j*6+48;
	  n = j*2;
      m = n+1; 
 	  if(SelRam) {
	           DotRam1[k]   = CharDot[640+n];
		       DotRam1[k+1] = CharDot[640+m];
			   DotRam1[k+2] = CharDot[640+n];
		       DotRam1[k+3] = CharDot[640+m];
			   DotRam1[k+4] = CharDot[640+n];
		       DotRam1[k+5] = CharDot[640+m];
	   }
	  else     {
	           DotRam2[k]   = CharDot[640+n];
		       DotRam2[k+1] = CharDot[640+m];
			   DotRam2[k+2] = CharDot[640+n];
		       DotRam2[k+3] = CharDot[640+m];
			   DotRam2[k+4] = CharDot[640+n];
		       DotRam2[k+5] = CharDot[640+m];
	   }
     } 
    SelRam = !SelRam;
	Bar = 0;
    return;
   }
  
  if(Test==1){
	TestFlag = 1;
    for(i=0;i<288;i++){
	  if(SelRam)  DotRam1[i] = 0x00;
      else        DotRam2[i] = 0x00;
     }

    switch(TestTimes){
      case 0: for(i=0;i<288;i++){
				if(SelRam)  DotRam1[i] = 0xFF;
                else        DotRam2[i] = 0xFF;
         	   }
	          break;
      case 1: for(j=0;j<12;j++){
	            k = 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 2: for(j=0;j<12;j++){
                k = 6+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;

⌨️ 快捷键说明

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