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