Odczyt I-bus.bas.txt

(3 KB) Pobierz
   $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 gnej 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
Zgłoś jeśli naruszono regulamin