listing1

'podprogram odczytu rezystancji potencjometru


Odczyt:
'oczekiwanie na rozladowanie kondensatora pomiarowego
Waitms 2
Odczytane = 255
$asm
clr {blad}
Setb P1.1
Zliczaj:
jnb p3.6,konieczliczania
Nop ; Nop
djnz {odczytane},zliczaj
setb {blad}
Konieczliczania:
clr p1.1
$end Asm
If Blad = 0 Then 'odczyt OK
'poniewaz liczylismy od gory, a chcemy wartosc od 0, nalezy wykonac dzialanie odczytane=255-odczytane, czyli prosciej:
Odczytane = Not Odczytane
'mnozenie przez zmienna kalibracyjna
'wynik w zmiennej pomocniczej typu Word
Temp = Odczytane * Kalibracja
Shift Temp , Right , 6
'wynik przepisujemy z powrotem do zmiennej typu Byte
Odczytane = Temp
Else
'jezeli jednak wystapil blad, to musimy podac jakas wartosc
Odczytane = 255
End If
'tutaj nastepuje formatowanie wyniku do postaci: 1 bit - kierunek wychylenia, reszta - wychylenie od polozenia srodkowego
If Odczytane < 128 Then
Odczytane = 128 - Odczytane
End If
Return


Wyszukiwarka