Конфигурация аналоговых выводов PIC16F877

Я работал с PIC16F877 . Может кто-нибудь объяснить, как настроить его контакты, чтобы они были аналоговыми или цифровыми?

Я где-то видел, что нам нужно настроить ADCON1, но не очень понимаю, как это работает.

Это звучит как лучший вопрос для s.tk/ee
Проверьте техническое описание: ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf , стр. 112.
Какой язык/компилятор вы используете?

Ответы (2)

См . техническое описание , Раздел 11.0 (Регистр 11-2), стр. 112.

Вы выбираете работу выводов, устанавливая четыре бита PCFG3:PCFG0в ADCON1регистре в соответствии с таблицей в таблице данных.

Значение этих битов по умолчанию при включении питания равно 0000, что означает, что все контакты AN0...AN7 настроены как аналоговые входы.

Чтобы настроить все контакты AN как цифровые, вы устанавливаете PCFGбиты в 011x( x означает, что все равно ). Остальные комбинации есть в даташите.

Если вы используете контакты только для вывода, их не нужно настраивать как цифровые. Это требуется только для цифровых входов. Это подразумевается всеми техническими данными, но многие люди этого не осознают. Это упоминается в техпаспортах на последние детали.

Я не уверен, что это действительно верно для всех деталей, особенно для более старых, таких как 16F877. Кажется, я помню, как давно столкнулся с этой проблемой, задаваясь вопросом, почему мой штифт не шевелится, и не понимая, что аналоговые функции должны быть отключены. Я видел то, о чем вы говорите, в более новых таблицах данных, но это не значит, что это относится к более старым деталям.
Из главы аналого-цифрового преобразования таблицы данных: если бит TRIS очищен (выход), уровень цифрового выхода (V_OH или V_OL) будет преобразован.