SlideShare una empresa de Scribd logo
1 de 20
1. IDENTIFICACIÓN DE LA GUÍA DE APRENDIZAJE <br />Nombre del Proyecto: MEJORAMIENTO DE INSTALACIONES Y MAQUINARIA ELÉCTRICA DEL COLEGIO APLICANDO LA NORMATIVIDAD VIGENTE.(Duración en horas)Número de horas3960Fase del Proyecto: PLANEACIÓN(Duración en horas)264Código de la Guía290201083Nombre de la Actividad:Mejorar el funcionamiento de máquinas y procesosbuscando su eficiencia y productividad(Lógica cableada y programable)Equipo EjecutorMAURICIO DIAZ GARCIAResultados de Aprendizaje29020108301Esquematizar e implementar a su alcance el problema planteado.29020108302Recopilar la información de acuerdo a la solución adoptada delautomatismo requerido como análisis de componentes: mecánicos,eléctricos, de control, proveedores y costos29020108303Presentar alternativas de solución que respondan en su totalidad concada una de las funciones del automatismo29020108304Valorar alternativas económicas del estudio preliminar de acuerdo a lasolución adoptada29020108305Definir detalladamente la estructura del automatismo de acuerdo a lametodología establecida29020108306Seleccionar los sensores, actuadores y controladores requeridos para lasolución del problema.29020108307Aplicar normas de seguridad vigentes para la alternativa de soluciónCódigo del resultado + consecutivo  1083-01<br />2. INTRODUCCIÓN<br />La guía de aprendizaje contiene la información necesaria para programar un Microcontrolador, las herramientas requeridas de hardware y software. Y la implementación de sistemas de control basado en microcontroladores. Se abordan los siguientes temas:Descripción de un Microcontrolador.Manejo del software Mplab para generar código Asembler y lenguaje de máquina.El ejercicio propuesto genera destrezas en la programación de procesos de control, donde los pequeños microswich pueden ser reemplazados por diversos tipos de sensores, y las salidas por sistemas de potencia.  De esta forma tenemos un Control Lógico Programable (PLC) construido y programado con bajo presupuesto, y alto contenido didáctico.<br />3. CONOCIMIENTOS PREVIOS<br />c-108301Normatividad técnica y legalc-108302Interpretación de planos y catálogosc-108303Conocimientos de inglésc-108304Usos de medios de información, internetc-108305Manejo de manuales técnicosc-108306Sistemas informáticosc-108307Fundamentos de mecánica, electrotecniac-108308Neumática, hidráulica, electrónica y sensoresc-108309Equipos y programas para control de procesosc-108310Principios de sistemas automáticos de controlc-108311Elaboración de planos.c-108312Controles lógicos programables.c-108313Normalización: simbología estandarizadac-108314Normas de seguridad industrial.<br />4. MATERIAL DE CONSULTA<br />Estructura curricular cód.: 832223<br />Internet: www.cdachiaindustrial.blogspot.com<br /> http://micropic.galeon.com       http://www.ithinkweb.com.mx/capacita/algoritmo.html  http://www.ate.uniovi.es/fernando/Doc2006/Sed_06/Presentaciones/Programacion%20en%20ensamblador.pdf<br />Tutorial Microcontrolador PIC.<br />Referencia PIC 16f84, por ser de uso más común entre los estudiantes. <br />El primer paso importante es ver el diagrama de pines del PIC16F84, en el cual se observa cómo están distribuidos sus pines. Este circuito integrado cuenta con 2 puertos configurables como entradas o salidas según sea el caso y consta de 18 pines los cuales se encuentran asignados de la siguiente manera:<br />   <br />Pin 1: -----------RA2  Pin 2: -----------RA3  Pin 3: -----------RA4/TOCKI  Pin 4:------------Reset   Pin 5:------------Tierra (GND)   Pin 6:------------RB0/INT   Pin 7:------------RB1   Pin 8:-------------RB2   Pin 9:------------RB3   Pin 10:----------RB4   Pin 11:----------RB5   Pin 12:----------RB6   Pin 13:----------RB7  Pin 14:----------Vcc  Pin 15:----------Osc2   Pin 16:----------Osc1  Pin 17:----------RA0   Pin18:-----------RA1      <br />           El puerto A está denotado por el color Azul oscuro, el cual tiene sólo cinco pines que puedes configurar como entrada o salida. La pata 3, o sea, RA4/TOCKI puede ser configurado a su vez como entrada/salida o como temporizador/contador. Cuando es salida se comporta como colector abierto, por lo tanto debemos poner una resistencia Pull-up a Vcc de 1 Kohm. Cuando es configurada como entrada, funciona como disparador Schmitt Trigger por lo que puede reconocer señales con un poco de distorsión.<br />  <br />    El puerto B está denotado por el color anaranjado, y tiene ocho pines que igualmente se pueden configurar como entrada o salida. Los pines 15 y 16 son únicamente para el oscilador externo el cual estudiaremos con más detalle más adelante. El pin 4, o sea, el Reset se debe conectar con una resistencia de 10 Kohm a Vcc para que el Pic funcione, si lo queremos resetear entonces pondremos un micropulsador con una resistencia de 100 Ohm a tierra.<br />   <br />    La máxima capacidad de corriente para los puertos se muestra en la siguiente tabla:   <br /> PUERTO APUERTO BMODO SUMIDERO 80 mA 150 mA MODO FUENTE 50 mA 100 mA <br />      Por último tenemos los pines 14 y 5 que son la alimentación la cual no debe sobrepasar los 5 Voltios. <br />        Oscilador Externo: <br />    Es necesario para que nuestro PIC pueda funcionar, puede ser conectado de cuatro maneras diferentes. En la siguiente tabla encontraras los diagramas necesarios para su conexión y una breve descripción de cada uno.   <br />XT  Oscilador compuesto por un cristal y dos condensadores.    RC    Oscilador compuesto por una resistencia y un condensador.      HS Oscilador compuesto por un cristal de alta velocidad.LPOscilador compuesto por un cristal de baja frecuencia y bajo consumo de potencia. <br />      El siguiente paso importante para tener claro como debemos empezar a programar es conocer la tabla de registros. Esta tabla está dividida en dos partes llamadas BANCO 0 y Banco 1. Nos debemos interesar momentáneamente en: STATUS, PORTA, PORTB, TRISA y TRISB. <br />    Para que nuestro PIC pueda trabajar debemos configurar sus puertos como entrada o como salida según sea el caso,  si le asignamos un CERO(0) a un pin éste será SALIDA y si asignamos un UNO (1) éste será ENTRADA. <br />    Esta asignación de pines se hace programando los registros TRISA y TRIS B. <br />    TRISA es el registro donde se almacenan los bits que asignan un pin como entrada o salida del PUERTO A. Recordemos que el puerto A sólo tiene 5 pines, por lo tanto un ejemplo de esto sería: <br />    Si TRISA (puerto A) es igual a  19 (11001) entonces esto se leería,<br />TRISA ASIGNACIÓN ESTADO RA01ENTRADA RA10SALIDA RA20SALIDA RA31ENTRADA RA41ENTRADA <br />      El bit menos significativo se asigna desde RA0. <br />    Si TRISB (puerto B) es igual a 32 (00110010), entonces esto se leería,   <br />TRISA ASIGNACIÓN ESTADO RA00SALIDARA11ENTRADA RA20SALIDARA30SALIDA RA41ENTRADA RA51ENTRADA RA60SALIDA RA70SALIDA <br />    NOTA: Todos los valores mencionados y que se mencionarán, están expresados en valores hexagesimales. <br />            En la siguiente parte, comenzaremos a programar el PIC y sabremos como ingresar estos valores en el TRIS A o TRIS B según sea el caso. <br />Tutorial Microcontrolador PIC.<br />Segunda parte.<br /> <br />         Para comenzar a trabajar con el programa MPLAB debemos simplemente abrir un nuevo archivo en la ventana File opción New como muestra la imagen 1. <br />                Nota: El MPlab es un programa, no es inteligente y no sabe que hacer por si solo. Es mas, les debemos dar las ordenes una a una y muy bien explicadas para que este las entienda. Estas ordenes estarán acompañadas por parámetros que le dirán a la máquina como se realizará esa tarea. De otra manera, esta no se ejecutará. <br />Fig. 1. Iniciando un nuevo programa.<br />        A continuación analizaremos las siguientes líneas:   list    p=16f84  #include     p16f84.inc <br />port_a         equ     5 port_b         equ     6 trisb             equ     86 trisa             equ     85 estado         equ     3 <br />valor1         equ        0C valor2        equ         0D <br /> clrf             estado  clrf             port_a  bsf             estado,5             ;selección del banco 1  movlw       0x19  movwf       port_a  clrf            port_b  movlw       0x32  movwf       port_b  bcf            estado,5            ;selecciona el banco 0  clrf            port_a  clrf            port_b <br />Antes de analizar estas líneas debemos tener en claro los siguiente: <br /> para mantener un orden, se presionar la tecla TAB entre la instrucción y el parametro <br />  <br />        El símbolo de Punto y Coma quot;
 ; quot;
 indica el comienzo de un comentario, sirve para ubicarse mejor en el avance del programa y luego encontrar mas rápidamente una línea o bloque determinado.   Todo lo que siga a un quot;
 ; quot;
 no generará código hexagesimal en nuestro proyecto.    En pocas palabras, lo que siga al quot;
 ; quot;
 no influye en el programa.<br />Primero debemos especificar con que microcontrolador estamos trabajando, en las dos primeras líneas especificamos que vamos a trabajar con el PIC 16F84. <br />Luego definimos la posición en memoria de nuestros registros, el mapa de memoria lo presento en la figura 2: <br />Figura 2: Mapa de memoria del PIC 16f84.<br /> Para comenzar destacaremos los registros: <br />PORTA           posición 05hPORTB           posición 06hTRISA             posición 85hTRISB             posición 86hSTATUS         posición 03h<br />El registro STATUS que en este caso le hemos llamado quot;
