Na początku do dodam że jestem początkujący w pisaniu programów w bascomie i mikrokontrolerach.
I na początek kupiłem sobie taki zestaw: https://sklep.avt.pl/avtkurs-avr.html.
Wg. informacji zawartych w książce dołączonej do tego kursu i przykładach programów napisałem program licznika automatycznego zliczającego do 9999.
Kod: Zaznacz cały
' licznik automatyczny czterocyfrowy 9999
Dim Jednostki As Byte , Dziesiatki As Byte , Setki As Byte , Tysiace As Byte , Ktorywysw As Byte
Config Portb = 255 : Portb = &B11111111 'wyjścia wygaszone
Config Portd = &B1111100 : Portd = &B1111111 'dwie wejścia
Tysiace = 0 : Setki = 0 : Dziesiatki = 0 : Jednostki = 0
Do 'pętla główna
Waitms 5
Incr Ktorywysw 'następny wyświetlacz co około 5ms
If Ktorywysw = 4 Then 'co około 20ms
Ktorywysw = 0 'skróć cykl
Gosub Zwieksz
If Jednostki = 10 Then 'jeśli przekroczy 9
Jednostki = 0 'wyzeruj licznik jednostek
Incr Dziesiatki 'zwiększ licznik dziesiatek
If Dziesiatki = 10 Then Dziesiatki = 0 'też skracaj cykl
End If
End If
Portd = &B11111111 'najpierw gasimy wyświetlacze
Select Case Ktorywysw
Case 0: 'wyświetl zawartość licznika jednostek
Portb = Lookup(jednostki , Tabela) 'przepisz do PortB kody
Portd.3 = 0 'włącz T3 - wyświetlacz jednostek
Case 1: 'wyświetl zawartość licznika dziesiątek
Portb = Lookup(dziesiatki , Tabela) 'przepisz do PortB kody
Portd.4 = 0 'włącz T4 - wyświetlacz dziesiątek
Case 2: 'wyświetl zawartość licznika setek
Portb = Lookup(setki , Tabela) 'przepisz do PortB kody
Portd.5 = 0 'włącz T5 - wyświetlacz setek
Case 3: 'wyświetl zawartość licznika tysięcy
Portb = Lookup(tysiace , Tabela) 'przepisz do PortB kody
Portd.6 = 0 'włącz T6 - wyświetlacz tysięcy
End Select
Loop 'koniec pętli
Tabela:
Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144
Zwieksz:
Incr Jednostki
If Jednostki = 10 Then
Jednostki = 0
Incr Dziesiatki
If Dziesiatki = 10 Then
Dziesiatki = 0
Incr Setki
If Setki = 10 Then
Setki = 0
Incr Tysiace
If Tysiace = 10 Then Tysiace = 0
End If
End If
End If
ReturnBardzo proszę o pomoc.