Zegar LCD Bascom
-
- Posty: 9
- Rejestracja: 02 lut 2021, 14:05
Zegar LCD Bascom
Witam serdecznie, zwracam się do Was z ogromną prośbą. Potrzebuje jako zadanie zrobić zegar LCD, który mniej więcej będzie podobny do tych zegarów w samochodach.
00: 00 : 00
gdzie pierwsze 2 cyfry możemy ustawić na 24 godziny, kolejne 2 na 59 minut i kolejne dwie na 59 sekund.
Po przyciśnięciu guzika będzie nam przeskakiwać z godzin na minuty i z minut na sekundy.
a po dłuższym przyciśnięciu pozostanie zapisane.
Totalnie się w tym gubię i nie daję sobie rady. Bardzo prosiłbym o pomoc
00: 00 : 00
gdzie pierwsze 2 cyfry możemy ustawić na 24 godziny, kolejne 2 na 59 minut i kolejne dwie na 59 sekund.
Po przyciśnięciu guzika będzie nam przeskakiwać z godzin na minuty i z minut na sekundy.
a po dłuższym przyciśnięciu pozostanie zapisane.
Totalnie się w tym gubię i nie daję sobie rady. Bardzo prosiłbym o pomoc
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Zegar LCD Bascom
Domin .. no nic nie wiesz to widać.
Jaki procesor , jaki wyswietlacz..
-Proszę forumowiczów którzy chcieliby tu błysnąć o powstrzymanie się od odpowiedzi (może to wkręt).
Jaki procesor , jaki wyswietlacz..
-Proszę forumowiczów którzy chcieliby tu błysnąć o powstrzymanie się od odpowiedzi (może to wkręt).
- Pikczu
- Posty: 392
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Zegar LCD Bascom
No właśnie jako zadanie!!
Więc słuchamy co proponujesz ?
Więc słuchamy co proponujesz ?
-
- Posty: 9
- Rejestracja: 02 lut 2021, 14:05
Re: Zegar LCD Bascom
nie to nie jest wkręt, profesor powiedział zrobić i ma działać obojętnie jak, a na zajęciach nie używamy tego programu w ogóle, dlatego przyszedłem na to forum z prośbą o pomoc
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Zegar LCD Bascom
Pomoc tu uzyskasz jak pokażesz, że cokolwiek próbowałeś robić... nie licz na gotowca. Możemy poprawić Tobie jakiś kod...ale musisz dodać dwa do dwóch
-
- Posty: 9
- Rejestracja: 02 lut 2021, 14:05
Re: Zegar LCD Bascom
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $sim
- $regfile = "m32def.dat"
- $crystal = 16000000
- $hwstack = 40
- $swstack = 16
- $framesize = 32
- Dim Liczh As Byte
- Dim Liczm As Byte
- Dim Liczs As Byte
- Dim Liczba As Byte
- Cursor Off
- Config Porta = Output
- Porta = 255
- Funkcja_przel Alias Pina.5
- Liczba = 0
- Deflcdchar 0,32,32,15,17,17,15,1,14' g
- Cls
- Locate 1, 6
- Lcd "Witam"
- Cls
- Gosub Disp
- Do
- Debounce funkcja_przel , 0 , Funkcja , Sub
- Liczba = Encoder(pina.7 , Pina.6 , Lewo , Prawo , 0)
- Waitus 150
- Loop
- End
- Lewo:
- If Liczba = 0 Then
- If Liczh > 0 Then Liczh = Liczh - 1
- If Liczh < 0 Then Liczh = 24
- Gosub Disp
- End If
- If Liczba = 1 Then
- If Liczm > 0 Then Liczm = Liczm - 1
- If Liczm < 0 Then Liczm = 59
- Gosub Disp
- End If
- If Liczba = 2 Then
- If Liczs > 0 Then Liczs = Liczs - 1
- If Liczs < 0 Then Liczs = 59
- Gosub Disp
- End If
- Return
- Prawo:
- If Liczba = 0 Then
- If Liczh < 25 Then Liczh = Liczh + 1
- If Liczh = 25 Then Liczh = 0
- Gosub Disp
- End If
- If Liczba = 1 Then
- If Liczm < 60 Then Liczm = Liczm - 1
- If Liczm = 60 Then Liczm = 0
- Gosub Disp
- End If
- If Liczba = 2 Then
- If Liczs < 60 Then Liczs = Liczs - 1
- If Liczs = 60 Then Liczs = 0
- Gosub Disp
- End If
- Return
- Disp:
- Cls
- Locate 1, 6
- Lcd "Ze"; Chr(0) ;"ar"
- Locate 2, 5
- Lcd Liczh ; ":" ; Liczm ; ":" ; Liczs
- Return
- Funkcja:
- If Liczba = 0 Then
- Locate 2, 5
- Cursor Blink
- End If
- If Liczba = 1 Then
- Locate 2, 8
- Cursor Blink
- End If
- If Liczba = 2 Then
- Locate 2, 10
- Cursor Blink
- End If
- If Liczba = 3 Then Gosub Zegar
- If Liczba = 4 Then Liczba = 0
- Return
- Zegar:
- If Liczh < 25 Then
- If Liczm < 60 Then
- If Liczs < 60 Then
- Liczs = Liczs + 1
- Gosub Disp
- Wait 1
- Else
- Liczm = Liczm + 1
- Liczs = 0
- End If
- Else
- Liczm = 0
- Liczh = Liczh + 1
- End If
- Else
- Liczh = 0
- End If
- Return
aktualnie mój kod wygląda tak, coś jednak zrobiłem nie tak bo wyskakują mi liczby 255 a godziny blokują się po 4. Mam też problem z rekacją na switcha, po kliknięciu nie przeszkakuję na kolejną faze z godzin na minuty, i próbowałem na różne sposoby i nic nie działa . Czy mogę liczyć na Waszą pomoc ?
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: Zegar LCD Bascom
Kolego umieść ten kod tak jak powinien być umieszczony w poście.
pozdrawiam Jacek.
pozdrawiam Jacek.
-
- Posty: 9
- Rejestracja: 02 lut 2021, 14:05
Re: Zegar LCD Bascom
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- $sim
- $regfile = "m32def.dat"
- $crystal = 16000000
- $hwstack = 40
- $swstack = 16
- $framesize = 32
- Dim Liczh As Byte
- Dim Liczm As Byte
- Dim Liczs As Byte
- Dim Liczba As Byte
- Cursor Off
- Config Porta = Output
- Porta = 255
- Funkcja_przel Alias Pina.5
- Liczba = 0
- Deflcdchar 0,32,32,15,17,17,15,1,14' g
- Cls
- Locate 1, 6
- Lcd "Witam"
- Cls
- Gosub Disp
- Do
- Debounce funkcja_przel , 0 , Funkcja , Sub
- Liczba = Encoder(pina.7 , Pina.6 , Lewo , Prawo , 0)
- Waitus 150
- Loop
- End
- Lewo:
- If Liczba = 0 Then
- If Liczh > 0 Then Liczh = Liczh - 1
- If Liczh < 0 Then Liczh = 24
- Gosub Disp
- End If
- If Liczba = 1 Then
- If Liczm > 0 Then Liczm = Liczm - 1
- If Liczm < 0 Then Liczm = 59
- Gosub Disp
- End If
- If Liczba = 2 Then
- If Liczs > 0 Then Liczs = Liczs - 1
- If Liczs < 0 Then Liczs = 59
- Gosub Disp
- End If
- Return
- Prawo:
- If Liczba = 0 Then
- If Liczh < 25 Then Liczh = Liczh + 1
- If Liczh = 25 Then Liczh = 0
- Gosub Disp
- End If
- If Liczba = 1 Then
- If Liczm < 60 Then Liczm = Liczm - 1
- If Liczm = 60 Then Liczm = 0
- Gosub Disp
- End If
- If Liczba = 2 Then
- If Liczs < 60 Then Liczs = Liczs - 1
- If Liczs = 60 Then Liczs = 0
- Gosub Disp
- End If
- Return
- Disp:
- Cls
- Locate 1, 6
- Lcd "Ze"; Chr(0) ;"ar"
- Locate 2, 5
- Lcd Liczh ; ":" ; Liczm ; ":" ; Liczs
- Return
- Funkcja:
- If Liczba = 0 Then
- Locate 2, 5
- Cursor Blink
- End If
- If Liczba = 1 Then
- Locate 2, 8
- Cursor Blink
- End If
- If Liczba = 2 Then
- Locate 2, 10
- Cursor Blink
- End If
- If Liczba = 3 Then Gosub Zegar
- If Liczba = 4 Then Liczba = 0
- Return
- Zegar:
- If Liczh < 25 Then
- If Liczm < 60 Then
- If Liczs < 60 Then
- Liczs = Liczs + 1
- Gosub Disp
- Wait 1
- Else
- Liczm = Liczm + 1
- Liczs = 0
- End If
- Else
- Liczm = 0
- Liczh = Liczh + 1
- End If
- Else
- Liczh = 0
- End If
- Return
- niveasoft
- Posty: 1239
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Zegar LCD Bascom
Poprawiłem te posty, ale na przyszłość proszę zastosuj tę instrukcje viewtopic.php?f=3&t=107
Trudno jest zasymulować enkoder w symulatorze a Ty masz wpisane u góry $sim. To testujesz to na procesorze czy w symulatorze?
Jak na prawdziwym uC to usuń lub zakomentuj na początek te $sim
Trudno jest zasymulować enkoder w symulatorze a Ty masz wpisane u góry $sim. To testujesz to na procesorze czy w symulatorze?
Jak na prawdziwym uC to usuń lub zakomentuj na początek te $sim
-
- Posty: 9
- Rejestracja: 02 lut 2021, 14:05
Re: Zegar LCD Bascom
testuje to na symulatorze niestety, dopiero gotowy kod sprawdza profesor z urządzeniami :/ właśnie mi sprawdził i wytknął mi te błedy o których napisałem, ze nie przeskakuje między liczbami, i po kręceniu wyskakuje max godzina 4 a sekundy i minuty pokazuja 255