0% encontró este documento útil (0 votos)
126 vistas8 páginas

TAREA 2 - MICRO Programa Basico

Este documento describe cómo programar un microcontrolador PIC16F877A utilizando un compilador C. Explica los pasos de escritura de código, ensamblado, simulación, grabación en el microcontrolador y dos programas de ejemplo para encender y apagar un LED y una secuencia de LEDs en el puerto B.

Cargado por

Milton
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
126 vistas8 páginas

TAREA 2 - MICRO Programa Basico

Este documento describe cómo programar un microcontrolador PIC16F877A utilizando un compilador C. Explica los pasos de escritura de código, ensamblado, simulación, grabación en el microcontrolador y dos programas de ejemplo para encender y apagar un LED y una secuencia de LEDs en el puerto B.

Cargado por

Milton
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

UNIVERSIDAD MAYOR DE SAN ANDRES MICROCONTROLADORES

FACULTAD DE INGENIERIA MECÁNICA Y ELECTROMECÁNICA

TAREA Nº 2

PROGRAMACIÓN DEL MICROCONTROLADOR


“PROGRAMA USO DE PUERTOS”

1. ESTRUCTURA DE LA PROGRAMACIÓN

Para la realización del proceso completo de programación e implementación en


hardware de una aplicación empleando el microcontrolador, se basaremos en la
siguiente secuencia:

INICIO

ESCRITURA DE Existen varios editores como el edit, nosotros


CODIGO emplearemos el PCW de la casa CCS

En el ensamblador se emplea MPASM.


ENSAMBLADO
Nosotros emplearemos el PIC C-COMPILER

SIMULACIÓN Existen varios simuladores, nosotros


emplearemos el ISIS PROTEUS 8

GRABACIÓN DEL Cada fabricante tiene su software específico


MICROCONTROLADOR para su producto, uno de las más empleados
es el PICKIT2 de MICROCHIP

FIN

2. COMPILADOR PCW DE CCS

• Se realizar la programación del PIC en un lenguaje de la estructura del C, y por tal


razón se utiliza un compilador del C.

Ing. Javier Tarqui Valeriano


UNIVERSIDAD MAYOR DE SAN ANDRES MICROCONTROLADORES
FACULTAD DE INGENIERIA MECÁNICA Y ELECTROMECÁNICA

• Al igual que el compilador de Turbo C, éste "traduce" el código C del archivo


fuente (.C) a lenguaje máquina para los µcontroladores PIC, generando así un
archivo en formato hexadecimal (.HEX).
• Además de éste, también genera otros seis ficheros, se emplea para µcontroladores
de 6, 8, 18 ó 40 patillas

Cuando se abre el software nos muestra la siguiente pantalla

Figura 1

Nótese que estructuralmente cuenta para su programación con las siguientes partes:

a) Librerías: Llevan la notación # include, inicialmente se coloca la librería del


microcontrolador, y posteriormente las otras librerías que sean necesarios para la
aplicación programada
b) Fusibles: Por lo general se colocan a continuación de las librerías, se colocan con la
sentencia “# fuses”, los tipos dependen del tipo de microcontrolador y el oscilador
empleado y las aplicaciones que se programan

Ing. Javier Tarqui Valeriano


UNIVERSIDAD MAYOR DE SAN ANDRES MICROCONTROLADORES
FACULTAD DE INGENIERIA MECÁNICA Y ELECTROMECÁNICA

c) Frecuencia del oscilador: en este caso se define la frecuencia del oscilador con
“# use delay”
d) Programa principal: a partir del “void main( )”, y entre las llaves se desarrolla el
programa

Es decir:

#include <16f877a.h> // define el PIC a usar


#fuses hs,nowdt // estos son los fusibles activos
#use delay(clock=20M) // define la frecuencia del reloj
// define variables y constantes

void main() //INICIA CUERPO DEL PROGRAMA


{
//se realiza definiciones de variables
// se configura los puertos

while(true) //secuencia que mantiene hasta el infinito


{
// conjunto de instrucciones que se repiten
}
}

3. OPERADORES Y EXPRESIONES

Dentro del set de instrucciones podemos distinguirlas de la siguiente forma:

a) Operadores de asignación
Una expresión de asignación tradicional es de la forma
expr1 = expr1 operador expr2, es decir, i = i + 5.
Esta expresión se puede representar por otra forma más corta:
expr1 operador= expr2, siguiendo con el mismo ejemplo i += 5.

b) Operadores aritméticos
Los operadores aritméticos se usan para realizar operaciones matemáticas. Se listan
en la siguiente tabla:

Ing. Javier Tarqui Valeriano


UNIVERSIDAD MAYOR DE SAN ANDRES MICROCONTROLADORES
FACULTAD DE INGENIERIA MECÁNICA Y ELECTROMECÁNICA

c) Operadores relacionales

Su misión es comparar dos operandos y dar un resultado entero:


1 (verdadero); 0 (falso).
La siguiente tabla ilustra estos operadores:

d) Operadores lógicos

Al igual que los operadores relacionales, éstos devuelven 1 (verdadero), 0 (falso)


tras la evaluación de sus operandos. La tabla siguiente ilustra estos operadores

e) Operadores de manejo de bits


Estos operadores permiten actuar sobre los operandos a nivel de bits y sólo pueden
ser de tipo entero (incluyendo el tipo char). Son los que siguen:

f) Operadores de incremento y decremento


Su comportamiento se asemeja a las instrucciones de incremento incf f,d del
ensamblador del μcontrolador PIC 16x84 o inc variable del Intel 8051.

