ODNOROG |
Дата: Пт, 12.04.2013, 15:27 | Сообщение # 1 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 06.11.2011
Статус:
Offline
|
помогите изменить часть программы индикатор был ОА а нужно поставить ОК
программа
---------------------[подключаемые файлы АЦП]-------------------------------- ' ----------------Задание параметров для команды ADCIN ------------------------ Define ADC_BITS 10 ' Задать число разрядов в результате Define ADC_CLOCK 3 ' Выбрать источник тактового сигнала (3 = RC) Define ADC_SAMPLEUS 50 ' Задать время преобразования в микросекундах '------------------------------------------------------------------------------ TRISA = %11100111 ' Установить 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 Bk3 var byte Bk4 var byte Bk5 var byte Bk6 var byte BN Var Byte ' переменная П/П обработки клавиатуры B0 Var Bit ' переменная П/П обработки клавиатуры
count_remain VAR BYTE ' Остаток счета count_per_c VAR BYTE ' Счет C maximum var word minimum var word rc0 var portc.0 ; клавиатура = - + rc1 var portc.1
pause 150 '____________ Начало работы программы измерения напряжения __________________ lop: GoSub key: Branchl BN, [volt, maxx, minn] GoTo lop ' Закольцевать volt: ADCIN 0, advv ' Прочитать АЦП - канал 0, значение (0-1023) advv = ((advv + 1) */ 500) >> 2 ' определить: (advv+1 * 500)/1024 indic = advv * 4 ;vid = $c1 gosub log ' вид измерения U GoTo loop1 ' Покажите значение на индикаторе
loop1: GoSub display ' Покажите значение на индикаторе GoTo lop ' Возврат '******************************************************************** '________________ П/п вывода числа на индикатор ____________________ '******************************************************************** 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 '********************************************************************
maxx: 'vid = $dc indic = maximum Bk3 = 0 Button rc0, 0, 255, 30, Bk3, 0, k11 maximum = maximum + 1 if maximum=2001 then maximum=2000
k11:
Bk4 = 0 Button rc1, 0, 255, 30, Bk4, 0, k22 maximum = maximum - 1 if maximum = 0 then maximum = 1 k22: goto loop1
minn: 'vid = $e3 indic = minimum 'Bk5 = 0 'Button rc0, 0, 255, 30, Bk5, 0, k33 minimum = maximum - 20 if minimum =2001 then minimum = 2000 k33:
'Bk6 = 0 'Button rc1, 0, 255, 30, Bk6, 0, k44 'minimum = minimum - 1 'if minimum = 0 then minimum = 1 k44: goto loop1
'******************************************************************** ; подпрограмма проверки на логику
log:
if advv*4 >=maximum then low porta.3
if advv*4 <=minimum then high porta.3
return
'**************************************************************** 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 = 3 then BN = 0
B0 = 1 k2: return k1: B0 = 0 return '============================================================================== end
|
|
|
|
shaman |
Дата: Пт, 12.04.2013, 16:20 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
178
Замечания:
±
На сайте с 07.11.2011
Статус:
Offline
|
День добрый вот Вам в помощь http://www.picbasic.ru/load....?lmHiSYДобавлено (12.04.2013, 16:20) --------------------------------------------- И вот еще, в основном пост № 14 http://www.picbasic.ru/forum/9-598-1#7357
|
|
|
|
brown |
Дата: Пт, 12.04.2013, 22:50 | Сообщение # 3 |
Группа:
Пользователи
Ранг:
Помогаю всем
Сообщений:
333
Замечания:
±
На сайте с 18.09.2007
Статус:
Offline
|
Инвертировать переменную Digits и значения в строках Цитата ODNOROG Digits = $00 ' погасить индикаторы Lookup n, [$C0, $F9, $A4, $B0, $99, $92, $82, $F8, $80, $90, $BF, $FF ], Segments
Век живи - век учись! К концу жизни поймешь, что ничего не знаешь...
Сообщение отредактировал
brown - Пт, 12.04.2013, 22:53
|
|
|
|
ODNOROG |
Дата: Пн, 15.04.2013, 14:51 | Сообщение # 4 |
Группа:
Пользователи
Ранг:
Начал соображать
Сообщений:
25
Замечания:
±
На сайте с 06.11.2011
Статус:
Offline
|
ок. спасибо помогло
|
|
|
|