06/01/2014, 22:29
Jeśli chodzi o ATmega8515 to niestety z powodu za małej liczby wyjść będą potrzebne 3 sztuki. Postaram się poszukać jakiegoś innego procka. Jakby się nie znalazł...
Wystrugałem już program do pierwszego procesora.
Kod:
$regfile = "m8515.dat" 'dyrektywa dla mikrokontrolera ATmega8515 lub AT90S8515
$crystal = 16000000 'mikrokontroler będzie działać z częstotliwością 16MHz
'configuracje pinów
Config Pina.0 = Output
Config Pina.1 = Output
Config Pina.2 = Output
Config Pina.3 = Output
Config Pina.4 = Output
Config Pina.5 = Output
Config Pina.6 = Output
Config Pina.7 = Output
Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pinb.2 = Output
Config Pinb.3 = Output
Config Pinb.4 = Output
Config Pinb.5 = Output
Config Pinb.6 = Output
Config Pinb.7 = Output
Config Pinc.0 = Output
Config Pinc.1 = Output
Config Pinc.2 = Output
Config Pinc.3 = Output
Config Pinc.4 = Output
Config Pinc.5 = Output
Config Pinc.6 = Output
Config Pinc.7 = Output
Config Pind.0 = Input 'wejście D0
Config Pind.1 = Input 'zegar CLK
Config Pind.2 = Input 'Latch Enable
Config Pind.3 = Input 'blank
Config Pine.0 = Output 'wyjście D0 do kolejnego procesora
'przypisanie nazw dla pinów operacyjnych
Wej Alias Pind.0 'od tej pory uzywamy nazwy Wej zamiast PIND.0
Wyj Alias Pine.0 'od tej pory uzywamy nazwy wyj zamiast PINE.0
Clk Alias Pind.1 'od tej pory uzywamy nazwy clk zamiast PIND.2
Latch Alias Pind.2 'od tej pory uzywamy nazwy latch zamiast PIND.3
Blank Alias Pind.3 'od tej pory uzywamy nazwy Wej zamiast PIND.4
'przypisanie nazw dla pinów wyjścia wysokiego napięcia
Hvout1 Alias Pina.0
Hvout2 Alias Pina.1
Hvout3 Alias Pina.2
Hvout4 Alias Pina.3
Hvout5 Alias Pina.4
Hvout6 Alias Pina.5
Hvout7 Alias Pina.6
Hvout8 Alias Pina.7
Hvout9 Alias Pinb.0
Hvout10 Alias Pinb.1
Hvout11 Alias Pinb.2
Hvout12 Alias Pinb.3
Hvout13 Alias Pinb.4
Hvout14 Alias Pinb.5
Hvout15 Alias Pinb.6
Hvout16 Alias Pinb.7
Hvout17 Alias Pinc.0
Hvout18 Alias Pinc.1
Hvout19 Alias Pinc.2
Hvout20 Alias Pinc.3
Hvout21 Alias Pinc.4
Hvout22 Alias Pinc.5
Hvout23 Alias Pinc.6
Hvout24 Alias Pinc.7
Dim Licznik As Integer 'licznik impulsów CLK
'początek działania programu
Do 'oczekiwanie na synchronizacje
Loop Until Clk = 1
Do
Hvout1 = 0
Hvout2 = 0
Hvout3 = 0
Hvout4 = 0
Hvout5 = 0
Hvout6 = 0
Hvout7 = 0
Hvout8 = 0
Hvout9 = 0
Hvout10 = 0
Hvout11 = 0
Hvout12 = 0
Hvout13 = 0
Hvout14 = 0
Hvout15 = 0
Hvout16 = 0
Hvout17 = 0
Hvout18 = 0
Hvout19 = 0
Hvout20 = 0
Hvout21 = 0
Hvout22 = 0
Hvout23 = 0
Hvout24 = 0
For Licznik = 1 To 64
Wyj = Wej
Do
Loop Until Clk = 1
If Licznik = 1 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout1 = 1
End If
If Licznik = 2 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout2 = 1
End If
If Licznik = 3 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout3 = 1
End If
If Licznik = 4 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout4 = 1
End If
If Licznik = 5 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout5 = 1
End If
If Licznik = 6 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout6 = 1
End If
If Licznik = 7 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout7 = 1
End If
If Licznik = 8 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout8 = 1
End If
If Licznik = 9 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout9 = 1
End If
If Licznik = 10 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout10 = 1
End If
If Licznik = 11 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout11 = 1
End If
If Licznik = 12 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout12 = 1
End If
If Licznik = 13 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout13 = 1
End If
If Licznik = 14 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout14 = 1
End If
If Licznik = 15 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout15 = 1
End If
If Licznik = 16 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout16 = 1
End If
If Licznik = 17 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout17 = 1
End If
If Licznik = 18 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout18 = 1
End If
If Licznik = 19 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout19 = 1
End If
If Licznik = 20 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout20 = 1
End If
If Licznik = 21 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout21 = 1
End If
If Licznik = 22 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout22 = 1
End If
If Licznik = 23 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout23 = 1
End If
If Licznik = 24 And Wej = 1 And Latch = 1 And Blank = 1 Then
Hvout24 = 1
End If
Do
Loop Until Clk = 0 'oczekiwanie na synchornizacje
Next Licznik
Loop
'koniec działania programu
End