Ing. Javier Tarqui Valeriano


UNIVERSIDAD MAYOR DE SAN ANDRES MICROCONTROLADORES
FACULTAD DE INGENIERIA MECÁNICA Y ELECTROMECÁNICA

g) Expresiones
Tenemos las siguientes:

4. EL MICROCONTROLADOR PIC 16F877A

Son una familia de microcontroladores tipo RISC, fabricados por Microchip


Technology

Su estructura y disposición del microcontrolador es el siguiente:

4.1 CARACTERÍSTICAS

Ing. Javier Tarqui Valeriano


UNIVERSIDAD MAYOR DE SAN ANDRES MICROCONTROLADORES
FACULTAD DE INGENIERIA MECÁNICA Y ELECTROMECÁNICA

• Microcontrolador de 40 pines, fabricado en tecnología CMOS, memoria del tipo


Flash
• Pines de entrada y salida (I/O): 6 del puerto A, 8 del puerto B, 8 del puerto C, 8 del
puerto D y 3 del puerto E.
• 8 entradas analógicas
• Memoria RAM con 224 registros, oscilador interno de 4Mhz hasta 20 Mhz
• 2 timer de 8 bits, 1 timer de 4 bits
• 32 instrucciones
• Módulo de PWM, módulo ADC de 10

ESTRUCTURA DEL CIRCUITO. El circuito básico es el siguiente:

5. MATERIALES.

- Microcontrolador PIC 16f877A


- Grabador de memorias
- Oscilador de cristal de 4 Mhz o 20 Mhz
- Resistencias, capacitores que son parte del circuito del microcontrolador
- Resistencias de protección de 330 Ω
- Leds indicadores de diferentes colores

Soporte de software:

- PROTEUS 8 profesional o una versión mayor


- PIC C Compiler PCW
- PICkit2

Ing. Javier Tarqui Valeriano


UNIVERSIDAD MAYOR DE SAN ANDRES MICROCONTROLADORES
FACULTAD DE INGENIERIA MECÁNICA Y ELECTROMECÁNICA

6. DESARROLLO DEL LABORATORIO

• En una primera etapa deben de programar en el C – COMPILER y luego simularlo


en el PROTEUS
• Luego deben de codificarlo en el Pickit, para luego programarlo en el
microcontrolador, empleando el dispositivo adecuado
• Armar el circuito y verificar el funcionamiento del mismo en el protoboard en
forma física

PROGRAMA 1. “Enciende y apaga LED”

Descripción: este programa hace encender y apagar un led por el puerto A0 con una
duración de medio segundo

// PROGRAMA QUE ENCIENDE Y APAGA LED POR PUERTO A

#include <16f877a.h> // define el PIC a usar


#fuses hs,nowdt // estos son los fusibles activos
#use delay(clock=20M) // define la frecuencia del reloj

void main() //INICIA CUERPO DEL PROGRAMA


{
inicio: //Inicio de la secuencia
output_high(pin_a0); //define como salida al puerto a0 y en estado alto
delay_ms(500); //determina una duracion de 500ms(1/2seg)
output_low(pin_a0); //define como salida al puerto a0 y en estado bajo
delay_ms(500);
goto inicio; //retorna a inicio
}

PROGRAMA 2. Secuencia de LEDs por el puerto B

Descripción: este programa tiene conectado LEDs a las 8 salidas del puerto B, y hace que
se encienda uno tras otro hasta que al final después de que todos están encendidos, se apaga
y nuevamente se repite la secuencia

// SECUENCIA DE LED POR PUERTO B

#include <16f877a.h>
#fuses hs,nowdt
#use delay(clock=20M)

Ing. Javier Tarqui Valeriano


UNIVERSIDAD MAYOR DE SAN ANDRES MICROCONTROLADORES
FACULTAD DE INGENIERIA MECÁNICA Y ELECTROMECÁNICA

void main()
{
set_tris_b(0b00000000); //define los 8 puertos de “b” como salida con ceros (0b es binario)
output_b(0b00000000); //inicializa en estado bajo los led en binario

while(true) //secuencia que mantiene hasta el infinito


{
output_b(0b00000001); //hace que la salida b0 pase a 1 (en binario)
delay_ms(200);
output_b(0b00000011); //hace que la salida b0 y b1 pase a 1
delay_ms(200);
output_b(0b00000111);
delay_ms(200);
output_b(0b00001111);
delay_ms(200);
output_b(0b00011111);
delay_ms(200);
output_b(0b00111111);
delay_ms(200);
output_b(0b01111111);
delay_ms(200);
output_b(0b11111111);
delay_ms(200);
output_b(0b00000000); //hace que se apaguen todos
delay_ms(200);
}
}

TAREA 1.

El estudiante deberá realizar un programa para el parpadeo del LED que salga por el puerto
C7 con una duración de ¼ de segundo, y por el puerto b1 con una duración de 2 segundos

TAREA 2.

Realizar una secuencia de leds, basado en el anterior programa, donde cada led se encienda
y apague a la vez en forma secuencial, es decir que solo un led estará encendido en un
momento. Para esta secuencia, realizar el programa que realice el mismo trabajo anterior
pero usando la sentencia “for”

PRESENTACIÓN.

El estudiante deberá realizar su programa en el CCS PIC – C Compiler y simularlo en el


PROTEUS, y enviar un video corto pero conciso y claro donde se muestre el programa
realizado y su funcionamiento en el PROTEUS. El video se cargará en la misma plataforma
del CLASSROOM hasta fecha 21 de septiembre

Ing. Javier Tarqui Valeriano

También podría gustarte