Понимаю что где то я что то упустил.
$regfile = "m8def.dat" ' используем ATmega8
$crystal = 8000000 ' тактовая частота
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Config Lcd = 16 * 2 'используем дисплей на 2 строчки по 16 знакомест в каждой
Cursor Off ' курсор выключен
Const Negativ = -1
Dim Ch As Integer
Dim Count As Byte ' вспомогательный счетчик
Dim Adc_value As Single
Dim Any_var As Single ' значение АЦП
Dim Adc_channel(4) As Single ' 4 значения, готовые для вывода
Config Single = Scientific , Digits = 2 ' ограничение до двух знаков
Dim V As Integer
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'конфигурация АЦП
Start Adc 'запускаем аналого-цифровое преобразование
'---------- заставку-------------------------------
Cursor Off 'отключаем отображение курсора на ЖК
Cls 'очитка дисплея
Locate 1 , 1 'позиция курсора
Lcd "аoІpo Ёo¶a»oіaїД" 'выводим надпись
Locate 2 , 4 ' позиция курсора
Lcd "BepcёЗ 1.1" 'выводим надпись
Wait 3 'задержка 2 секунды
Cls
For V = 1 To 16
Locate 1 , 5
Lcd "¤aґpy·єa"
Locate 2 , V ' Задержка на 150 мс
Lcd "."
Waitms 400
Next
Cls 'очитка дисплея
'----------
'главный цикл программы
Do
For Count = 1 To 4 Step 1 ' забираем значения всех четырех каналов АЦП
Ch = Getadc(count) ' и расчитываем для вывода
Adc_value = Ch
Any_var = Adc_value / 2000 ' 2000 - можно задавать изгиб линии
Any_var = Negativ * Any_var ' Если закоментировать, изменим направление изгиба экспоненты
Any_var = Exp(any_var)
Adc_value = 1023 - Adc_value 'Инверсия
Adc_value = Adc_value / 12.786 ' диапазон до 80
'Adc_value = Adc_value * 8
'Adc_value = Adc_value / 1023
Any_var = Adc_value * Any_var
Adc_channel(count) = Any_var / 10
Next
Locate 1 , 1 ' вывод всех значений на индикатор
Lcd ; Adc_channel(1) ;
Locate 1 , 13
Lcd ; Adc_channel(2) ;
Locate 2 , 1
Lcd ; Adc_channel(3) ;
Locate 2 , 13
Lcd ; Adc_channel(4) ;
Waitms 100 ' задержка между чтениями
Loop
End
