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

📄 csygreen.c~rfc66464.tmp

📁 ADSL测试仪
💻 TMP
📖 第 1 页 / 共 2 页
字号:
       Line_nums=6;
       Col=8;
       Line_str[4]='d';
       Line_str[5]='B';
       Disp1608();
       strncpy(Line_str,Dsl.Remote_Line_Att,4);
       Line=2;
       Col=8;
       Disp1608();
    }
  Line_str[0]=24;
  Line=0;
  Col=15;
  Line_nums=1;
  Disp1608();
  Line_str[0]=25;
  Line=3;
  Disp1608();
}
void DisplayFive(void)
{
   unsigned char i;
   if(!Languageflag)
      strncpy_P(Line_str,DisplayFourMenu,15);
   else
      strncpy_P(Line_str,DisplayFourMenuE,15);
   Line=0;
   Line_nums=15;
   Col=0;
   Disp1608(); 
   Line_str[0]=24;
   Line=0;
   Col=15;
   Line_nums=1;
   Disp1608();
   for(i=0;i<5;i++)
   {  
       Line_str[3+i]=EE_RecordDown1[i];
       Line_str[10+i]=EE_RecordUP1[i];
   }
   strncpy_P(Line_str,number,2);
   Line_str[2]=' ';
   Line_str[8]='K';
   Line_str[9]='/';
   Line_str[15]='K';
   Line=1;
   Line_nums=16;
   Col=0;
   Disp1608(); 
   for(i=0;i<5;i++)
   {  
       Line_str[3+i]=EE_RecordDown2[i];
       Line_str[10+i]=EE_RecordUP2[i];
   }
   strncpy_P(Line_str,&number[2],2);
   Line=2;
   Disp1608(); 
   for(i=0;i<5;i++)
   {  
       Line_str[3+i]=EE_RecordDown3[i];
       Line_str[10+i]=EE_RecordUP3[i];
   }
   strncpy_P(Line_str,&number[4],2);
   Line=3;
   Disp1608(); 
}
void DisplayFour(void)
{
   if(!Languageflag)
      strncpy_P(Line_str,DisplayFiveMenu,15);
   else
      strncpy_P(Line_str,DisplayFiveMenuE,15);
   Line=0;
   Line_nums=15;
   Col=0;
   Disp1608();
   Line_str[0]=25;
  Line=3;
  Col=15;
  Line_nums=1;
  Disp1608();
  Line_str[0]=24;
  Line=0;
  Disp1608();
   Disp2();
  
}
void Disp2(void)
{
  char i,j,k;
  for(i=0;i<113;i++)
  {
     DrawDot(31,7+i);
     DrawDot(48,7+i);
  }
  for(i=0;i<2;i++)
  {
     DrawLine(4+i,7);
     DrawLine(4+i,119);
  }
   k=Battery;//*8;
  for(i=0;i<2;i++)
  {
    for(j=0;j<k;j++)
      DrawLine(4+i,7+j);
  }
  
}
void DrawLine(unsigned char x,unsigned char y)
{
  char CSY_addr;
  IniLCD();
  SET_CS1;
  CLR_CS2;
  CSY_addr=y;//;Y_address;
  if(CSY_addr>63)//Y_address>63)
  {
        CSY_addr-=64;
        SET_CS2;
        CLR_CS1;
  }
  Read_BF();
  DDRB=0xff;
  CLR_RW;
  CLR_RS;
  PORTB=CSY_addr+0x40;
  SET_E;
  CLR_E;
  Read_BF();
  DDRB=0xff;
  CLR_RW;
  CLR_RS;
  PORTB=x+0xb8;//X_address+0xb8;
  SET_E;
  CLR_E;
  Read_BF();
  CLR_RW;
  SET_RS;
  DDRB=0xff;
  PORTB=0xff;
  SET_E;
  CLR_E;
}
void DrawDot(unsigned char x,unsigned char y)
{
  char CSY_addr;
  char dot[8]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  IniLCD();
  SET_CS1;
  CLR_CS2;
  CSY_addr=y;//;Y_address;
  if(CSY_addr>63)//Y_address>63)
  {
        CSY_addr-=64;
        SET_CS2;
        CLR_CS1;
  }
  Read_BF();
  DDRB=0xff;
  CLR_RW;
  CLR_RS;
  PORTB=CSY_addr+0x40;
  SET_E;
  CLR_E;
  Read_BF();
  DDRB=0xff;
  CLR_RW;
  CLR_RS;
  PORTB=x/8+0xb8;//X_address+0xb8;
  SET_E;
  CLR_E;
  Read_BF();
  CLR_RW;
  SET_RS;
  DDRB=0xff;
  PORTB=dot[x%8];
  SET_E;
  CLR_E;
}
void DelayTime(unsigned int Time)
{
  unsigned int count,i;
  for(i=0;i<Time;i++)
      for(count=0;count<1730;count++);
}  
void Initial(void)
{
  unsigned int i=0;
  WDTCR=(1<<4)|(1<<3);
  WDTCR=0x00;
  MCUCR=0;
  for(i=0;i<10000;i++);
  Clr_LCD();
  PORTD&=0xdf;
  Key();
  if(Key_pressed)
  {
     Get_Keycode();
     if(KeyCode==BG_KEY)
     {
           SetupLanguage();
     }
  }
  PORTD|=0x03;
  UBRRH=0x00;
  UBRRL=5;
  UCSRA=0x02;
  UCSRB=0x18;
  UCSRC=0x86; 
  TCCR1B=0x1a;
  TCCR1A=2;
  ICR1=15000;
  TIMSK=0x04; 
  _SEI();
}
void DisplayInitial(void)
{
      int i,j;
      strncpy(Line_str,"VER 5.30",8);
      Line_nums=8;
      Line=0;
      Col=0;
      Disp1608();
      if(Languageflag)
      {
        strncpy_P(Line_str,IniMenuE,16);
        Line_nums=16;
        Line=1;
        Col=0;
        Disp1608();
      }
      else
      {
        strncpy_P(Line_str,IniMenu,10);
        Line_nums=10;
        Line=1;
        Col=3;
        Disp1608();
      }
  for(i=0;i<1000;i++)
  {
    for(j=0;j<3000;j++);
  }
   Clr_LCD();
}

