PIC 16F88 Пример АЦП?

Итак, у меня есть PIC 16F88, и мне удалось сделать пару вещей с ним, но теперь мне было интересно, как получить аналого-цифровое преобразование?

Я перепробовал много примеров в интернете, но безуспешно:(Если бы кто-нибудь мог пролить свет на то, как использовать ADCON0/1 и тому подобное, я буду признателен.

Большое спасибо.

Изменить: это мой код:

START
    banksel TRISA
    clrf    TRISB
    movlw   0xff
    movwf   TRISA
    movlw   b'11000111'
    movwf   OPTION_REG
    movlw   b'00000001'
    movwf   ADCON1
    banksel PORTB
    clrf    PORTB   
LOOP
    btfss   PIR1,ADIF
    goto    LOOP
    bsf ADCON0,GO   
WAIT
    btfsc   ADCON0,GO
    goto    WAIT
    movf    ADRESH,W
    movwf   PORTB,W
END

1 ответ

Из таблицы данных ПОС:

Регистры ADRESH:ADRESL содержат 10-битный результат аналого-цифрового преобразования. Когда аналого-цифровое преобразование завершено, результат загружается в эту пару регистров результата аналого-цифрового преобразования, бит GO/DONE (ADCON0<2>) очищается и устанавливается бит флага A / D-прерывания ADIF. Блок-схема модуля A / D показана на рисунке 11-1.

После того, как аналого-цифровой модуль был настроен по желанию, выбранный канал должен быть получен до начала преобразования. Каналы аналогового входа должны иметь соответствующие биты TRIS, выбранные в качестве входов. Чтобы определить время выборки, см. Раздел 11.1. По истечении этого времени можно начать аналого-цифровое преобразование. Для выполнения аналого-цифрового преобразования необходимо выполнить следующие шаги:

  1. Настройка модуля A / D: • Настройка аналоговых выводов / опорного напряжения / и цифрового ввода-вывода (ADCON1) • Выберите А / входной канал / D (ADCON0) • Выбор A D преобразования часы / (ADCON0) • Включите модуль A / D (ADCON0)
  2. Сконфигурируйте аналого-цифровое прерывание (при желании): • Очистить бит ADIF • Установить бит ADIE • Установить бит GIE 3. Подождите необходимое время сбора данных.
  3. Начать преобразование: • Установить бит GO/DONE (ADCON0)
  4. Дождитесь завершения аналого-цифрового преобразования одним из следующих способов: • опросите бит GO/DONE, подлежащий очистке, или • ожиданием прерывания аналого-цифрового преобразования.
  5. Прочитать пару регистров результата A / D (ADRESH:ADRESL), очистить бит ADIF, если требуется.
  6. Для следующего преобразования перейдите к шагу 1 или шагу 2, если требуется. Время аналого-цифрового преобразования на бит определяется как TAD. Минимальное ожидание 2TAD требуется до начала следующего приобретения.

Вы не ждете времени приобретения перед началом преобразования. Все остальное кажется правильным.

Другие вопросы по тегам