estadoquot;
 se compone de la siguiente forma:<br />  <br />76543210IRP RP1 RP0 TO PD Z DC C <br />            Si en la casilla 5 (RP0) del registro STATUS hay un CERO entonces estamos en el BANCO 0. <br />            Si en la casilla 5 (RP0) del registro STATUS hay un UNO entonces estamos en el BANCO 1.        Desde la tercera a la séptima línea definimos los nombres de nuestros registros, en el caso del Puerto A lo llamamos port_a - es importante que siempre que nos queramos referir al Puerto A lo hagamos en minúsculas, ya que aquí lo definimos así (PORT_A port_a) si en un principio se define con mayúsculas, siempre nos tendremos que referir a este con mayúsculas - <br />    Otro ejemplo, si en la tercera línea en lugar de quot;
port_a equ 5quot;
 colocamos quot;
hola equ 5quot;
 cada vez que queramos referirnos al Puerto A debemos hacerlo como quot;
holaquot;
. <br />        En la octava y novena línea, definimos nuestro registros personales, los que vamos a ocupar en nuetro programa, según el mapa de memoria este comienza en la posición 0Ch. <br />    NOTA: Recuerden que todos los valores mencionados y que se mencionarán, están expresados en valores hexagesimales. <br />            El siguiente paso es definir los pines de entrada y salida, recordemos el último bloque de nuestro programa: <br />clrf             estado                ; limpiar el registro estado clrf             port_a                ; limpiar el puerto a bsf             estado,5              ; selección del banco 1<br />Nota: La instrucción BSF (Bit Set f) carga un 1 en el registro (en este caso el registro estado) en el bit (en este caso el 5), como vimos anteriormente el registro estado al tener un 1 en el 5to bit, entonces estamos trabajando en el banco 1, esto para poder definir los pines de entrada o salida del micro. <br />movlw       0x19                   ;cargo un 11001 en el acumulador movwf       port_a                ; muevo el contenido del acumulador                                            ;al puerto a, defino los pines 0, 1 y 4                                            ;como entrada y 2 y 3 como salida<br />Nota: El método para definir los pines del puerto b es exactamente el mismo <br />clrf            port_b                ;limpiar el puerto b movlw       0x32                  ;cargo un 00110010 al acumulador movwf       port_b               ;defino los pines 1, 4 y 5 como entrada y                                            ;los 0, 2, 3, 6 y 7 como salida bcf            estado,5             ;selecciona el banco 0 clrf            port_a                ; limpiar el puerto a clrf            port_b               ;limpiar el puerto b<br />             En la siguiente parte, haremos un pequeño programa demostrativo y veremos cómo detectar errores y simularlo.<br />Tutorial Microcontrolador PIC.<br />Tercera parte.<br />       En la parte anterior vimos como inicializar un PIC, ahora, usando esa información haremos un pequeño programa el cual solo encenderá un LED según el interruptor que se presione. <br />        Lo primero es visualizar lo que queremos,  (ordenar nuestro pines de entrada y salida por ejemplo) y según eso empezar a trabajar. <br />Figura 3: Circuito a implementar.<br />Según el circuito anterior, vemos que el puerto A lo usaremos como entrada y el puerto B como salida, a los cuales hemos conectado LED'S para poder ver los resultados. <br />El puerto A está conectado directamente a la alimentación con lo cual sabemos que normalmente tiene una entrada de +5 V ( 1 lógico) y al activarse el interruptor tendremos un 0 lógico. <br />Nota: Es muy importante que todos los pines de entrada queden bien definidos si están en un nivel alto o bajo por que de lo contrario el PIC entrará en un estado de incertidumbre y no trabajará de manera correcta.   Los pines de salida, no es necesario que se conecten si no los vamos a usar.   <br />Comenzando con el programa.<br />Como vimos anteriormente, para abrir una nueva ventana de programación pinchamos en la ventana FILE y le damos a la opción NEW, luego debemos inicializar nuestro PIC, en este caso será:   <br />; ****************************************   ; *   Ejemplo tutorial PIC                                     *    ; *  Este programa enciende un led dependiendo *    ; *  de que interruptor sea activado                      *    ; ****************************************         list                   p=16f84         #include p16f84.incport_a               equ 5    port_b              equ 6    trisb                  equ 86    trisa                  equ 85    retard               equ 11              ;RETARDO    estado              equ 3     clrf                  estado     clrf                  port_a     bsf                  estado,5             ;selección del banco 1     movlw             0x1f     movwf             port_a               ;define RA0 como entrada     clrf                  port_b     movlw             0x00     movwf            port_b               ;define puerto B como salida     bcf                  estado,5     clrf                  port_a     clrf                  port_b     <br />  Luego podemos hacer que vaya preguntando a cada pin de entrada, recordemos que según nuestro circuito los pines están normalmente en un nivel alto, y en nuestro caso si este esta en un nivel alto hacemos que testee el siguiente, de lo contrario lo mandamos a un subrutina donde encendemos el LED correspondiente. <br />Para esto usamos la instrucción btfss (Bit Test F, Skip if Set), es decir, testea el bit f y salta (skip) si esta en un nivel alto (set), el salto se refiere a que la siguiente instrucción no la considera y salta hasta la subsiguiente. <br />Al empezar un programa, marcamos el inicio de un bloque, en este caso lo llamaremos quot;
inicioquot;
. <br />  inicio   btfss     port_a,0 ;si el bit 0 del puerto a esta en nivel alto se salta una instrucción                call        enci0                call        retardo                btfss     port_a,1 ;si el bit 1 del puerto a esta en nivel alto se salta una instrucción                call        enci1                call        retardo                btfss     port_a,2 ;si el bit 2 del puerto a esta en nivel alto se salta una instrucción                call        enci2                call        retardo                btfss      port_a,3 ;si el bit 3 del puerto a esta en nivel alto se salta una instrucción                call        enci3                call        retardo                btfss      port_a,4 ;si el bit 4 del puerto a esta en nivel alto se salta una instrucción                call        enci4                call        retardo                goto      inicio<br />En la primera línea, como dice el comentario adjunto, testea el bit 0 del puerto a, si este esta en un nivel alto entonces el programa se salta una instrucción llegando a la instrucción call (llamar) la cual llama  a una subrrutina llamada retardo, de lo contrario, si está en un nivel bajo el programa considera la siguiente instrucción y ejecuta la instrucción call    enci0, en la cual se activa el pin 0 del puerto b que es el puerto se salida.  El resto del programa:<br />enci0    movlw    0x00                movwf    port_b                call         retar2                movlw    B'01'                movwf    port_b                return    enci1    movlw     0x00                movwf    port_b                call         retar2                movlw    B'10'                movwf    port_b                return    enci2    movlw    0x00                movwf   port_b                call         retar2                movlw   B'100'                movwf   port_b                return    enci3    movlw     0x00                movwf    port_b                call         retar2                movlw    B'1000'                movwf   port_b                return    enci4    movlw   0x00                movwf   port_b                call         retar2                movlw    B'10000'                movwf    port_b                return   retardo movlw    0x96                movwf    retard    reta3   decfsz      retard,1                goto       reta3                return     endEn la primera línea lo que hacemos es cargar un cero en el acumulador: movlw 0x00 (MOVe Literal to W) y luego la información que tiene el acumulador (W) la movemos la puerto b: movwf port_b (MOVe W to F), con esto nos aseguramos que todos los LED's del puerto b están apagados.En la tercera línea llamamos un retardo, lo cual siempre es bueno hacer para evitar que el pic colapse, este retardo esta casi al final del programa y el mecanismo de trabajo es muy parecido al anterior:<br />Mover el literal 96 (Hexadecimal) en el acumulador,  es cargar un 96 en el acumulador. <br />Mover el contenido del acumulador al registro retard, el cual fue definido al comienzo de programa y ubicado en la posición 11 en la memoria del pic, ahora el registro retard tiene cargado un 96. <br />Decrementar en una unidad el registro retard y el valor resultante se guarda en el mismo registro y cuando el valor de este sea cero, saltar una línea en el programa, con lo cual caerá en la instrucción return con lo cual vuelve a la posición desde donde se llamo a la subrutina.   decfsz      f,d (DECrement F, Skip if Zero) (decrementa el registro indicado y salta si es cero) si el valor de quot;
dquot;
 es cero entonces el resultado se guarda en el acumulador, si este valor en cambio es uno entonces el valor se almacena en el mismo registro. <br />Luego va al bloque de nombre quot;
