$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忤ietlacza Portb.0 = 1 'Pinb = Output '-------------deklaracia zmiennych--------------------------- Dim Os1 As Byte 'tylko 7 bajt 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 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黎la 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 gnej 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鹽kosc Obr = Kos6 'oraz obroty Pr1 = Pr * 2 'pr鹽ko懈 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黎li End
BMW-xxx-Power