logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Symulacja w Proteusie -multipleksowanie wyświetlaczy.

darres1 25 Gru 2011 14:20 2318 2
REKLAMA
  • #1 10301550
    darres1
    Poziom 13  
    Witam,
    Czy ktoś wie jak można symulować multipleksowanie wyświetlaczy LED w proteusie, bo coś mi się wydaje, że chyba nie można, tak jakby program się nie wyrabiał z szybkością przełączania wyświetlaczy, bo kiedy dam w pętli opóźnienie około 100 ms, to nawet działa, ale z wielkimi skokami, wiadomo, a szkoda bo program jest całkiem fajny :-(
    Na płytce testowej ten sam wsad działa właściwie.
    Załączam w paczce wszystkie pliki potrzebne do wykonania symulacji, wsad do procka w Bascom i symulacji ISIS

    Symulacja w Proteusie -multipleksowanie wyświetlaczy.

    
    
    $regfile = "m168def.dat"
    $crystal = 8000000
    '------------------------------------------------------------------------------------------------------
    Config Portb = Output
    Config Portc = Output
    '------------------------------------------------------------------------------------------------------
    W1 Alias Portc.2
    W2 Alias Portc.3
    W3 Alias Portc.4
    W4 Alias Portc.5
    '------------------------------------------------------------------------------------------------------
    Dim Nr_wysw As Byte
    Dim Cyfra1 As Byte
    Dim Cyfra2 As Byte
    Dim Cyfra3 As Byte
    Dim Cyfra4 As Byte
    '------------------------------------------------------------------------------------------------------
    Cyfra1 = 1
    Cyfra2 = 2
    Cyfra3 = 3
    Cyfra4 = 4
    '------------------------------------------------------------------------------------------------------
    Do
    
    Set W1
    Set W2
    Set W3
    Set W4
    
    Select Case Nr_wysw
    
          Case 0:
                Portb = Lookup(cyfra1 , Tablica)
                Reset W1
          Case 1:
                Portb = Lookup(cyfra2 , Tablica)
                Reset W2
          Case 2:
                Portb = Lookup(cyfra3 , Tablica)
                Reset W3
          Case 3:
                Portb = Lookup(cyfra4 , Tablica)
                Reset W4
    
    End Select
    
    Incr Nr_wysw
       If Nr_wysw = 4 Then
       Nr_wysw = 0
       End If
    
       Waitms 100 '--------------bez-tego--opóźnienienia-nie-działa-symulacja
    
    Loop
    '------------------------------------------------------------------------------------------------------
    Tablica:
    '---------0------------1------------2------------3------------4-----------------
    Data &B11000000 , &B11111001 , &B10100100 , &B10110000 , &B10011001
    '---------5------------6------------7------------8------------9-----------------
    Data &B10010010 , &B10000010 , &B11111000 , &B10000000 , &B10010000
    
    
  • REKLAMA
  • Pomocny post
    #2 10309125
    MacGyver 7
    Poziom 21  
    Spróbuj zmniejszyć zegar dla mikrokontrolera w symulatorze, u mnie działało,choć procedury pisałem w assemblerze.
  • #3 10309311
    darres1
    Poziom 13  
    Witam,
    dzięki MacGyver 7, działa z zegarm 128kHz, wcześniej próbowałem, ale nie włączyłem dzielenia przez 8 (divide clock by 8), teraz jest ok


    Symulacja w Proteusie -multipleksowanie wyświetlaczy.


    temat zamykam
    pozdrawiam ;-)
REKLAMA