Естественно-технический факультет
Кафедра «Приборостроение»
2
биты 6-4: Не используются: читаются как 'О'
биты 3-0: PCFG3:PCFGO: Управляющие биты настройки каналов АЦП
Примечания:
1. Эти каналы не реализованы в микроконтроллерах PIC16F873/ PIC16F876.
2. В этом столбце указывается число аналоговых каналов, доступных для
выполнения преобразования, и число входов источника опорного напряжения.
В регистре ADRESH:ADRESL сохраняется 10-разрядный результат аналого-цифрового
преобразования. Когда еобразование завершено, результат преобразования записывается в
регистр ADRESH:ADRESL, после чего расывается флаг GO/-DONE (ADCONO<2>) и
устанавливается флаг прерывания ADIF. Структурная схема модуля (П показана на рисунке
11-1.
После включения и конфигурации АЦП выбирается рабочий аналоговый канал.
Соответствующие биты TRIS алоговых каналов должны настраивать порт ввода/вывода на
вход. Перед началом преобразования необходимо держать временную паузу
3
6. Считать результат преобразования из регистров ADRESH:ADRESL, сбросить бит
ADIF в 'О1, если это необходимо.
7. Для следующего преобразования необходимо выполнить шаги начиная с пункта 1
или 2. Время преобразования одного бита определяется как время tad. Минимальное время
ожидания перед следующим преобразованием должно составлять не менее 2Тдо.
Аналого-цифровое преобразование
Сброс бита GO/-DONE в 'О во время преобразования приведет к его прекращению.
При этом регистры результата (ADRESH:ADRESL) не изменят своего содержимого. После
досрочного завершения преобразования необходимо обеспечить временную задержку 2Тдо.
Выдержав требуемую паузу, можно начать новое преобразования установкой бита GO/-
DONE в 1.
На рисунке показана последовательность получения результата после установки бита
GO/-DONE в 1.
Примечание. Бит GO/-DONE и бит включения АЦП должны устанавливаться разными
командами. Последовательность получения результата после установки бита GO/-DONE
4
Выравнивание результата преобразования
10-разрядный результат преобразования сохраняется в спаренном 16-разрядном
регистре ADRESH:ADRESL. Запись результата преобразования может выполняться с
правым или левым выравниванием, в зависимости от значения бита ADFM. Не
задействованные биты регистра ADRESH:ADRESL читаются как '0'. Если модуль АЦП
выключен, то 8-разрядные регистры ADRESH и ADREL могут использоваться как регистры
общего назначения.
;**********************************************************
;* TUT877.ASM
;**********************************************************
;* Microchip Technology Incorporated
;* 16 December 1998
;* Assembled with MPASM V2.20
;**********************************************************
;* This program configures the A/D Module to convert on
;* A/D channel 0 (the potentiometer) and display the
;* results on the LEDS on PORTC. Make sure that the DIP
;* switch SW3 has all switches in the ON position.
;**********************************************************
list p=16f877
5
; Start at the reset vector
org 0x000
nop
Start
banksel PORTC
clrf PORTC ;Clear PORTC
movlw B'01000001' ;Fosc/8, A/D enabled
movwf ADCON0
banksel OPTION_REG
movlw B'10000111' ;TMR0 prescaler, 1:256
movwf OPTION_REG
clrf TRISC ;PORTC all outputs
movlw B'00001110' ;Left justify,1 analog channel
movwf ADCON1 ;VDD and VSS references
banksel PORTC
Main
btfss INTCON,T0IF ;Wait for Timer0 to timeout
goto Main
bcf INTCON,T0IF
end
VCC
DD1
RV1 13 33 Pc0 VD1
OSC1/CLKIN RB0/INT
14 34
OSC2/CLKOUT RB1
35
2
RB2
36 Pc1 VD2
48%
RA0/AN0 RB3/PGM
3 37
RA1/AN1 RB4
10k 4 38
5
RA2/AN2/VREF-/CVREF RB5
39 Pc2 VD3
RA3/AN3/VREF+ RB6/PGC
6 40
RA4/T0CKI/C1OUT RB7/PGD
7
RA5/AN4/SS/C2OUT
15 Pc0 Pc3 VD4
RC0/T1OSO/T1CKI
8 16 Pc1
RE0/AN5/RD RC1/T1OSI/CCP2
9 17 Pc2
10
RE1/AN6/WR RC2/CCP1
18 Pc3 Pc4 VD5
RE2/AN7/CS RC3/SCK/SCL
23 Pc4
RC4/SDI/SDA
1 24 Pc5
MCLR/Vpp/THV RC5/SDO
25 Pc6 Pc5 VD6
RC6/TX/CK
26 Pc7
RC7/RX/DT
19 Pc6 VD7
RD0/PSP0
PIC16F877A 20
RD1/PSP1
21
RD2/PSP2
22 Pc7 VD8
RD3/PSP3
27
RD4/PSP4
28
RD5/PSP5
29
RD6/PSP6
30
RD7/PSP7