26

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    13
#define LCD_WR    12
#define LCD_DATA  10

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  segm(0);hhh(0);
  segm(0);hhh(1);
  segm(0);hhh(2);
  segm(0);hhh(3);
  segm(0);hhh(4);
  segm(0);hhh(5);
  segm(0);hhh(6);
  segm(0);hhh(7);
  segm(0);hhh(8);

  lcd_write(0,  k[0]<<0 | c[0]<<1 | i[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[6]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[7]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[0]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 | 333<<4 | 222<<5 | 111<<6 | 000<<7);

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//0
   
    }

  }  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }  

27

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    13
#define LCD_WR    12
#define LCD_DATA  10

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  segm(0);hhh(0);
  segm(0);hhh(1);
  segm(0);hhh(2);
  segm(0);hhh(3);
  segm(0);hhh(4);
  segm(0);hhh(5);
  segm(0);hhh(6);
  segm(0);hhh(7);
  segm(0);hhh(8);

  write_seg();

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void write_seg(){
  lcd_write(0,  k[0]<<0 | c[0]<<1 | i[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[6]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[7]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[0]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 | 333<<4 | 222<<5 | 111<<6 | 000<<7);
  }  

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//0
   
    }

  }  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }  

28

Re: Управление панелькой от магнитолы aura с драйвером ht1621

void segm(int cif){
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//0
    case 1: seg_b=1,seg_c=1;break;                                                                                          //1
    case 2: seg_a=1,seg_b=1,seg_d=1,seg_e=1,seg_g1=1,seg_g2=1;break;                                                        //2
    case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_g1=1,seg_g2=1;break;                                                        //3
    case 4: seg_b=1,seg_c=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                                //4
    case 5: seg_a=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                        //5
    case 6: seg_a=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //6
    case 7: seg_a=1,seg_b=1,seg_c=1;break;                                                                                  //7
    case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                        //8
    case 9: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //9
    }
  }  
void eng(int ENG){
switch(ENG){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//A-0
  case 1: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//B-1
  case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//C-2
  case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//D-3
  case 4: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//E-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//F-5
  case 6: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//G-6
  case 7: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//H-7
  case 8: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//I-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//J-9
  case 10: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//K-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//L-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//M-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//N-13
  case 14: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//O-14
  case 15: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//P-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//Q-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=1;break;//R-17
  case 18: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//S-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//T-19
  case 20: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//U-20
  case 21: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//V-21
  case 22: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//W-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//X-23
  case 24: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Y-24
  case 25: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Z-25
  }
}
void rus(int RUS){
switch(RUS){
  case 0: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=1,seg_m=1,seg_k=0;break;//А-0
  case 1: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Б-1
  case 2: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//В-2
  case 3: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Г-3
  case 4: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Д-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Е-5
  case 6: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ё-6
  case 7: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Ж-7
  case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//З-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//И-9
  case 10: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Й-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//К-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Л-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//М-13
  case 14: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Н-14
  case 15: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//О-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//П-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Р-17
  case 18: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//С-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Т-19
  case 20: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//У-20
  case 21: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ф-21
  case 22: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Х-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ц-23
  case 24: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ч-24
  case 25: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ш-25
  case 26: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Щ-26
  case 27: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ъ-27
  case 28: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//Ы-28
  case 29: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ь-29
  case 30: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Э-30
  case 31: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//Ю-31
  case 32: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Я-32
}
}
void animation(int ani){//полоски анимации
switch(ani){
  case 0: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//ВЕРХНЯЯ ПОЛОСА
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//СРЕДНЯЯ ПОЛОСА
case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//НИЖНЯЯ ПОЛОСА
}
}
void animationinmenu(int ani2){//шаги анимации входа в меню
switch(ani2){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки
case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}
void animationoutmenu(int ani3){//шаги анимации выхода из меню
switch(ani3){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
  case 1: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки 
  case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
  case 3: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
}
}
void spectrum(int spec){//спектр цастот
switch(spec){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//нижняя полоса
  case 1: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;
  case 2: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 3: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 4: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}

29

Re: Управление панелькой от магнитолы aura с драйвером ht1621

накидал все шрифты, кроме знаков( такие как звёздочки, слеши). Сделал заготовки под анимации простые, анимации входа и выхода из меню настроек и спектр частот(это всё в будущем пригодится, а пока что необходимы только цифры и буквы, я сделал и русский и английский шрифты).

30

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    13
#define LCD_WR    12
#define LCD_DATA  10

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  segm(0);hhh(0);
  segm(0);hhh(1);
  segm(4);hhh(2);
  segm(3);hhh(3);
  segm(0);hhh(4);
  segm(0);hhh(5);
  segm(0);hhh(6);
  segm(0);hhh(7);
  segm(0);hhh(8);

  write_seg();

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void write_seg(){
  lcd_write(0,  k[0]<<0 | c[0]<<1 | i[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[6]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[7]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[0]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 | 333<<4 | 222<<5 | 111<<6 | 000<<7);
  }  

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1;break;//0
    case 1: seg_b=1,seg_c=1;break;                                                                                          //1
    case 2: seg_a=1,seg_b=1,seg_d=1,seg_e=1,seg_g1=1,seg_g2=1;break;                                                        //2
    case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_g1=1,seg_g2=1;break;                                                        //3
    case 4: seg_b=1,seg_c=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                                //4
    case 5: seg_a=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                        //5
    case 6: seg_a=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //6
    case 7: seg_a=1,seg_b=1,seg_c=1;break;                                                                                  //7
    case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                        //8
    case 9: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //9
    }
  }  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }  

31

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    13
#define LCD_WR    12
#define LCD_DATA  10

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;
int xxx;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  xxx++;
  segm(xxx);hhh(0);
  segm(xxx);hhh(1);
  segm(xxx);hhh(2);
  segm(xxx);hhh(3);
  segm(xxx);hhh(4);
  segm(xxx);hhh(5);
  segm(xxx);hhh(6);
  segm(xxx);hhh(7);
  segm(xxx);hhh(8);
  if(xxx>9){xxx=0;}
  write_seg();

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void write_seg(){
  lcd_write(0,  k[0]<<0 | c[0]<<1 | i[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[6]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[7]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[0]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 | 333<<4 | 222<<5 | 111<<6 | 000<<7);
  }  

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1;break;//0
    case 1: seg_b=1,seg_c=1;break;                                                                                          //1
    case 2: seg_a=1,seg_b=1,seg_d=1,seg_e=1,seg_g1=1,seg_g2=1;break;                                                        //2
    case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_g1=1,seg_g2=1;break;                                                        //3
    case 4: seg_b=1,seg_c=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                                //4
    case 5: seg_a=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                        //5
    case 6: seg_a=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //6
    case 7: seg_a=1,seg_b=1,seg_c=1;break;                                                                                  //7
    case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                        //8
    case 9: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //9
    }
  }  

