program cruse

dim btn as word
'ONOFF >  GPIO.0
'SETCOAST > GPIO.1
'RESACC > GPIO.2
'BUTTONS > GPIO.4  AN3
'CALL > GPIO.5


main:'   Main program
TRISIO = %010000 ' GP4 вход, остальное выход
CMCON  = %00000111' компоратор выключить
ADCON0 = %00001101 ' левое вырвнивание, опорное напряжение vdd, AN3, преобразование не выполняется, включить АЦП
ANSEL = %01011000 ' Fosc/16 понятия не имею зачем, AN3 аналоговый,
GPIO  = 0


while (TRUE)
btn = ADC_Read (3) ' считать заначение АЦП AN3 возможно ошибся с адресом в скобках
if btn <= 45 then  'если нажата кнопка ON/OFF
if  GPIO.0 = 0 then 'проверяем состояние выхода  GPIO.0 если 0
GPIO.0 = 1           'то на выходе GPIO.0 установить лог. 1
else GPIO.0 = 0  ' если еденица, то меняем на 0
end if
end if

if btn > 45 then      'если нажата кнопка CANCEL (АЦП 46-148)
if btn <= 148 then
GPIO.1 = 0            ' то сбрасываем на 0 все выходы
GPIO.2 = 0            ' кроме GPIO.0
GPIO.5 = 0
if GPIO.0 = 1 then   'и проверяем состяние GPIO.0
GPIO.0 = 0           'если на выходе 1 то сбрасываем на 0
Delay_ms(200)        'ждем немного
GPIO.0 = 1          'и возвращаем 1 на место
end if
end if
end if

if btn > 148 then     'если нажата кнопка RES/ACC (АЦП 148-256)
if btn <= 256 then
GPIO.1 = 0            ' то сбрасываем на 0 все выходы
GPIO.5 = 0            ' кроме GPIO.0 и GPIO.2
GPIO.2 = 1            ' на выходе GPIO.2 установить лог. 1
end if
end if

if btn > 256 then     'если нажата кнопка RES/ACC (АЦП 256-377)
if btn <= 377 then
GPIO.1 = 0            ' то сбрасываем на 0 все выходы
GPIO.2 = 0             ' кроме GPIO.0 и GPIO.5
GPIO.5 = 1             'и на выходе GPIO.5 установить лог. 1
end if
end if

if btn > 377 then     'если нажата кнопка RES/ACC (АЦП 377-589)
if btn <= 589 then
GPIO.2 = 0            ' то сбрасываем на 0 все выходы
GPIO.5 = 0             ' кроме GPIO.0 и GPIO.1
GPIO.1 = 1             'и на выходе GPIO.1 установить лог. 1
end if
end if

if btn > 589 then     ' если ничего не нажато
GPIO.1 = 0            ' то сбрасываем на 0 все выходы
GPIO.2 = 0            ' кроме GPIO.0
GPIO.5 = 0
end if

wend

end.