reta 3quot;
 con lo cual se volverá a decrementar el registro, esto lo hará durante 96 veces hexadecimales, es decir, 150 veces.  <br />Al volver a la  4ta línea de este bloque movlw  B'01' hacemos algo muy parecido al paso anterior, sólo que ahora cargo un 1 binario en el acumulador y luego movemos esta información al puerto b, con lo cual tendremos en la salida del puerto b un 00001 considerando que se cuenta desde RB4 hasta RB0 por lo tanto se enciende el LED correspondiente al pin 0 del puerto b.<br />        De esto deducimos que si queremos encender por ejemplo el pin 3 del puerto b, debemos cargar el acumulador con un B'1000' para luego pasar esta información al puerto b. <br />        Otra alternativa seria: movlw   0x08 ya que 08h = 1000b. <br />Finalmente debemos guardar este programa, para esto pinchamos en la opcion File y luego en Save As y elegimos el directorio y un nombre, en este caso le pondremos ejemplo.asm <br />                                                              Figura 4 <br />        En la siguiente parte veremos como compilar este programa y detectar los errores de programación.   <br />Tutorial Microcontrolador PIC.<br />Cuarta parte.<br />En la parte anterior hicimos un programa el cual prende un LED según el interruptor que se activa.  Ahora vamos a compilar este programa en lengua hexa el que finalmente cargaremos en el PIC. <br />Lo primero es pinchar en el menú en la opción project y luego en new project, como indica la img: <br /> El siguiente paso es darle un nombre al proyecto, se recomienda darle el mismo nombre que al archivo en assembler, en este caso ejemplo.pjt. <br />Una vez echo esto, aparece la siguiente ventana: <br />En la parte de abajo, donde dice Project Files pinchamos la opción ejemplo [.hex] al hacer esto se activa la opción Node Properties que esta abajo a la derecha, debemos pinchar esta y se abre la siguiente ventana: <br />  En esta sección, debemos dejar las cosas por defecto (es lo mejor) y simplemente pinchar en OK. Luego volveremos a la ventana anterior solo que ahora se activó la opción Add Node algunas>opciones mas arriba de la ultima que pinchamos, por supuesto elegimos esta y>abre <br />Pinchamos en la opción Browse que esta a la derecha y buscamos en el directorio el programa original, en este caso ejemplo.asm y luego en OK, con esto estamos relacionando un archivo de assembler con el proyecto en hexa. Y finalmente volvemos a la primera pantalla y le damos al OK que esta en la parte superior. A continuación debemos verificar que no haya errores para eso vamos nuevamente a la opción project y veremos que hay nuevas opción que antes no estaban disponibles, elegimos Build All, y si todo esta correcto aparecerá una pantalla como esta: <br />Donde en la parte final podemos leer: Build completed successfully. <br />En caso de haber algún error, podemos hacer doble clic en el mensaje de error y este nos enviará directamente a esta línea. <br />5. EVIDENCIAS  Y EVALUACION<br />EVIDENCIA:Tipo de Evidencia:DesempeñoxConocimientoxProductoxResultados de aprendizaje asociados a la evidencia:FECHA:____________________________________, INSTRUCTOR: MAURICIO DIAZ GARCIAMATERIAL DE CONSULTA:  http://micropic.galeon.com http://www.ithinkweb.com.mx/capacita/algoritmo.htmlhttp://www.ate.uniovi.es/fernando/Doc2006/Sed_06/Presentaciones/Programacion%20en%20ensamblador.pdfPIC 16F84A COMO INTERRUPTORESQUEMA DEL CIRCUITO APRENDICES: GRUPO _______________________________________________________________________________________________________________________________________________________________________MATERIALES:HERRAMIENTAS:DESCRIPCION FUNCIONAL DEL CIRCUITO:PSEUDOCODIGODIAGRAMA DE FLUJOCODIGO FUENTEDescripción:Programación de un MicrocontroladorProducto entregable:Circuito funcional, Pseudocódigo, Diagrama de flujo y Código fuenteForma de entrega:Formato informe indicado.Criterios de Evaluación:• Esquematiza e implementa a su alcance el problema planteado.• Recopila la información de acuerdo a la solución adoptada del automatismo requerido como análisis de componentes: mecánicos, eléctricos, de control, proveedores y costos.• Presenta alternativas de solución que respondan en su totalidad con cada una de lasfunciones del automatismo• Valora alternativas económicas del estudio preliminar de acuerdo a la solución adoptada• Define detalladamente la estructura del automatismo de acuerdo a la metodología establecida.• Selecciona los sensores, actuadores y controladores requeridos para la solución del problema.• Aplica normas de seguridad vigentes para la alternativa de solución. Instrumento de Evaluación:TipoCódigoCuestionarioxLista ChequeoxLista de VerificaciónOtro:<br />
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11
Guia 1 microcontroladores grado 11

Más contenido relacionado

La actualidad más candente

Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Franz Amaya
 
configuracion de PLC y temporizadores
configuracion de PLC y temporizadoresconfiguracion de PLC y temporizadores
configuracion de PLC y temporizadoresAlejandro Cortijo
 
Programación avanzada
Programación avanzadaProgramación avanzada
Programación avanzadaPaul Gálvez
 
Lenguaje Ladder
Lenguaje LadderLenguaje Ladder
Lenguaje LadderRuth Cano
 
Presentacion pic 16f887 y 18f4550
Presentacion pic 16f887 y 18f4550 Presentacion pic 16f887 y 18f4550
Presentacion pic 16f887 y 18f4550 Alejandra Ruiz
 
Guia rapida modulos analogicos ad003 da003-da004-mad01 OMRON
Guia rapida modulos analogicos ad003 da003-da004-mad01 OMRONGuia rapida modulos analogicos ad003 da003-da004-mad01 OMRON
Guia rapida modulos analogicos ad003 da003-da004-mad01 OMRONmaherbas
 
Proyecto micro
Proyecto microProyecto micro
Proyecto microjhompix
 
47835801 curso-plc-omron
47835801 curso-plc-omron47835801 curso-plc-omron
47835801 curso-plc-omronMoi Torres
 
Introduccion a la programacion en c 18
Introduccion a la programacion en c 18Introduccion a la programacion en c 18
Introduccion a la programacion en c 18fitomaster
 
Programación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraProgramación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraLenin Jiménez
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaGerardo C
 

La actualidad más candente (18)

Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Tema4 puertos
Tema4 puertosTema4 puertos
Tema4 puertos
 
Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84Aplicaciones con el pic 16f84
Aplicaciones con el pic 16f84
 
Ejemplos pic c
Ejemplos pic cEjemplos pic c
Ejemplos pic c
 
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
Curso de lenguaje c para microcontroladores pic dia 1(2)(2)(2)(2)(2)(2)
 
Mn
MnMn
Mn
 
Logica de automatizacion de procesos
Logica de automatizacion de procesosLogica de automatizacion de procesos
Logica de automatizacion de procesos
 
configuracion de PLC y temporizadores
configuracion de PLC y temporizadoresconfiguracion de PLC y temporizadores
configuracion de PLC y temporizadores
 
Programación avanzada
Programación avanzadaProgramación avanzada
Programación avanzada
 
Taxímetro con Pic16F887
Taxímetro con Pic16F887Taxímetro con Pic16F887
Taxímetro con Pic16F887
 
Lenguaje Ladder
Lenguaje LadderLenguaje Ladder
Lenguaje Ladder
 
Presentacion pic 16f887 y 18f4550
Presentacion pic 16f887 y 18f4550 Presentacion pic 16f887 y 18f4550
Presentacion pic 16f887 y 18f4550
 
Guia rapida modulos analogicos ad003 da003-da004-mad01 OMRON
Guia rapida modulos analogicos ad003 da003-da004-mad01 OMRONGuia rapida modulos analogicos ad003 da003-da004-mad01 OMRON
Guia rapida modulos analogicos ad003 da003-da004-mad01 OMRON
 
Proyecto micro
Proyecto microProyecto micro
Proyecto micro
 
47835801 curso-plc-omron
47835801 curso-plc-omron47835801 curso-plc-omron
47835801 curso-plc-omron
 
Introduccion a la programacion en c 18
Introduccion a la programacion en c 18Introduccion a la programacion en c 18
Introduccion a la programacion en c 18
 
Programación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadoraProgramación en PLC Xinje - banda transportadora
Programación en PLC Xinje - banda transportadora
 
C++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación prácticaC++ para microcontroladores y aplicación práctica
C++ para microcontroladores y aplicación práctica
 

Destacado

Destacado (8)

Rene Seguranca Ai Agents
Rene Seguranca Ai AgentsRene Seguranca Ai Agents
Rene Seguranca Ai Agents
 
El cuaderno rojo
El cuaderno rojoEl cuaderno rojo
El cuaderno rojo
 
Presentacion
PresentacionPresentacion
Presentacion
 
Apps builder Detalles
Apps builder DetallesApps builder Detalles
Apps builder Detalles
 
Obstaculos Ao Desenvolvimento
Obstaculos Ao DesenvolvimentoObstaculos Ao Desenvolvimento
Obstaculos Ao Desenvolvimento
 
Gráficos engraçados
Gráficos engraçadosGráficos engraçados
Gráficos engraçados
 
Creatividad Y Proactividad
Creatividad Y ProactividadCreatividad Y Proactividad
Creatividad Y Proactividad
 
Fome
FomeFome
Fome
 

Similar a Guia 1 microcontroladores grado 11

Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersmarco calderon layme
 
Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Raphael Raphael
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del bancoAnibal Ulibarri
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricialGabriel Bravo Rojas
 
Programación del microcontrolador
Programación del microcontroladorProgramación del microcontrolador
Programación del microcontroladorJuan Gamboa P
 
Arquitectura del plc
Arquitectura del plcArquitectura del plc
Arquitectura del plcForrestMamani
 
Introducpic2
Introducpic2Introducpic2
Introducpic2conalep
 
Introducpic
IntroducpicIntroducpic
Introducpicconalep
 
Microcontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltosMicrocontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltosmarco calderon layme
 
Introducción pic 16 f 84 universidad de la marina mercante
Introducción pic 16 f 84   universidad de la marina mercanteIntroducción pic 16 f 84   universidad de la marina mercante
Introducción pic 16 f 84 universidad de la marina mercanteDaniel Remondegui
 
Taller de atención pots módulo s12
Taller de atención pots módulo s12Taller de atención pots módulo s12
Taller de atención pots módulo s12rh8854245
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxfreddymadriz
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxJose Manuel Mansilla Carrasco
 

Similar a Guia 1 microcontroladores grado 11 (20)

Microprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timersMicroprogramacion - Interrupciones y timers
Microprogramacion - Interrupciones y timers
 
Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877Descripcion detallada del pic 16 f877
Descripcion detallada del pic 16 f877
 
