Код, если кому надо будет:
- Код: Выделить всё • Развернуть
'-------------------------------------------------------------------------------
$regfile = "m16def.Dat" ' мк ATmega16
$crystal = 16000000 ' частота кварца 16мГц
'-------------------------------------------------------------------------------
'-------------------------------- LCD-дисплей-----------------------------------
$lib "lcd4.lbx" 'используем 4-х битное подключение дисплея с помощью альтернативной библиотеки
'Библиотека lcd4.lbx использует следующее подключение:
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 знакомест в каждой
'-------------------------------------------------------------------------------
'----------------------------Константы и переменные-----------------------------
'Формула: R=M/(V+B)-K
Const M = 20000
Const K = -1
Const B = -100
Dim Range As Word , Range1 As Word , Vout As Word , Vout1 As Word
'-------------------------------------------------------------------------------
'--------------------------------Настройка ADC----------------------------------
Config Adc = Single , Prescaler = Auto , Reference = Internal
'-------------------------------------------------------------------------------
'--------------------------------------------- ----------------------------------
'Далее перед вывод информации на дисплее отключаем курсор,
'если этого не сделать он будет мешаться в виде такого
' знака "_". И делаем очистку с помощью команды "Cls".
Cursor Off 'отключаем отображение курсора на LCD
Cls 'очитка дисплея
Locate 1 , 5 'позиция курсора(1-строка, 5-начало надписи с 5-ого знакоместа)
Lcd "RoboHome" 'выводим надпись
Locate 2 , 4 ' позиция курсора(2-строка, 4-начало надписи с 4-ого знакоместа)
Lcd "Sharp test" 'выводим надпись
Wait 2 'задержка 2 секунды
'-------------------------------------------------------------------------------
'Начало цикла основной программы
Do
Start Adc : Vout1 = Getadc(0) 'Запускаем ADC на PA0
Stop Adc 'Останавливаем ADC
Vout = Vout1 + B
Range1 = M / Vout
Range = Range1 - K
Cls 'очитка дисплея
Locate 1 , 1 ' позиция курсора
Lcd "Range = " ; Range ; "cm" 'выводим результат преобразования на ЖК
Locate 2 , 1 ' позиция курсора
Lcd "Vout = " ; Vout ; 'выводим результат преобразования на ЖК
Waitms 100 ' зедержка 0,1 секунды
Loop
End