G4LJF

        Наблюдательные мечтатели говорят, 
        что каждая девятая волна выше.
        А Вы не обращали внимание, 
        что каждая 729-я волна значительно темнее?

        Некоторые вещи происходят медленно.

VMLAB, HEX дисплей на NAND2
---------------------------

  Элемент -- два или больше выводов (контактов для подсоединения в электрическую цепь).
  Узел    -- точка в которую сходятся два или больше провода, например

Для случая схемы на активных элементах с одним выходом без третьего состояния (например NAND2), номер узла равен номеру элемента (несколько таких активных элементов нельзя включать выходами на один и тот же узел)

               R57
      --||--o--/\/\/\/--
            узел
            
----------

h4to7.prj
  
  ; ************************************************************
  ; PROJECT:
  ; AUTHOR:
  ; ************************************************************

  ; Micro + software running
  ; ------------------------------------------------------------
  .MICRO "ATmega8"
  .TOOLCHAIN "GCC"     ; Bug: 1. erase everything, but
                       ;         h4to7.c, h4to7.prj
                       ;      2. use GCC, compile with errors;
                       ;      3. use GENERIC
  .GCCPATH   "C:\WinAVR"
  .GCCMAKE   AUTO
  .TARGET    "h4to7.hex"
  .SOURCE    "h4to7.c"

  .TRACE              ; Activate micro trace

  ; Following lines are optional; if not included
  ; exactly these values are taken by default
  ; ------------------------------------------------------------
  .POWER VDD=5 VSS=0  ; Power nodes
  .CLOCK 1meg         ; Micro clock
  .STORE 250m         ; Trace (micro+signals) storage time

  ; Micro nodes: RESET, AREF, PB0-PB7, PC0-PC6, PD0-PD7, ACO, TIM1OVF, ADC6, ADC7
  ; Define here the hardware around the micro
  ; ------------------------------------------------------------

  ;   aaa
  ;  f   b
  ;   ggg
  ;  e   c
  ;   ddd

  ; Name  Type    SEGA SEGB SEGC SEGD SEGE SEGF SEGG SEGH  GND
  ;-----------------------------------------------------------
  X2      _led7cc oA0  oA1  oA2  oA3  oA4  oA5  oA6  GND   GND
  X1      _led7cc oB0  oB1  oB2  oB3  oB4  oB5  oB6  GND   GND

  Xs7   ND2  i7 i7 sti7
  D8    VDD  i7
  K7    VSS  i7 LATCHED

  Xs6   ND2  i6 i6 sti6
  D7    VDD  i6
  K6    VSS  i6 LATCHED

  Xs5   ND2  i5 i5 sti5
  D6    VDD  i5
  K5    VSS  i5 LATCHED

  Xs4   ND2  i4 i4 sti4
  D5    VDD  i4
  K4    VSS  i4 LATCHED

  Xs3   ND2  i3 i3 sti3
  D4    VDD  i3
  K3    VSS  i3 LATCHED

  Xs2   ND2  i2 i2 sti2
  D3    VDD  i2
  K2    VSS  i2 LATCHED

  Xs1   ND2  i1 i1 sti1
  D2    VDD  i1
  K1    VSS  i1 LATCHED

  Xs0   ND2  i0 i0 sti0
  D1    VDD  i0
  K0    VSS  i0 LATCHED

  ; R1    sti0 s0   10
  ; R2    sti1 s1   10
  ; R3    sti2 s2   10
  ; R4    sti3 s3   10
  ; R5    sti4 s4   10
  ; R6    sti5 s5   10
  ; R7    sti6 s6   10
  ; R8    sti7 s7   10

  R1    PB0 s0   10
  R2    PB1 s1   10
  R3    PB2 s2   10
  R4    PB3 s3   10
  R5    PB4 s4   10
  R6    PB5 s5   10
  R7    PB6 s6   10
  R8    PB7 s7   10

  R9    PB0 VSS  1K
  R10   PB1 VSS  1K
  R11   PB2 VSS  1K
  R12   PB3 VSS  1K
  R13   PB4 VSS  1K
  R14   PB5 VSS  1K
  R15   PB6 VSS  1K
  R16   PB7 VSS  1K

  X000  ND2  s0   s0   NA00
  X001  ND2  s3   s3   NA01
  X002  ND2  s1   s1   NA02
  X003  ND2  s2   s2   NA03

  X004  ND2  NA00 NA03 NA04
  X005  ND2  s2   NA02 NA05

  X006  ND2  s1   NA01 NA06
  X007  ND2  s0   NA01 NA07
  X008  ND2  NA01 NA03 NA08
  X009  ND2  s2   s3   NA09
  X010  ND2  s1   s3   NA10
  X011  ND2  s1   NA00 NA11
  X012  ND2  s2   NA01 NA12
  X013  ND2  NA01 NA02 NA13
  X014  ND2  s2   NA00 NA14
  X015  ND2  s1   NA03 NA15

  X016  ND2  NA31 NA31 NA16
  X017  ND2  NA04 NA06 NA17
  X018  ND2  NA13 NA13 NA18
  X019  ND2  NA07 NA13 NA19
  X020  ND2  NA15 NA15 NA20
  X021  ND2  NA08 NA08 NA21
  X022  ND2  NA12 NA12 NA22
  X023  ND2  NA13 NA13 NA23

  X024  ND2  NA02 NA16 NA24
  X025  ND2  s1   s2   NA25
  X026  ND2  s0   NA22 NA26
  X027  ND2  NA17 NA17 NA27
  X028  ND2  s3   NA02 NA28
  X029  ND2  s1   NA01 NA29
  X030  ND2  NA00 NA18 NA30
  X031  ND2  s3   NA03 NA31
  X032  ND2  s0   NA02 NA32
  X033  ND2  NA19 NA19 NA33
  X034  ND2  s1   s2   NA34
  X035  ND2  s0   NA20 NA35
  X036  ND2  NA00 NA21 NA36
  X037  ND2  NA02 NA22 NA37
  X038  ND2  NA00 NA23 NA38

  X039  ND2  NA28 NA28 NA39
  X040  ND2  NA29 NA29 NA40
  X041  ND2  NA08 NA30 NA41
  X042  ND2  NA34 NA34 NA42
  X043  ND2  NA05 NA05 NA43
  X044  ND2  NA35 NA36 NA44
  X045  ND2  NA37 NA38 NA45

  X046  ND2  s0   NA39 NA46
  X047  ND2  s0   NA40 NA47
  X048  ND2  NA41 NA41 NA48
  X049  ND2  NA00 NA42 NA49
  X050  ND2  s0   NA43 NA50
  X051  ND2  NA44 NA44 NA51
  X052  ND2  NA00 NA22 NA52
  X053  ND2  NA45 NA45 NA53

  X054  ND2  NA24 NA25 NA54
  X055  ND2  NA26 NA27 NA55
  X056  ND2  NA46 NA47 NA56
  X057  ND2  NA04 NA48 NA57
  X058  ND2  NA12 NA31 NA58
  X059  ND2  NA32 NA33 NA59
  X060  ND2  NA28 NA49 NA60
  X061  ND2  NA50 NA51 NA61
  X062  ND2  NA09 NA10 NA62
  X063  ND2  NA04 NA11 NA63
  X064  ND2  NA10 NA31 NA64
  X065  ND2  NA52 NA53 NA65
  X066  ND2  NA01 NA14 NA66
  X067  ND2  NA05 NA15 NA67

  X068  ND2  NA54 NA54 NA68
  X069  ND2  NA55 NA55 NA69
  X070  ND2  NA56 NA56 NA70
  X071  ND2  NA57 NA57 NA71
  X072  ND2  NA58 NA58 NA72
  X073  ND2  NA59 NA59 NA73
  X074  ND2  NA60 NA60 NA74
  X075  ND2  NA61 NA61 NA75
  X076  ND2  NA62 NA62 NA76
  X077  ND2  NA63 NA63 NA77
  X078  ND2  NA64 NA64 NA78
  X079  ND2  NA65 NA65 NA79
  X080  ND2  NA66 NA66 NA80
  X081  ND2  NA67 NA67 NA81

  X082  ND2  NA68 NA69 oA0
  X083  ND2  NA70 NA71 oA1
  X084  ND2  NA72 NA73 oA2
  X085  ND2  NA74 NA75 oA3
  X086  ND2  NA76 NA77 oA4
  X087  ND2  NA78 NA79 oA5
  X088  ND2  NA80 NA81 oA6

  X100  ND2  s4   s4   NB00
  X101  ND2  s7   s7   NB01
  X102  ND2  s5   s5   NB02
  X103  ND2  s6   s6   NB03

  X104  ND2  NB00 NB03 NB04
  X105  ND2  s6   NB02 NB05

  X106  ND2  s5   NB01 NB06
  X107  ND2  s4   NB01 NB07
  X108  ND2  NB01 NB03 NB08
  X109  ND2  s6   s7   NB09
  X110  ND2  s5   s7   NB10
  X111  ND2  s5   NB00 NB11
  X112  ND2  s6   NB01 NB12
  X113  ND2  NB01 NB02 NB13
  X114  ND2  s6   NB00 NB14
  X115  ND2  s5   NB03 NB15

  X116  ND2  NB31 NB31 NB16
  X117  ND2  NB04 NB06 NB17
  X118  ND2  NB13 NB13 NB18
  X119  ND2  NB07 NB13 NB19
  X120  ND2  NB15 NB15 NB20
  X121  ND2  NB08 NB08 NB21
  X122  ND2  NB12 NB12 NB22
  X123  ND2  NB13 NB13 NB23

  X124  ND2  NB02 NB16 NB24
  X125  ND2  s5   s6   NB25
  X126  ND2  s4   NB22 NB26
  X127  ND2  NB17 NB17 NB27
  X128  ND2  s7   NB02 NB28
  X129  ND2  s5   NB01 NB29
  X130  ND2  NB00 NB18 NB30
  X131  ND2  s7   NB03 NB31
  X132  ND2  s4   NB02 NB32
  X133  ND2  NB19 NB19 NB33
  X134  ND2  s5   s6   NB34
  X135  ND2  s4   NB20 NB35
  X136  ND2  NB00 NB21 NB36
  X137  ND2  NB02 NB22 NB37
  X138  ND2  NB00 NB23 NB38

  X139  ND2  NB28 NB28 NB39
  X140  ND2  NB29 NB29 NB40
  X141  ND2  NB08 NB30 NB41
  X142  ND2  NB34 NB34 NB42
  X143  ND2  NB05 NB05 NB43
  X144  ND2  NB35 NB36 NB44
  X145  ND2  NB37 NB38 NB45

  X146  ND2  s4   NB39 NB46
  X147  ND2  s4   NB40 NB47
  X148  ND2  NB41 NB41 NB48
  X149  ND2  NB00 NB42 NB49
  X150  ND2  s4   NB43 NB50
  X151  ND2  NB44 NB44 NB51
  X152  ND2  NB00 NB22 NB52
  X153  ND2  NB45 NB45 NB53

  X154  ND2  NB24 NB25 NB54
  X155  ND2  NB26 NB27 NB55
  X156  ND2  NB46 NB47 NB56
  X157  ND2  NB04 NB48 NB57
  X158  ND2  NB12 NB31 NB58
  X159  ND2  NB32 NB33 NB59
  X160  ND2  NB28 NB49 NB60
  X161  ND2  NB50 NB51 NB61
  X162  ND2  NB09 NB10 NB62
  X163  ND2  NB04 NB11 NB63
  X164  ND2  NB10 NB31 NB64
  X165  ND2  NB52 NB53 NB65
  X166  ND2  NB01 NB14 NB66
  X167  ND2  NB05 NB15 NB67

  X168  ND2  NB54 NB54 NB68
  X169  ND2  NB55 NB55 NB69
  X170  ND2  NB56 NB56 NB70
  X171  ND2  NB57 NB57 NB71
  X172  ND2  NB58 NB58 NB72
  X173  ND2  NB59 NB59 NB73
  X174  ND2  NB60 NB60 NB74
  X175  ND2  NB61 NB61 NB75
  X176  ND2  NB62 NB62 NB76
  X177  ND2  NB63 NB63 NB77
  X178  ND2  NB64 NB64 NB78
  X179  ND2  NB65 NB65 NB79
  X180  ND2  NB66 NB66 NB80
  X181  ND2  NB67 NB67 NB81

  X182  ND2  NB68 NB69 oB0
  X183  ND2  NB70 NB71 oB1
  X184  ND2  NB72 NB73 oB2
  X185  ND2  NB74 NB75 oB3
  X186  ND2  NB76 NB77 oB4
  X187  ND2  NB78 NB79 oB5
  X188  ND2  NB80 NB81 oB6

---------

h4to7.c

  #include <avr/io.h>
  #include <util/delay.h>

  int main(void) {
    int i = 0;
    DDRB = 0xff;
    PORTB = 0;
    while(1) {
      _delay_ms(5);
      PORTB = ((i / 0x10) << 4) | (i % 0x10);
      i++; i = (i > 255) ? 0 : i;
    }
  }
