нужна помощ . как из этой программы оставить только вольтметр,
а все остальное убрать
программа ниже
'****************************************************************
'* Файл : V&A&Ter_metr_7seg.pbp *
'* Формат : Pic Basic Pro *
'* Цель : Демонстрация работы вольтметра и амперметра, *
'* : 4-х разрядного7-сегментного индикатора с точкой *
'* : и термометра на DS 1820 *
'* Автор : Евген Бойко *
'* Дата : 07.12.2008 *
'* Версия : 1.0 *
'* : *
'****************************************************************
' ---------------------[подключаемые файлы АЦП]--------------------------------
' ----------------Задание параметров для команды ADCIN ------------------------
Define ADC_BITS 10 ' Задать число разрядов в результате
Define ADC_CLOCK 3 ' Выбрать источник тактового сигнала (3 = RC)
Define ADC_SAMPLEUS 50 ' Задать время преобразования в микросекундах
'------------------------------------------------------------------------------
TRISA = %11111111 ' Установить PORTA
ADCON1 = %10000010
TRISB = $00 ' все выводы порта В - выход
TRISC = $0F ' выводы порта С - 0,1,2,3 = вход 4,5,6,7,=,выход
Segments Var PORTB ' вывод сегментов на PORTB
Digits Var PORTC ' вывод анодов цифр на PORTС
advv VAR WORD ' хранить результат чтения АЦП вольтметр
adva VAR WORD ' хранить результат чтения АЦП амперметр
indic VAR WORD ' число для вывода на индикатор
n Var Byte ' переменная значения зажигаемого разряда
x Var Byte ' переменная номера зажигаемого разряда
i Var Byte ' переменная равная количеству разрядов индикатора
vid Var Byte ' вид измерения U или А
Bk2 Var Byte ' переменная команды Button
BN Var Byte ' переменная П/П обработки клавиатуры
B0 Var Bit ' переменная П/П обработки клавиатуры
temperature VAR WORD ' Температура
temperature1 VAR WORD ' Температура
count_remain VAR BYTE ' Остаток счета
count_per_c VAR BYTE ' Счет C
znak VAR BYTE ' знак минус
DQ VAR PORTC.0 ' порт подключение DS 1820
'_________________ Подготовка DS 1820 к измерениям ________________________
OWOut DQ, 1, [$CC, $44] ' Старт измерения температуры 1
Pause 1000 ' пауза в 1 сек.
'____________ Начало работы программы измерения напряжения __________________
loop:
GoSub key:
Branchl BN, [volt, amper, term]
GoTo loop ' Закольцевать
volt:
ADCIN 0, advv ' Прочитать АЦП - канал 0, значение (0-1023)
advv = ((advv+1) */ 500)>>2 ' определить: (advv+1 * 500)/1024
indic = advv
vid = $C1 ' вид измерения U
GoTo loop1 ' Покажите значение на индикаторе
'____________ Начало работы программы измерения тока ________________________
amper:
ADCIN 1, adva ' Прочитать АЦП - канал 0, значение (0-1023)
adva = ((adva+1)*/500)>>2 ' определить: (adva+1 * 500)/1024
indic = adva
vid = $88 ' вид измерения А
loop1: GoSub display ' Покажите значение на индикаторе
GoTo loop ' Возврат
'********************************************************************
'________________ П/п вывода числа на индикатор ____________________
'********************************************************************
display:
For i = 0 To 3 ' счетчик разрядов
n = indic Dig i ' выделить число для индикации
GoSub display1 ' засветить чисдо на индикаторе
Pause 1 ' пауза в 1 милисек.
x = i + 4 ' произвести коррекцию вывода портов вкл. анодов
if x = 7 then Segments = vid ' на индикатор вид измерения
if x = 5 then PORTB.7 = 0 ' подготовить точку
Digits = Dcd x ' включить разряд на индикаторе
Next i ' продолжить вычислять разряд
Return
'********************************************************************
'_______________ П/п определения сегментов числа ____________________
'********************************************************************
display1:
Digits = $00 ' погасить индикаторы
Lookup n, [$C0,$F9,$A4,$B0,$99,$92,$82,$F8,$80,$90,$BF,$FF ], Segments
' таблица 0 1 2 3 4 5 6 7 8 9 - off
Return
'********************************************************************
'************ П/П определения и вычисления температуры **********
'************** *****************************************************
term:
OWOut DQ, 1, [$CC, $44] ' Старт измерения температуры
OWOut DQ, 1, [$CC, $BE] ' Прочитать температуру
OWIn DQ, 0, [temperature.LOWBYTE, temperature.HIGHBYTE, Skip 4, count_remain, count_per_c]
' Вычислять температуру в градусах C
temperature = ((temperature * 10)>>4)
temperature1 = temperature
GoSub ind ' показать на индикаторе значение температуры
GoTo loop ' возврат
'********************************************************************
'______________п/п индикация температуры ____________________________
'********************************************************************
ind:
Digits = $00 ' погасить индикаторы
Segments = %10011100 ' знак градуса
Digits = Dcd 4 ' включить разряд на индикаторе
pause 5 ' пауза в 1 милисек.
GoSub minus ' определить знак температуры
n = temperature Dig 1 ' выделить число для индикации
GoSub display1 ' определить число
Digits = Dcd 5 ' включить разряд на индикаторе
Pause 5 ' пауза в 1 милисек.
n = temperature Dig 2 ' выделить число для индикации
GoSub display1 ' определить число
Digits = Dcd 6 ' включить разряд на индикаторе
Pause 5 ' пауза в 1 милисек.
n = znak ' выставить знак
GoSub display1 ' определить число
Digits = Dcd 7 ' включить разряд на индикаторе
Pause 5 ' пауза в 1 милисек.
Segments = %11111111 ' снять значение сегментов
Digits = $00 ' погасить индикаторы
Return
'********************************************************************
'----П/п Определение и вычисление отрицательной температуры --------
'********************************************************************
minus:
IF temperature < 3000 THEN minus1 'Если больше 3000 то отрицат. темпер.
temperature = 4096 - temperature 'Вычислить отрицат. температуру
znak = $0A 'Выставить минус по код таблице
goto minus2
minus1:
znak = $0B 'Иначе, выставить пробел по код таблице
IF temperature < 1000 THEN minus2
znak = $01 'Выставить сотню по код таблице
minus2:
Return
'********************************************************************
' П/П обработки клавиатуры
' Port C.3 - ввод = 1, активный 0
'****************************************************************
key:
Bk2 = 0 ' Переменная циклов команды BUTTON
Button portC.3,0,255,10,Bk2,0,k1 ' Проверка кнопки 1(Пропуск если Не Нажато)
if B0 = 1 then k2
BN = BN + 1 ' если нажата - записать в переменную +1
if BN = 4 then BN = 0
B0 = 1
k2:
return
k1:
B0 = 0
return
'==============================================================================
end