$regfile = "2313def.dat"
$crystal = 4000000
$baud = 9600
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.2 , E = Portb.3 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Display On
'Cursor Off Noblink
Config Pinb.0 = Output 'podswietlanie wyświetlacza
Portb.0 = 1
'Pinb = Output
'-------------deklaracia zmiennych---------------------------
Dim Os1 As Byte 'tylko 7 bajtów odbieranego sygnału
Dim Os2 As Byte
Dim Os3 As Byte
Dim Os4 As Byte
Dim Os5 As Byte
Dim Os6 As Byte
Dim Os7 As Byte
Dim Kos1 As Byte ' taka kopia tych bajtów
Dim Kos2 As Byte
Dim Kos3 As Byte
Dim Kos4 As Byte
Dim Kos5 As Byte
Dim Kos6 As Byte
Dim Kos7 As Byte
Dim Obr As Byte
Dim Pr As Byte
Dim Obr1 As Integer
Dim Pr1 As Integer
'Dim Channel As Byte
Dim Serial_flag As Byte 'flaga czy coś jest odebranego
Dim Serial_rx(7) As Byte 'tablica do odbierania
'-----------------konfiguracjia seriala----------------------
Config Serialin = Buffered , Size = 34 'STARa wartość 7 działająca a 100 jeszcze nie sprawdzałem
Enable Interrupts 'wł przerwań
Cls
Do 'pętla
Serial_flag = Ischarwaiting() 'jesli znak czeka to ustaw flage
If Serial_flag = 1 Then ' jesli flaga =1
Inputbin Serial_rx(1) ; 1 'przypisz dane z bufora do tablicy startujac od pierwszego byte-u
Os1 = Serial_rx(1) ; 1 'teraz do zmiennych
Os2 = Serial_rx(2) ; 1 ' i do drugiej zmiennnej i tak dalej
Os3 = Serial_rx(3) ; 1
Os4 = Serial_rx(4) ; 1
Os5 = Serial_rx(5) ; 1
Os6 = Serial_rx(6) ; 1
Os7 = Serial_rx(7) ; 1
Kos1 = Os1 'oraz do kopii
Kos2 = Os2
Kos3 = Os3
Kos4 = Os4
Kos5 = Os5
Kos6 = Os6
Kos7 = Os7
'Locate 1 , 1 'na górnej linijce pokazywane są aktualne odebrane znaki
'Lcd Hex(os1) ; " " ; Hex(os2) ; " " ; Hex(os3) ; " " ; Hex(os4) ; " " ; Hex(os5) ; " " ; Hex(os6) ; " " ; Hex(os7)
'Locate 2 , 1 'na dolnej pokazywane są ostatnio odebrane znaki
'Lcd Hex(kos1) ; " " ; Hex(kos2) ; " " ; Hex(kos3) ; " " ; Hex(kos4) ; " " ; Hex(kos5) ; " " ; Hex(kos6) ; " " ; Hex(kos7)
'Clear Serialin 'czyszczenie bufora
Cls
'Locate 2 , 1 'jeszcze raz pokaż po czyszczeniu ekranu ostatnio odebrane znaki
'Lcd Hex(kos1) ; " " ; Hex(kos2) ; " " ; Hex(kos3) ; " " ; Hex(kos4) ; " " ; Hex(kos5) ; " " ; Hex(kos6) ; " " ; Hex(kos7)
End If
If Kos1 = 128 And Kos2 = 5 And Kos3 = 191 And Kos4 = 24 Then 'sprawdza czy pierwszy bajt ramki to 128 hex(80 ) drugi to 5 trzeci 191 i czwarty 24 wtedy
Pr = Kos5 'wpisuje z bajtu 5 do zmiennej prędkosc
Obr = Kos6 'oraz obroty
Pr1 = Pr * 2 'prędkość trzeba pomnożyć przez dwa
Obr1 = Obr * 100 'a obroty przez 100
Cls
Locate 1 , 1 'jeszcze raz pokaż po czyszczeniu ekranu ostatnio odebrane znaki
Lcd Hex(kos1) ; " " ; Hex(kos2) ; " " ; Hex(kos3) ; " " ; Hex(kos4) ; " " ; Hex(kos5) ; " " ; Hex(kos6) ; " " ; Hex(kos7) 'na pierwszej lini tak kontrolnie cała ramka
Locate 2 , 1
Lcd Pr1 ; "km/h" ; Obr1 ; "rpm/min"
Waitms 100
Else
Locate 2 , 1
Lcd Pr1 ; "km/h" ; Obr1 ; "rpm/min"
Waitms 100
End If
Loop 'koniec pętli
End
Wyszukiwarka
Podobne podstrony:
Destiny´s Child Get on the Busjak odczytywać informacje nazw Photoshopamb bus allstruktury z plikiem DYSKI TWARDE dopis do pliku odczyt więcej niż 120GbRestauracja drewnianych elementów hotelu Le Bas de MontagrisOdczytujemy współrzędne geograficznePartnerstwo Wschodnie INFOS BAS04a?5 Power Supply and Bus Systems02 3 Series Bus ChartsCAN Bus Drivers for Atmel C51 Productswięcej podobnych podstron