Witam - ano właśnie chodzi o wersje dla Polski - dzięki za chęć pomocy - hi na pewno skorzystam - bo jak pisałem stawiam pierwsze kroki w pisaniu programów - przez święta pewnie będzie więcej czasu na nasze hobby - pozdrawiam Jacek.
Kod:
$regfile = "m644pdef.dat" 'informuje kompilator o typie mikrokontrolera
'$sim
$crystal = 16000000 'informuje kompilator
'o częstotliwości oscylatora 'taktującego mikrokontroler
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7 'porty mikrokontrolera, do których dołączono wyświetlacz LCD
Config Portd = &B00000111 : Portd = &B11111111
Config Portb = &B11111111 : Portb = &B11110111
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja wewnętrznego przetwornika A/C
Deflcdchar 1 , 31 , 31 , 4 , 4 , 4 , 4 , 4 , 4 ' replace ? with number (0-7)
Deflcdchar 2 , 31 , 31 , 32 , 32 , 32 , 32 , 32 , 32 ' replace ? with number (0-7)
Deflcdchar 3 , 31 , 31 , 4 , 4 , 4 , 32 , 32 , 32 ' replace ? with number (0-7)
Deflcdchar 4 , 4 , 4 , 4 , 4 , 14 , 14 , 31 , 31 ' replace ? with number (0-7)
Deflcdchar 5 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32 ' replace ? with number (0-7)
Deflcdchar 6 , 2 , 6 , 15 , 31 , 15 , 6 , 2 , 32 ' replace ? with number (0-7)
Deflcdchar 7 , 8 , 12 , 30 , 31 , 30 , 12 , 8 , 32 ' replace ? with number (0-7)
Deflcdchar 8 , 32 , 32 , 31 , 31 , 31 , 32 , 32 , 32 ' replace ? with number (0-7)
Up Alias Pind.7 'góra
Down Alias Pind.6 'dół
Setup Alias Pind.5 'wejście/zatwierdzenie
Dim Ekran As Byte
Dim Pozycja As Byte
Dim Pozycja1 As Byte
Dim Pomoc1 As Byte
Dim Pomoc2 As Byte
Dim Wart_ac1 As Word 'zmienna na wartość odczytaną z przetwornika
Dim Stopnie As Single 'zmienna stopni odczyt z przetwornika 'Dim V1 As Single 'podzielony przez 2.841
Dim Azym_odcz As Word 'zmienna odczytanego azymutu'Dim V2 As Word
Dim Azym_zad As Word
Start Adc 'uruchamia wbudowany przetwornik
Wart_ac1 = Getadc(0) 'odczytanie wartości z wejści ADC0 mikrokontrolera i przypisanie do zmiennej Wart_ac1
Stopnie = Wart_ac1 / 2.841 'zamiana wartości odczytanej z przetwornika'stopnie = Wart_ac1 / 2.841 'zamiana odczytanej wartości z A/C na stopnie azymutu
'na stopnie zaymutu
Azym_odcz = Int(stopnie)
Ekran = 1
Pozycja = 1
Pomoc1 = 1
Pomoc2 = 1
Cursor Off
Cls
Wait 1
Locate 1 , 4 : Lcd "STEROWNIK"
Waitms 500
Locate 2 , 6 : Lcd "ROTORA"
Waitms 500
Locate 3 , 4 : Lcd "By SQ2EER"
Waitms 500
Locate 4 , 5 : Lcd "Wer. 1.0"
Wait 1
Cls
Azym_zad = Azym_odcz
Do
If Up = 0 Then
Bitwait Up , Set
Ekran = Ekran + 1
If Ekran => 4 Then Ekran = 3
End If
If Down = 0 Then
Bitwait Down , Set
Ekran = Ekran - 1
If Ekran = 0 Or Ekran => 4 Then Ekran = 1
End If
'Locate 4 , 1 : Lcd Ekran
Select Case Ekran
'Case 0:
Case 1:
Cls
Do
Wart_ac1 = Getadc(0) 'odczytanie wartości z wejści ADC0 mikrokontrolera i przypisanie do zmiennej Wart_ac1
Stopnie = Wart_ac1 / 2.841 'zamiana wartości odczytanej z przetwornika'stopnie = Wart_ac1 / 2.841 'zamiana odczytanej wartości z A/C na stopnie azymutu
'na stopnie zaymutu
Azym_odcz = Int(stopnie)
Locate 1 , 6 : Lcd "Azymut"
Locate 2 , 1 : Lcd Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2) ; Chr(1) ; Chr(2) ; Chr(3) ; Chr(2)
Locate 3 , 2 : Lcd Azym_odcz ; Chr(5) ; " "
Locate 3 , 9 : Lcd Chr(4)
Locate 3 , 12 : Lcd Azym_zad ; Chr(5) ; " "
If Up = 0 Then
Bitwait Up , Set
Azym_zad = Azym_zad + 1
If Azym_zad => 360 Then Azym_zad = 360
End If
If Down = 0 Then
Bitwait Down , Set
Azym_zad = Azym_zad - 1
If Azym_zad = 0 Or Azym_zad => 360 Then Azym_zad = 0
End If
If Setup = 0 Then
Bitwait Setup , Set
Pomoc1 = Pomoc1 + 1
If Pomoc1 => 3 Then Pomoc1 = 2
End If
Loop Until Pomoc1 = 2 : Ekran = 2
Case 2:
Cls
Do
Locate 2 , 1 : Lcd "222"
Locate 3 , 1 : Lcd Pomoc1
Locate 4 , 1 : Lcd Pozycja1
If Up = 0 Then
Bitwait Up , Set
Pozycja1 = Pozycja1 + 1
If Pozycja1 => 4 Then Pozycja1 = 3
End If
If Down = 0 Then
Bitwait Down , Set
Pozycja1 = Pozycja1 - 1
If Pozycja1 = 0 Or Pozycja1 => 4 Then Pozycja1 = 1
End If
If Setup = 0 Then
Bitwait Setup , Set
Pomoc1 = Pomoc1 + 1
If Pomoc1 => 4 Then Pomoc1 = 3
End If
Loop Until Pomoc1 = 3 : Ekran = 3
Case 3:
Cls
Do
Locate 3 , 1 : Lcd "333"
Locate 1 , 1 : Lcd Pomoc1
Locate 4 , 5 : Lcd Pozycja
If Up = 0 Then
Bitwait Up , Set
Pozycja = Pozycja + 1
If Pozycja => 9 Then Pozycja = 9
End If
If Down = 0 Then
Bitwait Down , Set
Pozycja = Pozycja - 1
If Pozycja = 0 Or Pozycja => 10 Then Pozycja = 0
End If
If Setup = 0 Then
Bitwait Setup , Set
Pomoc1 = Pomoc1 + 1
If Pomoc1 => 5 Then Pomoc1 = 4
End If
Loop Until Pomoc1 = 4 : Ekran = 1
End Select
Loop
End
to tak dla testu - pewnie źle napisane ale działa wchodzenie i przechodzenie przez poszczególne ekrany ( ustawienia) - pozdrawiam Jacek.