Está en la página 1de 16

ASIGNATURA TEMA ALUMNOS

: Sistemas Digitales : Programacion para PIC-16F84 : Eber ESPINOZA CHIPANA Christian QUISPE PANTOJA

DOCENTE : Ing. Gladys ECHEGARAY P.

Susan ANAMPA VALDEZ


CICLO : VIII

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

1. Objetivos Afianzar los conocimientos obtenidos en clase sobre microcontroladores (PIC) Programar el cdigo para un carrito seguidor de lnea haciendo uso del software CCS. Modelar el carrito seguidor de lnea haciendo uso del software Proteus. 2. Equipos y Materiales 2.1. Equipos Computadoras Memorias USB

2.2. Materiales Software CCS Software Proteus

3. Marco Terico: 3.1 Microcontrolador Un microcontrolador (abreviado C, UC o MCU) es un circuito integrado programable, capaz de ejecutar las rdenes grabadas en su memoria. Est compuesto de varios bloques funcionales, los
Laboratorio N 02: Mediciones Electrnicas y Eltricas
2

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

cuales cumplen una tarea especfica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y perifricos de entrada/salida. Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o microvatios). Por lo general, tendr la capacidad para mantener la funcionalidad a la espera de un evento como pulsar un botn o de otra interrupcin, el consumo de energa durante el sueo (reloj de la CPU y los perifricos de la mayora) puede ser slo nanovatios, lo que hace que muchos de ellos muy adecuados para aplicaciones con batera de larga duracin. Otros

microcontroladores pueden servir para roles de rendimiento crtico, donde sea necesario actuar ms como un procesador digital de seal (DSP), con velocidades de reloj y consumo de energa ms altos. 3.2 Microcontrolador PIC-16F84 Es un MICROCONTROLADOR de 8 bits, perteneciente a la subfamilia de lagama media de los microcontroladores fabricados por compaa MicrochipTecnology. Posee memoria de programa tipo FLASH. Con tecnologa CMOS,completamente esttico, esto quiere decir que el reloj puede detenerse y los datos de la memoria no se pierden. Emplean arquitectura RISC

Laboratorio N 02: Mediciones Electrnicas y Eltricas


3

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

(35instrucciones. El reset de encendido (POR) y el temporizador de reset, ofrecenla posibilidad de no usar circuito externo de reset. Arquitectura Hardvard.

Laboratorio N 02: Mediciones Electrnicas y Eltricas


4

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

Estructura Fisica

3.3 Pines y Funciones Los PUERTOS son el puente entre el microcontrolador y el mundo exterior.Son lneas digitales que trabajan entre cero y cinco voltios y se puedenconfigurar como entradas o como salidas.El PIC 16F84 tiene dos puertos. El puerto A con 5 lneas y el puerto B con 8lneas. Cada pin se puede configurar como entrada o como salidaindependiente programado por un par de registros

diseados para tal fin. Enese registro un "0" configura el pin del puerto correspondiente como salida y un"1" lo configura como entrada. RA4/TOCKI= Pin de Entrada/Salida o entrada de Reloj Externo para el TMR0,cuando este pin se configura como salida es de tipo Open Drain (ST), cuandofunciona como salida se debe conectar a Vcc (+5V) a travs de una resistencia. PUERTO BRB0/INT= Pin de Entrada/Salida o entrada de

interrupcinexterna. (TTL/ST)
Laboratorio N 02: Mediciones Electrnicas y Eltricas
5

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

3.4 Organizacin de la Memoria: Hay dos bloques de memoria: la memoria de programa y la memoria de datos. Cada bloque tiene su propiobus de acceso, de manera que se puede acceder simultneamente a ambosbloques durante el mismo ciclo de instruccin. En general, para losmicrocontroladores, la memoria de datos se asume como una RAM , esdecir, una memoria que puede ser leda y escrita pero que tiene la desventajade ser voltil, o sea, que su informacin se pierde al desenergizar el dispositivo. De aqu en adelante se le llamar registro a cada posicin de lamemoria de datos.La memoria RAM de datos a su vez se divide en dos secciones: Registros de propsito general Estn dedicados a funciones dirigidas al control del dispositivo en s mismo yde los mdulos funcionales que lo componen. Registros de funcin especial (SFRs: Special Function Registers)Son los registros que utilizar el usuario para almacenar los datos temporalesde su programa en particular, son los registros de trabajo del usuario.En el PIC16F84, del rea de la memoria de datos tambin hace parte unaMemoria EEPROM de datos . Esta memoria no se encuentra

directamentemapeada dentro la memoria de datos, pero se puede acceder indirectamente.El direccionamiento indirecto se realiza a
Laboratorio N 02: Mediciones Electrnicas y Eltricas
6

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

travs de un registro apuntador dedirecciones (09ho EEADR) que contiene la direccin de la EEPROM de datosen la cual se va leer o escribir. Los 64 bytes de EEPROM de datos tienen unrango de direcciones que abarca desde 00h a 3fh. 4. Procedimiento 4.1 Programacion del PIC: Para ello ejecutamos el software CSS

Luego creamos un nuevo proyecto Wizard

Le ponemos un nombre y nos abrir la siguiente ventana de configuracin

Laboratorio N 02: Mediciones Electrnicas y Eltricas


7

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

En esta ventana se configuran las opciones de Device (escogemos el PIC16F84 para el cual desarrollaremos el Programa), Ositar Frecuency (Osilador de frecuencia usaremos 4000000HZ) A continuacin escribiremos el siguiente cdigo: Codigo Fuente:
//********************SEGUIDOR DE LINEA******************************// //******************************************************************// #include <16f84a.h> #fuses XT,NOWDT,NOPROTECT #use delay(clock=4000000) #byte port_a = 5 #byte port_b = 6 #use fast_io(a) #use fast_io(b) //**************Configuracion de Puertos ENTRADAS/SALIDAS***************** //Direccion de Puerto_A en la Memoria //Direccion de Puerto_B en la Memoria //Para configuracion de los Puertos.

Laboratorio N 02: Mediciones Electrnicas y Eltricas


8

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas


//************************************************************************ #define PuertoA_Entrada salidas #define PuertoB_Salida #define LimpiarSalidas set_tris_b(0b00000000) // salidas port_b=0; set_tris_a(0b00011) //A0 y A1 intradas y los demas

//************************************************************************ //************** Encender y Apagar Motor1 ******************************* //************************************************************************ #define Encender_MotorDerecha #define Apagar_MotorDerecha #define MotorDerecha_Gira_Atras #define MotorDerecha_Gira_Adelante output_bit(PIN_B0,1) output_bit(PIN_B0,0) output_bit(PIN_B1,1) output_bit(PIN_B1,0)

//************************************************************************ //************** Encender y Apagar Motor2 ******************************* //************************************************************************ #define Encender_MotorIzquierda #define Apagar_MotorIzquierda #define MotorIzquierda_Gira_Adelante #define MotorIzquierda_Gira_Atras output_bit(PIN_B2,1) output_bit(PIN_B2,0) output_bit(PIN_B3,0) output_bit(PIN_B3,1)

//************************************************************************ //**************Recepcion de Datos de Entrada del Puerto_B**************** //Movil vista de frente :un sensor colocado lado izquierdo // :un sensor colocado lado derecho. //Sensor sobre la linea negra: nivel logico alto (5 voltios) //Sensores sobre fondo blanco: nivel logico bajo (0 Voltios) //************************************************************************ #define SensorLuz_Izq1 #define SensorLuz_Der1 input(PIN_A1) input(PIN_A0)

//************************************************************************ //*********************PROGRAMA PRINCIPAL*************************** //************************************************************************ main() { PuertoA_Entrada; PuertoB_Salida; LimpiarSalidas; while(true) {

Laboratorio N 02: Mediciones Electrnicas y Eltricas


9

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas


//////////////////////Rutina simple inspeccion: BORDE DERECHO/////////////// ///////////////////CONDICIONES PARA DOS SENSORES///////////////////////////. if ((!(SensorLuz_Izq1))&(SensorLuz_Der1)) //01 GIRO DERECHA { Apagar_MotorDerecha; Encender_MotorIzquierda; MotorDerecha_Gira_Adelante; MotorIzquierda_Gira_Adelante; } else if ((SensorLuz_Izq1)&(!(SensorLuz_Der1)))//10 GIRO IZQUIERDA { Encender_MotorDerecha; Apagar_MotorIzquierda; MotorDerecha_Gira_Atras; MotorIzquierda_Gira_Atras; } else if ADELANTE { Encender_MotorDerecha; Encender_MotorIzquierda; MotorDerecha_Gira_Atras; MotorIzquierda_Gira_Adelante; } else if ((!(SensorLuz_Izq1))&(!(SensorLuz_Der1)))//00 AVANZA HACIA ATRAZ { Apagar_MotorDerecha; Apagar_MotorIzquierda; MotorDerecha_Gira_Adelante; MotorIzquierda_Gira_Atras; } else { } } ((SensorLuz_Izq1)&(SensorLuz_Der1))//11 AVANZAR HACIA

Laboratorio N 02: Mediciones Electrnicas y Eltricas


10

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas


return(0); }

