Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ivan_fd  
общий анод в общий катод
ODNOROG Дата: Пт, 12.04.2013, 15:27  |                                                                                                                Сообщение # 1
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 25
Репутация: 0   ±
Замечания:   ±
На сайте с 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
ЯНДЕКС Дата: 12.04.2013
shaman Дата: Пт, 12.04.2013, 16:20  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 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
Репутация: 12   ±
Замечания:   ±
На сайте с 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
Репутация: 0   ±
Замечания:   ±
На сайте с 06.11.2011

Статус: Offline

ок. спасибо помогло
  • Страница 1 из 1
  • 1
Поиск: