
Dim Seg1 As Byte                                            'deklaracja zmiennych
Dim Seg2 As Byte                                            'zmienne seg1 do segN
Dim Seg3 As Byte                                            'naley doda w zalenici
Dim Seg4 As Byte                                            'od liczby wuwietlaczy
Dim Ktory As Byte                                           'ktry wywietlacz
Dim Cyfra As Byte                                           'aktualnie wywietlana cyfra



Config Portd = 255 : Portd = 255                            'ustaw port D jako wy
Config Portb = 255 : Portb = 256                            ' to samo dla portu B
Config Timer0 = Timer , Prescale = 64                       'skonfigruj timer 0 (8-bitowy) jako timer
' (bdzie co chwil generowa przerwanie) oraz wcz podzia czstotliwoci timera (optymalne dla 4 wywietlaczy i 4 Mhz kwarcu)
On Timer0 Obsluga_7_seg                                     'przy przerwaniu timera skocz do etykiety obugi led
Enable Interrupts : Enable Timer0                           'odblokuj globalny system przerwa i przerwanie z timera 0
'Load Timer0 , 256 'nie trzeba tego uywa, ale przy duej liczbie wywietlaczy
'i wolnym kwarcu wywietlacze bd zauwaalnie migota




Do : Loop : End                                             'miejsce na twj program, jeli nie bdzie cay ''siedzia w przerwaniach''




Obsluga_7_seg:                                              'etykieta przerwania
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 1 : Portd = 255       'zga wywietlacze (wyga anody i katody)
Incr Ktory : If Ktory = 4 Then Ktory = 0                    'przy kadym przerwaniu zmie wywietlacz,
'naley to zmodyfikowa przy zmianie liczby wywietlaczy

Select Case Ktory                                           'wybiarz ktry wywietlacz
Case 0:
Cyfra = Seg1 : Portb.0 = 0                                  'zmienna cyfra = jedna z zmiennych przechowywujcych
'wartoci poszczegulnych wywietlaczy nastpnie ustaw w porcie B jeden z bitw sterujcych wybieraniem wywietlaczy
Case 1:
Cyfra = Seg2 : Portb.1 = 0

Case 2:
Cyfra = Seg3 : Portb.2 = 0

Case 3:
Cyfra = Seg4 : Portb.3 = 0
End Select

Portd = Lookup(cyfra , Dane)                                'wystaw na porcie D warto pobran ze zbioru danych zapisanego pod etykiet dane

Return                                                      'powrt do programu








Dane:
Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144       'zbir danych opisujcych ksztaty cyfr
'jeli na portD wystawiamu warto nr 0 (pierwsza w szeregu) to z podczonych midzy port i ''+'' ledw
'powinny nie zapali si tylko nr 7 (G - rodkowa kreska) i 8 (H - kropka uamkowa) - czyli zawieci si syfra ''0''...