Captuta de Pantalla del Programa

4.2 Modelamiento en Proteus: Para ello ejecutamos el software ISIS 7 Profesional

Apregamos los siguientes componentes desde:

Laboratorio N 02: Mediciones Electrnicas y Eltricas


11

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

Arrastramos a la ventana de diseo, y realizamos como se muestra en la siguiente figura:

Laboratorio N 02: Mediciones Electrnicas y Eltricas


12

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

Hacemos doble click sobre el PIC16F84 y realizamos la conexin con el programa antes creado, tal como se muestra a

continuacin:

Damos ok y ejecutamos el programa desde:

4.3 Funcionamiento: Caso 1: Entradas 11 Ambos motores giran en sentido horario ya que las entradas se producen a nivel alto.

Laboratorio N 02: Mediciones Electrnicas y Eltricas


13

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

Caso 2: Entradas 10 El motor derecho empieza a girar en sentido antihorario mientras que el motor izquierdo sigue girando en sentido horario.

Caso 3: Entradas 01 El motor izquierdo empieza a girar en sentido antihorario mientras que el motor derecho gira en sentido horario.

Caso 4: Entradas 00

Laboratorio N 02: Mediciones Electrnicas y Eltricas


14

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

Ambos motores giran en sentido antihorario ya que las entradas se producen a nivel bajo.

4. Concluciones El uso del programa CSS permite reducir cdigo assembler El uso de microcontroladores es una manera de realizar programacin en tiempo real. El carrito seguidor de lnea es un robot con cierto nivel de inteligencia, que recibe seales atraves de sensores de luz y realiza acciones atraves de sus efecores que es el de seguir una lnea negra.

5. Bibliografia http://electronicadesarrollo.blogspot.com/2007/12/programacin -de-pics.html http://es.wikipedia.org/wiki/Microcontrolador http://tdrobotica.co/noticias/robotica/53

Laboratorio N 02: Mediciones Electrnicas y Eltricas


15

20-4-2011

Escuela Academico Profesional de Ingenieria Informtica y Sistemas

http://www.slideshare.net/Dizporac287/seguidor-de-linea-negra

Laboratorio N 02: Mediciones Electrnicas y Eltricas


16