Práctica #2 parcial #2 registros del banco
Práctica #2 parcial #2  registros del bancoPráctica #2 parcial #2  registros del banco
Práctica #2 parcial #2 registros del banco
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
Niple diapopsitiva
Niple   diapopsitivaNiple   diapopsitiva
Niple diapopsitiva
 
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
26176947 tutorial-v-escritura-en-lcd-usando-teclado-matricial
 
Curso de pic
Curso de picCurso de pic
Curso de pic
 
Programación del microcontrolador
Programación del microcontroladorProgramación del microcontrolador
Programación del microcontrolador
 
Arquitectura del plc
Arquitectura del plcArquitectura del plc
Arquitectura del plc
 
Introducpic2
Introducpic2Introducpic2
Introducpic2
 
Introducpic
IntroducpicIntroducpic
Introducpic
 
Microcontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltosMicrocontroladores - Configuración de puertos, bucles y saltos
Microcontroladores - Configuración de puertos, bucles y saltos
 
Introducción pic 16 f 84 universidad de la marina mercante
Introducción pic 16 f 84   universidad de la marina mercanteIntroducción pic 16 f 84   universidad de la marina mercante
Introducción pic 16 f 84 universidad de la marina mercante
 
Taller de atención pots módulo s12
Taller de atención pots módulo s12Taller de atención pots módulo s12
Taller de atención pots módulo s12
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
Lab 01 micro
Lab 01 microLab 01 micro
Lab 01 micro
 
Manual tp12
Manual tp12Manual tp12
Manual tp12
 
Curso-de-PLC.pdf
Curso-de-PLC.pdfCurso-de-PLC.pdf
Curso-de-PLC.pdf
 

Más de Mauricio Diaz Garcia

Presentacion reunion 28 nov respaldo
Presentacion reunion 28 nov respaldoPresentacion reunion 28 nov respaldo
Presentacion reunion 28 nov respaldoMauricio Diaz Garcia
 
6. evidencias desarrollo pedagógico
6. evidencias  desarrollo pedagógico6. evidencias  desarrollo pedagógico
6. evidencias desarrollo pedagógicoMauricio Diaz Garcia
 
Informe por proyecto de aprendizaje
Informe por proyecto de aprendizajeInforme por proyecto de aprendizaje
Informe por proyecto de aprendizajeMauricio Diaz Garcia
 
Material 2 de consulta microcontroladores temporizar por prog
Material 2  de consulta microcontroladores temporizar por progMaterial 2  de consulta microcontroladores temporizar por prog
Material 2 de consulta microcontroladores temporizar por progMauricio Diaz Garcia
 
Material 1 de consulta microcontroladores temporizar por prog
Material 1 de consulta microcontroladores temporizar por progMaterial 1 de consulta microcontroladores temporizar por prog
Material 1 de consulta microcontroladores temporizar por progMauricio Diaz Garcia
 
TRAZADO, CORTE, CONFORMADO Y ARMADO
TRAZADO, CORTE, CONFORMADO Y ARMADOTRAZADO, CORTE, CONFORMADO Y ARMADO
TRAZADO, CORTE, CONFORMADO Y ARMADOMauricio Diaz Garcia
 
TECNICO DE MECANIZADO DE PRODUCTOS METALMECANICOS
TECNICO DE MECANIZADO DE PRODUCTOS METALMECANICOSTECNICO DE MECANIZADO DE PRODUCTOS METALMECANICOS
TECNICO DE MECANIZADO DE PRODUCTOS METALMECANICOSMauricio Diaz Garcia
 

Más de Mauricio Diaz Garcia (20)

Ccna examen 1 cap 2 y3
Ccna examen 1 cap 2 y3Ccna examen 1 cap 2 y3
Ccna examen 1 cap 2 y3
 
Presentacion reunion 28 nov respaldo
Presentacion reunion 28 nov respaldoPresentacion reunion 28 nov respaldo
Presentacion reunion 28 nov respaldo
 
Mecanica
MecanicaMecanica
Mecanica
 
6. evidencias desarrollo pedagógico
6. evidencias  desarrollo pedagógico6. evidencias  desarrollo pedagógico
6. evidencias desarrollo pedagógico
 
Area industrial[1]
Area industrial[1]Area industrial[1]
Area industrial[1]
 
Fotos control electrico
Fotos control electricoFotos control electrico
Fotos control electrico
 
Lista de chequeo electricidad
Lista de chequeo electricidadLista de chequeo electricidad
Lista de chequeo electricidad
 
Evaluacion sena2
Evaluacion sena2Evaluacion sena2
Evaluacion sena2
 
Riesgo electric opps
Riesgo electric oppsRiesgo electric opps
Riesgo electric opps
 
Guia 1 logica cableada
Guia 1 logica cableadaGuia 1 logica cableada
Guia 1 logica cableada
 
93514 instalaciones-electricas
93514 instalaciones-electricas93514 instalaciones-electricas
93514 instalaciones-electricas
 
Guia 1 electricidad
Guia 1 electricidadGuia 1 electricidad
Guia 1 electricidad
 
Guia 1 electricidad
Guia 1 electricidadGuia 1 electricidad
Guia 1 electricidad
 
Informe por proyecto de aprendizaje
Informe por proyecto de aprendizajeInforme por proyecto de aprendizaje
Informe por proyecto de aprendizaje
 
Material 2 de consulta microcontroladores temporizar por prog
Material 2  de consulta microcontroladores temporizar por progMaterial 2  de consulta microcontroladores temporizar por prog
Material 2 de consulta microcontroladores temporizar por prog
 
Material 1 de consulta microcontroladores temporizar por prog
Material 1 de consulta microcontroladores temporizar por progMaterial 1 de consulta microcontroladores temporizar por prog
Material 1 de consulta microcontroladores temporizar por prog
 
Taller electricidad
Taller electricidadTaller electricidad
Taller electricidad
 
Taller electronica itiz
Taller electronica itizTaller electronica itiz
Taller electronica itiz
 
TRAZADO, CORTE, CONFORMADO Y ARMADO
TRAZADO, CORTE, CONFORMADO Y ARMADOTRAZADO, CORTE, CONFORMADO Y ARMADO
TRAZADO, CORTE, CONFORMADO Y ARMADO
 
TECNICO DE MECANIZADO DE PRODUCTOS METALMECANICOS
TECNICO DE MECANIZADO DE PRODUCTOS METALMECANICOSTECNICO DE MECANIZADO DE PRODUCTOS METALMECANICOS
TECNICO DE MECANIZADO DE PRODUCTOS METALMECANICOS
 

