Когда мало выводов, а надо много светлячков

Симуляция + исходник - скачать

Исходник

$map       ' Получаем карту распределения памяти

  $regfile = "m8def.dat"       ' Используемый контроллер
  $crystal = 1000000       ' 18,432 МГц, кварц для стабильной работы USART во всём диапазоне скоростей передачи и приёма
  $framesize = 128       'размер области используемой и необходимой для преобразований
  $hwstack = 128       ' Размер аппаратного стека
  $swstack = 128       ' Размер программного стека
  $baud = 4800       '1200     '2400     '4800     '9600     '19200     '38400     '57600     '115000    '230400

  Ddrb = 0
  Portb = 0

  Dim Val_byte As Byte

  Do

    Incr Val_byte

    If Val_byte > 20 Then
        Val_byte = 1
    End If

    Select Case Val_byte

        Case 0:
               Ddrb = 0
               Portb = 0
        Case 1:
               Ddrb = &B_0000_0011
               Portb = &B_0000_0001
        Case 2:
               Ddrb = &B_0000_0011
               Portb = &B_0000_0010
        Case 3:
               Ddrb = &B_0000_0101
               Portb = &B_0000_0001
        Case 4:
               Ddrb = &B_0000_0101
               Portb = &B_0000_0100
        Case 5:
               Ddrb = &B_0000_0110
               Portb = &B_0000_0100
        Case 6:
               Ddrb = &B_0000_0110
               Portb = &B_0000_0010
        Case 7:
               Ddrb = &B_0000_1001
               Portb = &B_0000_0001
        Case 8:
               Ddrb = &B_0000_1001
               Portb = &B_0000_1000
        Case 9:
               Ddrb = &B_0000_1100
               Portb = &B_0000_0100
        Case 10:
               Ddrb = &B_0000_1100
               Portb = &B_0000_1000
        Case 11:
               Ddrb = &B_0000_1010
               Portb = &B_0000_1000
        Case 12:
               Ddrb = &B_0000_1010
               Portb = &B_0000_0010
        Case 13:
               Ddrb = &B_0001_0001
               Portb = &B_0000_0001
        Case 14:
               Ddrb = &B_0001_0001
               Portb = &B_0001_0000
        Case 15:
               Ddrb = &B_0010_0001
               Portb = &B_0000_0001
        Case 16:
               Ddrb = &B_0010_0001
               Portb = &B_0010_0000
        Case 17:
               Ddrb = &B_0010_0100
               Portb = &B_0000_0100
        Case 18:
               Ddrb = &B_0010_0100
               Portb = &B_0010_0000
        Case 19:
               Ddrb = &B_0010_1000
               Portb = &B_0000_1000
        Case 20:
               Ddrb = &B_0010_1000
               Portb = &B_0010_0000
    End Select

    Waitms 100

  Loop
End

Картинки

https://upforme.ru/uploads/0000/25/b8/1217/t797795.jpg
https://upforme.ru/uploads/0000/25/b8/1217/t513042.jpg
https://upforme.ru/uploads/0000/25/b8/1217/t246275.jpg