Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'służy do określania taktowania z jakim będzie pracować procesor w Hz
- $crystal = 3579545
- 'Zdefiniowanie wielkosci wyswieltacza 16 znakow x 1 wiersz
- Config Lcd = 16 * 1a
- 'deklaracja zmiennej x jako byte [1bajt do 255]
- Dim x As Byte
- 'Zerowanie zmiennej pomocniczej X oraz adresów pamięci mikrokontrolera
- x = 0
- Adres0 = &H00
- Adres1 = &H00
- Adres2 = &H00
- Adres3 = &H00
- Adres4 = &H00
- Adres5 = &H00
- Adres6 = &H00
- 'Alias przypisuje nazwie zminnej J0 = ADRES6.0 ETC
- J0 Alias Adres6.0
- J1 Alias Adres6.1
- J2 Alias Adres6.2
- J3 Alias Adres6.3
- 'wysterowanie matrycy w zaleznosci od SHK jak na moje jest to sterowanie linia WL która odblokowuje tranzystory, w zaleznosci od SHK
- Dim UK(6) As Byte
- 'trzeba podać kompilatorowi jakie porty będą wejściami a jakie wyjściami nadanie adresow zmiennych POM0 = 0 POM1 = 16 POM2 = 32 POM3 = 48 POM4 = 64 POM5 = 80
- POM0 = &B00000000
- POM1 = &B00010000
- POM2 = &B00100000
- POM3 = &B00110000
- POM4 = &B01000000
- POM5 = &B01010000
- 'zapamietanie adresów SHK jest to prosta implemntacja stosu imo wrzuca sie jeden na drugi tak jak C, tylko w bascomie masz 3 rodzaje stosow, tu wrzucane sa na stos systemowy i zdefiniowanie ich jako BYTE
- Dim Poprzedni_adres As Byte
- Dim Biezacy_adres As Byte
- Poprzedni_adres = &H00
- Biezacy_adres = &H00
- '
- Dim F_1 As Byte
- Dim F_2 As Byte
- F_1 = &H00
- F_2 = &H00
- Main:
- Do
- Biezacy_adres = Adres1
- If Biezacy_adres.x > Poprzedni_adres.x Then
- Poprzedni_adres = Biezacy_adres
- Goto Obsluga_abonenta
- End If
- If Biezacy_adres.x < Poprzedni_adres.x Then
- Poprzedni_adres = Biezacy_adres
- Goto Obsluga_rozlaczenia_abonenta
- End If
- If x = 5 Then
- x = 0
- End If
- Incr x
- Loop
- Obsluga_abonenta:
- If Adres0.7 = 0 Then
- Goto Wysterowanie_matrycy_odb1
- End If
- If Adres0.7 = 1 Then
- If Adres0.6 = 0 Then
- 'WYSTEROWANIE_MATRYCY_ODB2
- End If
- 'odrzucenia zadania
- If Adres0.6 = 1 Then
- Poprzedni_adres.x = 0
- End If
- End If
- Goto Main
- Obsluga_rozlaczenia_abonenta:
- 'zwalnianie zasobow przy rozlaczeniu abonenta obslugiwanego OCZ1
- If F_1.x = 1 Then
- Waitms 30
- Adres0.7 = 0
- J0 = 0
- J1 = 0
- 'zerowanie flagi
- F_1.x = 0
- End If
- 'zwalnianie zasobow przy rozlaczeniu abonenta obslugiwanego OCZ2
- If F_2.x = 1 Then
- Waitms 30
- Adres0.6 = 0
- J2 = 0
- J3 = 0
- 'zerowanie flagi
- F_2.x = 0
- End If
- Goto Main
- Wysterowanie_matrycy_odb1:
- 'zajecie zasobow komutatora
- Adres0.7 = 1
- J0 = 1
- J1 = 1
- F_1.x = 1
- 'przygotowanie drogi dla abonenta
- UK(x).0 = 1
- Adres2 = UK(x)
- Waitms 30
- 'zatrzask rejestrow
- Adres2.7 = 1
- Adres3 = &B01110001
- Waitms 30
- 'zatrzask rejestrow
- Adres3.7 = 1
- Adres4 = &B01110010
- Waitms 30
- 'zatrzask rejestrow
- Adres4.7 = 1
- UK(x).0 = 0
- UK(x).1 = 1
- Adres5 = UK(x)
- Waitms 30
- 'zatrzask rejestrow
- Adres5.7 = 1
- UK(x).1 = 0
- Waitms 30
- 'zwolnienie zatrzaskow rejestrow
- Adres2.7 = 0
- Adres3.7 = 0
- Adres4.7 = 0
- Adres5.7 = 0
- Goto Main
- 'analogicznie jak przy WYSTEROWANIE_MATRYCY_ODB1
- Wysterowanie_matrycy_odb2:
- Adres0.6 = 1
- J2 = 1
- J3 = 1
- F_2.x = 1
- UK(x).2 = 1
- Adres2 = UK(x)
- Waitms 10
- Adres2.7 = 1
- Adres3 = &B01110100
- Waitms 10
- Adres3.7 = 1
- Adres4 = &B01111000
- Waitms 10
- Adres4.7 = 1
- UK(x).2 = 0
- UK(x).3 = 1
- Adres5 = UK(x)
- Waitms 10
- Adres5.7 = 1
- UK(x).3 = 0
- Waitms 10
- Adres2.7 = 0
- Adres3.7 = 0
- Adres4.7 = 0
- Adres5.7 = 0
- Goto Main
Advertisement
Add Comment
Please, Sign In to add comment