Компаратор на PIC16F684

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
jtlex
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт мар 18, 2008 10:29:04
Контактная информация:

Компаратор на PIC16F684

Сообщение jtlex »

Написал программу: Программа простая.
Принцип такой: компаратор1 сравнивает напряжение с опорным встроенным и как только оно превышает то устанавливаем бит RC2 на выходе
и корректирует свое напряжение на большее значение при его превышении сбрасывает RC2 и снижает напряжение опорное.
Все работает, но только на включение. После включения он не отключается. Может я что - то в программе забыл ил на схеме какие нибудь косяки.
У контроллера все ноги кроме RC2, питания и вход 1 компаратора

Код: Выделить всё

#include P16F684.inc
__CONFIG   _CP_OFF & _BOD_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_OFF & _INTRC_OSC_NOCLKOUT

TIMERH EQU 0X20
TIMERL EQU 0X21
VECTOR EQU 0X22

    ORG 0x0000
    BCF PCLATH,3
    BCF PCLATH,4
    GOTO Start
    ORG 0x0004
    RETFIE

Start
    MOVLW 0X02
    MOVWF CMCON0
    BSF STATUS,RP0
    MOVLW 0X07
    MOVWF TRISA
    CLRF TRISC
    MOVLW 0XAC
    MOVWF VRCON
    BCF STATUS,RP0
    MOVF CMCON0,W
    BCF PIR1, C1IF
    CALL DELAY_10

MAINPROG
    CALL DELAY_10
    BTFSS CMCON0,C1OUT
    GOTO OBOGREVON
OBOGREVOFF
    BCF PORTC,RC2
    BSF STATUS,RP0
    MOVLW 0XAC
    MOVWF VRCON
    BCF STATUS,RP0
    MOVLW 0X02
    MOVWF CMCON0
    MOVF CMCON0,W
    BCF PIR1,C1IF
    GOTO MAINPROG
OBOGREVON
    BSF PORTC,RC2
    BSF STATUS,RP0
    MOVLW 0XAB
    MOVWF VRCON
    BCF STATUS,RP0
    MOVLW 0X02
    MOVWF CMCON0
    MOVF CMCON0,W
    BCF PIR1,C1IF
    GOTO MAINPROG

DELAY_10
    CLRF TIMERH
    CLRF TIMERL
CIKLTIMER
    INCFSZ TIMERL
    GOTO CIKLTIMER
    INCFSZ TIMERH
    GOTO CIKLTIMER
    RETURN
END
otest
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Re: Компаратор на PIC16F684

Сообщение otest »

ил на схеме какие нибудь косяки.У контроллера все ноги кроме RC2

Если посмотреть на схему-косяков не видно и схему не видно. То что ноги все это радует.
Аватара пользователя
kotpalych
Электрический кот
Сообщения: 1046
Зарегистрирован: Пн ноя 21, 2011 16:45:00

Re: Компаратор на PIC16F684

Сообщение kotpalych »

Возможно следует поменять местами MOVLW 0XAB и MOVLW 0XAC ?
Программа с комментариями:
ttt.zip
(970 байт) 331 скачивание

Так должно работать:

Код: Выделить всё

#include P16F684.inc
__CONFIG   _CP_OFF & _BOD_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_OFF & _INTRC_OSC_NOCLKOUT

TIMERL EQU 0X21      ;Переменная таймера задержки

Start
    MOVLW 0X02      ;Неинвертирующие входы компараторов
    MOVWF CMCON0   ;на ИОН инверсия выхода отключена
    BSF STATUS,RP0   ;В первый банк памяти
    CLRF TRISC      ;Порт С на выход
    BCF STATUS,RP0   ;Перейти нулевой банк памяти
OBOGREVON      
    BSF STATUS,RP0   ;Перейти в первый банк памяти
    MOVLW 0XAC      ;ИОН включен внутренний
    MOVWF VRCON      ;на 2,5 вольта   
    BCF STATUS,RP0   ;Перейти нулевой банк памяти
    CALL DELAY      ;К подпрограмме задержки
    BTFSS CMCON0,C1OUT   ;Если напряжение на входе компаратора
    GOTO OBOGREVOFF   ;выше опорного то OBOGREVOFF
    BSF PORTC,RC2   ;На вывод RC2 единицу
    GOTO OBOGREVON   ;Перейти в MAINPROG