void eng(int ENG){
switch(ENG){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//A-0
  case 1: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//B-1
  case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//C-2
  case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//D-3
  case 4: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//E-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//F-5
  case 6: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//G-6
  case 7: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//H-7
  case 8: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//I-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//J-9
  case 10: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//K-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//L-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//M-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//N-13
  case 14: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//O-14
  case 15: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//P-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//Q-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=1;break;//R-17
  case 18: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//S-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//T-19
  case 20: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//U-20
  case 21: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//V-21
  case 22: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//W-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//X-23
  case 24: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Y-24
  case 25: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Z-25
  }
}
void rus(int RUS){
switch(RUS){
  case 0: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=1,seg_m=1,seg_k=0;break;//А-0
  case 1: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Б-1
  case 2: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//В-2
  case 3: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Г-3
  case 4: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Д-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Е-5
  case 6: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ё-6
  case 7: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Ж-7
  case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//З-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//И-9
  case 10: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Й-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//К-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Л-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//М-13
  case 14: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Н-14
  case 15: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//О-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//П-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Р-17
  case 18: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//С-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Т-19
  case 20: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//У-20
  case 21: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ф-21
  case 22: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Х-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ц-23
  case 24: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ч-24
  case 25: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ш-25
  case 26: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Щ-26
  case 27: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ъ-27
  case 28: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//Ы-28
  case 29: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ь-29
  case 30: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Э-30
  case 31: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//Ю-31
  case 32: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Я-32
}
}
void animation(int ani){//полоски анимации
switch(ani){
  case 0: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//ВЕРХНЯЯ ПОЛОСА
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//СРЕДНЯЯ ПОЛОСА
case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//НИЖНЯЯ ПОЛОСА
}
}
void animationinmenu(int ani2){//шаги анимации входа в меню
switch(ani2){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки
case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}
void animationoutmenu(int ani3){//шаги анимации выхода из меню
switch(ani3){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
  case 1: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки 
  case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
  case 3: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
}
}
void spectrum(int spec){//спектр цастот
switch(spec){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//нижняя полоса
  case 1: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;
  case 2: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 3: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 4: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }  

32

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    13
#define LCD_WR    12
#define LCD_DATA  10

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;
int xxx;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  xxx++;
  segm(0);hhh(0);
  segm(0);hhh(1);
  segm(0);hhh(2);
  segm(0);hhh(3);
  segm(0);hhh(4);
  segm(0);hhh(5);
  segm(0);hhh(6);
  segm(0);hhh(7);
  segm(xxx);hhh(8);
  if(xxx>9){xxx=0;}
  write_seg();

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void write_seg(){
  lcd_write(0,  k[0]<<0 | c[0]<<1 | i[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[6]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[7]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[8]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 |   333<<4 |   222<<5 |   111<<6 | 000<<7);
  }  

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1;break;//0
    case 1: seg_b=1,seg_c=1;break;                                                                                          //1
    case 2: seg_a=1,seg_b=1,seg_d=1,seg_e=1,seg_g1=1,seg_g2=1;break;                                                        //2
    case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_g1=1,seg_g2=1;break;                                                        //3
    case 4: seg_b=1,seg_c=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                                //4
    case 5: seg_a=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                        //5
    case 6: seg_a=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //6
    case 7: seg_a=1,seg_b=1,seg_c=1;break;                                                                                  //7
    case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                        //8
    case 9: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //9
    }
  }  

void eng(int ENG){
switch(ENG){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//A-0
  case 1: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//B-1
  case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//C-2
  case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//D-3
  case 4: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//E-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//F-5
  case 6: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//G-6
  case 7: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//H-7
  case 8: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//I-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//J-9
  case 10: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//K-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//L-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//M-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//N-13
  case 14: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//O-14
  case 15: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//P-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//Q-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=1;break;//R-17
  case 18: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//S-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//T-19
  case 20: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//U-20
  case 21: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//V-21
  case 22: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//W-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//X-23
  case 24: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Y-24
  case 25: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Z-25
  }
}
void rus(int RUS){
switch(RUS){
  case 0: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=1,seg_m=1,seg_k=0;break;//А-0
  case 1: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Б-1
  case 2: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//В-2
  case 3: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Г-3
  case 4: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Д-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Е-5
  case 6: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ё-6
  case 7: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Ж-7
  case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//З-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//И-9
  case 10: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Й-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//К-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Л-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//М-13
  case 14: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Н-14
  case 15: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//О-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//П-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Р-17
  case 18: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//С-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Т-19
  case 20: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//У-20
  case 21: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ф-21
  case 22: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Х-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ц-23
  case 24: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ч-24
  case 25: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ш-25
  case 26: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Щ-26
  case 27: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ъ-27
  case 28: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//Ы-28
  case 29: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ь-29
  case 30: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Э-30
  case 31: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//Ю-31
  case 32: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Я-32
}
}
void animation(int ani){//полоски анимации
switch(ani){
  case 0: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//ВЕРХНЯЯ ПОЛОСА
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//СРЕДНЯЯ ПОЛОСА
case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//НИЖНЯЯ ПОЛОСА
}
}
void animationinmenu(int ani2){//шаги анимации входа в меню
switch(ani2){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки
case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}
void animationoutmenu(int ani3){//шаги анимации выхода из меню
switch(ani3){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
  case 1: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки 
  case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
  case 3: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
}
}
void spectrum(int spec){//спектр цастот
switch(spec){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//нижняя полоса
  case 1: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;
  case 2: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 3: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 4: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }  

33

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    13
#define LCD_WR    12
#define LCD_DATA  10

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;
int xxx;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  xxx++;
  segm(0);hhh(0);
  segm(0);hhh(1);
  segm(0);hhh(2);
  segm(0);hhh(3);
  segm(0);hhh(4);
  segm(0);hhh(5);
  segm(0);hhh(6);
  segm(0);hhh(7);
  segm(xxx);hhh(8);
  if(xxx>9){xxx=0;}
  write_seg();

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void write_seg(){
  lcd_write(0,  k[0]<<0 | c[0]<<1 | i[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[5]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[7]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[8]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);


  

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 |   333<<4 |   222<<5 |   111<<6 | 000<<7);
  }  

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1;break;//0
    case 1: seg_b=1,seg_c=1;break;                                                                                          //1
    case 2: seg_a=1,seg_b=1,seg_d=1,seg_e=1,seg_g1=1,seg_g2=1;break;                                                        //2
    case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_g1=1,seg_g2=1;break;                                                        //3
    case 4: seg_b=1,seg_c=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                                //4
    case 5: seg_a=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                        //5
    case 6: seg_a=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //6
    case 7: seg_a=1,seg_b=1,seg_c=1;break;                                                                                  //7
    case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                        //8
    case 9: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //9
    }
  }  

void eng(int ENG){
switch(ENG){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//A-0
  case 1: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//B-1
  case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//C-2
  case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//D-3
  case 4: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//E-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//F-5
  case 6: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//G-6
  case 7: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//H-7
  case 8: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//I-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//J-9
  case 10: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//K-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//L-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//M-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//N-13
  case 14: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//O-14
  case 15: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//P-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//Q-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=1;break;//R-17
  case 18: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//S-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//T-19
  case 20: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//U-20
  case 21: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//V-21
  case 22: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//W-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//X-23
  case 24: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Y-24
  case 25: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Z-25
  }
}
void rus(int RUS){
switch(RUS){
  case 0: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=1,seg_m=1,seg_k=0;break;//А-0
  case 1: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Б-1
  case 2: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//В-2
  case 3: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Г-3
  case 4: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Д-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Е-5
  case 6: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ё-6
  case 7: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Ж-7
  case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//З-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//И-9
  case 10: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Й-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//К-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Л-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//М-13
  case 14: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Н-14
  case 15: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//О-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//П-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Р-17
  case 18: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//С-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Т-19
  case 20: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//У-20
  case 21: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ф-21
  case 22: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Х-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ц-23
  case 24: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ч-24
  case 25: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ш-25
  case 26: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Щ-26
  case 27: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ъ-27
  case 28: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//Ы-28
  case 29: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ь-29
  case 30: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Э-30
  case 31: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//Ю-31
  case 32: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Я-32
}
}
void animation(int ani){//полоски анимации
switch(ani){
  case 0: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//ВЕРХНЯЯ ПОЛОСА
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//СРЕДНЯЯ ПОЛОСА
case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//НИЖНЯЯ ПОЛОСА
}
}
void animationinmenu(int ani2){//шаги анимации входа в меню
switch(ani2){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки
case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}
void animationoutmenu(int ani3){//шаги анимации выхода из меню
switch(ani3){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
  case 1: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки 
  case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
  case 3: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
}
}
void spectrum(int spec){//спектр цастот
switch(spec){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//нижняя полоса
  case 1: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;
  case 2: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 3: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 4: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }  

34

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    13
#define LCD_WR    12
#define LCD_DATA  10

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;
int xxx;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  xxx++;
  segm(0);hhh(0);
  segm(0);hhh(1);
  segm(0);hhh(2);
  segm(0);hhh(3);
  segm(0);hhh(4);
  segm(0);hhh(5);
  segm(0);hhh(6);
  segm(0);hhh(7);
  segm(xxx);hhh(8);
  if(xxx>9){xxx=0;}
  write_seg();

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void write_seg(){
  lcd_write(0,  k[0]<<0 | c[0]<<1 | i[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[5]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[6]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[8]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);


  

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 |   333<<4 |   222<<5 |   111<<6 | 000<<7);
  }  

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1;break;//0
    case 1: seg_b=1,seg_c=1;break;                                                                                          //1
    case 2: seg_a=1,seg_b=1,seg_d=1,seg_e=1,seg_g1=1,seg_g2=1;break;                                                        //2
    case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_g1=1,seg_g2=1;break;                                                        //3
    case 4: seg_b=1,seg_c=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                                //4
    case 5: seg_a=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                        //5
    case 6: seg_a=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //6
    case 7: seg_a=1,seg_b=1,seg_c=1;break;                                                                                  //7
    case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                        //8
    case 9: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //9
    }
  }  

void eng(int ENG){
switch(ENG){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//A-0
  case 1: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//B-1
  case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//C-2
  case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//D-3
  case 4: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//E-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//F-5
  case 6: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//G-6
  case 7: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//H-7
  case 8: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//I-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//J-9
  case 10: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//K-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//L-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//M-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//N-13
  case 14: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//O-14
  case 15: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//P-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//Q-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=1;break;//R-17
  case 18: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//S-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//T-19
  case 20: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//U-20
  case 21: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//V-21
  case 22: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//W-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//X-23
  case 24: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Y-24
  case 25: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Z-25
  }
}
void rus(int RUS){
switch(RUS){
  case 0: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=1,seg_m=1,seg_k=0;break;//А-0
  case 1: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Б-1
  case 2: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//В-2
  case 3: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Г-3
  case 4: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Д-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Е-5
  case 6: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ё-6
  case 7: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Ж-7
  case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//З-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//И-9
  case 10: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Й-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//К-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Л-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//М-13
  case 14: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Н-14
  case 15: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//О-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//П-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Р-17
  case 18: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//С-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Т-19
  case 20: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//У-20
  case 21: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ф-21
  case 22: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Х-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ц-23
  case 24: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ч-24
  case 25: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ш-25
  case 26: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Щ-26
  case 27: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ъ-27
  case 28: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//Ы-28
  case 29: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ь-29
  case 30: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Э-30
  case 31: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//Ю-31
  case 32: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Я-32
}
}
void animation(int ani){//полоски анимации
switch(ani){
  case 0: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//ВЕРХНЯЯ ПОЛОСА
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//СРЕДНЯЯ ПОЛОСА
case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//НИЖНЯЯ ПОЛОСА
}
}
void animationinmenu(int ani2){//шаги анимации входа в меню
switch(ani2){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки
case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}
void animationoutmenu(int ani3){//шаги анимации выхода из меню
switch(ani3){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
  case 1: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки 
  case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
  case 3: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
}
}
void spectrum(int spec){//спектр цастот
switch(spec){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//нижняя полоса
  case 1: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;
  case 2: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 3: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 4: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }  

35 (Вчера 21:45:45 отредактировано vladbuharkin20)

Re: Управление панелькой от магнитолы aura с драйвером ht1621

коректировки в русском шрифте

void rus(int RUS){
switch(RUS){case 0: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=1,seg_m=1,seg_k=0;break;//А-0
  case 1: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Б-1
  case 2: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//В-2
  case 3: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Г-3
  case 4: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Д-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Е-5
  case 6: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ё-6
  case 7: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Ж-7
  case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//З-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//И-9
  case 10: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Й-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//К-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Л-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//М-13
  case 14: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Н-14
  case 15: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//О-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//П-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Р-17
  case 18: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//С-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Т-19
  case 20: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//У-20
  case 21: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ф-21
  case 22: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Х-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ц-23
  case 24: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ч-24
  case 25: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ш-25
  case 26: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Щ-26
  case 27: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ъ-27
  case 28: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//Ы-28
  case 29: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ь-29
  case 30: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Э-30
  case 31: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//Ю-31
  case 32: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Я-32
}}

36

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    13
#define LCD_WR    12
#define LCD_DATA  10

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;
int xxx;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  xxx++;
  segm(0);hhh(0);
  segm(0);hhh(1);
  segm(0);hhh(2);
  segm(0);hhh(3);
  segm(0);hhh(4);
  segm(0);hhh(5);
  segm(0);hhh(6);
  segm(0);hhh(7);
  segm(xxx);hhh(8);
  if(xxx>9){xxx=0;}
  write_seg();

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void write_seg(){
  lcd_write(0,  k[0]<<0 | c[0]<<1 | j[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[5]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[6]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[8]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);


  

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 |   333<<4 |   222<<5 |   111<<6 | 000<<7);
  }  

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1;break;//0
    case 1: seg_b=1,seg_c=1;break;                                                                                          //1
    case 2: seg_a=1,seg_b=1,seg_d=1,seg_e=1,seg_g1=1,seg_g2=1;break;                                                        //2
    case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_g1=1,seg_g2=1;break;                                                        //3
    case 4: seg_b=1,seg_c=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                                //4
    case 5: seg_a=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                        //5
    case 6: seg_a=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //6
    case 7: seg_a=1,seg_b=1,seg_c=1;break;                                                                                  //7
    case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                        //8
    case 9: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //9
    }
  }  

void eng(int ENG){
switch(ENG){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//A-0
  case 1: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//B-1
  case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//C-2
  case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//D-3
  case 4: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//E-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//F-5
  case 6: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//G-6
  case 7: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//H-7
  case 8: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//I-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//J-9
  case 10: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//K-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//L-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//M-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//N-13
  case 14: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//O-14
  case 15: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//P-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//Q-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=1;break;//R-17
  case 18: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//S-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//T-19
  case 20: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//U-20
  case 21: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//V-21
  case 22: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//W-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//X-23
  case 24: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Y-24
  case 25: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Z-25
  }
}
void rus(int RUS){
switch(RUS){case 0: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=1,seg_m=1,seg_k=0;break;//А-0
  case 1: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Б-1
  case 2: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//В-2
  case 3: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Г-3
  case 4: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Д-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Е-5
  case 6: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ё-6
  case 7: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Ж-7
  case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//З-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//И-9
  case 10: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Й-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//К-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Л-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//М-13
  case 14: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Н-14
  case 15: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//О-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//П-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Р-17
  case 18: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//С-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Т-19
  case 20: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//У-20
  case 21: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ф-21
  case 22: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Х-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ц-23
  case 24: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ч-24
  case 25: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ш-25
  case 26: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Щ-26
  case 27: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ъ-27
  case 28: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//Ы-28
  case 29: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ь-29
  case 30: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Э-30
  case 31: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//Ю-31
  case 32: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Я-32
}}

void animation(int ani){//полоски анимации
switch(ani){
  case 0: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//ВЕРХНЯЯ ПОЛОСА
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//СРЕДНЯЯ ПОЛОСА
case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//НИЖНЯЯ ПОЛОСА
}
}
void animationinmenu(int ani2){//шаги анимации входа в меню
switch(ani2){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки
case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}
void animationoutmenu(int ani3){//шаги анимации выхода из меню
switch(ani3){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
  case 1: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки 
  case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
  case 3: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
}
}
void spectrum(int spec){//спектр цастот
switch(spec){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//нижняя полоса
  case 1: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;
  case 2: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 3: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 4: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }  

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define R_PIN 9
#define G_PIN 10
#define B_PIN 11
void setup() {
  pinMode(R_PIN, OUTPUT);
  pinMode(G_PIN, OUTPUT);
  pinMode(B_PIN, OUTPUT);
  // работаем с общим анодом
  // цвет бирюзовый не на всю яркость
  
}
void loop() {
analogWrite(R_PIN, 100);
  analogWrite(G_PIN, 100);
  analogWrite(B_PIN, 100);
}

38

Re: Управление панелькой от магнитолы aura с драйвером ht1621

#define LCD_CS    2
#define LCD_WR    3
#define LCD_DATA  4

#define R_PIN 9
#define G_PIN 10
#define B_PIN 11

#define HT1621_BIAS                 0x52                    // 1/3duty 4com
#define HT1621_SYS_DIS              0x00                    // Turn off the oscillator system oscillator and LCD bias generator
#define HT1621_SYS_EN               0x02                    // Turn on the system oscillator
#define HT1621_LCD_OFF              0x04                    // Turn off LCD bias
#define HT1621_LCD_ON               0x06                    // Turn on the LCE bias
#define HT1621_XTAL                 0x28                    // external clock
#define HT1621_RC256                0x30                    // internal clock

bool a[9], b[9], c[9], d[9], e[9], f[9], h[9], i[9], j[9], g1[9], g2[9], m[9], k[9];
bool seg_a,seg_b,seg_c,seg_d,seg_e,seg_f,seg_h,seg_i,seg_j,seg_g1,seg_g2,seg_m,seg_k;
bool af,tp,ta,bt,dp,usb,disk,eon,bass,dw1,dw2;
int xxx;

void setup() {
  Serial.begin(9600);
  pinMode(LCD_CS, OUTPUT);
  pinMode(LCD_WR, OUTPUT);
  pinMode(LCD_DATA, OUTPUT);
  digitalWrite(LCD_CS,HIGH);
  digitalWrite(LCD_WR,HIGH);
  pinMode(R_PIN, OUTPUT);
  pinMode(G_PIN, OUTPUT);
  pinMode(B_PIN, OUTPUT);
  data_100(HT1621_SYS_EN); // Turn on the system oscillator
  data_100(HT1621_BIAS);   // BIAS 13 4 public ports
  data_100(HT1621_RC256);  // Use RC_256K system clock source, on-chip RC oscillator
  data_100(HT1621_LCD_ON);
  clear_lcd();
}

void loop(){
  analogWrite(R_PIN, 100);
  analogWrite(G_PIN, 100);
  analogWrite(B_PIN, 100);
  xxx++;
  segm(0);hhh(0);
  segm(0);hhh(1);
  segm(0);hhh(2);
  segm(0);hhh(3);
  segm(0);hhh(4);
  segm(0);hhh(5);
  segm(0);hhh(6);
  segm(0);hhh(7);
  segm(xxx);hhh(8);
  if(xxx>9){xxx=0;}
  write_seg();

Serial.println(a[0]);
Serial.println(a[1]);
Serial.println(a[2]);
  
  delay(1000);
  }

void write_seg(){
  lcd_write(0,  k[0]<<0 | c[0]<<1 | j[0]<<2 | b[0]<<3 | g2[0]<<4 | ta<<5 | tp<<6 | af<<7);
  lcd_write(2,  m[0]<<0 | e[0]<<1 | h[0]<<2 | f[0]<<3 | d[0]<<4 | g1[0]<<5 | i[0]<<6| a[0]<<7);

  lcd_write(4,  d[1]<<0 | g1[1]<<1 | i[1]<<2 | a[1]<<3 | k[1]<<4 | c[1]<<5 | j[1]<<6 | b[1]<<7);
  lcd_write(6,  g2[2]<<0 | g2[1]<<1 | dp<<2 | bt<<3 | m[1]<<4 | e[1]<<5 | h[1]<<6 | f[1]<<7);

  lcd_write(8,  g2[6]<<0 | g2[5]<<1 | eon<<2 | bass<<3 | k[6]<<4 | c[6]<<5 | j[6]<<6 | b[6]<<7);
  lcd_write(10, d[5]<<0 | g1[5]<<1 | i[5]<<2 | a[5]<<3 | m[5]<<4 | e[5]<<5 | h[5]<<6 | f[5]<<7);

  lcd_write(12, m[4]<<0 | e[4]<<1 | h[4]<<2 | f[4]<<3 | k[5]<<4 | c[5]<<5 | j[5]<<6 | b[5]<<7);
  lcd_write(14, k[4]<<0 | c[4]<<1 | j[4]<<2 | b[4]<<3 | d[4]<<4 | g1[4]<<5 | i[4]<<6 | a[4]<<7);

  lcd_write(16, m[3]<<0 | e[3]<<1 | h[3]<<2 | f[3]<<3 | g2[4]<<4 | g2[3]<<5 | dw2<<6 | dw1<<7);
  lcd_write(18, k[3]<<0 | c[3]<<1 | j[3]<<2 | b[3]<<3 | d[3]<<4 | g1[3]<<5 | i[3]<<6 | a[3]<<7);

  lcd_write(20, d[2]<<0 | g1[2]<<1 | i[2]<<2 | a[2]<<3 | m[2]<<4 | e[2]<<5 | h[2]<<6 | f[2]<<7);
  lcd_write(22, d[6]<<0 | g1[6]<<1 | i[6]<<2 | a[6]<<3 | k[2]<<4 | c[2]<<5 | j[2]<<6 | b[2]<<7);

  lcd_write(24, k[7]<<0 | c[7]<<1 | j[7]<<2 | b[7]<<3 | m[6]<<4 | e[6]<<5 | h[6]<<6 | f[6]<<7);
  lcd_write(26, m[7]<<0 | e[7]<<1 | h[7]<<2 | f[7]<<3 | d[7]<<4 | g1[7]<<5 | i[7]<<6 | a[7]<<7);
  
  lcd_write(28, k[8]<<0 | c[8]<<1 | j[8]<<2 | b[8]<<3 | g2[8]<<4 | g2[7]<<5 | usb<<6 | disk<<7);
  lcd_write(30, m[8]<<0 | e[8]<<1 | h[8]<<2 | f[8]<<3 | d[8]<<4 | g1[8]<<5 | i[8]<<6 | a[8]<<7);


  

  // lcd_write(10, 777<<0 | 666<<1 | 555<<2 | 444<<3 |   333<<4 |   222<<5 |   111<<6 | 000<<7);
  }  

void hhh(int hh){
  a[hh]=seg_a,b[hh]=seg_b,c[hh]=seg_c,d[hh]=seg_d,e[hh]=seg_e,f[hh]=seg_f,h[hh]=seg_h,i[hh]=seg_i,j[hh]=seg_j,g1[hh]=seg_g1,g2[hh]=seg_g2,m[hh]=seg_m,k[hh]=seg_k;
  }

void segm(int cif){
  seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;
  switch(cif){
    case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1;break;//0
    case 1: seg_b=1,seg_c=1;break;                                                                                          //1
    case 2: seg_a=1,seg_b=1,seg_d=1,seg_e=1,seg_g1=1,seg_g2=1;break;                                                        //2
    case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_g1=1,seg_g2=1;break;                                                        //3
    case 4: seg_b=1,seg_c=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                                //4
    case 5: seg_a=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                        //5
    case 6: seg_a=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //6
    case 7: seg_a=1,seg_b=1,seg_c=1;break;                                                                                  //7
    case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                        //8
    case 9: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_f=1,seg_g1=1,seg_g2=1;break;                                                //9
    }
  }  

void eng(int ENG){
switch(ENG){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//A-0
  case 1: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//B-1
  case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//C-2
  case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//D-3
  case 4: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//E-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//F-5
  case 6: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//G-6
  case 7: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//H-7
  case 8: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//I-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//J-9
  case 10: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//K-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//L-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//M-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//N-13
  case 14: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//O-14
  case 15: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//P-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=1;break;//Q-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=1;break;//R-17
  case 18: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//S-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//T-19
  case 20: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//U-20
  case 21: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//V-21
  case 22: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//W-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//X-23
  case 24: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Y-24
  case 25: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Z-25
  }
}
void rus(int RUS){
switch(RUS){case 0: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=1,seg_m=1,seg_k=0;break;//А-0
  case 1: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Б-1
  case 2: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//В-2
  case 3: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Г-3
  case 4: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Д-4
  case 5: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Е-5
  case 6: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ё-6
  case 7: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=1,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Ж-7
  case 8: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//З-8
  case 9: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//И-9
  case 10: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Й-10
  case 11: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//К-11
  case 12: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=0;break;//Л-12
  case 13: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//М-13
  case 14: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Н-14
  case 15: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//О-15
  case 16: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//П-16
  case 17: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Р-17
  case 18: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//С-18
  case 19: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Т-19
  case 20: seg_a=0,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//У-20
  case 21: seg_a=1,seg_b=1,seg_c=0,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ф-21
  case 22: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=1,seg_i=0,seg_j=1,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;//Х-22
  case 23: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ц-23
  case 24: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Ч-24
  case 25: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Ш-25
  case 26: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//Щ-26
  case 27: seg_a=1,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ъ-27
  case 28: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//Ы-28
  case 29: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=0,seg_g2=1,seg_m=0,seg_k=0;break;//Ь-29
  case 30: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//Э-30
  case 31: seg_a=0,seg_b=1,seg_c=1,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=1,seg_g1=1,seg_g2=0,seg_m=0,seg_k=1;break;//Ю-31
  case 32: seg_a=1,seg_b=1,seg_c=1,seg_d=0,seg_e=0,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=0;break;//Я-32
}}

void animation(int ani){//полоски анимации
switch(ani){
  case 0: seg_a=1,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//ВЕРХНЯЯ ПОЛОСА
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=1,seg_g2=1,seg_m=0,seg_k=0;break;//СРЕДНЯЯ ПОЛОСА
case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//НИЖНЯЯ ПОЛОСА
}
}
void animationinmenu(int ani2){//шаги анимации входа в меню
switch(ani2){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
case 1: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
case 2: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки
case 3: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}
void animationoutmenu(int ani3){//шаги анимации выхода из меню
switch(ani3){
  case 0: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
  case 1: seg_a=1,seg_b=0,seg_c=0,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горизонтальная левая полоса+левые боковинки+центр+низ+правые боковинки 
  case 2: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=1,seg_i=0,seg_j=0,seg_g1=1,seg_g2=0,seg_m=1,seg_k=0;break;//горизонтальная левая полоса+левые боковинки
  case 3: seg_a=0,seg_b=0,seg_c=0,seg_d=0,seg_e=1,seg_f=1,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//горизонтальная левая полоса
}
}
void spectrum(int spec){//спектр цастот
switch(spec){
  case 0: seg_a=0,seg_b=0,seg_c=0,seg_d=1,seg_e=0,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=0,seg_k=0;break;//нижняя полоса
  case 1: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=0,seg_j=0,seg_g1=0,seg_g2=0,seg_m=1,seg_k=1;break;
  case 2: seg_a=0,seg_b=0,seg_c=1,seg_d=1,seg_e=1,seg_f=0,seg_h=0,seg_i=1,seg_j=0,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 3: seg_a=0,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;
  case 4: seg_a=1,seg_b=1,seg_c=1,seg_d=1,seg_e=1,seg_f=1,seg_h=1,seg_i=1,seg_j=1,seg_g1=1,seg_g2=1,seg_m=1,seg_k=1;break;//горят все
}
}  

void clear_lcd(){for(int a=0;a<=32;a++){data_101(a,0);}}

void lcd_write(int addr_, int data_){
  data_101(addr_,data_ >> 4);data_101(addr_+1,data_ &0b1111);
  }

void data_100(int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b100 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 8; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
     delayMicroseconds(10);
  }

void data_101(int addr, int data){
     digitalWrite(LCD_CS,LOW);
   for(int i = 2; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (0b101 >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 5; i >=0; i--){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (addr >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     } 
   for(int i = 0; i <=3; i++){
     digitalWrite(LCD_WR,LOW);
     digitalWrite(LCD_DATA, (data >> i) & 1); 
     digitalWrite(LCD_WR,HIGH);
     }   
     digitalWrite(LCD_CS,HIGH);
     digitalWrite(LCD_WR,LOW);
  }