1.- Conocer el lenguaje ensamblador así como las herramientas básicas para programar el microcontrolador PIC16F877A.
Enviado por Rafael Gallardo • 14 de Marzo de 2016 • Práctica o problema • 3.999 Palabras (16 Páginas) • 707 Visitas
INSTITUTO TECNOLOGICO DE ENSENADA[pic 1]
CARRERA:
INGENIERIA EN MECATRONICA
MATERIA:
MICROCONTROLADORES
ALUMNOS:
GALLARDO CHAVEZ FRANCISCO RAFAEL
TORRES VALENZUELA XOCHITL
ALVARADO SARAY JAVIER EDUARDO
COLLINS JIMENEZ ELIAS RAUL
RAMIREZ COLOSIO MANUEL
LOYA GOMEZ RODOLFO
PRACTICA #1:
Microcontroladores. Introducción a la programación del microcontrolador PIC16F877A
NOMBRE DEL MAESTRO:
OLMOS CARRILLO AARON
ENSENADA B.C. A 18 DE FEBRERO DEL 2016
OBJETIVO:
1.- Conocer el lenguaje ensamblador así como las herramientas básicas para programar el microcontrolador PIC16F877A.
2.- Manejar los puertos de entrada y salida del microcontrolador.
Lista de material y equipo:
PIC16F877A.
3 leds.
Cristal de 4Mhz.
2 capacitores de 22 pF
4 resistencias de 1 kΩ.
Protoboard.
ANTECEDENTES
Un microcontrolador es un circuito integrado digital que puede ser usado para muy diversos propósitos debido a que es programable. Está compuesto por una unidad central de proceso (CPU), memorias (ROM y RAM) y líneas de entrada y salida (periféricos).
Un microcontrolador puede usarse para muchas aplicaciones algunas de ellas son: manejo de sensores, controladores, juegos, calculadoras, agendas, avisos lumínicos, secuenciador de luces, cerrojos electrónicos, control de motores, relojes, alarmas, robots, entre otros.
Como el hardware ya viene integrado en un solo chip, para usar un microcontrolador se debe especificar su funcionamiento por software a través de programas que indiquen las instrucciones que el microcontrolador debe realizar. En una memoria se guardan los programas y un elemento llamado CPU se encarga de procesar paso por paso las instrucciones del programa. Los lenguajes de programación típicos que se usan para este fin son ensamblador y C, pero antes de grabar un programa al microcontrolador hay que compilarlo a hexadecimal que es el formato con el que funciona el microcontrolador.
Para diseñar programas es necesario conocer los bloques funcionales básicos del microcontrolador, estos bloques son:
CPU (Unidad central de proceso)
Memoria ROM (Memoria de solo lectura)
Memoria RAM (Memoria de acceso aleatorio)
Líneas de entrada y salida (Periféricos)
El microcontrolador PIC16F877 de Microchip pertenece a una gran familia de microcontroladores de 8 bits (bus de datos) que tienen las siguientes características generales que los distinguen de otras familias:
- Arquitectura Harvard
- Tecnología RISC
- Tecnología CMOS
Estas características se conjugan para lograr un dispositivo altamente eficiente en el uso de la memoria de datos y programa y por lo tanto en la velocidad de ejecución. Microchip ha dividido sus microcontroladores en tres grandes subfamilias de acuerdo al número de bits de su bus de instrucciones
• Existen algunas excepciones, como el PIC16C5X que maneja 33 instrucciones de 12 bits (posee empaquetados de 18 y 28 pines y se energiza con 2.5 volts)
• Algunos autores manejan una “gama enana” consistente en los PIC12C508 yPIC12C509 en empaque de 8 patitas y con un bus de instrucciones de 12 o de 14 bits.
DESARROLLO EXPERIMENTAL
I. Encendido y apagado de un LED
a) Realizar un programa en el que se configure un bit del puerto B como salida, a través de dicho bit de salida se conectará un diodo LED para que encienda y apague de acuerdo a la programación del microcontrolador.
b) En el software MPLAB, escribir un código de programa que maneje el funcionamiento del LED
c) Para controlar el tiempo de encendido y apagado del LED, se deberá hacer el uso del programa PICLOOPS o algún otro software generador de subrutinas de retardo (DELAY).
d) Simular el sistema mediante PROTEUS y construir el circuito en protoboard para verificar su correcto funcionamiento.
II. MANEJO DE LAS INSTRUCCIÓNES btfsc o btfss para leer puertod de entrada
a) Desarrollar un código para el PIC en el que se configuren:
a. Bit 0 del Puerto A entrada
b. 8 Bits del Puerto B salida
b) Conectar un interruptor en el bit 0 del puerto A para leer esta línea de entrada, y de acuerdo a su valor (1 o 0) será la decisión que se va a tomar:
c) Si la entrada del puerto A RA0 está en 0 o nivel bajo se encenderán los bits de salida en cierta forma (modo 1)
d) Si la entrada del puerto A RA0 se encuentra en nivel ALTO ( 1 ) los bits (LEDS) del puerto B comenzarán a encender y apagar en un modo diferente de tal manera que se pueda apreciar el cambio en el puerto B, de acuerdo al valor de entrada del puerto A.
III. Entregar la práctica en protoboard, funcionando correctamente, y en el reporte incluir el código en ensamblador y las imágenes de simulación. Incluir conclusiones individuales de cada alumno.
RESULTADOS:
DISEÑO DEL CIRCUITO:
[pic 2]
CIRCUITO FISICO:
[pic 3]
[pic 4]
PROGRAMACION DEL PIC16F877A:
; This file is a basic code template for assembly code generation *
; on the PIC16F877A. This file contains the basic code *
; building blocks to build upon. *
; *
; Refer to the MPASM User's Guide for additional information on *
; features of the assembler (Document DS33014). *
; *
; Refer to the respective PIC data sheet for additional *
; information on the instruction set. *
; *
;**********************************************************************
; *
; Filename: xxx.asm *
; Date: *
...