dllbridge

EXT_Ram_Rom_03

Aug 11th, 2025
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.36 KB | None | 0 0
  1.  
  2. //  EXT_ROM_Ram_03 2025 August 11 ( 20:00 )
  3. //  Записали число 0b10101010 в порт А ( 82С55 )
  4. // #2 !!!!
  5.  
  6.  
  7.   const int CS_PIN    = 11;                                                            // /CS (Chip Select)    82C55
  8. //const int RESET_PIN = 19;   //  A5                                                   // Reset                82C55
  9.   #define RESET_PIN     A5                                                             // Reset                82C55
  10.   const int OE_PIN    = 12;                                                            // Output Enable     74HCT573
  11.   const int LE_PIN    = 13;                                                            // Latch  Enable     74HCT573
  12.  
  13.  
  14. const int DATA_PINS[] = {2, 3, 4, 5, 6, 7, 8, 9};                                    // Пины данных для 74HCT573
  15.  
  16.  
  17. ////////////////////////////////////////////////
  18. void setup()
  19. {
  20.  
  21.      pinMode(CS_PIN,    OUTPUT);  digitalWrite(CS_PIN,   1);                            // Запрет выбора ВВ55
  22.      pinMode(RESET_PIN, OUTPUT);
  23.      pinMode(OE_PIN,    OUTPUT);  digitalWrite(OE_PIN, LOW);                            //  74HCT573 output enable
  24.      pinMode(LE_PIN,    OUTPUT);  digitalWrite(LE_PIN,   1);
  25.  
  26.      for(int i = 0; i < 8; i++)
  27.      {
  28.          pinMode(DATA_PINS[i], OUTPUT);
  29.      }
  30.  
  31.  
  32.      digitalWrite(RESET_PIN, 1);        delay(10);                                           //    Сброс КР580ВВ55А
  33.      digitalWrite(RESET_PIN, 0);        delay(10);
  34.      
  35.      
  36.      // STEP 1                                                    //  запишем байт в 74HCT573 ( /WR, /RD, A1, A0 )
  37.                                                                   // Для управления ВВ55
  38.      set_value(0b00000111);    delay(10);                         //   A1, A0 = 0 ( выбирают регистр РУС)
  39.      digitalWrite(LE_PIN,   0);                                   //  /WR = 0, /RD = 1  (разрешение записи)
  40.  
  41.  
  42.      // STEP 2  
  43.  
  44.  
  45.      set_value(0b10000000);     delay(10);                        // 10000000 - все порты ВВ55, как выходы ( режим 0 )
  46.      digitalWrite(CS_PIN,   0); delay( 4);                        // Выбран (для записи) ВВ55
  47.      digitalWrite(CS_PIN,   1); delay(10);  
  48.  
  49.  
  50.      // STEP 3        Попробуем записать число 85 в порт А
  51.  
  52.      digitalWrite(LE_PIN,   1);   delay(10);    
  53.      set_value(0b00000100);       delay(10);                         //   A1 = 0, A0 = 1 ( выбирают регистр РУС)
  54.      digitalWrite(LE_PIN,   0);   delay(10);                          //  /WR = 0, /RD = 1  (разрешение записи)    
  55.  
  56.      set_value(0b10101010);     delay(10);                        // 10000000 - все порты ВВ55, как выходы ( режим 0 )
  57.      digitalWrite(CS_PIN,   0); delay( 4);                        // Выбран (для записи) ВВ55
  58.      digitalWrite(CS_PIN,   1); delay(10);    
  59.  
  60.      digitalWrite(LE_PIN,   1);  
  61. }
  62.  
  63.  
  64.  
  65. /////////////////////////////////////////////////
  66. void loop()
  67. {
  68.    
  69.  
  70.      for(int i1 = 0; i1 <  8; i1++)   {
  71.      for(int i2 = 0; i2 <  8; i2++)   { set_value(1 << i2); delay(500);  }
  72.      for(int i3 = 7; i3 >= 0; i3--)   { set_value(1 << i3); delay(500);  }  }  
  73.  
  74.      //digitalWrite(LE_PIN,   1);  
  75.  
  76.      for(int i = 0; i < 10; i++)                                           //
  77.      {
  78.          set_value(170);   delay(1000);  
  79.          set_value( 85);   delay(1000);          
  80.      }
  81.      //digitalWrite(LE_PIN,   0);  
  82.  
  83.      for(int i = 0; i < 256; i++)                                           // Последовательно включаем биты в порту A
  84.      {  
  85.          set_value(i);
  86.          delay(100);                                                        //     Задержка для визуального наблюдения
  87.      }
  88.      
  89.      
  90.      
  91. }
  92.  
  93.  
  94.  
  95. ////////////////////////////////////////////////
  96. void set_value(byte value)                                                 //   Функция установки байта на D2 - D9
  97. {
  98.      
  99.      for(int i = 0; i < 8; i++)                                            // Выставляем данные на выходы
  100.      {
  101.          digitalWrite(DATA_PINS[i], bitRead(value, i));
  102.      }
  103. }
  104.  
  105.  
  106.  
Advertisement
Add Comment
Please, Sign In to add comment