You are on page 1of 9

INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

LABORATORIO DE MICROCONTROLADORES
TEMA:
1.- MANEJO DE PUERTOS
APELLIDOS Y NOMBRES:
GRUPO HORARIO:CODIGO: .

A) OBJETIVOS:
a. Reconocer las caractersticas de los Puertos de Entrada y salida del PIC 16F877A.
b. Realizar la programacin usando Software para la programacin del Pic 16F877A.
c. Implementar los circuitos usando los componentes necesarios para su funcionamiento.

B) BASE TECNICA DE COMPONENTES: Desarrollarlo OBLIGATORIO.

Desarrollar un programa que configure las lneas del puerto A como entrada y las lneas del puerto B como
salida. Y que muestre en forma permanente la entrada del puerto A en el puerto B.

Desarrollando el algoritmo se reduce a :

1. Configurar PA como entrada y PB salida


2. W= PA
3. PortB=W
4. Ir paso 2

El diagrama de flujo se resume

El Cdigo elaborado en MPLAB


a) Cree un nuevo proyecto

b) Agregue el archivo fuente y el directorio donde se ubica el fichero fuente:

1
Ing. FERNANDO MENDOZA APAZA
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

c) Escriba el cdigo fuente en el espacio de trabajo

2
Ing. FERNANDO MENDOZA APAZA
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

CODIGO ELABORADO EN MPLAB


list p=16F877A
include "p16f877A.inc"
__CONFIG _WDT_OFF&_PWRTE_ON&_XT_OSC&_LVP_OFF&_CP_OFF; Configura programador

CONF_ADCON1 equ b'00000110' ; Configuracion PORTA E/S digital

org 0x000 ; Origen del codigo


nop ; No operacion
nop ; No operacion
bsf STATUS,RP0 ; Ir banco 1
bcf STATUS,RP1

movlw CONF_ADCON1 ; Configurar el PORTA como digital


movwf ADCON1

movlw b'00111111' ; PORTA como entrada


movwf TRISA
clrf TRISB ; PORTB como salida
clrf TRISC ; PORTC como salida
clrf TRISD ; PORTD como salida

bcf STATUS,RP0 ; Ir banco 0


bcf STATUS,RP1

BUCLE
movf PORTA,W ; W=PORTA
movwf PORTB ; PORTB=W
addlw b'00010000' ; Suma al W = W + 16
movwf PORTC ; PORTC=W=PORTA+16
addlw b'00010000' ; Suma al W = W + 16
movwf PORTD ; PORTD=W= PORTA+32
goto BUCLE ; Ir bucle

END ; Fin del programa

CODIGO ELABORADO EN MIKRO C


unsigned temp;
void main() {
//COmentario de una linea
ADCON1=0b00000110; //configurado como digital
TrisA=0b11111111;//0xFF;
TrisB=0b00000000 ;
TrisC=0b00000000 ;
TrisD=0b00000000 ;
while(1) {
PORTB=PORTA;
PORTC=PORTA+16;
PORTD=PORTA+32;
}
}

3
Ing. FERNANDO MENDOZA APAZA
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

DIAGRAMA DEL CIRCUITO A IMPLEMENTAR

4
Ing. FERNANDO MENDOZA APAZA
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

VDD VDD VDD VDD

A3 B7 B3
A[0..5] A[0..5] B[0..7] B[0..7]
A2 B6 B2
A5 A1 B5 B1
A4 A0 B4 B0
5
6
7
8

5
6
7
8

5
6
7
8

5
6
7
8
DSW1 DSW2 DSW3 DSW4
OFF

OFF

OFF

OFF
DIPSW_4 DIPSW_4 DIPSW_4 DIPSW_4
ON

ON

ON

ON
4
3
2
1

4
3
2
1

4
3
2
1

4
3
2
1
X1
22p CRYSTAL
C1

U1
C2 13 33 B0
OSC1/CLKIN RB0/INT
14 34 B1
OSC2/CLKOUT RB1
35 B2
RB2
22p A0 2 36 B3
RA0/AN0 RB3/PGM
A1 3 37 B4
RA1/AN1 RB4
A2 4 38 B5
RA2/AN2/VREF-/CVREF RB5
A3 5 39 B6
RA3/AN3/VREF+ RB6/PGC
A4 6 40 B7
RA4/T0CKI/C1OUT RB7/PGD
A5 7
A[0..5] RA5/AN4/SS/C2OUT B[0..7]
15 C0
RC0/T1OSO/T1CKI
E0 8 16 C1
RE0/AN5/RD RC1/T1OSI/CCP2
E1 9 17 C2
RE1/AN6/WR RC2/CCP1
E2 10 18 C3
RE2/AN7/CS RC3/SCK/SCL
23 C4
E[0..2] RC4/SDI/SDA
1 24 C5
MCLR/Vpp/THV RC5/SDO
25 C6
RC6/TX/CK
26 C7
RC7/RX/DT
D1 C[0..7]
19 D0
RD0/PSP0
20 D1
RD1/PSP1
21 D2
DIODE RD2/PSP2
22 D3
R0 RD3/PSP3
27 D4
10k RD4/PSP4
28 D5
RD5/PSP5
29 D6
RD6/PSP6
30 D7
RD7/PSP7
D[0..7]
PIC16F877A

D[0..7] C[0..7] B[0..7]


8 D7
7 D6
6 D5
5 D4
4 D3
3 D2
2 D1
1 D0

8 C7
7 C6
6 C5
5 C4
4 C3
3 C2
2 C1
1 C0

8 B7
7 B6
6 B5
5 B4
4 B3
3 B2
2 B1
1 B0
10

10

10
9

U4 U3 U2
11
12
13
14
15
16
17
18
19
20

11
12
13
14
15
16
17
18
19
20

11
12
13
14
15
16
17
18
19
20
8
7
6
5
4
3
2
1

8
7
6
5
4
3
2
1

8
7
6
5
4
3
2
1

RN3 RN2 RN1


RX8 RX8 RX8
9
10
11
12
13
14
15
16

9
10
11
12
13
14
15
16

9
10
11
12
13
14
15
16

5
Ing. FERNANDO MENDOZA APAZA
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

C) INFORME OBLIGATORIO DETALLANDO AL MXIMO TODAS LAS OCURRENCIAS


a. Realice ejemplos describiendo el uso de las instrucciones del PIC

i. Operaciones con el Archivo de registros Orientadas a BYTE


ii. Operaciones con el archivo de registros orientadas a Bits.
iii. Operaciones con Literales y Control.

b. Disee simule e implemente un programa que realice lo siguiente: Tres lmparas que debe
ser prendida o apagada desde cinco puntos. Disee un programa que la encienda si y solo si
hay dos y cuatro interruptores activados.
c. Suponga que tenemos los cinco interruptores dispuestos en el PORTB ( RB2) ,PORTD(RD5),
PORTC(RC),PORTA(RA4),PORTE(RE1) y definimos la lnea RD3,RB4,RA3.

NOTA :

OSCILADOR EXTERNO EN MODO EC

El modo de reloj externo (EC - external clock) utiliza un oscilador externo como una fuente de seal de reloj. La mxima

frecuencia de seal de reloj est limitada a 20 MHz.

Las ventajas del funcionamiento del oscilador externo en modo EC son las siguientes:

La fuente de reloj externa independiente est conectada al pin de entrada OSC1. El pin OSC2 est disponible
como pin de E/S de propsito general;
Es posible sincronizar el funcionamiento del microcontrolador con los dems componentes incorporados en el
dispositivo;
En este modo el microcontrolador se pone a funcionar inmediatamente despus de encenderlo. No se requiere
esperar para estabilizar la frecuencia.
Al deshabilitar temporalmente la fuente de reloj externa, se detiene el funcionamiento del dispositivo, dejando
todos los datos intactos. Despus de reiniciar el reloj externo, el dispositivo sigue funcionando como si no
hubiera pasado nada.

6
Ing. FERNANDO MENDOZA APAZA
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

OSCILADOR EXTERNO EN MODO LP, XT O HS

Los modos LP, XT y HS utilizan un oscilador externo como una fuente de reloj cuya frecuencia est determinada por un

cristal de cuarzo o por resonadores cermicos conectados a los pines OSC1 y OSC2. Dependiendo de las caractersticas

de los componentes utilizados, seleccione uno de los siguientes modos:

Modo LP - (Baja potencia) se utiliza slo para cristal de cuarzo de baja frecuencia. Este modo est destinado
para trabajar con cristales de 32.768 KHz normalmente embebidos en los relojes de cristal. Es fcil de
reconocerlos por sus dimensiones pequeas y una forma cilndrica. Al utilizar este modo el consumo de corriente
ser menor que en los dems modos.
Modo XT se utiliza para cristales de cuarzo de frecuencias intermedias hasta 8 MHz. El consumo de corriente es
media en comparacin con los dems modos.
Modo HS - (Alta velocidad) se utiliza para cristales de reloj de frecuencia ms alta de 8 MHz. Al utilizar este
modo el consumo de corriente ser mayor que en los dems modos.

RESONADORES CERMICOS EN MODO XT O HS

Los resonadores cermicos son similares a los cristales de cuarzo segn sus caractersticas, por lo que se conectan de la

misma manera. A diferencia de los cristales de cuarzo, son ms baratos y los osciladores que hacen uso de ellos son de

calidad ms baja. Se utilizan para las frecuencias de reloj entre 100 kHz y 20 MHz.

7
Ing. FERNANDO MENDOZA APAZA
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

OSCILADOR EXTERNO EN MODOS RC Y RCIO

El uso de los elementos para estabilizar la frecuencia sin duda alguna tiene muchas ventajas, pero a veces realmente no

es necesario. En la mayora de casos el oscilador puede funcionar a frecuencias que no son precisamente definidas, as

que sera una prdida de dinero embeber tales elementos. La solucin ms simple y ms barata es estas situaciones es

utilizar una resistencia y un capacitor para el funcionamiento del oscilador. Hay dos modos:

Modo RC. Cuando el oscilador externo se configura a funcionar en modo RC, el pin OSC1 debe estar conectado al

circuito RC como se muestra en la figura a la derecha. La seal de frecuencia del oscilador RC dividida por 4 est

disponible en el pin OSC2. Esta seal se puede utilizar para la calibracin, sincronizacin o para otros propsitos.

Modo RCIO. De manera similar, el circuito RC est conectado al pin OSC1. Esta vez, el pin OSC2 est disponible para

ser utilizado como pin de E/S de propsito general.

En ambos casos se le recomienda utilizar los componentes como se muestra en la figura.

La frecuencia de este oscilador se calcula por medio de la frmula f = 1/T segn la que:

f = frecuencia [Hz];
T = R * C = constante de tiempo [s];
R = resistencia elctrica []; y
C = capacitancia del condensador [F].

Palabra de Configuracin (FUSES)

Luego de hacer un programa es lgico que queramos grabarlo en nuestro PIC para poder probar su
funcionamiento, para esto existen infinidad de grabadores y softwares que nos permiten hacer esta tarea.
Una vez grabado el programa muchas veces nos damos con la sorpresa que no funciona nuestra aplicacin
8
Ing. FERNANDO MENDOZA APAZA
INSTITUTO DE EDUCACIN SUPERIOR TECNOLGICO PBLICO

LUIS NEGREIROS VEGA

y en muchos casos se debe a que no configuramos antes el software para grabar el PIC, y nos dicen que
se trata de los FUSES, que debemos configurarlos, a que se refieren?

Bueno, los PIC's incluyen en una posicin reservada de memoria (2007H) la famosa Palabra de
Configuracin y a la cual solo se accede durante la grabacin. El como configuremos este registro
determinar las caractersticas de funcionamiento del PIC.

Palabra de Configuracin:

/ CP1 / CP0 / DEBUG / --- / WRT / CPD / LVP / BODEN / CP1 / CP0 / PWRTE# / WDTE / FOSC1 / FOSC0 /
- 13 -- 12 -- 11 -- 10 --- 9 --- 8 --- 7 --- 6 --- 5 --- 4 -- 3 --- 2 --- 1 --- 0 -- bits

CP1-CP0: Cdigo de proteccin de memoria de programa. Si no estn activos cualquiera puede leer
nuestro programa que grabamos en la memoria. Se suele activar solo cuando tienes una aplicacin final
que deseas vender y no quieres que lean tu cdigo.

DEBBUG: Modo Depurador en Circuito. Se usa cuando se tiene herramientas de Emulacin como el ICD2
que combinado con el MPLAB permiten Emular una aplicacin directamente en Hardware.

WRT: Permiso para escritura en Modo FLASH. Se usa cuando en nuestro programa accedemos a la
memoria de datos EEPROM.

CPD: Cdigo de Proteccon de la memoria EEPROM de Datos. Es como nuestro password en caso de
querer proteger esa parte de la memoria.

LVP: Bit de Permiso para Programacin en Bajo Voltaje. Se usa con algunos modelos de PIC's sobretodo
con los LF que trabajan con voltajes de 3V hasta 6V.

BODEN: Bit de Permiso para el Reseteo por Cada de Tensin.

PWRTE#: Bit de Permiso para el Timer de conexin de alimentacin. Se usa para resetear el PIC cada vez
que se conecta la fuente de alimentacin de nuestra aplicacin.

WDTE: Bit de Permiso del Timer del Perro Guardin. Se activa cuando se usa el Perro Guardin o WDT en
nuestras aplicaciones, se ver ms adelante.

FOSC1-FOSC0: Sirve para elegir el tipo de Xtal que usamos.


LP (Baja potencia, de 35 a 200kHz),
XT (Estndar, de 100kHz a 4MHz),
HS (Alta Velocidad, ms de 4MHz),
RC (Cuando usamos una Resistencia y un Condensador en vez de un Xtal).

La palabra de configuracin se puede configurar desde el programa de grabacin o desde el cdigo de


programa.

En caso de querer configurar directamente desde nuestro cdigo de programa, deberemos agregar una
lnea de cdigo como esta:

LIST P=16F877A
INCLUDE <P16F877A.INC>
__CONFIG _BODEN_OFF&_CP_OFF&_WRT_ENABLE_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC&_DEBUG_OFF&_CPD_OFF&_LVP_OFF
;resto del programa...

de esta manera nos aseguramos de tener configurados los FUSES usemos el software que usemos .

9
Ing. FERNANDO MENDOZA APAZA

You might also like