monografia (proyecto pic16f84a)

Upload: yami

Post on 14-Feb-2018

248 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    1/34

    1

    HONOR LEATAD SACRIFICIO

    Presentado por:Urbina Salazar Manuel.

    Alvarado Valenzuela Luis Jess.

    Garca Miranda Herix Yamileth.

    Catedrtico:Lic. En Informtica Marco Tulio Serrato.

    III Parcial del Segundo Trimestre de Programacin.

    Proyecto:Tacmetro o Contador De Revolucin Por minuto.

    UNIVERSIDAD DEFENZA DE HONDURASFACULTAD DE CIENCIAS TECNOLOGICAS

    PROYECTO PARCIAL

    HONDURAS

    2014

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    2/34

    2

    INDICE

    1.Introduccin ............................................................................................................................... 3

    2. Planteamiento del problema. .................................................................................................. 4

    3. Objetivos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!..6

    3.1 Objetivo general!.. .........................................................................................!!!!6

    3.2 Objetivos especficos ..................................................................................................... 6

    4. Justificacin. .............................................................................................................................. 7

    5. Marco terico. ........................................................................................................................... 8

    6.Desarrollo del problema!!!!!!!!!!!!!!!!!!!!!!!!!!!!!...15

    7. Conclusiones!!!!!!!!!!!!!!!!!!!!!!!!!!!!!... !!!..24

    8. Recomendaciones!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!25

    9. Anexos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!..................26

    10. Bibliografa!!!!!!!!!!!!!!!!!!!!!!!!!!!!!..!!!!!34

    10. Bibliografa ............................................................................................................................ 34

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    3/34

    3

    1. Introduccin

    El presente proyecto, con el objetivo de conocer, aprender y utilizar uno de los micro

    controladores ms utilizados en el mbito educativo, en las diferentes carreras de la

    facultad de Ciencias Tecnolgicas, hacemos uso de la variedad de informacin

    obtenida por nuestro catedrtico, poniendo en prctica sus valiosos conocimientos,

    llamndose as Tacmetro o Contador de revoluciones, utilizamos un Microcontralador

    PIC 16F84A para determinar la cantidad de revoluciones a la que gira un motor de

    corriente directa sus recuentos. Quedando en nosotros la satisfaccin del saber, y as

    incrementar las curiosidades que nos inquietan al avance del estudio de nuestra carrera

    universitaria.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    4/34

    4

    2. Planteamiento del problema.

    TACOMETRO O CONTADOR DE REVOLUCIONES: PLANTEAMIENTO DEL

    PROBLEMA

    Crear y programar un contador de revoluciones por minuto con el micro-controladorPIC16F84A,usando los siguientes componentes disponibles en el laboratorio:

    Componentes Electrnicos (Hardware)

    1x Microcontrolador PIC 16F84A.

    1x Fuente de Voltaje ROKA de 5V.

    2x Capacitores de 33 picos

    1x Oscilador de cristal de 4Mhz

    2x Resistencias de 200 Ohm

    1x Emisor de infrarrojo

    1x Receptor Fotosensible

    2x Protoboards

    1x Servo Motor

    1x Modulo 60O 4000-1S (Display de 7 segmentos)

    20x Jumpers

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    5/34

    5

    Software:

    Gpsim

    Gpasm

    Modular IDE

    En nuestro transcurso de periodo , de La Programacin ,fundamentada a aprender a

    utilizar el lenguaje en mquina que corresponde al manejo de instrucciones que con

    llevan a la familia de los microcontroladores y que fue la importancia absoluta en el

    periodo, y con la dicha de tener un catedrtico el cual su objetivo es orientarnos al

    conocimiento de programacin orientada al hardware, finalizando nuestro periodo, nos

    enfocamos en la familia PIC , En el cual tuvimos la necesidad de utilizar el

    microcontrolador PIC 16f84a para realizar y desarrollar un circuito que nos permitacalcular las revoluciones por minuto (RPM) de un motor de corriente directa por medio

    de un sensor infrarrojo Utilizando el lenguaje Assembler.

    Al paso del desarrollo del proyecto, nos encontramos con diversos problemas tanto de

    hardware y software, uno de ellos, en el campo de software, es el manejo de las

    interrupciones internas, una de las dificultades fue la conversin de binario a BCD; en

    Hardware la falta de conocimientos electrnicos, y as muchas de ellas en el transcurso

    de la elaboracin del proyecto. No obstante a las anteriores dificultades, se ha idoavanzando paulatinamente, al grado que el proyecto esta prcticamente finalizado, de

    manera exitosa.

    .

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    6/34

    6

    3. Objetivos.

    3.1 Objetivo general

    Aplicar los conocimientos adquiridos durante el curso de programacin, para realizar un

    proyecto final de trimestre, en nuestro caso un tacmetro o contador de revolucionesutilizando el micro controlador pic 16f84A. A su vez realizarlo sobre un protoboard y

    probarlo atreves de una plataforma de trabajo.

    3.2 Objetivos especficos

    Visualizar la velocidad o revolucin del motor en los Displays de 7

    segmentos.

    Aprender a manejar las interrupciones del Pic 16F84A.

    Aprender el uso del lenguaje Assembler y sus caractersticas.

    Aprender el uso de los dispositivos infrarrojos.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    7/34

    7

    4. Justificacin.La principal justificacin, del catedrtico hacia nosotros, en su labor a asignarnos un

    proyecto es obtener un mayor alcance al conocimiento del lenguaje de mquina,

    Asembler, sus 35 instrucciones, A razn de aumentar nuestra lgica

    programacional.

    As como tambin el Funcionamiento del Microcontralador PIC 16F84A.

    Sus caractersticas, controlar perifricos, implementando los fundamentos adquiridos en

    el curso.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    8/34

    8

    .

    5. Marco terico.

    Los PIC son una familia de microcontroloadores Tipo RISC o CISC fabricados por

    MICROCHIP TECHNOLOGY INC. Originalmente desarrollado por la divisin

    microelectrnica de General instrument.

    El nombre actual no es un acrnimo, En realidad el nombre completo es PICMICRO,

    aunque generalmente se utiliza como peripheral Interface controller (controlador

    interfaz perifrico).

    En 1985 microelectrnica de General instrument. Se separa como compaa

    independiente que es incorporada como Filial el 14 de diciembre de 1987 cambia el

    nombre a MICROCHIP TECHNOLOGY. El pic sin embargo mejoro con EEPROM para

    conseguir un control de canal programable. Hoy en da multitud de pics vienen con

    perifricos incluidos (mdulos de comunicacin de serie, UARTS, ncleos de control de

    motores,etc) y con memoria de programa de 512 a 32000 palabras (una palabra

    corresponde a una instruccin del lenguaje ensamblador y puede ser de 12,14,16, o 32

    bits) Dependiendo de la familia del PICMICRO.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    9/34

    9

    LENGUAJE ENSAMBLADOR

    El nico lenguaje que entienden los microcontroladores es el cdigo

    Mquina formada por ceros (0) y unos (1) del sistema binario.

    El lenguaje ensamblador expresa las instrucciones de una forma ms

    Natural al hombre a la vez que muy cercana al microcontrolador, ya que cada

    Una de esas instrucciones se corresponde con otra en cdigo mquina.

    El lenguaje ensamblador trabaja con nemnicos, que son grupos de

    Caracteres alfanumricos que simbolizan las rdenes o tareas a realizar.

    La traduccin de los nemnicos a cdigo mquina entendible por el

    Microcontrolador la lleva a cabo un programa ensamblador.

    El programa escrito en lenguaje ensamblador se denomina cdigo fuente

    (*.asm). El programa ensamblador proporciona a partir de este fichero el

    Correspondiente cdigo mquina, que suele tener la extensin *.hex.

    El cdigo Fuente est compuesto por una sucesin de lneas de texto.

    Cada lnea puede estructurarse en hasta cuatro campos o columnas

    Separados por uno o ms espacios o tabulaciones entre s.

    -Campo de etiquetas. Expresiones alfanumricas escogidas por el

    Usuario para identificar una determinada lnea. Todas las etiquetas

    Tienen asignado el valor de la posicin de memoria en la que se encuentra

    el cdigo al que acompaan.

    -Campo de cdigo. Corresponde al nemnico de una instruccin, de una

    Directiva o de una llamada a macro.

    -Campo de operando y datos. Contiene los operando que precisa elNemnico utilizado. Segn el cdigo, puede haber dos, uno o ningn operando.

    -Campo de comentarios. Dentro de una lnea, todo lo que se encuentre

    a continuacin de un punto y coma (;) ser ignorado por el programa Ensamblador

    y considerado como comentario.

    Consta de 35 instrucciones:

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    10/34

    10

    N. Nemonicos Operandos Descripccion CiclosdeReloj

    Influencia delos flagsC;DC;Z

    InstruccionesOrientadas Bytes

    1 addwf f D,sumar W y f 1 C 1 C

    2 Andwf d D y lgica entre w y f 1 z

    3 clrf f d Y lgica entre W y f 1 z

    4 Clrf f Limpiar f 1 z

    5 clrw Limpiar w 1 Z

    6 Comf f,d Complementar f 1 z

    7 Decf f,d Dcrementar f 1 Z

    8 decfsz Decrementar f, saltar si

    0

    1(2) Z

    9 Incf f,d Incrementar f 1 Z

    10 Infc f,d Incrementar f,saltar si(0)

    1(2)

    11 Iorf f,d O inclusiva entre W y F 1 Z

    12 Mov f,d Mover f 1 Z

    13 movwf Mover w hacia f 1

    14 nop Ninguna operacin 1

    15 Rlf f, d Rotar f ala izqda., conacrr.

    1 C

    16 Rrf f,d Rotar f a la dcha., con

    acrr.

    1 C

    17 Subvwf f,d Restar w de f 1 C,DC,Z

    18 Swapf f,d Intercambiar nibbles enf

    1

    19 Xorwf f,d O exclusiva entre w y f 1 z

    Instruccionesorientadas a bits

    20 Bcf f,b Limpiar el bit b de f 1

    21 Bsf f,b Poner a 1 el bit b de f 1

    22 Btfsc f,b Verificar el bit b de f,saltar si b=0

    1(2)

    23 Btfss f,b Verificar el bit b de f,saltar si b=1

    1(2)

    Instrucciones conliterales y de control

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    11/34

    11

    24 Addlw k Sumar literal y w 1

    25 Andwl k Y lgica entre literal y w 1

    26 Call k Llamar a subrutina 2

    27 Clrwdt - Limpiar temporizadorwatchdog

    1

    28 Goto k Ir a la direccin 2

    29 Iorlw k O inclusiva entre literaly w

    1

    30 Movlw k Mover literal hacia w 1

    31 Retfie k Retornar de lainterrupcin

    2

    32 retlw Retornar con la literal w 2

    33 Return - Retornar de lasubrutina

    2

    34 Sleep - Ponerse en modostandby

    1

    35 Sublw k Restar w de literal 1

    35 xorlw O exclusiva entre literaly

    1

    PIC 16F84A es un microcontrolador de microchip technology fabricado en tecnologaCMOS, su consumo de potencia es muy bajo y adems es completamente esttico ,esto quiere decir que el reloj puede detenerse y los datos de la memoria no se pierden.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    12/34

    12

    Organizacin de la Memoria del Microcontrolador PIC 16f84a:

    On chip

    Memoria de datos

    Memoria del programa

    Memoria de pila

    Memoria eeprom

    rea de programa flash

    rea de memoria para la palabra configuracin

    Memoria de datos RAM

    rea de memoria de pila

    Diagrama de Bloque:

    Unidad aritmtica

    Registro de trabajo

    Registro de estatus

    Puerto A y puerto B

    Temporizador de 8 bits

    Temporizador Watchdog

    El PIC 16F84Adispone de un TIMERprincipal denominado Timer0 o TMR0que es un

    contador ascendente de 8 bits el TMR0 se inicializa con un valor que se incrementa con

    cada impulso de entrada hasta su valor mximo b11111111 con el siguiente impulso

    de entrada en contador se desborda pasando a valer b00000000, circunstancia que seadvierte mediante la activacin del flag de fin de contaje T01F localizado en el registro

    INTCON.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    13/34

    13

    TIMR0 COMO CONTADOR:

    Cuando el TMR0 trabaja como contador se le introducen los impulsos desde el exterior

    por el pin de RA/T0CK1 (TMR0 external clock imput) su misin es contar el nmero de

    acontecimientos externos representados por los impulsos que se aplican al pin T0CK1.

    El tipo de flanco activo se elige mediante el bit T0SE del registro OPTION:

    Si T0SE = 1, el flanco activo es descendente.

    Si T0SE= 0, el flanco activo es ascendente.

    TMR0 COMO TEMPORIZADOR:

    Cuando TMR0 trabaja como temporizador cuenta los impulsos de fosc/4. Se usa para

    determinar los intervalos de tiempo concretos. Estos impulsos tienen una pulsacin

    conocida de un ciclo de mquina que es 4 veces el periodo de seal de reloj. Para una

    frecuencia de reloj igual a 4mhz el TMR0 se incrementa cada psi talk coo se calcula

    atrs.

    Como se trata de contador ascendente el TMR0debe ser cargado con el valor de los

    impulsos que se desean contar restados de 256 que es el valor de desbordamiento. Por

    ejemplo, para contar 4 nuevos impulsos, se carga al TMR0con 256-4=252: Numero de pulsos a contar.4=b00000100,

    Numero a 256-4=252=b11111100,

    Incremento a cada ciclo de instruccin: b11111100, b11111101,

    b11111110, b11111111, aqu se desborda pasando a b0000000, y

    activacin el flag T0IF.

    De esta manera, con la llegada de 4 impulsos, el TIMER se ha desbordado

    alcanzando el valor b00000000 que determina el tiempo de temporizacin,

    en este caso 4ps si los impulsos se hubieran aplicado cada microsegundo.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    14/34

    14

    EL TMR0 ES UN REGISTRO DEL SFR

    El TMR0es un registro de propsito especial ubicado en la posicin 1 del rea SFR de

    la RAM de datos. Puede ser ledo y escrito al estar conectado directamente al bus de

    datos.

    El esquema del funcionamiento del TMR0. Se puede leer cualquier movimiento para

    conocer el estado de cuenta. Cuando se escribe un nuevo Valor sobre TMR0 para

    comenzar una nueva temporizacin, el siguiente incremento del mismo se retrasa

    durante los dos ciclos del reloj posteriores. (perez., 2004).

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    15/34

    15

    6. Desarrollo del proyecto:

    Aqu presentamos, los pasos y procedimientos que seguimos para poder realizar elproyecto del contador de revoluciones:

    Fecha de inicio de proyecto 4/junio/2014

    Como primer paso, investigamos atreves de Internet y libros, nos informamos desu contenido, la importancia y objetivo de su aprendizaje.

    Comenzamos con software, a programar un programa que nos permitieracontrolar el TIMER y las interrupciones internas para poder controlar el PIC16F84A.

    Utilizamos el lenguaje en maquina Assembler, con el compilador GSAM ,modificndose varias veces hasta obtener el cdigo adecuado para calcular lasrevoluciones por minuto, el cual ilustramos a continuacin:

    ;*********************************************************************; Proyecto: Tacometro_Contador de Revoluciones; Software: GPASM

    ;*********************************************************************;------------------------------------------------------------------; Configuracin del PIC; -----------------------------------------------------------------

    LIST p=16f84

    ; code protection off/ power up timer off/ wdt off /XT oscillator__config 0x3ff9

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    16/34

    16

    ; -----------------------------------------------------------------; Variables en RAM a partir de la direccin 0x10; -----------------------------------------------------------------cblock 0x10

    countint ;Contador interno para el control del Timerendc

    cblock 0x20count1 ;Contador de revoluciones cada 2 segundos

    endc

    cblock 0x40 ;variables necesarias para el Bcd de 16 bitsTenk ;Decenas de millarThou ;Milesimas de MIllarHund ;CentesimasTens ;DecenasOnes ;Unidades

    endc

    cblock 0x30 ; Varialbles necesarias para la funcion de multiplicarMultiplicando ; MultiplicandoMultiplicador ;Multiplicadorproductoh ;Producto Highproductol ;Producto LowContador ;Contador para la funcion de multiplicar

    endc

    ; -----------------------------------------------------------------; Tabla de vectores de interrupcin; -----------------------------------------------------------------

    org 0x000 ; vector RESETgoto start

    org 0x0004 ; vector de interrupcinbtfsc INTCON,INTF; Verificamos el estado del vector interrupcin externagoto incrementar ; Salto a la rutina incrementar que aumenta el contador de

    interrupcionesgoto ISR ; salto a la rutina de servicio de la interrupcin

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    17/34

    17

    ; -----------------------------------------------------------------; Programa principal; -----------------------------------------------------------------start:

    movlw D'30' ;Le damos un valor de 30 al multiplicando porque mide cada 2segundos

    movwf multiplicandobsf STATUS,RP0 ; banco de memoria 1movlw B'11100001' ; definir RA0 como entradamovwf TRISA ;Escribir el registro de direccion

    bsf STATUS,RP0 ; banco de memoria 1movlw B'00000001' ; definir PORTB RB0 como salidamovwf TRISB ; escribir registro de direccin

    bcf OPTION_REG,NOT_RBPU; Activa la resistencia Pull-upbcf OPTION_REG,INTEDG;Interrupcion INT se activabcf OPTION_REG,T0CS ; reloj interno para timer 0bcf OPTION_REG,PSA ; activar divisor para timer 0bcf OPTION_REG,PS0 ; bit 0 de divisor = 0bsf OPTION_REG,PS1 ; bit 1 de divisor = 1bsf OPTION_REG,PS2 ; bit 2 de divisor = 1

    ; -> 1MHz : 128 : 125 = 250Hz -> 4msbcf STATUS,RP0 ; banco de memoria 0

    movlw D'131' ; precargar reg. de conteo de timer 0movwf TMR0

    movlw D'125' ;precargar reg. del contadormovwf countint

    bsf INTCON,T0IE ; habilitar desbordamiento de timer 0bsf INTCON,GIE ; habilitar todas las interrupciones

    main: ;Rutina infinita

    goto main ; salto de retorno a main

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    18/34

    18

    ; -----------------------------------------------------------------; Subrutinas; -----------------------------------------------------------------

    ; ----------------------------------------------------------------------------------; Rutina de servicio de la interrupcin y la que imprime los numeros en los displays; ----------------------------------------------------------------------------------ISR:

    movlw D'131' ; valor de recarga de reg. contador de timer 0; hacia W

    movwf TMR0 ; W hacia TMR0

    decfsz countint,f ; contar eventos de interrupcingoto isr1 ; mientras el contador de interrupciones != 0

    ; sino ->

    movlw count1 ;movemos el valor del contador al registro

    call multiplicar ;llamamos a la Subrutina que realiza la multiplicacion, multiplica elcontador*30

    movf productol,W ;Movemos el resultado de la multiplicacion al registrocall Bcd ;Llamamos la funcion que convierte decimal a BCDmovf Ones,W ;Guardamos las unidades que nos regresa la funcion Bcd al

    registrocall Equivalencias;Transformamos el unidades a su equivalente para el displaymovwf PORTB ;Lo cargamos en el PORTBbcf PORTA,1 ;Elegimos el display en el que queremos mostrar las unidadesbsf PORTA,1

    movf Tens,W ;Guardamos las decenas que nos regresa la funcion Bcd alregistro

    call Equivalencias;Transformamos el decimal a su equivalente para el displaymovwf PORTB ;Lo cargamos en el PORTBbcf PORTA,2 ;Elgimos el display en el que queremos mostrar las decenasbsf PORTA,2

    movf Hund,W ;Guardamos las centenas que nos regresa la funcion Bcd alregistro

    call Equivalencias;Transformamos las centenas a su equivalente para el displaymovwf PORTB ;Lo cargamos en el PORTBbcf PORTA,3 ;Elegimos el diplay en el que queremos mostrar las centenasbsf PORTA,3

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    19/34

    19

    movf Thou,W ;Guardamos las milesimas que nos regresa la funcion Bcd alregistro

    call Equivalencias;Transformamos las milesimas a su equivalente para el displaymovwf PORTB ;Lo cargamos al PORTBbcf PORTA,4 ;Elegimos el display en el que queremos mostrar las milesimas

    bsf PORTA,4movlw D'125' ; precargar reg. de conteo de interrupcionesmovwf countintmovlw D'0' ;Precargamos registro de contador de interrupciones externasmovwf count1

    isr1:bcf INTCON,T0IF ; limpiar flag de interrupcin

    retfie ; retornar de la interrupcin

    ; -----------------------------------------------------------------; Rutina de servicio de la interrupcin externa; -----------------------------------------------------------------

    incrementar:incf count1,f ;Incrementa el contador

    Finincrementar:bcf INTCON,INTF ;Limpia el flag de interrupcionretfie ;Retorna de la interrupcion

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    20/34

    20

    ; -----------------------------------------------------------------; Rutina para realizar la operacion de multiplicar; -----------------------------------------------------------------

    multiplicar:

    clrf productohclrf productolmovlw .8movwf contadormovf multiplicando,W

    multi:rrf count1,Fbtfsc STATUS,Caddwf productoh,Frrf productoh,Frrf productol,Fdecfsz contador,Fgoto multireturn

    ; -----------------------------------------------------------------; Rutina que convierte decimal a Bcd; -----------------------------------------------------------------

    Bcd:

    swapf productoh,Wandlw 0x0Faddlw 0xF0movwf Thouaddwf Thou,faddlw .226movwf Hundaddlw .50movwf Onesmovf productoh,Wandlw 0x0Faddwf Hund,faddwf Hund,faddwf Ones,faddlw .233movwf Tensaddwf Tens,faddwf Tens,f

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    21/34

    21

    swapf productol,wandlw 0x0Faddwf Tens,faddwf Ones,f

    rlf Tens,frlf Ones,fcomf Ones,f

    rlf Ones,fmovf productol,wandlw 0x0Faddwf Ones,frlf Thou,fmovlw 0x07movwf Tenk

    movlw .10lb1:

    addwf Ones,fdecf Tens,fbtfss 3,0goto lb1

    lb2:addwf Tens,fdecf Hund,fbtfss 3,0goto lb2

    lb3:addwf Hund,fdecf Thou,fbtfss 3,0goto lb3

    lb4:addwf Thou,fdecf Tenk,fbtfss 3,0goto lb4retlw 0return

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    22/34

    22

    ; -----------------------------------------------------------------; Rutina de equivalencias para los displays; -----------------------------------------------------------------

    Equivalencias: ; Posicin 0x00FE de memoria de

    programa (PCH-PCL).addwf PCL,f ; El salto dentro de la tabla:PCH=PCLATH, PCL=W.

    ; (Ver figura 9-8).retlw b'10000000' ; (Configuracin 0)retlw b'11110010' ; (Configuracin 1)retlw b'01001000' ; (Configuracin 2)retlw b'01100000' ; (Configuracin 3)retlw b'00110010' ; (Configuracin 4)retlw b'00100100' ; (Configuracin 5)retlw b'00000110' ; (Configuracin 6)retlw b'11110000' ; (Configuracin 7)retlw b'00000000' ; (Configuracin 8)retlw b'00110000' ; (Configuracin 9)

    NOP

    include "p16f84.inc" ; controlador de destino

    END.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    23/34

    23

    Seguidamente, lo probamos a travs del simulador.

    Ya terminando software, nos inducimos al hardware, reunimos todas laspiezas necesarias, los cuales menciono en formulacin del problema.

    Trabajamos en pequeos detalles como extraer el infrarrojo y sensor (Emisory Receptor) de un mouse de pelota de segunda generacin , soldaduras ybsqueda de las resistencia necesarias al proyecto.

    Colocamos el circuito en el protobord, as como el Microcontrolador PIC16F84A, oscilador de 4 MHz, receptor de fuente de poder, capacitores.

    Descargamos el micro cdigo en el PIC 16F84A.

    Probndolo varias veces, teniendo muchos problemas al no funcionar.

    Durante realizbamos el proyecto, se daaron componentes.

    Despus de varia pruebas y cambios que se le hacan al cdigo y circuito, selleg a su solucin y realizacin del proyecto, como resultado el sensor(emisor y receptor) captaban las seales del infrarrojo, contando como

    mximo 3750 revoluciones por minuto, dando como terminado el contadorde revoluciones por minuto.

    Fecha de finalizacin del proyecto 12/junio/2014.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    24/34

    24

    7. CONCLUSIONES:

    Para un Presupuesto resumido, los microcontroloadores PICson la solucin ms

    econmica y efectiva para comunicar distintos dispositivos.

    Fue muy importante conocer las interrupciones porque son muy tiles para la

    elaboracin de programas.

    Concluimos que no fue tan sencillo manejar el tiempo en el PIC 16F84A por las

    alimentaciones de TIMER.

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    25/34

    25

    8. RECOMENDACIONES

    El uso del lenguaje asembler nos brinda la oportunidad de entender como

    funciona el lenguaje de mquina, eso nos da una mejor visin de cmo se mueve y se

    ejecuta el microcodigo a travs de nuestro mincrontrolador , es necesario que el

    estudiante de programacin orientada a objetos tenga conocimientos bsico de tal

    lenguaje .

    .

    Sobre la familia de microcontroloadores pic , cabe destacar que tienen una granvariedad de sub-familias ,esto hace que podamos adaptar diferentes gammas de pics

    a nuestro objetivos , a un bajo costo , o precios accesibles brindados versatilidad ya

    que pueden ser programados en lenguaje c como en amsembler.

    Es esencial que electrnica digital y programacin a objetos este en estrecha

    armona , ya que nuestra carrera adems de programar maquinas , tambin tenemosque tener idea del hardware con el que estemos trabajando , esto nos facilitara de gran

    manera nuestros objetivos acadmicos o laborales en un futuro

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    26/34

    26

    9. ANEXOS

    PIC 16F84A

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    27/34

    27

    DIAGRAMA DE FLUJO

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    28/34

    28

    CIRCUITO DEL CONTADOR DE REVOLUCIONES

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    29/34

    29

    CIRCUITO EN PROTOBOARD

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    30/34

    30

    PLATAFORMA MODULAR

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    31/34

    31

    CIRCUITO UTILIZANDO LOS DISPLAYS

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    32/34

    32

    PRUEBA DE CONTEO DE LAS REVOLUCIONES

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    33/34

    33

    CIRCUITO EN FUNCION

  • 7/23/2019 MONOGRAFIA (PROYECTO PIC16F84A)

    34/34

    10. Bibliografa

    Programacin con el Microcontrolador PIC 16F84A CMC (Lucas Nuller).

    Microcontrolador PIC16F84A, Desarrollo de Proyectos. (Enrique Palacios Municio,Fernando Remiro Domnguez, Lucas J. Lpez Prez.).

    Directivas MPASM.pdf.

    normasapa.com/2014/plantilla-en-word-con-normas-apa-2014.