void Disp1608(void)
{
  char i,k,m,n,Cur_Y,Y_address,X_address,CSY_addr;
  unsigned int HZK_ptr;
  Cur_Y=Col;
  IniLCD();
  for(i=0;i<Line_nums;i++)
  {
     if(Line_str[i]>=0x80)
     {
        HZK_ptr=(Line_str[i]&0x7f)*0x80+(Line_str[i+1]&0x7f);
        HZK_ptr*=32;
        for(m=0;m<2;m++)
        {
          Y_address=Cur_Y*8;          
          X_address=Line*2+m;
          for(n=0;n<2;n++)
          {
             SET_CS1;
             CLR_CS2;
             Y_address+=n*8;
             CSY_addr=Y_address;
             if(Y_address>63)
             {
                CSY_addr-=64;
                SET_CS2;
                CLR_CS1;
              }
              Read_BF();
              DDRB=0xff;
              CLR_RW;
              CLR_RS;
              PORTB=CSY_addr+0x40;
              SET_E;
              CLR_E;
              Read_BF();
              DDRB=0xff;
              CLR_RW;
              CLR_RS;
              PORTB=X_address+0xb8;
              SET_E;
              CLR_E;
              for(k=0;k<8;k++)
              {
                Read_BF();
                CLR_RW;
                SET_RS;
                DDRB=0xff;
                if(M_flag==1)
                   PORTB=0xff-HZK[HZK_ptr];
                else
                   PORTB=HZK[HZK_ptr];
                SET_E;
                CLR_E;
                HZK_ptr++;
               }
              }
            }
           i++;Cur_Y++; 
       } 
       else
       {
          HZK_ptr=Line_str[i]*16;
          for(m=0;m<2;m++)
         {
           Y_address=Cur_Y*8; 
           X_address=Line*2+m;
            SET_CS1;
            CLR_CS2;
            if(Y_address>63)
            {
                Y_address-=64;
                SET_CS2;
                CLR_CS1;
            }
            Read_BF();
            CLR_RW;
            CLR_RS;
            DDRB=0xff;
            PORTB=Y_address+0x40;
            SET_E;
            CLR_E;
            Read_BF();
            CLR_RW;
            CLR_RS;
            DDRB=0xff;
            PORTB=X_address+0xb8;
            SET_E;
            CLR_E;
            for(k=0;k<8;k++)
            {
              Read_BF();
              CLR_RW;
              SET_RS;
              DDRB=0xff;
              if(M_flag==1)
                PORTB=0xff-asc000[HZK_ptr];//+k+m*8];
              else
                PORTB=asc000[HZK_ptr];//+k+m*8];
              SET_E;
              CLR_E;
              HZK_ptr++;
            }
          }
        }
        Cur_Y++;
     }   
     M_flag=0;  
}


void Read_BF(void)
{
  unsigned char ch,ch1;
  while(1)
  {
     CLR_E;
     SET_RW;CLR_RS;//SET_CS1;CLR_CS2;
     DDRB=0x00;
     PORTB=0x00; 
     SET_E;
     CLR_E;
     ch=PINB;
     ch1=ch&0x90;
     if(ch1==0)
        break;
  } 
}

