ВУЗ:
Составители:
Рубрика:
87
Запуск аналого-цифрового преобразования осуществляется уста-
новкой бита ADCS (ADC start) регистра ADCON. Программно можно
только установить бит ADCS, сбрасывается он автоматически после
завершения преобразования. Для внешнего управления запуском АЦП
используется вход STADC. Если внешнее управление запуском разре-
шено (бит ADEX установлен), преобразование начинается при положи-
тельном перепаде (переходе из 0 к 1) на входе STADC (см. рис. 16.1).
Аналого-цифровое преобразование занимает 50 машинных цик-
лов. После его завершения кроме сброса бита ADCS автоматически
устанавливается бит ADCI (ADC Interrupt) – флаг прерывания от АЦП.
По сигналу ADCI = 1 процессор может перейти к обработке этого
прерывания по соответствующей подпрограмме, если прерывание раз-
решено битом EAD (см. табл. 13.3 в практической работе 13). Уста-
новка бита ADCI сигнализирует о том, что в регистрах ADCON и
ADCH находится результат преобразования, который необходимо
прочитать и сохранить. Поэтому, пока бит ADCI установлен, новое
преобразование блокируется. Бит ADCS устанавливается только аппа-
ратно, программно его можно сбросить. Это необходимо сделать для
последующего запуска нового преобразования, так как оно возможно
только при ADCS = 0 и ADCI = 0.
Старшие 8 разрядов результата аналого-цифрового преобразова-
ния хранятся в регистре ADCH, два оставшихся бита хранятся в AD-
CON.7 (ADC.1) и ADCON.6 (ADC.0). Пользователь может игнориро-
вать два младших бита ADCON и использовать АЦП как 8-разрядный
преобразователь (8 старших разрядов в ADCH). Для использования
всех десяти разрядов в языке Си можно сформировать результат
преобразования при помощи строки Nx=ADCH*4+ADCON/64; где
Nx – переменная типа int, в которую помещается 10-разрядный двоич-
ный код. Деление и умножение двоичных чисел на 2
n
, где n – целое,
реализует сдвиг вправо или влево соответственно на n разрядов. Опе-
рация ADCH*4 осуществляет сдвиг содержимого регистра ADCH
(старших восьми разрядов) влево на 2 разряда, оставляя свободными
два младших разряда для содержимого регистра ADCON (биты ADC.0
и ADC.1). Операция ADCON/64 сдвигает старшие разряды регистра
ADCON на шесть позиций вправо. При этом младшие разряды теряют-
ся, а старшие заполняются нулями. После выполнения операции сло-
жения формируется 10-разрядный двоичный код в младших разрядах
двух байтов переменной Nx типа int.
Код Nx пропорционален входному напряжению Ux. Коэффициент
пропорциональности определяется напряжениями питания аналоговой
части микроконтроллера:
1024
x
Nx
0
U
U
=
,
Страницы
- « первая
- ‹ предыдущая
- …
- 85
- 86
- 87
- 88
- 89
- …
- следующая ›
- последняя »