'тестируем АЦП, выводим результаты на ЖК.


$regfile = "m16def.dat"                                     ' используем ATmega16
$crystal = 8000000                                          ' частота установленного кварца 8 mHz
$lib "lcd4.lbx"                                             'используем 4-х битное подключение дисплея с помощью альтернативной библиотеки

'Библиотека lcd4.lbx использует следующее подключение -
'
'LCD = ATmega16
'---------------
'Rs  = PortB.0
'RW  = PortB.1  в данном варианте не используется - просто подключен (так же его можно подключить на землю)
' E  = PortB.2
'E2  = PortB.3  данный вывод используется для подключения некоторых дисплеев с двумя чипами (здесь не используется)
'Db4 = PortB.4
'Db5 = PortB.5
'Db6 = PortB.6
'Db7 = PortB.7

'указываем конфигурацию подключения дисплея к портам МК
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 знакомест в каждой


Config Adc = Single , Prescaler = Auto , Reference = Avcc   'конфигурация АЦП

'объявляем переменные

Dim W As Word


Start Adc                                                   'запускаем аналого-цифровое преобразование
Cursor Off
'--------------выводим заставку-------------------------------
Cls
Locate 2 , 5                                                ' позиция курсора
Lcd "ADC test"                                              'выводим надпись
Wait 2                                                      'задержка 2 секунды
'-------------------------------------------------------------
'главный цикл программы

Do

 W = Getadc(0)                                              'считываем результат с пина 0 порта А.
  W = W * 5
  W = W / 1023








  Locate 1 , 5                                              ' позиция курсора
  Lcd "ADC(0):" ; W ; "   "                                 'выводим результат преобразования на ЖК


  Waitms 100                                                ' зедержка 0,1 секунды
Loop
End
