Всем здравствуйте! вот добрались руки, наконец, доделать этот девайс....
непонятно пока почему на макетке ерунду какую-то отображает пока виню сам потенциеметр-он странный какой-то, только завтра поменяю, а в симуляторе работает как мне надо....Добавлено (10.01.2016, 05:33)
---------------------------------------------
и сам исходник, посмотрите, где накосячил, плиз
'Определения
DEFINE LCD_DREG PORTB ' Определяем порт, к которому подключены цепи данных.
DEFINE LCD_DBIT 4 ' Определяем первый вывод, к которому подключена шина данных,
DEFINE LCD_RSREG PORTB ' Определяем порт, к которому подключена цепь RS.
DEFINE LCD_RSBIT 3 ' Определяем вывод, к которому подключена цепь RS.
DEFINE LCD_EREG PORTB ' Определяем порт, к которому подключена цепь E.
DEFINE LCD_EBIT 0 ' Определяем вывод, к которому подключена цепь E.
DEFINE LCD_BITS 4 ' Определяем режим 4 – разрядной шины.
DEFINE LCD_LINES 2 ' Определяем тип ЖКИ.
DEFINE LCD_COMMANDUS 2000 ' Определяем время задержки между командами на ЖКИ.
DEFINE LCD_DATAUS 50 ' Определяем время задержки междупосылками данных.
' Определяем параметры АЦП
DEFINE ADC_BITS 8 ' Определяем разрядность преобразования
DEFINE ADC_CLOCK 3 ' Определяем источник синхронизации для АЦП
DEFINE ADC_SAMPLEUS 50 ' Определяем время преобразования
' Назначение переменных
Res Var Word ' Определяем переменную, в которую записывается результат АЦП
Res2 var word
Volts1 Var Word ' Первые два десятичных разряда результата в мВ
Volts2 Var Word ' Вторые два десятичных разряда результата в мВ
Volts3 Var Word
Volts4 Var Word
' Константы
Conv1 Con 3 ' 5000/256 = 19.53, this is the decimal part
Conv2 Con 91 ' Это дробная часть числа
' Инициализация
TRISA = 1 ' Устанавливаем вывод RA0 (AN0) на вход
TRISB = 0 ' Весь PORTB на выход
PAUSE 500 ' Ждем 0.5 сек инициализации ЖКИ
ADCON1 = 0 ' Устанавливаем выводы AN0 - AN4 как аналоговые входа
OPTION_REG = %00000000 ' Подключаем подтягивающие резисторы
ADCON0 = %11000001 ' Устанавливаем внутренний источниксинхронизации АЦП
TRISC = %00111111 ' Устанавливаем ПОРТ С
PORTC = 0 ' Устанавливаем ПОРТ С в нуль на выходе
Main:
HIGH PORTC.7 ' установка потенциала + на одном плече потенциометра
LOW PORTC.6 ' установка потенциала - на одном плече потенциометра
ADCIN 0, Res ' Считываем аналоговое значение и сохраняем в переменной Res
Volts1 = Res * Conv1 ' Умножаем это значение на 19
Volts2 = Res * Conv2 ' Умножаем это значение на 53
Volts2 = Volts2 / 100
Volts1 = Volts1 + Volts2 ' Получаем результат в милливольтах
pause 100
HIGH PORTC.6 ' установка потенциала + на одном плече потенциометра
LOW PORTC.7 ' установка потенциала - на одном плече потенциометра
ADCIN 0, Res2 ' Считываем аналоговое значение и сохраняем в переменной Res
Volts3 = Res2 * Conv1 ' Умножаем это значение на 19
Volts4 = Res2* Conv2 ' Умножаем это значение на 53
Volts4 = Volts4 / 100
Volts3 = Volts3 + Volts4 ' Получаем результат в милливольтах
pause 100
LCDOUT $FE,$c0, dec4 Volts1,$10,$10,$10,$10,$10,$10,$10,$10,dec4 Volts3 ' Выведем результат на дисплей
GOTO Main
END