Программирование микроконтроллера

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
dfcbkbq
Открыл глаза
Сообщения: 43
Зарегистрирован: Чт ноя 29, 2012 18:42:28

Программирование микроконтроллера

Сообщение dfcbkbq »

Друзья, доброго всем времени суток. У меня такая задача: необходимо описать в ассемблере измерение остаточного напряжения на аккумуляторе. Измерение производится посредством АЦП микроконтроллера PIC16F874 (данные приходят на вывод RE0).
Подкиньте кто-нибудь программку с комментариями.
Заранее, спасибо
Реклама
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: Программирование микроконтроллера

Сообщение TripleKill »

MOVLW 0x8A
MOVWF ADCON1 ;Настройка каналов приёма АЦП и выравнивания результата. RA0, RA1, RA2, RA5 и RE0 - аналоговые входы, на RA3 - вход опорного напряжения.

MOVLW 0x28
MOVWF ADCON0 ;Выбор для измерения канала AN5 (RE0), установка предделителя тактирования АЦП

BSF ADCON0, 0 ;Включение модуля АЦП
BSF ADCON0, 2 ;Запуск оцифровки

L1: BTFSC ADCON0, 2 ;По окончании оцифровки бит GO/!DONE обнуляется контроллером, этого и ждём
GOTO L1

<здесь результат уже лежит в ADRESH и ADRESL, можете работать с ним>

P.S. Если кто-то ошибку увидит, поправьте плиз, давно на асме не писал ничего)
Реклама
dfcbkbq
Открыл глаза
Сообщения: 43
Зарегистрирован: Чт ноя 29, 2012 18:42:28

Re: Программирование микроконтроллера

Сообщение dfcbkbq »

а как установить конкретное значение?
Например, АЦП измеряет напряжение, и если оно больше 0,2В, устройство проводит дальнейшие действия.... тем самым, пытаюсь реализовать определение наличия батареи в заряднике
Аватара пользователя
korsaj
Потрогал лапой паяльник
Сообщения: 330
Зарегистрирован: Чт июн 23, 2011 07:55:51

Re: Программирование микроконтроллера

Сообщение korsaj »

Считали значение АЦП сравнили с заданным порогом и сделали выводы.
Сравнивать можно вычитанием, сложением командами and, xor.
Реклама
Эиком - электронные компоненты и радиодетали
dfcbkbq
Открыл глаза
Сообщения: 43
Зарегистрирован: Чт ноя 29, 2012 18:42:28

Re: Программирование микроконтроллера

Сообщение dfcbkbq »

А как задать заданное значение? :)
Реклама
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: Программирование микроконтроллера

Сообщение TripleKill »

Очевидно, перевести его в код АЦП. код = (Uизмер. / Uопорное)*(2^10).
Десятая степень справедлива для пика, а вообще зависит от разрядности используемого АЦП.
Реклама
dfcbkbq
Открыл глаза
Сообщения: 43
Зарегистрирован: Чт ноя 29, 2012 18:42:28

Re: Программирование микроконтроллера

Сообщение dfcbkbq »

Спасибо вам большое :)
TripleKill
Вымогатель припоя
Сообщения: 671
Зарегистрирован: Вт июн 29, 2010 12:31:49

Re: Программирование микроконтроллера

Сообщение TripleKill »

Да не за что)
На всякий случай: измеряемое напряжение не должно превышать опорное! если что, юзайте делители.
dfcbkbq
Открыл глаза
Сообщения: 43
Зарегистрирован: Чт ноя 29, 2012 18:42:28

Re: Программирование микроконтроллера

Сообщение dfcbkbq »

Это я знаю, там делители надо резисторные ставить :)
Serёга
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Сб дек 22, 2012 09:02:51
Откуда: Волгоград
Контактная информация:

Re: Программирование микроконтроллера

Сообщение Serёга »

Может проще компаратор поставить?
— Теперь я твердо знаю, что море — это все-таки море, а вкус глотка пива не меняется от моих рассуждений. Кроме того, я знаю, что задающий дурацкие вопросы неизбежно получает дурацкие ответы. Теперь я спокоен. Я знаю все, что мне нужно.
Ответить

Вернуться в «Разные вопросы по МК»