OBOGREVOFF
    BSF STATUS,RP0   ;Перейти первый банк памяти
    MOVLW 0XAB      ;ИОН включен внутренний
    MOVWF VRCON      ;на 2,29 вольта
    BCF STATUS,RP0   ;Перейти нулевой банк памяти
    CALL DELAY      ;К подпрограмме задержки
    BTFSC CMCON0,C1OUT   ;Если напряжение на входе компаратора
    GOTO OBOGREVON   ;ниже опорного то OBOGREVON
    BCF PORTC,RC2   ;Обнулить вывод RC2
    GOTO OBOGREVOFF   ;Перейти в OBOGREVOFF
DELAY
    INCFSZ TIMERL   ;Выполнить задержку
    GOTO DELAY      ;256 тактов
    RETURN      
END
Невозможно починить то, что не сломалось.
СашаЖ
Родился
Сообщения: 17
Зарегистрирован: Вт дек 28, 2010 20:57:08
Откуда: Україна Київ

Re: Компаратор на PIC16F684

Сообщение СашаЖ »

Здравствуйте, в программировании я ноль, подскажите а каким программатором Вы его шьете, очень нужно прошить этот пик, в icprog найти его в списке не могу. как мне его прошить, заранее благодарен.
Enman
Друг Кота
Сообщения: 7774
Зарегистрирован: Сб янв 29, 2011 00:28:48

Re: Компаратор на PIC16F684

Сообщение Enman »

в WinPic он есть в списке
СашаЖ
Родился
Сообщения: 17
Зарегистрирован: Вт дек 28, 2010 20:57:08
Откуда: Україна Київ

Re: Компаратор на PIC16F684

Сообщение СашаЖ »

Будьте добры, подскажите боюсь ошибиться data и clock на выводы пика 13 и 12 идут. Имеется самопальный программатор EXTRApic . Но в списке прошиваемых микроконтроллеров нету 16F684 http://www.qrz.ru/schemes/contribute/constr/extra-pic/ Подскажите с помощью данного программатора и WinPic можно прошить данный контроллер, подскажите пожалуйста и за того что нету в списке боюсь сжечь.
Korneus
Встал на лапы
Сообщения: 81
Зарегистрирован: Пн мар 29, 2010 21:34:12

Re: Компаратор на PIC16F684

Сообщение Korneus »

СашаЖ писал(а):Будьте добры, подскажите боюсь ошибиться data и clock на выводы пика 13 и 12 идут. Имеется самопальный программатор EXTRApic . Но в списке прошиваемых микроконтроллеров нету 16F684 http://www.qrz.ru/schemes/contribute/constr/extra-pic/ Подскажите с помощью данного программатора и WinPic можно прошить данный контроллер, подскажите пожалуйста и за того что нету в списке боюсь сжечь.



13 нога data
12 нога clock

Должен прошиваться EXTRApic не чего ему не будет.
СашаЖ
Родился
Сообщения: 17
Зарегистрирован: Вт дек 28, 2010 20:57:08
Откуда: Україна Київ

Re: Компаратор на PIC16F684

Сообщение СашаЖ »

СашаЖ, не надо цитировать, тем более полностью, сообщение на которое сразу за ним отвечаешь..
Форум не резиновый и читать такие темы не удобно.. Привыкай сразу и к правильному..

МитяРа..


Спасибо.
jtlex
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт мар 18, 2008 10:29:04
Контактная информация:

Re: Компаратор на PIC16F684

Сообщение jtlex »

kotpalych писал(а):Возможно следует поменять местами MOVLW 0XAB и MOVLW 0XAC ?

jtlex, не надо цитировать, тем более полностью, сообщение на которое отвечаешь..
И тем более с листингом и тем более - если отвечаешь, сразу за ним..
Форум не резиновый и читать такие темы не удобно.. Привыкай сразу и к правильному..

МитяРа..


Спасибо буду пробывать. Но есть подозрение, что я что-то в схеме не доподкючил...
Вложения
PIC16F684.jpg
Схема. Все что подключено к контроллеру
(12.68 КБ) 983 скачивания
jtlex
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт мар 18, 2008 10:29:04
Контактная информация:

Re: Компаратор на PIC16F684

Сообщение jtlex »

Попробовал свою прогу в протеусе - работает. :( На Железе не пашет - еще раз задумался, что что-то не подключил :cry: . Может подскажите какие ноги на землю подцепить стоит?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25162
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Компаратор на PIC16F684

Сообщение КРАМ »

В реальном железе на питании должен стоять блокировочный керамический и электролитический конденсаторы.
Непонятно зачем между МК и реле стоит эмиттерный повторитель с питанием в 12 вольт?
Я смутно подозреваю, что Вы плохо понимаете, что на реле в подобном случае будет попадать напряжение на выходе RC2 за минусом падения на базо-эмиттерном переходе транзистора (примерно полвольта). При питании МК 5 вольт на реле будет 4,5.
ЗЫ. Полагаю, что Vss у Вас сидит на земле... :wink:
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15552
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Компаратор на PIC16F684

Сообщение BOB51 »

похоже изначально при постановке задачи ошибка...
превышение параметра вызывает сработку реле, меняем уставку на большую , снова ждем сработки (параметр стал еще больше) и вновь восстанавливаем исходное состояние реле??? надеясь, что параметр станет меньше? :shock:
за эмиттерный повторитель примерно 4 вольт на реле я уж не мяучу...
Аватара пользователя
МитяРа
Модератор
Сообщения: 11492
Зарегистрирован: Чт дек 11, 2008 14:52:26
Откуда: град Нижний

Re: Компаратор на PIC16F684

Сообщение МитяРа »

КРАМ писал(а):Непонятно зачем между МК и реле стоит эмиттерный повторитель с питанием в 12 вольт?
Столь распространённую ошибку объяснить легко..
Начинающие думают, что единственное, как можно включить реле, это подать на него "плюс", а само реле подключить на корпус..

На самом деле на реле надо подать "минус", а само реле подключить на питание..

P.S. Привет КРАМ-у от отрицательной логики управления.. :))
[img]http://radiokot.ru/forum/download/file.php?id=93376[/img][i][color=#000080][size=85]Между людьми возникает напряжение, если у них разный потенциал...[/size][/color][/i]
jtlex
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт мар 18, 2008 10:29:04
Контактная информация:

Re: Компаратор на PIC16F684

Сообщение jtlex »

Пардон. В схеме ошибка (на железе) транзистор эмиттером на минусе.
Аватара пользователя
kotpalych
Электрический кот
Сообщения: 1046
Зарегистрирован: Пн ноя 21, 2011 16:45:00

Re: Компаратор на PIC16F684

Сообщение kotpalych »

Интересно ,а мой вариант программы работает ,или я в нём где-то ошибся?
Невозможно починить то, что не сломалось.
jtlex
Открыл глаза
Сообщения: 43
Зарегистрирован: Вт мар 18, 2008 10:29:04
Контактная информация:

Re: Компаратор на PIC16F684

Сообщение jtlex »

kotpalych писал(а):Интересно ,а мой вариант программы работает ,или я в нём где-то ошибся?

Нет я же пишу про свою программу
Попробовал свою прогу в протеусе - работает
Аватара пользователя
kotpalych
Электрический кот
Сообщения: 1046
Зарегистрирован: Пн ноя 21, 2011 16:45:00

Re: Компаратор на PIC16F684

Сообщение kotpalych »

Похоже алгоритм работы вашей программы правильный:

Код: Выделить всё

установить опорное напряжение 2.5вольта
MAINPROG
сравнить входное напряжение с опорным
если входное напряжение выше опорного
перейти к подпрограмме понижения напряжения (OBOGREVON)
иначе к подпрограмме повышения напряжения (OBOGREVOFF)
OBOGREVOFF
включить повышение входного напряжения
установить опорное напряжение 2.5вольта
перейти к подпрограмме сравнения(MAINPROG)
OBOGREVON
включить понижение входного напряжения
установить опорное напряжение 2.29вольта
перейти к подпрограмме сравнения (MAINPROG)

Возможно неверно подобран терморезистор. Как его симулировали в протеус? Может выложите ваш работающий файл ?
Невозможно починить то, что не сломалось.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»