Guia 1 microcontroladores grado 11

  • 1. 1. IDENTIFICACIÓN DE LA GUÍA DE APRENDIZAJE <br />Nombre del Proyecto: MEJORAMIENTO DE INSTALACIONES Y MAQUINARIA ELÉCTRICA DEL COLEGIO APLICANDO LA NORMATIVIDAD VIGENTE.(Duración en horas)Número de horas3960Fase del Proyecto: PLANEACIÓN(Duración en horas)264Código de la Guía290201083Nombre de la Actividad:Mejorar el funcionamiento de máquinas y procesosbuscando su eficiencia y productividad(Lógica cableada y programable)Equipo EjecutorMAURICIO DIAZ GARCIAResultados de Aprendizaje29020108301Esquematizar e implementar a su alcance el problema planteado.29020108302Recopilar la información de acuerdo a la solución adoptada delautomatismo requerido como análisis de componentes: mecánicos,eléctricos, de control, proveedores y costos29020108303Presentar alternativas de solución que respondan en su totalidad concada una de las funciones del automatismo29020108304Valorar alternativas económicas del estudio preliminar de acuerdo a lasolución adoptada29020108305Definir detalladamente la estructura del automatismo de acuerdo a lametodología establecida29020108306Seleccionar los sensores, actuadores y controladores requeridos para lasolución del problema.29020108307Aplicar normas de seguridad vigentes para la alternativa de soluciónCódigo del resultado + consecutivo 1083-01<br />2. INTRODUCCIÓN<br />La guía de aprendizaje contiene la información necesaria para programar un Microcontrolador, las herramientas requeridas de hardware y software. Y la implementación de sistemas de control basado en microcontroladores. Se abordan los siguientes temas:Descripción de un Microcontrolador.Manejo del software Mplab para generar código Asembler y lenguaje de máquina.El ejercicio propuesto genera destrezas en la programación de procesos de control, donde los pequeños microswich pueden ser reemplazados por diversos tipos de sensores, y las salidas por sistemas de potencia. De esta forma tenemos un Control Lógico Programable (PLC) construido y programado con bajo presupuesto, y alto contenido didáctico.<br />3. CONOCIMIENTOS PREVIOS<br />c-108301Normatividad técnica y legalc-108302Interpretación de planos y catálogosc-108303Conocimientos de inglésc-108304Usos de medios de información, internetc-108305Manejo de manuales técnicosc-108306Sistemas informáticosc-108307Fundamentos de mecánica, electrotecniac-108308Neumática, hidráulica, electrónica y sensoresc-108309Equipos y programas para control de procesosc-108310Principios de sistemas automáticos de controlc-108311Elaboración de planos.c-108312Controles lógicos programables.c-108313Normalización: simbología estandarizadac-108314Normas de seguridad industrial.<br />4. MATERIAL DE CONSULTA<br />Estructura curricular cód.: 832223<br />Internet: www.cdachiaindustrial.blogspot.com<br /> http://micropic.galeon.com http://www.ithinkweb.com.mx/capacita/algoritmo.html http://www.ate.uniovi.es/fernando/Doc2006/Sed_06/Presentaciones/Programacion%20en%20ensamblador.pdf<br />Tutorial Microcontrolador PIC.<br />Referencia PIC 16f84, por ser de uso más común entre los estudiantes. <br />El primer paso importante es ver el diagrama de pines del PIC16F84, en el cual se observa cómo están distribuidos sus pines. Este circuito integrado cuenta con 2 puertos configurables como entradas o salidas según sea el caso y consta de 18 pines los cuales se encuentran asignados de la siguiente manera:<br />   <br />Pin 1: -----------RA2  Pin 2: -----------RA3  Pin 3: -----------RA4/TOCKI  Pin 4:------------Reset   Pin 5:------------Tierra (GND)   Pin 6:------------RB0/INT   Pin 7:------------RB1   Pin 8:-------------RB2   Pin 9:------------RB3   Pin 10:----------RB4   Pin 11:----------RB5   Pin 12:----------RB6   Pin 13:----------RB7  Pin 14:----------Vcc  Pin 15:----------Osc2   Pin 16:----------Osc1  Pin 17:----------RA0   Pin18:-----------RA1      <br />           El puerto A está denotado por el color Azul oscuro, el cual tiene sólo cinco pines que puedes configurar como entrada o salida. La pata 3, o sea, RA4/TOCKI puede ser configurado a su vez como entrada/salida o como temporizador/contador. Cuando es salida se comporta como colector abierto, por lo tanto debemos poner una resistencia Pull-up a Vcc de 1 Kohm. Cuando es configurada como entrada, funciona como disparador Schmitt Trigger por lo que puede reconocer señales con un poco de distorsión.<br />  <br />    El puerto B está denotado por el color anaranjado, y tiene ocho pines que igualmente se pueden configurar como entrada o salida. Los pines 15 y 16 son únicamente para el oscilador externo el cual estudiaremos con más detalle más adelante. El pin 4, o sea, el Reset se debe conectar con una resistencia de 10 Kohm a Vcc para que el Pic funcione, si lo queremos resetear entonces pondremos un micropulsador con una resistencia de 100 Ohm a tierra.<br />   <br />    La máxima capacidad de corriente para los puertos se muestra en la siguiente tabla:   <br /> PUERTO APUERTO BMODO SUMIDERO 80 mA 150 mA MODO FUENTE 50 mA 100 mA <br />      Por último tenemos los pines 14 y 5 que son la alimentación la cual no debe sobrepasar los 5 Voltios. <br />        Oscilador Externo: <br />    Es necesario para que nuestro PIC pueda funcionar, puede ser conectado de cuatro maneras diferentes. En la siguiente tabla encontraras los diagramas necesarios para su conexión y una breve descripción de cada uno.   <br />XT  Oscilador compuesto por un cristal y dos condensadores.    RC    Oscilador compuesto por una resistencia y un condensador.      HS Oscilador compuesto por un cristal de alta velocidad.LPOscilador compuesto por un cristal de baja frecuencia y bajo consumo de potencia. <br />      El siguiente paso importante para tener claro como debemos empezar a programar es conocer la tabla de registros. Esta tabla está dividida en dos partes llamadas BANCO 0 y Banco 1. Nos debemos interesar momentáneamente en: STATUS, PORTA, PORTB, TRISA y TRISB. <br />    Para que nuestro PIC pueda trabajar debemos configurar sus puertos como entrada o como salida según sea el caso,  si le asignamos un CERO(0) a un pin éste será SALIDA y si asignamos un UNO (1) éste será ENTRADA. <br />    Esta asignación de pines se hace programando los registros TRISA y TRIS B. <br />    TRISA es el registro donde se almacenan los bits que asignan un pin como entrada o salida del PUERTO A. Recordemos que el puerto A sólo tiene 5 pines, por lo tanto un ejemplo de esto sería: <br />    Si TRISA (puerto A) es igual a  19 (11001) entonces esto se leería,<br />TRISA ASIGNACIÓN ESTADO RA01ENTRADA RA10SALIDA RA20SALIDA RA31ENTRADA RA41ENTRADA <br />      El bit menos significativo se asigna desde RA0. <br />    Si TRISB (puerto B) es igual a 32 (00110010), entonces esto se leería,   <br />TRISA ASIGNACIÓN ESTADO RA00SALIDARA11ENTRADA RA20SALIDARA30SALIDA RA41ENTRADA RA51ENTRADA RA60SALIDA RA70SALIDA <br />    NOTA: Todos los valores mencionados y que se mencionarán, están expresados en valores hexagesimales. <br />            En la siguiente parte, comenzaremos a programar el PIC y sabremos como ingresar estos valores en el TRIS A o TRIS B según sea el caso. <br />Tutorial Microcontrolador PIC.<br />Segunda parte.<br /> <br />         Para comenzar a trabajar con el programa MPLAB debemos simplemente abrir un nuevo archivo en la ventana File opción New como muestra la imagen 1. <br />                Nota: El MPlab es un programa, no es inteligente y no sabe que hacer por si solo. Es mas, les debemos dar las ordenes una a una y muy bien explicadas para que este las entienda. Estas ordenes estarán acompañadas por parámetros que le dirán a la máquina como se realizará esa tarea. De otra manera, esta no se ejecutará. <br />Fig. 1. Iniciando un nuevo programa.<br />        A continuación analizaremos las siguientes líneas:   list    p=16f84  #include     p16f84.inc <br />port_a         equ     5 port_b         equ     6 trisb             equ     86 trisa             equ     85 estado         equ     3 <br />valor1         equ        0C valor2        equ         0D <br /> clrf             estado  clrf             port_a  bsf             estado,5             ;selección del banco 1  movlw       0x19  movwf       port_a  clrf            port_b  movlw       0x32  movwf       port_b  bcf            estado,5            ;selecciona el banco 0  clrf            port_a  clrf            port_b <br />Antes de analizar estas líneas debemos tener en claro los siguiente: <br /> para mantener un orden, se presionar la tecla TAB entre la instrucción y el parametro <br />  <br />        El símbolo de Punto y Coma quot; ; quot; indica el comienzo de un comentario, sirve para ubicarse mejor en el avance del programa y luego encontrar mas rápidamente una línea o bloque determinado.   Todo lo que siga a un quot; ; quot; no generará código hexagesimal en nuestro proyecto.    En pocas palabras, lo que siga al quot; ; quot; no influye en el programa.<br />Primero debemos especificar con que microcontrolador estamos trabajando, en las dos primeras líneas especificamos que vamos a trabajar con el PIC 16F84. <br />Luego definimos la posición en memoria de nuestros registros, el mapa de memoria lo presento en la figura 2: <br />Figura 2: Mapa de memoria del PIC 16f84.<br /> Para comenzar destacaremos los registros: <br />PORTA           posición 05hPORTB           posición 06hTRISA             posición 85hTRISB             posición 86hSTATUS         posición 03h<br />El registro STATUS que en este caso le hemos llamado quot; estadoquot; se compone de la siguiente forma:<br />  <br />76543210IRP RP1 RP0 TO PD Z DC C <br />            Si en la casilla 5 (RP0) del registro STATUS hay un CERO entonces estamos en el BANCO 0. <br />            Si en la casilla 5 (RP0) del registro STATUS hay un UNO entonces estamos en el BANCO 1.        Desde la tercera a la séptima línea definimos los nombres de nuestros registros, en el caso del Puerto A lo llamamos port_a - es importante que siempre que nos queramos referir al Puerto A lo hagamos en minúsculas, ya que aquí lo definimos así (PORT_A port_a) si en un principio se define con mayúsculas, siempre nos tendremos que referir a este con mayúsculas - <br />    Otro ejemplo, si en la tercera línea en lugar de quot; port_a equ 5quot; colocamos quot; hola equ 5quot; cada vez que queramos referirnos al Puerto A debemos hacerlo como quot; holaquot; . <br />        En la octava y novena línea, definimos nuestro registros personales, los que vamos a ocupar en nuetro programa, según el mapa de memoria este comienza en la posición 0Ch. <br />    NOTA: Recuerden que todos los valores mencionados y que se mencionarán, están expresados en valores hexagesimales. <br />            El siguiente paso es definir los pines de entrada y salida, recordemos el último bloque de nuestro programa: <br />clrf             estado                ; limpiar el registro estado clrf             port_a                ; limpiar el puerto a bsf             estado,5             ; selección del banco 1<br />Nota: La instrucción BSF (Bit Set f) carga un 1 en el registro (en este caso el registro estado) en el bit (en este caso el 5), como vimos anteriormente el registro estado al tener un 1 en el 5to bit, entonces estamos trabajando en el banco 1, esto para poder definir los pines de entrada o salida del micro. <br />movlw       0x19                   ;cargo un 11001 en el acumulador movwf       port_a                ; muevo el contenido del acumulador                                            ;al puerto a, defino los pines 0, 1 y 4                                            ;como entrada y 2 y 3 como salida<br />Nota: El método para definir los pines del puerto b es exactamente el mismo <br />clrf            port_b                ;limpiar el puerto b movlw       0x32                  ;cargo un 00110010 al acumulador movwf       port_b               ;defino los pines 1, 4 y 5 como entrada y                                            ;los 0, 2, 3, 6 y 7 como salida bcf            estado,5             ;selecciona el banco 0 clrf            port_a                ; limpiar el puerto a clrf            port_b               ;limpiar el puerto b<br />             En la siguiente parte, haremos un pequeño programa demostrativo y veremos cómo detectar errores y simularlo.<br />Tutorial Microcontrolador PIC.<br />Tercera parte.<br />       En la parte anterior vimos como inicializar un PIC, ahora, usando esa información haremos un pequeño programa el cual solo encenderá un LED según el interruptor que se presione. <br />        Lo primero es visualizar lo que queremos,  (ordenar nuestro pines de entrada y salida por ejemplo) y según eso empezar a trabajar. <br />Figura 3: Circuito a implementar.<br />Según el circuito anterior, vemos que el puerto A lo usaremos como entrada y el puerto B como salida, a los cuales hemos conectado LED'S para poder ver los resultados. <br />El puerto A está conectado directamente a la alimentación con lo cual sabemos que normalmente tiene una entrada de +5 V ( 1 lógico) y al activarse el interruptor tendremos un 0 lógico. <br />Nota: Es muy importante que todos los pines de entrada queden bien definidos si están en un nivel alto o bajo por que de lo contrario el PIC entrará en un estado de incertidumbre y no trabajará de manera correcta.   Los pines de salida, no es necesario que se conecten si no los vamos a usar.   <br />Comenzando con el programa.<br />Como vimos anteriormente, para abrir una nueva ventana de programación pinchamos en la ventana FILE y le damos a la opción NEW, luego debemos inicializar nuestro PIC, en este caso será:   <br />; ****************************************   ; *   Ejemplo tutorial PIC                                     *    ; *  Este programa enciende un led dependiendo *    ; *  de que interruptor sea activado                      *    ; ****************************************         list                   p=16f84         #include p16f84.incport_a               equ 5    port_b              equ 6    trisb                  equ 86    trisa                  equ 85    retard               equ 11              ;RETARDO    estado              equ 3     clrf                  estado     clrf                  port_a     bsf                  estado,5             ;selección del banco 1     movlw             0x1f     movwf             port_a               ;define RA0 como entrada     clrf                  port_b     movlw             0x00     movwf            port_b               ;define puerto B como salida     bcf                  estado,5     clrf                  port_a     clrf                  port_b     <br />  Luego podemos hacer que vaya preguntando a cada pin de entrada, recordemos que según nuestro circuito los pines están normalmente en un nivel alto, y en nuestro caso si este esta en un nivel alto hacemos que testee el siguiente, de lo contrario lo mandamos a un subrutina donde encendemos el LED correspondiente. <br />Para esto usamos la instrucción btfss (Bit Test F, Skip if Set), es decir, testea el bit f y salta (skip) si esta en un nivel alto (set), el salto se refiere a que la siguiente instrucción no la considera y salta hasta la subsiguiente. <br />Al empezar un programa, marcamos el inicio de un bloque, en este caso lo llamaremos quot; inicioquot; . <br />  inicio   btfss     port_a,0 ;si el bit 0 del puerto a esta en nivel alto se salta una instrucción                call        enci0                call        retardo                btfss     port_a,1 ;si el bit 1 del puerto a esta en nivel alto se salta una instrucción                call        enci1                call        retardo                btfss     port_a,2 ;si el bit 2 del puerto a esta en nivel alto se salta una instrucción                call        enci2                call        retardo                btfss      port_a,3 ;si el bit 3 del puerto a esta en nivel alto se salta una instrucción                call        enci3                call        retardo                btfss      port_a,4 ;si el bit 4 del puerto a esta en nivel alto se salta una instrucción                call        enci4                call        retardo                goto      inicio<br />En la primera línea, como dice el comentario adjunto, testea el bit 0 del puerto a, si este esta en un nivel alto entonces el programa se salta una instrucción llegando a la instrucción call (llamar) la cual llama  a una subrrutina llamada retardo, de lo contrario, si está en un nivel bajo el programa considera la siguiente instrucción y ejecuta la instrucción call    enci0, en la cual se activa el pin 0 del puerto b que es el puerto se salida.  El resto del programa:<br />enci0    movlw    0x00                movwf    port_b                call         retar2                movlw    B'01'                movwf    port_b                return    enci1    movlw     0x00                movwf    port_b                call         retar2                movlw    B'10'                movwf    port_b                return    enci2    movlw    0x00                movwf   port_b                call         retar2                movlw   B'100'                movwf   port_b                return    enci3    movlw     0x00                movwf    port_b                call         retar2                movlw    B'1000'                movwf   port_b                return    enci4    movlw   0x00                movwf   port_b                call         retar2                movlw    B'10000'                movwf    port_b                return   retardo movlw    0x96                movwf    retard    reta3   decfsz      retard,1                goto       reta3                return     endEn la primera línea lo que hacemos es cargar un cero en el acumulador: movlw 0x00 (MOVe Literal to W) y luego la información que tiene el acumulador (W) la movemos la puerto b: movwf port_b (MOVe W to F), con esto nos aseguramos que todos los LED's del puerto b están apagados.En la tercera línea llamamos un retardo, lo cual siempre es bueno hacer para evitar que el pic colapse, este retardo esta casi al final del programa y el mecanismo de trabajo es muy parecido al anterior:<br />Mover el literal 96 (Hexadecimal) en el acumulador,  es cargar un 96 en el acumulador. <br />Mover el contenido del acumulador al registro retard, el cual fue definido al comienzo de programa y ubicado en la posición 11 en la memoria del pic, ahora el registro retard tiene cargado un 96. <br />Decrementar en una unidad el registro retard y el valor resultante se guarda en el mismo registro y cuando el valor de este sea cero, saltar una línea en el programa, con lo cual caerá en la instrucción return con lo cual vuelve a la posición desde donde se llamo a la subrutina.   decfsz      f,d (DECrement F, Skip if Zero) (decrementa el registro indicado y salta si es cero) si el valor de quot; dquot; es cero entonces el resultado se guarda en el acumulador, si este valor en cambio es uno entonces el valor se almacena en el mismo registro. <br />Luego va al bloque de nombre quot; reta 3quot; con lo cual se volverá a decrementar el registro, esto lo hará durante 96 veces hexadecimales, es decir, 150 veces.  <br />Al volver a la  4ta línea de este bloque movlw  B'01' hacemos algo muy parecido al paso anterior, sólo que ahora cargo un 1 binario en el acumulador y luego movemos esta información al puerto b, con lo cual tendremos en la salida del puerto b un 00001 considerando que se cuenta desde RB4 hasta RB0 por lo tanto se enciende el LED correspondiente al pin 0 del puerto b.<br />        De esto deducimos que si queremos encender por ejemplo el pin 3 del puerto b, debemos cargar el acumulador con un B'1000' para luego pasar esta información al puerto b. <br />        Otra alternativa seria: movlw   0x08 ya que 08h = 1000b. <br />Finalmente debemos guardar este programa, para esto pinchamos en la opcion File y luego en Save As y elegimos el directorio y un nombre, en este caso le pondremos ejemplo.asm <br />                                                              Figura 4 <br />        En la siguiente parte veremos como compilar este programa y detectar los errores de programación.   <br />Tutorial Microcontrolador PIC.<br />Cuarta parte.<br />En la parte anterior hicimos un programa el cual prende un LED según el interruptor que se activa.  Ahora vamos a compilar este programa en lengua hexa el que finalmente cargaremos en el PIC. <br />Lo primero es pinchar en el menú en la opción project y luego en new project, como indica la img: <br /> El siguiente paso es darle un nombre al proyecto, se recomienda darle el mismo nombre que al archivo en assembler, en este caso ejemplo.pjt. <br />Una vez echo esto, aparece la siguiente ventana: <br />En la parte de abajo, donde dice Project Files pinchamos la opción ejemplo [.hex] al hacer esto se activa la opción Node Properties que esta abajo a la derecha, debemos pinchar esta y se abre la siguiente ventana: <br />  En esta sección, debemos dejar las cosas por defecto (es lo mejor) y simplemente pinchar en OK. Luego volveremos a la ventana anterior solo que ahora se activó la opción Add Node algunas>opciones mas arriba de la ultima que pinchamos, por supuesto elegimos esta y>abre <br />Pinchamos en la opción Browse que esta a la derecha y buscamos en el directorio el programa original, en este caso ejemplo.asm y luego en OK, con esto estamos relacionando un archivo de assembler con el proyecto en hexa. Y finalmente volvemos a la primera pantalla y le damos al OK que esta en la parte superior. A continuación debemos verificar que no haya errores para eso vamos nuevamente a la opción project y veremos que hay nuevas opción que antes no estaban disponibles, elegimos Build All, y si todo esta correcto aparecerá una pantalla como esta: <br />Donde en la parte final podemos leer: Build completed successfully. <br />En caso de haber algún error, podemos hacer doble clic en el mensaje de error y este nos enviará directamente a esta línea. <br />5. EVIDENCIAS Y EVALUACION<br />EVIDENCIA:Tipo de Evidencia:DesempeñoxConocimientoxProductoxResultados de aprendizaje asociados a la evidencia:FECHA:____________________________________, INSTRUCTOR: MAURICIO DIAZ GARCIAMATERIAL DE CONSULTA: http://micropic.galeon.com http://www.ithinkweb.com.mx/capacita/algoritmo.htmlhttp://www.ate.uniovi.es/fernando/Doc2006/Sed_06/Presentaciones/Programacion%20en%20ensamblador.pdfPIC 16F84A COMO INTERRUPTORESQUEMA DEL CIRCUITO APRENDICES: GRUPO _______________________________________________________________________________________________________________________________________________________________________MATERIALES:HERRAMIENTAS:DESCRIPCION FUNCIONAL DEL CIRCUITO:PSEUDOCODIGODIAGRAMA DE FLUJOCODIGO FUENTEDescripción:Programación de un MicrocontroladorProducto entregable:Circuito funcional, Pseudocódigo, Diagrama de flujo y Código fuenteForma de entrega:Formato informe indicado.Criterios de Evaluación:• Esquematiza e implementa a su alcance el problema planteado.• Recopila la información de acuerdo a la solución adoptada del automatismo requerido como análisis de componentes: mecánicos, eléctricos, de control, proveedores y costos.• Presenta alternativas de solución que respondan en su totalidad con cada una de lasfunciones del automatismo• Valora alternativas económicas del estudio preliminar de acuerdo a la solución adoptada• Define detalladamente la estructura del automatismo de acuerdo a la metodología establecida.• Selecciona los sensores, actuadores y controladores requeridos para la solución del problema.• Aplica normas de seguridad vigentes para la alternativa de solución. Instrumento de Evaluación:TipoCódigoCuestionarioxLista ChequeoxLista de VerificaciónOtro:<br />