void Clr_Row(char Row)
{
  memcpy_P(Line_str,SPACE,16);
  Col=0;Line=Row;
  Line_nums=16;
  CLR1608();
}               
void CLR1608(void)
{
  char i,m,j,X_address;
  for(j=0;j<2;j++)
  {
    if(j==0)
    {
       SET_CS1;
       CLR_CS2;
    }
    else
    {
       SET_CS2;
       CLR_CS1;
    }      
          for(m=0;m<2;m++)
         {
            X_address=Line*2+m;
            Read_BF();
            CLR_RW;
            CLR_RS;
            DDRB=0xff;
            SET_E;
            CLR_E;
            Read_BF();
            CLR_RW;
            CLR_RS;
            DDRB=0xff;
            PORTB=X_address+0xb8;
            SET_E;
            CLR_E;
          for(i=0;i<64;i++)
          {
              Read_BF();
              CLR_RW;
              SET_RS;
              DDRB=0xff;
              PORTB=0;
              SET_E;
              CLR_E;
           }   
       } 
   }       
}   
void Clr_LCD(void)
{
   char i;
   for(i=0;i<4;i++)
     Clr_Row(i);
}
void Clr_4Row(void)
{
   char i;
   for(i=1;i<4;i++)
     Clr_Row(i);
}
void IniLCD(void)
{
   SET_CS1;
   CLR_CS2;   
   Read_BF();
   DDRB=0xff;
   PORTB=0x3f; 
   LCDCommand();
   SET_CS2;
   CLR_CS1;
    Read_BF();   
   DDRB=0xff;
   PORTB=0x3f; 
   LCDCommand();
   SET_CS1 ;
   CLR_CS2;    
   DDRB=0xff;
   PORTB=0xc0; 
   LCDCommand();
   SET_CS2;
   CLR_CS1;    
   DDRB=0xff;
   PORTB=0xc0; 
   LCDCommand();
}
void LCDCommand(void)
{
   CLR_E;
   CLR_RW;
   CLR_RS;
   SET_E;
   CLR_E;
}   

void Key(void)
{
   unsigned int i;
   char temp;
   BackLight();
   Key_pressed=0;
   DDRA=0x0;
   temp=PINA;
   temp|=0xf5;
   if(temp!=0xff) 
   {
     for(i=0;i<100;i++);
     temp=PINA;
     temp|=0xf5;
     if(temp!=0xff)
     {
       Key_pressed=1;
        _CLI();
       TimerOff=0;
       _SEI();
     }
    }      
}
void Get_Keycode(void)
{
      KeyCode=0xff;
      DDRA=0x00;
      KeyCode=PINA|0xf5;
}  
void KeyWaite(void)
{
       while(1)
       {
           BackLight();
           Get_Keycode();
           if(KeyCode==0xff)
              break;
       }    
} 
void SetupLanguage(void)
{
   char CurRow1;
   CurRow1=CurRow;
   Clr_LCD();
   CurRow=Languageflag;
   while(1)
   {
      SetupLanguageUpdate(); 
      if(!Get_BackLightKey())
        break;
   }
   while(1)
   {
      SetupLanguageUpdate();  
      Key();
      if(Key_pressed)
      {
        Get_Keycode();
         if(KeyCode==UP_KEY)
         {
            KeyWaite();
            if(CurRow>0)
              CurRow--;
          }
          else if(KeyCode==DOWN_KEY)
          {
             KeyWaite();
             if(CurRow<1)
               CurRow++;
          }
      }
     if(Get_BackLightKey())
     {
             Languageflag=CurRow;
             EE_Languageflag=CurRow;
             break;
     }
   }
   CurRow=CurRow1;
}
void SetupLanguageUpdate(void)
{ 
     char i;
     if(!Languageflag)
        strncpy_P(Line_str,SetupLanguageMenu,16);
     else
        strncpy_P(Line_str,SetupLanguageMenuE,16);
     Line_nums=16;
     Col=0;
     Line=0;
     M_flag=1;
     Disp1608(); 
     for(i=0;i<2;i++)
     {
       strncpy_P(Line_str,&SetupLanguageMenu1[7*i],7);
       if(CurRow==i)
         M_flag=1;
       Line_nums=7;
       Col=4;
       Line=2+i;
       Disp1608();
       if(CurRow==i)
         strncpy_P(Line_str,&SetupDisplayMenu1[2],2);
       else
         strncpy_P(Line_str,SetupDisplayMenu1,2);
       Line_nums=2;
       Col=0;
       Line=2+i;
       Disp1608();      
     }
}  

__interrupt void TIMER1VF_Handler(void)
{
  DDRA&=0x7f;
  PORTA&=0x7f;
  ICR1=15000;
  if(!(PINA&0x80))
  {
    if(TimerCount<100)
    {
      TimerCount++;
      TimerOff++;
    }
    else
    {
        Synflag=1;
        TimerOff=0;
        TimerOffflag=0;
    }
  }
  else
  {
    TimerOff++;
    if(TimerOff>10000)
    {
      TimerOff=10001;
      TimerOffflag=1;
    }
    TimerCount=0;
    Synflag=0;
  }
}
void ADCBattery(void)
{
  ADCSRA|=0x40;
  while(!(ADCSRA&0x10));
  Battery=ADCH;
  if(Battery<200)
  {
     Battery=0;
     LowOffflag=1;
  }
  else if(Battery<210)//<6.8V Turn off
  {
    LowOffflag=1;
    Battery-=200;
  }
  else if(Battery<220)//<7.0V Alarm
  {
    LowAlarmCount++;
    Battery-=200;
  }
  else
  {
    Battery-=200;
    LowAlarmCount=0;
  }
  if(LowAlarmCount>0x1fff)
  {
    LowAlarmCount=0;
    BeeSpeak(10);
  }
  Battery=Battery*2+2;
  if(Battery>87)//if(Battery>112)
    Battery=112;
}
     


⌨️ 快捷键说明

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