Professional Documents
Culture Documents
PIC16F877
Resumen de hoja de
datos
El microcontrolador
PIC16F877
El microcontrolador
PIC16F877
Configuracin
pines
de
MCLR/VPP/THV
40
RB7/PGD
RA0/AN0
39
RB6/PGC
RA1/AN1
38
RB5
RA2/AN2/VREF-
37
RB4
RA3/AN3/VREF+
36
RB3/PGM
RA4/T0CKI
35
RB2
RA5/AN4/SS
34
RB1
RE0/RD/AN5
33
RB0/INT
RE1/WR/AN6
32
VDD
RE2/CS/AN7
10
31
VSS
VDD
11
30
RD7/PSP7
VSS
12
29
RD6/PSP6
OSC1/CLKIN
13
28
RD5/PSP5
OSC2/CLKOUT
14
27
RD4/PSP4
RC0/T1OSO/T1CKI
15
26
RC7/RX/DT
RC1/T1OSI/CCP2
16
25
RC6/TX/CK
RC2/CCP1
17
24
RC5/SDO
RC3/SCK/SCL
18
23
RC4/SDI/SDA
RD0/PSP0
19
22
RD3/PSP3
RD1/PSP1
20
21
RD2/PSP2
El microcontrolador
PIC16F877
El microcontrolador
PIC16F877
RA0/AN0
RA1/AN1
Puerto
A
RA2/AN2/VrefRA3/AN3/Vref+
RA4/TOCKI
RA5/AN4
RC0
RC1
RC2
RC3
Puerto C
RC4
RC5
RC6/Tx
RD0
RD1
Puerto D
RD2
RD3
RD4
RD5
RD6
RD7
RB3
Puerto B
RB4
RB5
RB6
Puerto E
RE1/WR/AN6
RB7
RE2/CS/AN7
El microcontrolador
PIC16F877
El
pin RA4/TOCKI
Modo sumidero
Modo fuente
PUERTO
A
150 mA
150 mA
PUERTO
B
200 mA
200 mA
PUERTO
C
200 mA
200mA
PUERTO
D mA
200
200mA
Un solo pin
Microcontrolador
Un solo pin
Microcontrolador
Imax=25mA
Imax=25mA
+5V
Puerto completo
Microcontrolador
Microcontrolador
Puerto completo
Imax=200mA
Modo sumidero
Imax=200mA
Modo fuente
Un solo pin
Microcontrolador
Imax=25mA
Microcontrolador
Imax=200mA
Puerto completo
Modo fuente
Pin
2
3
4
5
6
Descripci
n
E/S Digital o Entrada anloga 0.
E/S Digital o Entrada anloga 1.
E/S Digital o Entrada anloga 2.
E/S Digital o Entrada anloga 3.
Bit 4 del puerto A (E/S bidireccional ). Tambin se usa como entrada
de reloj al temporizador/contador TMR0. Salida de colector abierto.
RA5/SS/AN4
7
E/S Digital o Entrada anloga 4. Tambin lo usa el puerto serial
RB0/INT
33 sncrono.
Bit 0 del puerto B (E/S bidireccional). Buffer E/S: TTL/ST. Tambin se
usa como entrada de interrupcin externa (INT).
RB1
34 Bit 1 del puerto B (E/S bidireccional). Buffer E/S: TTL
RB2
35 Bit 2 del puerto B (E/S bidireccional). Buffer E/S: TTL
RB3/PGM
36 Bit 3 del puerto B (E/S bidireccional). Bufer E/S: TTL (Programacin
en bajo voltaje)
RB4
37 Bit 4 del puerto B (E/S bidireccional). Buffer E/S: TTL. Interrupcin por
cambio del pin.
RB5
38 Bit 5 del puerto B (E/S bidireccional). Buffer E/S: TTL. Interrupcin por
cambio del pin.
RB6/PGC
39 Bit 6 del puerto B (E/S bidireccional). Buffer E/S: TTL/ST.
Interrupcin por cambio del pin. Entrada de reloj para
RB7/PGD
40 programacin
Bit 7 del puertoserial.
B (E/S bidireccional). Buffer E/S: TTL/ST.
Interrupcin por cambio del pin. Entrada de datos para
serial.
RC0/T1OSO/T1CK 15 programacin
E/S Digital. Salida
del oscilador Timer 1 o entrada de reloj Timer 1.
IRC1/T1OSI/CCP2
16 E/S Digital. Entrada del oscilador Timer 1. Entrada Captura 2; Salida
Compara
2;
PWM
2
RC2/CCP1
17 E/SSalida
Digital.
Entrada
Captura 1; Salida Compara 1; Salida PWM 1
RC3/SCK/SCL
18 E/S Digital. Lnea de reloj serial asncrono en el modo SPI y el modo IC
RC4/SDI/SDA
23 E/S Digital. Lnea de datos en el modo SPI o en el modo IC
RC5/SDO
24
E/S Digital.
RC6/TX/CK
25 E/S Digital. Transmisin asncrona (USART) o reloj sncrono (SSP).
RC7/RX/DT
26
E/S Digital. Recepcin asncrona (USART) o lnea de datos (SSP).
11,32 Voltaje de alimentacin DC (+)
VDD
12,31 Referencia de voltaje (GND).
VSS
1
Entrada de RESET al microcontrolador. Voltaje de entrada
durante la programacin. En nivel bajo resetea el
MCLR
OSC1/CLKIN
13 microcontrolador.
Entrada oscilador cristal oscilador / Entrada fuente de reloj externa.
OSC2/CLKOUT
14
Salida oscilador cristal. Oscilador RC: Salida con un frecuencia OSC1
RD0/PSP0
19 E/S Digital. Puede ser puerto paralelo en bus de 8 bits.
RD1/PSP1
20 E/S Digital. Puede ser puerto paralelo en bus de 8 bits.
RD2/PSP2
21 E/S Digital. Puede ser puerto paralelo en bus de 8 bits.
RD3/PSP3
22 E/S Digital. Puede ser puerto paralelo en bus de 8 bits.
RD4/PSP4
27 E/S Digital. Puede ser puerto paralelo en bus de 8 bits.
RD5/PSP5
28 E/S Digital. Puede ser puerto paralelo en bus de 8 bits.
RD6/PSP6
29 E/S Digital. Puede ser puerto paralelo en bus de 8 bits.
RD7/PSP7
30 E/S Digital. Puede ser puerto paralelo en bus de 8 bits.
RE0/RD/AN5
8
E/S Digital. Puede se pin de lectura (read) en modo microprocesador.
RE1/WR/AN6
9
E/S Digital. Puede ser pin de escritura (write) en modo
microprocesador.
E/S
Digital. Puede ser pin de seleccin de chip (chip select)
RE2/CS/AN7
10
en modo microprocesador.
El
oscilador
externo
Todo microcontrolador requiere un circuito externo que le indique la
velocidad a la que debe trabajar. Este circuito, que se conoce como
oscilador o reloj, es muy simple pero de vital importancia para el buen
funcionamiento del sistema. El PIC16F877 puede utilizar cuatro tipos de
oscilador diferentes. Estos tipos son:
Cristal
OSC2
13
P
OSC1
Fosc/4
C
Rese
t
En los microcontroladores se requiere un pin de reset para reiniciar el
funcionamiento del sistema cuando sea necesario, ya sea por una falla que
se presente o porque as se haya diseado el sistema. El pin de reset en los
PIC es llamado MCLR (master clear). Existen varias formas de resetear o
reiniciar el sistema:
Al encendido (Power On
Reset)
Pulso en el pin MCLR durante operacin
normal
Pulso en el pin MCLR durante el modo de bajo consumo
(modo sleep)
El rebase del conteo del circuito de vigilancia (watchdog) durante
operacin normal
El rebase del conteo del circuito de vigilancia (watchdog) durante el
modo de bajo consumo (sleep)
El reset al encendido se consigue gracias a dos temporizadores. El primero
de ellos es el OST (Oscillator Start-Up Timer: Temporizador de encendido del
oscilador), orientado a mantener el microcontrolador en reset hasta que el
oscilador del cristal es estable. El segundo es el PWRT (Power-Up Timer:
Temporizador de encendido), que provee un retardo fijo de 72 ms (nominal)
en el encendido nicamente, diseado para mantener el dispositivo en reset
mientras la fuente se estabiliza. Para utilizar estos temporizadores, slo
basta con conectar el pin MCLR a la fuente de alimentacin, evitndose
utilizar las tradicionales redes de resistencias externas en el pin de reset.
El reset por MCLR se consigue llevando momentneamente este pin a un
estado lgico bajo, mientras que el watchdog WDT produce el reset cuando
su temporizador rebasa la cuenta, o sea que pasa de 0FFh a 00h. Cuando se
quiere tener control sobre el reset del sistema se puede conectar un botn
como se muestra en la fgura 3.6.
+5VDC
10K
100
MCLR
Reset
Arquitectura
microcontrolador
interna
del
Memoria
EEPROM
Dispositivo
Memoria de
programa
PIC16F874
4K
192 Bytes
128 Bytes
PIC16F877
8K
368 Bytes
256 Bytes
Memoria de
datos
13
Memoria de
programa
FLASH
Puerto A
RA0/AN0
RA1/AN1
RA2/AN2
RA3/AN3/VREF
RA4/T0CKI
RA5/AN4/SS
RAM
Pila 8 niveles
(13-bit)
Bus de
programa 14
Bus de datos
Contador Programa
Direcciones
de RAM (1)
Puerto B
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
Mux Direcc.
Reg instrucciones
Dir. Directo
Dir.
Indire cto
Reg FSR
Reg STATUS
8
3
Power-up
Timer
Decodificador
de
instrucciones
Generacin de
tiempos
OSC1/CLKIN
OSC2/CLKOUT
Oscillator
Start-up Timer
Power-on
Reset
Watchdog
Timer
Brown-out
Reset
Puerto C
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
MUX
ALU
8
Puerto D
Reg W
RD7/PSP7:RD0/PSP0
In-Circuit
Debugger
Low-Voltage
Programming
Puerto
paralelo
esclavo
Puerto C
RE0/AN5/RD
RE1/AN6/WR
MCLR
Timer0
Timer1
Datos EEPROM
Nota 1:
CCP1,2
VDD, VSS
Timer2
Puerto serial
sncrono
RE2/AN7/CS
10-bit A/D
USART
Memoria
(FLASH)
de
programa
13
CALL, RETURN
RETFIE, RETLW
Pila nivel 1
Pila nivel 2
Pila nivel 8
Vector de Reset
0000h
Vector de Interrupcin
0004h
0005h
Pgina 0
07FFh
0800h
Pgina 1
Memoria
de
programa
0FFFh
1000h
Pgina 2
17FFh
1800h
Pgina 3
1FFFh
Memoria
(RAM)
de
datos
INDF
TMR0
PCL
STATUS
FSR
PORTA
PORTB
PORTC
PORTD
PORTE
PCLATH
INTCON
PIR1
PIR2
TMR1L
TMR1H
T1CON
TMR2
T2CON
SSPBUF
SSPCON
CCPR1L
CCPR1H
CCP1CON
RCSTA
TXREG
RCREG
CCPR2L
CCPR2H
CCP2CON
ADRESH
ADCON0
00h
01h
02h
03h
04h
05h
06h
07h
08h
09h
0Ah
0Bh
0Ch
0Dh
0Eh
0Fh
10h
11h
12h
13h
14h
15h
16h
17h
18h
19h
1Ah
1Bh
1Ch
1Dh
1Eh
1Fh
20h
INDF
80h
OPTION_REG 81h
82h
PCL
83h
STATUS
FSR TRISA 84h
85h
TRISA
86h
TRISB
TRISC
87h
TRISD
88h
89h
TRISE
8Ah
PCLATH
8Bh
INTCON
8Ch
PIE1
8Dh
PIE2
8Eh
PCON
8Fh
90h
91h
SSPCON2
92h
PR2
93h
SSPADD
94h
SSPSTAT
95h
96h
97h
98h
TXSTA
99h
SPBRG
9Ah
9Bh
9Ch
9Dh
ADRESL
9Eh
9Fh
ADCON1
TMR0
PCL
STATUS
FSR
PORTB
PCLATH
INTCON
EEDATA
EEADR
EEDATH
EEADRH
7Fh
Banco 1
10Ch
10Dh
10Eh
10Fh
110h
EECON1
EECON2
Reservado
Reservado
19Fh
11Fh
1A0h
120h
Registros
de
Propsito
General
80 Bytes
1EFh
1F0h
16Fh
170h
Banco 2
18Ch
18Dh
18Eh
18Fh
190h
16 Bytes
Registros
de
Propsito
General
80 Bytes
FFh
INDF
180h
OPTION_REG 181h
182h
PCL
STATUS
183h
184h
FSR
185h
TRISB
186h
187h
188h
189h
18Ah
PCLATH
18Bh
INTCON
Registros
de
Propsito
General
16 Bytes
0EFh
0F0h
Banco 0
100h
101h
102h
103h
104h
105h
106h
107h
108h
109h
10Ah
10Bh
Registros
de
Propsito
General
A0h
Registros
de
Propsito
General
80 Bytes
Registros
de
Propsito
General
96 Bytes
INDF
17Fh
Banco 3
1FFh
Funcin
de
especiales
algunos
registros
11
10
Registro PCL
7
Bits Incluidos en la
instruccin, suficiente para
direccionar toda la
memoria del PIC16F877
Registro: STATUS
IRP RP1
RP0
T0
PD
bit 7
DC
C
bit 0
Direccin:
condicin de reset:
IRP: Selector
indirecto
de
03h
000??XXX
pgina
para
direccionamiento
si se tratara de un
A/D.
ADCON1 : Configura las funciones de los pines del puerto
anlogo.
ADRESL
: Contiene la parte BAJA del resultado de la
conversin A/D.
ADRESH
: Contiene la parte ALTA del resultado de la
conversin A/D.
Registros
de
Anlogo/Digital
Control
del
Mdulo
Convertidor
Registro
ADCON0
Este es un registro que permite seleccionar cual de las entradas
anlogas va a ser leda y permite dar la orden de iniciar el proceso de
conversin, sus ocho bits son los siguientes:
ADCS1 ADCS0
bit7
CHS2
CHS1
CHS0
GO/DONE -
ADON
bit 0
ADCS0
FRECUENCIA DE CONVERSIN
0
Fosc / 2
1
Fosc / 8
0
Fosc / 32
1
FRC
Figura 3.13. Frecuencias de conversin para el mdulo A/D
Registro
ADCON1.
Este es un registro que permite seleccionar como se ubican los diez bits
resultado de la conversin A/D y permite seleccionar cuales de los pines del
puerto A trabajarn como entradas anlogas y cuales como entradas
digitales. Adicionalmente, permite seleccionar los voltajes de referencia del
convertidor.
ADFM
PCFG2
PCFG1
PCFG0
bit7
bit 0
A
D
D
D
D
D
A
D
D
D
D
D
D
D
A
D
D
D
D
D
A
D
D
D
D
D
D
D
A
D
D
D
D
D
A
A
A
A
D
D
D
D
A
A
A
D
D
D
A
A
A
A
A
D
D
D
AN1
RA1
AN0
RA0
AN3
RA3
AN2
RA2
VDD
VSS
8/0
VREF+
A
VREF+
A
VREF+
D
VREF+
A
VREF+
VREF+
VREF+
VREF+
D
VREF+
A
A
A
D
D
D
VREFA
A
VREFVREFVREFD
VREF-
A
A
A
A
A
D
A
A
A
A
A
A
D
D
A
A
A
A
A
D
A
A
A
A
A
A
A
A
RA3
VDD
RA3
VDD
RA3
VDD
RA3
VDD
RA3
RA3
RA3
RA3
VDD
RA3
VSS
VSS
VSS
VSS
VSS
VSS
RA2
VSS
VSS
RA2
RA2
RA2
VSS
RA2
7/1
5/0
4/1
3/0
2/1
0/0
6/2
6/0
5/1
4/2
3/2
2/2
1/0
1/2
VREF+
VREF-
CHAN /
REFS
A = Entrada Anloga
D = Entrada/Salida Digital
Nota 1: Estos canales no estn disponibles en los dispositivos de 28 pines
32
Tosc
Oscilador interno
RC
Para conversiones correctas, el reloj de conversin (Tad) debe ser
seleccionado para tener un tiempo mnimo Tad de 1.6 useg.
FORMA DE REALIZAR LA CONVERSIN
A/D :
Confgurar el mdulo
A/D: