Sei sulla pagina 1di 7

FORMATO DE INFORME DE PRCTICA DE LABORATORIO / TALLERES /

CENTROS DE SIMULACIN PARA ESTUDIANTES

CARRERA: Ingeniera Electrnica ASIGNATURA: Sistemas Microprocesados I


NRO. PRCTICA: 2 TTULO PRCTICA: Encendido de LEDs en secuencia y con botn.
OBJETIVO ALCANZADO:
1) Conocer el funcionamiento del microcontrolador PIC16F877A.
2) conocer los componentes fundamentales para el funcionamiento correcto del dispositivo
3) Programar un algoritmo capaz de controlar 10 leds.
4) Acceder al comando manual de 5 de los leds.

ACTIVIDADES DESARROLLADAS
1.Marco Terico:
a) PIC16F877A

Figura 1. PIC 16F877A


Procede de una familia de microcontroladores de 8 bits, los cuales poseen arquitectura Harvard, tecnologa RISC
y tecnologa CMOS. Estas caractersticas hacen que el dispositivo sea altamente eficiente tanto en el uso de la
memoria de datos y el programa como en la velocidad de ejecucin. Este microcontrolador es de gama media el
cual posee 35 instrucciones de 14 bits.

b) LEDs

Figura 2. LEDs
Los LEDs son diodos emisores de luz, estos funcionan al momento de estar polarizados en directa, los electrones
se recombinan con los huecos del dispositivo liberando energa en forma de fotones.

c) Pulsante
Un pulsante es utilizado para al momento de ser accionado realiza una funcin en especfico, como prende o apagar
un LED.
Figura 3. Pulsador
d) Software MPLAB V3.6

Figura 4. Software MPLAB

Este es un editor gratuito que permite realizar la programacin en un microcontrolador. Este programa puede operar
tanto en Windows, Linux y Mac OS.

e) Software PicKit

Este software sirve para poder cargar o quemar el microcontrolador, puesto que es compatible con el software
MPLAB por lo tanto es utilizado para la grabar el programa realizado en el software.

2. Equipos, Instrumentos y software

Equipos
Descripcin Cantidad
Fuente de corriente continua 1
5V.
Computador personal 1
Cables de propsito general 5
Pickit 2 1

Instrumentos
Descripcin Cantidad
PIC16F877A 1
Leds 10
Jumper 30
Resistencias de 100 ohm 12
Pulsantes 2
Cristal de cuarzo de 4 MHz 1

Software
Descripcin Cantidad
Mplab IDE v3.6 1
Proteus 8 Profesional 1
Pickit 1
3. Desarrolla
PROCEDIMIENTO
1. realizar un programa en el software Mplab que prenda cinco leds en secuencia y a su vez se pueda
aplastar un botn que al momento de ser presionado encienda otros cinco leds y cuando se deje de
presionar estos se apaguen.
2. Realizar la simulacin en Proteus y cargar el programa.
3. Cargar el microcontrolador mediante el software Pickit
4. Montar la simulacin en un protoboard y observar su funcionamiento.

El cdigo en MPLAB X IDE es el que se muestra a continuacin:

CODIGO EN MPLAB X EXPLICACION DEL CODIGO


; PIC16F877A Configuracin Bit Settings En estas lneas de cdigo se est realizando la
configuracin del programa de acuerdo al pic que se
; Assembly source line config statements desea.

#include "p16f877a.inc" La sentencia # include incluye las libreras del pic


escogido.
; CONFIG
; __config 0x3F39 Estas lneas de cdigo estn configurando al pic como
__CONFIG _FOSC_XT & _WDTE_OFF & el oscilador que se va a utilizar: XT (cristales menores
_PWRTE_OFF & _BOREN_OFF & _LVP_OFF & a 10 MHz), HS (cristales entre 10 MHz y 20 MHz) y
_CPD_OFF & _WRT_OFF & _CP_OFF LP (oscilador interno).

CBLOCK 0x0C Dentro de CBLOCK hasta ENDC es el lugar donde se


TIEMPO colocan las variables.
TIEMPO2 0X0C es en donde inicia el espacio de memoria para
ENDC guardar las variables.

#DEFINE LED1 PORTB,0 La sentencia #DEFINE permite colocar cada uno de


#DEFINE LED2 PORTB,1 los puertos A, B, C, D o E con un nombre en
#DEFINE LED3 PORTB,2 especfico.
#DEFINE LED4 PORTB,3
#DEFINE LED5 PORTB,4
#DEFINE PULSADOR PORTA,1
#DEFINE LED6 PORTC,0
#DEFINE LED7 PORTC,1
#DEFINE LED8 PORTC,2
#DEFINE LED9 PORTC,3
#DEFINE LED10 PORTC,4
ORG 0 En la posicin 0 se va INICIO
GOTO INICIO
BSF STATUS, RP0 Entra al status del Banco 1.
CLRF TRISB; Limpia registro TRISB.
BSF PULSADOR Declara como entrada a PULSADOR.
BCF LED6 Declara como salidas desde el LED6 hasta el LED10.
BCF LED7
BCF LED8
BCF LED9
BCF LED10
MOVLW 0X06 Carga valor de apuntador a la RAM.
MOVWF ADCON1 Realiza las entradas digitales del PORTA.
BCF STATUS, RP0 Entra en el Banco 0.
BCF LED6 Se encarga que los LEDs desde al 6 al 10 y el
BCF LED7 pulsador inicien en cero.
BCF LED8
BCF LED9
BCF LED10
BCF PULSADOR
INICIO Inicio del cdigo
MOVLW B'00000000' Carga el valor en binario como son 8 bits con 0 todos
MOVWF PORTB los Leds comenzaran apagados. Coloca la salida por
CALL RETARDO el PORTB.
CALL RETARDO Llama a la sentencia retardo.
MOVLW B'00000001' Carga el valor del bit 0 con 1.
MOVWF PORTB Coloca el valor del apuntador en el PORTB.
CALL RETARDO Llama a la sentencia retardo.
CALL RETARDO Llama a la sentencia retardo.
MOVLW B'00000010' Carga el valor del bit 1 con 1.
MOVWF PORTB Coloca el valor del apuntador en el PORTB.
CALL RETARDO Llama a la sentencia retardo.
CALL RETARDO Llama a la sentencia retardo.
MOVLW B'00000100' Carga el valor del bit 2 con 1.
MOVWF PORTB Coloca el valor del apuntador en el PORTB.
CALL RETARDO Llama a la sentencia retardo.
CALL RETARDO Llama a la sentencia retardo.
MOVLW B'00001000' Carga el valor del bit 3 con 1.
MOVWF PORTB Coloca el valor del apuntador en el PORTB.
CALL RETARDO Llama a la sentencia retardo.
CALL RETARDO Llama a la sentencia retardo.
MOVLW B'00010000' Carga el valor del bit 4 con 1.
MOVWF PORTB Coloca el valor del apuntador en el PORTB.
CALL RETARDO Llama a la sentencia retardo.
GOTO PRENDER Va la sentencia PRENDER
GOTO APAGADO Va a la sentencia APAGADO
PRENDER La sentencia PRENDER pone a todos los puertos
BSF LED6 designados en 1.
BSF LED7
BSF LED8
BSF LED9
BSF LED10
GOTO INICIO Regresa a INICIO
APAGADO La sentencia APAGADO pone a todos los puertos
BCF LED6 designados en 0.
BCF LED7
BCF LED8
BCF LED9
BCF LED10
GOTO INICIO Regresa INICIO
RETARDO La sentencia RETARDO
MOVLW D'255'; CARGA W CON 255 Carga el registro con 255.
MOVFW TIEMPO; TIEMPO =255 Tiempo del registro es de 255.
DEC DECFSZ TIEMPO; Decrementa el valor de W, si es cero se salta uno.
GOTO DEC1 Se va a la sentencia DEC1.
RETURN Regresa hacia donde estaba al comienzo.
DEC1 MOVLW D'255'; CARGA W CON 255 Carga al registro con 255
MOVFW TIEMPO2; TIEMPO =255 Tiempo2 del registro 255
DEC2 DECFSZ TIEMPO2; Se decrementa 1 hasta hacerse 0 y salta uno.
GOTO DEC2 Regresa DEC2 sino es cero.
GOTO DEC Regresa a DEC si es cero.
RETURN Regresa a donde inicio.

END FIN DEL PROGRAMA

CONCLUSIONES:
Con el desarrollo de esta prctica hemos logrado comprender en lneas generales el funcionamiento de un
microcontrolador, y la forma correcta de su programacin para tareas sencillas.
Usar un cristal con caractersticas diferentes al establecido en la programacin del PIC ocasiona
comportamientos no deseados en su funcionamiento.
Usar una fuente de energa sin la suficiente potencia provoca un comportamiento impredecible.

RECOMENDACIONES:
Con el desarrollo de esta prctica hemos realizado importantes observaciones:
- Se debe hacer la configuracin inicial teniendo en cuenta el cristal que se va a utilizar, porque si
erramos esta informacin el microcontrolador no funcionara correctamente.
- Se puede renombrar cada bit de los registros de los bancos de memoria, esto resulta especialmente
til en cdigos con muchas funciones y variables.

Nombre de estudiante: DANIEL GRANDA

Nombre de estudiante: ANA JADAN


ANEXO1

FLUJOGRAMA

Mando de 10
Leds

Encender Led 1

Apagar Led 1

Encender Led 2

Apagar Led 2

Encender Led 3

Apagar Led 3

Encender Led 4

Apagar Led 4

Encender Led 5

Apagar Led 5

NO Esta
presionado el
pulsante?
SI

Encender leds 6, 7,
8, 9, 10.

FOTOS DE LA PRACTICA
ESQUEMA ELCTRICO

U1 D1
R1
R6 13
OSC1/CLKIN RB0/INT
33
10k 14 34
OSC2/CLKOUT RB1 100
35
2
RB2
36 D2
3
RA0/AN0 RB3/PGM
37
R2
RA1/AN1 RB4
4 38
RA2/AN2/VREF-/CVREF RB5 100
5 39
6
RA3/AN3/VREF+ RB6/PGC
40 D3
7
RA4/T0CKI/C1OUT RB7/PGD R3
RA5/AN4/SS/C2OUT
15
RC0/T1OSO/T1CKI 100
8 16
9
RE0/AN5/RD RC1/T1OSI/CCP2
17 D4
10
RE1/AN6/WR RC2/CCP1
18
R4
RE2/AN7/CS RC3/SCK/SCL
23
RC4/SDI/SDA 100
1 24
MCLR/Vpp/THV RC5/SDO
25 D5
RC6/TX/CK
26
R5
RC7/RX/DT
100
19
RD0/PSP0
20
RD1/PSP1
21 D6
RD2/PSP2
22
R7
RD3/PSP3
27 100
RD4/PSP4
28
RD5/PSP5
29 D7
RD6/PSP6
30
R8
RD7/PSP7
100
PIC16F877A
D8
R9
100
D9
R10
100
D10
R11
100

Potrebbero piacerti anche