wITAM.
Napisałem program bo pomiaru temp. Problem mam taki, że na wyświetlaczu pojawia się więcej tekstów coś w tej formie: Temp = 21,1C Temp = 21,1C Temp = 21,1C Temp = 21,1C i tak przez cały wyswietlacz i przesuwa się w prawo.
kod:
$regfile = "m8def.dat"
$crystal = 16000000
Config 1wire = Portb.1 'port do którego podpięty jest termetr
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2
Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia
Deflcdchar 2 , 4 , 10 , 10 , 10 , 10 , 17 , 17 , 14 ' znak fiolki
Dim Address As Byte , Command As Byte , Odczyt(2) As Byte , A As Byte , B As Byte , Licznik As Byte ,
T As Integer , T1 As Single , Napis As String * 5 , D1 As Integer
D1 = 350
Enable Interrupts
Cursor Off 'kusor off
Cls 'czyszczenie wyświetlacza
Do
1wreset 'reset
1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
1wwrite &H44 'dokonaju konwersji
Waitms 750 'przeczekaj czas konwersji
1wreset 'reset
1wwrite &HCC 'rozkaz adresowy SKIP ROM
1wwrite &HBE 'rozkaz funkcyjny - polecenie odczytu DS18x20
Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty
T = Odczyt(2) 'przepisz starszy bajt do zmiennej typu Integer
Shift T , Left , 8 'przesuń ten bajt w lewo na wyższe pozycje
T = T + Odczyt(1) 'przepisz - dodaj młodszy bajt
T1 = T * 0.0625
Napis = Fusing(t1 , "#.#") 'określenie miejsca po przecinku
Lcd Chr(2) ; "=" ; Napis ; " " ; Chr(1) ; "C" 'wynik
Loop
Napisałem program bo pomiaru temp. Problem mam taki, że na wyświetlaczu pojawia się więcej tekstów coś w tej formie: Temp = 21,1C Temp = 21,1C Temp = 21,1C Temp = 21,1C i tak przez cały wyswietlacz i przesuwa się w prawo.
kod:
$regfile = "m8def.dat"
$crystal = 16000000
Config 1wire = Portb.1 'port do którego podpięty jest termetr
Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5
Config Lcd = 16 * 2
Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia
Deflcdchar 2 , 4 , 10 , 10 , 10 , 10 , 17 , 17 , 14 ' znak fiolki
Dim Address As Byte , Command As Byte , Odczyt(2) As Byte , A As Byte , B As Byte , Licznik As Byte ,
T As Integer , T1 As Single , Napis As String * 5 , D1 As Integer
D1 = 350
Enable Interrupts
Cursor Off 'kusor off
Cls 'czyszczenie wyświetlacza
Do
1wreset 'reset
1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM
1wwrite &H44 'dokonaju konwersji
Waitms 750 'przeczekaj czas konwersji
1wreset 'reset
1wwrite &HCC 'rozkaz adresowy SKIP ROM
1wwrite &HBE 'rozkaz funkcyjny - polecenie odczytu DS18x20
Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty
T = Odczyt(2) 'przepisz starszy bajt do zmiennej typu Integer
Shift T , Left , 8 'przesuń ten bajt w lewo na wyższe pozycje
T = T + Odczyt(1) 'przepisz - dodaj młodszy bajt
T1 = T * 0.0625
Napis = Fusing(t1 , "#.#") 'określenie miejsca po przecinku
Lcd Chr(2) ; "=" ; Napis ; " " ; Chr(1) ; "C" 'wynik
Loop