UNIVERSIDAD NACIONAL DE SAN AGUSTIN FACULTAD DE PRODUCCION Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA Mi
Views 118 Downloads 11 File size 874KB
UNIVERSIDAD NACIONAL DE SAN AGUSTIN FACULTAD DE PRODUCCION Y SERVICIOS
ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA Microcontroladores y microprogramación Laboratorio 1
Adrian Ali Jimmy Ronald
20074128
Cruz Huachaca, Frank Jhonathan
20170307
Ricardo Ramos Magaño
20161849
Crhsitian Ccorimanya Alvarez
20162922
AREQUIPA - PERÚ 2018 1. INTRODUCCION CONTEXTO: Este informe consiste en trabajar con un microcontrolador denominado 16F877A, ya que al trabajar con este microcontrolador nos dará la facilidad de conocer y aprender gran parte de la microprogramación. Este trabajo se debe realizar con un programa conocido como MPLAB X IDE, ya que sin él no podemos plasmar o compilar el código al microcontrolador y también tenemos que tener un circuito armado que va de acuerdo con nuestro código.
MOTIVACION: Al realizar este laboratorio no solo es ejecutarlo sino también es conocer el diverso mundo de la Electrónica así adquiriendo conocimientos sobre microcontroladores, dispositivos electrónicos relacionados a este, microprogramación, programación en C, también poder conocer sus unidades de memoria las cuales son la memoria RAM y ROM.
OBJETIVOS: -Conocer todo sobre el microcontrolador 16F877A. -Aprender a utilizar de manera correcta el programa MPLAB X IDE. -Aprender a realizar los códigos necesarios para poder controlar un sistema de forma eficaz. -Aprender todas las salidas y entradas del microcontrolador 16F877A.
2. Materiales y método Materiales:
Condensador Cerámico de 22pF
Cristal de 4MHz
LED
Pulsador
PIC16F877A
Diseño alto nivel
Recursos Una salida digital Una entrada digital
Diseño de Circuito La salida del microcontrolador puede suministrar una corriente de 150 mA Un led para su correcto funcionamiento necesita de 15 a 20 mA por lo que podemos conectarlo directamente
Necesitamos una resistencia para regular la corriente, entonces dividimos el voltaje en la salida entre la corriente de 15mA dando como resultado 330 ohm 1er Circuito
2do Circuito
3er Circuito
PROGRAMA: Primer programa Encender un led ubicado en el pin 0 del puerto B del PIC 16F877A
LIST P = 16F877A
; Selecciona el microcontrolador que estamos utilizando
include P16F877A.inc ; Incluye la librería del microcontrolador ORG 0x2007
; Dirección del programa
DW 0x3F7A
; Palabra de configuración
ORG 0x0000
; Dirección del programa
BSF STATUS, RP0
; Ir al banco 1
BCF STATUS, RP1
; Ir al banco 1
BCF TRISB, RB0
; Configurar el bit 0 del puerto B como salida
BCF STATUS, RP0
; Ir al banco 0
FIN
BSF PORTB, RB0
; Poner en estado alto el bit 0 del puerto B
GOTO FIN
; Ir a la etiqueta FIN
END
Segundo programa Encender y apagar de manera intermitente un led ubicado en el pin 0 del puerto B del PIC 16F877A
LIST P = 16F877A
; Selecciona el microcontrolador que estamos utilizando
include P16F877A.inc ; Incluye la librería del microcontrolador ORG 0x2007
; Dirección del programa
DW 0x3F7A
; Palabra de configuración
ORG 0x0000
; Dirección del programa
BSF STATUS, RP0
; Ir al banco 1
BCF STATUS, RP1
; Ir al banco 1
BCF TRISB, RB0
; Configurar el bit 0 del puerto B como salida
CBLOCK 0X20
; Nombrar registros de propósito general
T1
; Primer registro de propósito general
T2
; Segundo circuito de propósito general
ENDC
BCF STATUS, RP0
FIN
; Ir al banco 0
BCF PORTB, RB0
; Poner en estado bajo el bit 0 del puerto B
CALL RETARDO
; Llamar a la etiqueta retardo
BSF PORTB, RB0
; Poner en estado alto el bit 0 del puerto B
CALL RETARDO
; Llamar a la etiqueta retardo
GOTO FIN
; Ir al inicio del programa
RETARDO
MOVLW 0XFF ; Mover 255 al registro de trabajo MOVWF T1
X1
RETARDO2
X2
; Mover el contenido del registro de trabajo al registro T1
CALL RETARDO2
; Llamar a la etiqueta retardo2
DECFSZ T1
; Decrementar el registro T1 y cuando llegue a 0 saltar la dirección siguiente
GOTO X1
; Ir a la etiqueta X1
RETURN
; Retorna a la línea desde donde fue llamada
MOVLW 0XFF ; Mover 255 al registro de trabajo MOVWF T2
; Mover el contenido del registro de trabajo al registro T2
DECFSZ T2
; Decrementar el registro T1 y cuando llegue a 0 saltar la dirección siguiente
END
GOTO X2
; Ir a la etiqueta X2
RETURN
Retorna a la línea desde donde fue llamada
Tercer programa Encender un led ubicado en el pin 0 del puerto B cuando le pulse un botón en configuración pull up ubicado en el pin 7 del puerto B del pic 16f877A
LIST P = 16F877A
; Selecciona el microcontrolador que estamos utilizando
include P16F877A.inc ; Incluye la librería del microcontrolador ORG 0x2007
; Dirección del programa
DW 0x3F7A
; Palabra de configuración
ORG 0x0000
; Dirección del programa
BSF STATUS, RP0
; Ir al banco 1
BCF STATUS, RP1
; Ir al banco 1
BCF TRISB, RB0
; Configurar el bit 0 del puerto B como salida
BSF TRISB, RB7
; Configurar el bit 7 del puerto B como entrada
BCF STATUS, RP0
; Ir al banco 0
FIN
BTFSS PORTB, RB7
; Comprobar el estado del bit 7 del puerto B y si es alto saltar la dirección siguiente
OFF
ON
GOTO ON
; Ir a la etiqueta ON
GOTO OFF
; Ir a la etiqueta OFF
BCF PORTB, RB0
; Poner en estado bajo el bit 0 del puerto B
GOTO FINAL
; Ir a la etiqueta FINAL
BSF PORTB, RB0
; Poner en estado alto el bit 0 del puerto B
FINAL GOTO FIN
; Ir a la etiqueta FIN
END EXPERIMIENTOS: Lo primero que se necesito fueron los materiales los cuales son: un cristal de 4 mega Hertz un pic 16F877A (de 40 pines), dos condensadores de 22 uf, 1 resistencia de 100k y 300
respectivamente y protoboard , un fuente de alimentación y el programa de mplabx la cual debe estar instalada en nuestro ordenador . Después de tener nuestros materiales procedemos a entrar a nuestro programa mplabx y empezamos a crear nuestro nuevo proyecto que en este caso serían 3
Después que cargo damos clic en file>new proyect y nos saldrá la siguiente ventana:
Cliqueamos en microchip embedded y en standalone proyect >next :
Este cuadro nos pide la familia de pic que utilizaremos en nuestro caso será el pick 16F877A Le damos clic en siguiente y nos abrirá una nueva ventana la cual nos pedirá el simulador
Le damos clic en siguiente y nos aparecerá el nombre del proyecto: en nuestro caso se dio el nombre de laboratorio 1, 2,3 respectivamente lo guardamos y en la parte izquierda aparecerá nuestra carpeta le damos anticlic en source files :
Después de seguir dichos procesos ,volvemos a poner nuestro nombre y guardamos
Y finalmente nos aparecerá nuestra ventana de comandos:
4.-RESULTADOS Y DISCUSION: Después de terminar nuestro trabajo la cual no resulto tan complicado se logró prender el led de forma satisfactoria , puesto que ya se sabía base sobre lo que es programación y el armar un circuito , en lo que es la resistencia de 300 se pudo variar un poco puesto que no es comercial y se aplicó un de 330