MPLAB

January 22, 2007 at 12:06 am | Posted in MPLAB, Tutorial | 258 Comments

MPLAB es una herramienta para escribir y desarrollar código en lenguaje ensamblador para los microcontroladores PIC. MPLAB incorpora todas las herramientas necesarias para la realización de cualquier proyecto, ya que además de un editor de textos cuenta con un simulador en el que se puede ejecutar el código paso a paso para ver así su evolución y el estado en el que se encuentran sus registros en cada momento.

MPLAB es un software gratuito que se encuentra disponible en la página de Microchip, la versión actual (al momento de escribir estas palabras) es la 7.51 y será la versión utilizada en esta guía y en todos los ejemplos de esta página.

Empecemos por el principio. Lo primero es descargar e instalar el programa, para eso solamente se debe seguir el siguiente enlace: Descargar MPLAB 7.51; una vez hecho eso proceder a instalarlo cómo cualquier programa, con todas las opciones que vengan por defecto, también se puede hacer una instalación personalizada pero eso no lo explicaré aqui ya que por el momento no es importante. Al finalizar la instalación ejecutamos el recién instalado MPLAB y tendremos una pantalla como esta:

project0.jpg

Lea el artículo completo en el blog Circuitos electronicos.

258 Comments »

RSS feed for comments on this post. TrackBack URI

  1. requiero mas codigo fuente de ejemplos ya que recien me inicio en este lenguaje y quiero practicarlo. plis me es muy necesario, si es de un sistema de seguridad de casa mucho mejor, gracias…

  2. Pronto pondré código fuente de más ejemplos así que si vas empezando a programar no dejes de consultar este sitio

    Estas interesado en un sistema de seguridad? Dime más o menos cual es la idea del proyecto y te ayudo

  3. Si pudieras hacer tambien un tutorial sobre como simular los programas en mplab sería muy bueno y si puedes hablar de algun otro simulador

  4. esto es lo que buscaba, tnx, no se si ya lo subiste, pero te recomiendo que publiques los set de instrucciones, eso ayuda para crear codigo.

  5. El set de instrucciones es algo que tengo pendiente, hasta ahora las instrucciones las he ido explicando a medida que las uso en los ejemplos pero proximamente dedicaré un post exclusivo a las 35 instrucciones. Gracias por tu comentario.

  6. hola, alguien me daria una idea que pueda programar en mplab simulando algun pic? que pueda ver en el simulador, el que me pueda dar ideas le agradeceria mucho

  7. No se puede bajar el programa de instalacion del MPLAB, por favor, otra pagina donde pueda bajarlo

  8. Erika yo acabo de descargar el mplab 7.51 usando el enlace de esta página y se bajo sin problemas, vuelve a intentarlo y sino trata de descargarlo directamente de la pagina http://www.microchip.com

  9. Erika la verdad es que yo no tengo ningun problema al descargar MPLAB desde el link de esta pagina, lo acabo de hacer y se descargo de manera correcta, vuelve a intentar o como dice transistor entra directamente a la pagina de Microchip y ahi busca el enlace a MPLAB

  10. FULL LA TEORIA Y LOS EJEMPLOS.
    SOY PRIMIPARO EN ESTO DE LOS PIC.
    QUIERO SEGUIR CON TU AYUDA.
    GRACIAS KABUBIS

  11. me gustaria saber si este programa esta correcto:
    LIST P=16F84
    RADIX HEX
    INCLUDE
    CONTA EQU 0X0C
    ORG 00
    goto CONFIG
    ORG 05
    CONFIG bsf STATUS,RP0
    movlw 01
    movwf TRISB
    bcf STATUS,RP0
    INICIO clrf PORTB
    call conta_6
    ESPERA BTFSC PORTB,0
    goto espera
    CICLO decfsz Conta,1
    goto EXPLORA
    call CONTA_6
    EXPLORA BTFSS PORTB,0
    GOTO ciclo
    call display
    goto espera
    CONTA_6 movlw 06
    movwf CONTA
    return
    DISPLAY movfw CONTA
    call codigo
    movwf PORTB
    return
    CODIGO addwf PCL,1
    retlw b’01111111′
    END

  12. ¿Es compatible con Windows Vista esta versión de MPLAB?

  13. Asi es, yo uso la version 7.51 en Windows Vista y no he tenido ningún problema

  14. hola, esta pagina me es de gran ayuda pero bueno soy nueva en esto, asi que te agradeceria si me pudieras decir como trabaja el icprog

  15. hola mi comentario es si existe un programa bueno mejor dicho si esxiste alguna version de MPLAB para una texas voyage 200 y de dond puedo descargarlo

  16. estimados:

    soy nuevo en esta materia…
    y me gustaria ayuda….
    necesito hacer un programa ….
    en donde hay q setear todo el puerto A como entrada
    y el puerto b como salida
    y luego hacer una AND entre el porta y el portb
    es solo el bit 0 y el 1 del puerto a

  17. hola, resulta que mi laptop es con windows vista y le trate de instalar MPLAB v7.51 pero cuando termina de instalarlo sale lo siguiente:

    MPLAB TOOLS v7.51 Error IS OnError
    Error 19.35.An Error ocurred during the installation of assembly ‘Microsoft, MSXML2R, version=”4. 1.0.0, tipe=”win32″, processorArchitecture=”x86″. please refer to help support for more information.

  18. hola, resulta que mi laptop es con windows vista y le trate de instalar MPLAB v7.51 pero cuando termina de instalarlo sale lo siguiente:

    MPLAB TOOLS v7.51 Error IS OnError
    Error 19.35.An Error ocurred during the installation of assembly ‘Microsoft, MSXML2R, version=”4. 1.0.0, tipe=”win32″, processorArchitecture=”x86″. please refer to help support for more information.

    Podrian por favor decirme que estoy haciendo mal?

  19. boton derecho sobre el .exe de instalacion y selecciona instalar como administrador.

    • te agradezco la informacion,definitivamente no podia instalar el mpalab
      Gracias

  20. CORDIALES SALUDOS A LOS AMIGOS QUIENES ME ATIENDEN: AGRADESERIA QUE ME ENVIEN LA FORMA MAS RAPIDA DE APRENDER A PROGRAMAR EN MPLAB

    ATTE DAVID

  21. CORDIALES SALUDOS A LOS AMIGOS QUIENES ME ATIENDEN: AGRADESERIA QUE ME ENVIEN LA FORMA MAS RAPIDA DE APRENDER A PROGRAMAR EN MPLAB

    ATTE
    DAVID

  22. Excelente tutorial FELICITACIONES, soy principiante en esto y no se como se pasa este programa al PIC, me podrian dar informacion de esto, GRACIAS

  23. tengo problemas para instalar el mpelab en windows vista me aparece el mismo error mencionado anteriormente please ayuda necesito

  24. espero que pronto tengan el tutorial para para utilizar el winpic 800

  25. tengo una tarea de hacer funcionar una rueda de la fortuna que con dos entradas gira 5 seg por 5 ocaciones al concluir gira po 2 min y al bajar espera por 7 seg y gira por 3seg y se repite por 5 veces tambien

  26. como puedo apreder a progamar en mplab lo mas rapido posible

  27. Si alguien tiene el circuito y la programacion para un temporizador que pueda utilizar en una maquina arcade para controlar el tiempo por fichas por ejemplo un pulso 30 minutos 2 pulsos 60 minutos y que al llegar a cero corte la masa de los controles.
    Desde ya muchas gracias…

  28. Make: The target “C:\Nueva carpeta\led.o” is out of date.
    Executing: “C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe” /q /p16F628A “led.asm” /l”led.lst” /e”led.err”
    Loaded C:\Nueva carpeta\led.COD.
    BUILD SUCCEEDED: Wed Jun 06 10:13:55 2007

    no se como crear el archivo led.hex si me pueden ayudar

  29. por favor si tienen un programa que genere un tono de alarma es decir un panel de voceo

  30. quisiera saber de donde puedo descargar: *como usar las funciones que tiene el mplab en castellano

  31. hola bueno e comprendido el programa que enciende el leds pero me queda una duda es el simbolo $ que funcion cumple me lo podrias explicar por favor

  32. hola quisiera qe por favor alguien me expliqe o diga lo mas urgentemente como se llega a los registros generales y registros de rotacion hacia izquierda y derecha, ya qe en pocos dias tengo un examen sobre esto

  33. Los registros de propósito general son los que se encuentran después de la dirección 0x20 de cada banco de memoria. Sobre los registros de rotación hacia izquierda y derecha tal vez estás confundida y te refieres a las instrucciones RLF y RRF.
    Revisa este enlace donde hay un ejemplo sobre como recorrer bits utilizando la instrucción RRF.

  34. nesesito ayuda para hacer instrucciones para poder manejar un motor de paso o motor Dc

  35. bueno necesito un poco de mas informacion xq quiero aprender a manejar un sistema de riego x goteo y quiero saber como me va a servir el mplab gracias

  36. tengo una duda, si vos me podrias explicar algo de risc, tengo qe programar igual…. gracias

  37. No me funcionan los programas corridos por el programa MPLAB y los trato de correr en el IC-PROG y me da error 00000h no se que hacer quiero q me ayuden

  38. No me funcionan los programas corridos por el programa MPLAB y los trato de correr en el IC-PROG y me da error 00000h no se que hacer quiero q me ayuden, trato de programar un IC-16f877a y no funciona que puedo hacer

  39. quiera saber si yo tengo un programa en codigo C++, como tengo que hacer o modificar en los pasos que dijiste pra obtener la extension.hex

    gracias seria de mucha ayuda tu respuesta

  40. Por que no pones un tutorial de MPLAB en C++ ?????

  41. estuve tratando de instalar en mi portatil mplab 7.51; presionando click derecho sobre el archivo .exe y abriendolo como administrador y sigue saliendo el mismo mensaje de error que fue mencionado anteriormente.
    Si existe alguien que puesda ayudarme se lo agradeceria ya que me urge crear un programa y estoy varado.
    GRACIAS

  42. Hola a todos, a mi tambien me pasaba el error que habeis puesto anteriormente, les he enviado esa duda a los de microchip y me han contestado lo siguiente:
    Lo que pasa es que el instalador no tiene aceso al registro asociado con la instalacion del modulo MSXML
    Puedes hacer lo siguiente para arreglar esto
    1. Deselecionar el componente de VDI en los checkboxes durante la instalacion
    2.Si quieres usar VDI, puedes bajar MSXML 4.0 de este este
    http://www.microsoft.com/downloads/details.aspx?FamilyID=3144b72b-b4f2-46da-b4b6-c5d7485f2b42&DisplayLang=en
    The installation package may provide more detail on the privileges required to install MSXML.
    3. Verifica que tengas todos los privilegios de permisos al directorio C:\Windows\WinSxS.
    4. quita todos los scanners de viruses

    Yo lo he probado con la version 7.42 y funciona, he probado con esta version porque con la 7.60 me salian errores con mi software y con esta no salía nada. Espero que les ayude, un saludo.

  43. Me podrian indicar como bajo a mi PC, MPLAB, – WINXP- VERSION FREE?

  44. tengo un problema, me marca error al compilar el programa y soy nuevo en esto asi que no se cual sea ese problema

  45. perdon, ya encontre el problema, en la antepenultima linea le falto ,0

  46. Carlos, para bajarte el MPLAB vete a la siguiente dirección: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en019469&part=SW007002
    Aquí lo encontraras totalmente gratuito.

  47. Alguien me puede facilitar material en el cual pueda programar mplab. muchas gracias

  48. Felicidades por el sitio.
    yo estoy haciendo practicas con el protocolo x10 para comunicaciones a traves de la red electrica con un pic 16f877 pero, no me ha quedado claro como hacer una transmision y recepcion con dicho pic

  49. Buenas dias a todos donde puedo encontrar la continuación del tutorial q se encuentra arriba

  50. Hola a todos
    Si alguien me pudiera decir como puedo copiar los datos de un micro ya grabado a un micro virgen
    se los voy a agradecer muchísimo

    gracias otra vez por adelantado

  51. HoLa muchas gracias por tu ayuda con esto del mplab te pasaste!! 🙂

  52. Hola micropic me podrías decir, si el mplab me sirve
    Para grabar en un micro controlador 8051 y si es así
    Como puedo copiar de otro…?

  53. hola a todos , necesito de su ayuda, tngo windows vista y no puedo instalar mplab, al querer iniciar la descarga me sal e el siguiente error:”SO INCORRECTO A VERSION NO COMPATIBLE”, ALGUIEN ME PODRIA DECIR COMO SOLUCIONARLO, GRACIAS, MI CORREO ES alan_pandro@hotmail.com

  54. necesito ayuda con un proyecto de la siguiente manera:

    Es una alarma, consta de un teclado matricial, una chicharra, un LCD, dos leds (encendido y apagado) y un sensor de 30 cm de distancia…. al momento de ingresar el codigo de acceso erroneo, en el LCD se escribira codigo invalido, y cuando ingrece el codigo correcto, me debera activar o desactivar la alarma…….. vale decir q cuando ingrece los codigos (4 digitos) en la LCD deberan aparecer no los numeros, sino asi ****…………………
    cuando la alarma este activada y alguien corte la señal del sensor, la chicharra sonara……….
    el pic q debo usar es el 16f877, por mplab ide 7.5
    por favor, quien me pueda colaborar le voy a agradecer demaciado……. aqui dejo mi correo para quienes me puedan y quieran ayudar
    jcudistrital@hotmail.com
    gracias por todo
    bye

  55. juan carlos, tal vez la consulta que haces sería mejor que la hicieras en algun foro como http://www.forosdeelectronica.com o http://foros.solocodigo.com donde es probable que haya gente haciendo algun proyecto como el que quieras, sin duda ahí te podrían ayudar más rapido.

  56. ok, gracias por tu ayuda….

  57. hola, es que la verdad necesito un programa de comunicacion de pic a pic, por fa que sea en serie

  58. mira quisiera saber si tu puedes hacer un programa con el PIC16C84, que haga lo siguiente: “encender los leds conectados al puerto B desde el bit0 al bit7, cada 0.25 seg., el numero de veces que se coloque en el puerto A. Ejemplo Si el puerto A esta en uno el puerto B va a recorrer desde el bit0 al bit7 una sola vez. Si el puerto A esta en 0101, el puerto B va arecorrer cinco veces

  59. Saavedra eso que quieres hacer no parece muy complicado, en este sitio creo que hay información suficiente para que puedas realizar ese programa.

  60. saludos a todos locopic soy nuevo ,he progrado con proton pero me quedo con el asembler

  61. A TODOS AQUELLOS KE KIERAN APRENDER KOMO PROGRAMAR EL PIC PARA ACER SUS PRAKTIKAS LES
    REKOMIENDO KE BAJEN EL “PIC SIMULATOR” DE LA PAJ DE MICROSHIP

  62. Hola a todos, yo no puedo instalar el MPLAB 7.51 en win vista, a que se debe microship? diganme porfa, les dejo mi msn para estar mas en contacto, gracias a todos
    servandobar@hotmail.com

  63. hola necesito informacion de como yo hacer un simulador y me lo piden en cualquier programa… si pueden tambien darme ideas porque apenas estoy estudiando sistema

  64. Hola! Hice exactamente lo q dices pero me genera errores y no genera el archivo .hex. Ya no se q hacer!!

  65. Este es el programa, tengo q trabajar con una lcd pero no entiendo los errores q se generan

    LIST P=16F877
    INCLUDE P16F877.INC
    __CONFIG 3D39H
    CBLOCK 20H
    PDel0
    PDel1
    ENDC

    ORG 0X00
    GOTO INICIO

    INICIO BSF STATUS,RP0
    MOVLW B’00000000′
    MOVWF TRISB
    MOVWF TRISE
    BCF STATUS,RP0
    GOTO ESTADO1

    ESTADO1 BSF PORTE,2
    BCF PORTE,0
    MOVLW B’00001110′ ;SE LE INDICA A LA LCD QUE VA ATRABAJAR CON 8 BITS, 2 LINEAS
    MOVWF PORTB
    CALL RET
    BSF PORTE,0

    BSF PORTE,2
    BCF PORTE,0
    MOVLW B’00111000′ ;ENTRY MODE SET
    MOVWF PORTB
    CALL RET
    BSF PORTE,0

    BSF PORTE,2
    BCF PORTE,0
    MOVLW B’00000110′ ;INICIALIZA EL CURSOR EN EL PRIMER ESPACIO
    MOVWF PORTB
    CALL RET
    BSF PORTE,0

    RET movlw .8 ; 1 set numero de repeticion (B)
    movwf PDel0 ; 1 |
    PLoop1 movlw .249 ; 1 set numero de repeticion (A)
    movwf PDel1 ; 1 |
    PLoop2 clrwdt ; 1 clear watchdog
    clrwdt ; 1 ciclo delay
    decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)
    goto PLoop2 ; 2 no, loop
    decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)
    goto PLoop1 ; 2 no, loop
    PDelL1 goto PDelL2 ; 2 ciclos delay
    PDelL2 clrwdt ; 1 ciclo delay
    return ; 2+2 Fin.

    estos son los errores
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: “C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe” /q /p16F877 “lcd.asm” /l”lcd.lst” /e”lcd.err”
    Warning[205] C:\PRACTICA 2\LCD.ASM 1 : Found directive in column 1. (LIST)
    Warning[205] C:\PRACTICA 2\LCD.ASM 2 : Found directive in column 1. (INCLUDE)
    Warning[205] C:\PRACTICA 2\LCD.ASM 3 : Found directive in column 1. (__CONFIG)
    Warning[205] C:\PRACTICA 2\LCD.ASM 4 : Found directive in column 1. (CBLOCK)
    Warning[205] C:\PRACTICA 2\LCD.ASM 7 : Found directive in column 1. (ENDC)
    Warning[205] C:\PRACTICA 2\LCD.ASM 9 : Found directive in column 1. (ORG)
    Warning[203] C:\PRACTICA 2\LCD.ASM 10 : Found opcode in column 1. (GOTO)
    Message[302] C:\PRACTICA 2\LCD.ASM 14 : Register in operand not in bank 0. Ensure that bank bits are correct.
    Message[302] C:\PRACTICA 2\LCD.ASM 15 : Register in operand not in bank 0. Ensure that bank bits are correct.
    Error[129] C:\PRACTICA 2\LCD.ASM 54 : Expected (END)
    Halting build on first failure as requested.
    BUILD FAILED: Fri Oct 05 09:19:05 2007

  66. Raiza, si te das cuenta al final de la lista que pones aparece “Error[129] C:\PRACTICA 2\LCD.ASM 54 : Expected (END)”, ese “Expected (END)” significa que el mplab no encontró la directiva END al final de tu código, siempre debes terminar el código con la directiva END, para que puedas compilar tu programa escribe END al final del código y listo.

  67. Hola, estoy empesando con mplab,estoy depurando un codigo sencillo pero me genera el siguiente error>
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: “C:\Documents and Settings\Administrador\Escritorio\MPLAB 7.62\MPLAB_Install_v7.62.exe” /q /p16F84 “segundo.asm” /l”segundo.lst” /e”segundo.err” /o”segundo.o”
    Halting build on first failure as requested.
    BUILD FAILED: Fri Oct 05 15:12:26 2007

    alguien me podria decir cual sera el error,,,, gracias

  68. […] 2007 at 2:55 pm | In Linux | Por mucho el post más popular de este blog es en el que explico la instalación y uso de MPLAB, sin duda porque es un entorno de desarrollo muy potente que permite escribir, ensamblar, simular y […]

  69. ESTE TOTURIA POR PARETS DE USTEDES ES MUY BUENA YA QUE APOYA A MUCHOS PRICIPIANTES Y PROFESIONALES
    LOS INVITO QUE CREAN UN CENTRO DE PROGRAMACION PARA AFILIACION MUNDIALMENTE PARA PROFESIONALE Y PRICIPIANTE Y BRINDALES ACESORIAS. YO PAGARIA LA AFILIACION AQUI EN COLOMBIA EN UNA INTIDAD BANCARIA.

  70. interesante la idea de afiliar tambien a los principiantes. gracias

  71. Hola! Necesito programar un PIC18F452 en C ¿alguien puede explicarme con que software hacerlo? Las herramientas que tengo son el MPLAB 7.40, el PCW y eL programador que tengo es un picstart plus. Si utilizo el PCW, al cual encuentro fácil de usar, cómo hago para bajar el programa al chip¿luego con que bajo el .hex al chip? y su usara el MPLAB, cómo tengo que estructurar un programa?pregunto porque creo que no entiendo bien como funciona el compilador de MPLAB y me refiero a la hora de poner librerías, referirme a puertos, etc. Si también tienen ejemplos sería de gran ayuda. Gracias..!

  72. DISCULPA USTEDES ME PUEDEN AYUDAR REALIZANDO UN PROMGRAMA QUE SUME, RESTE Y DIVIDA EN MPLAB?.

  73. necesito uin favor unprograma que trabaje con el mic que lo que este en el portA pase a portc RA3 RA4 RA5

  74. Gracias!!!
    Ya pude instalar el MPlab en Windows vista.

  75. hola que tal!!!, secede que a mi me ha pasado como a algunas personas que han puesto sus inquietudes aqui. Resulta que mi laptop tiene Windows Vista y trate de instalar MPLAB v7.51 pero cuando esta terminando de instalarse aperece el siguiente error:

    MPLAB TOOLS v7.51 Error IS OnError
    Error 1935.An Error ocurred during the installation of assembly ‘Microsoft, MSXML2R, version=”4. 1.0.0, tipe=”win32″, processorArchitecture=”x86″. please refer to help support for more information.

    Arriba lei que se debia instalar como administrador, lo hice pero igual sigue dando el mismo error. Por supuesto deshabilite todo los antivirus. Alguien sabe que mas podria ser? Por favor ayudenme.

  76. Holaaaa!!!.. bueno mi pregunta para el que tenga el conocimiento es que tengo que cambiar de PIC del 16F84A al 16F873, y pues ya mas o menos cheque en el datasheet lo que hay que cambiar mas bien la configuracion de puertos, pero me gustaria saber que mas tengo que tomar en cuenta!!!.. saleeee gracias!!!.. cuidenseee estare al pendiente!!!

  77. cuando compilo este codigo me da error alguien podra ayudarme gracias de antemano

    ;4 chan DMX, PWM output
    ;On RB5, RB6, RB7, RA3
    ;Thijs Assies

    __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC & _LVP_OFF
    list P=16F628A
    #INCLUDE

    #DEFINE OUT1 PORTB,5
    #DEFINE OUT2 PORTB,6
    #DEFINE OUT3 PORTB,7
    #DEFINE OUT4 PORTA,3
    #DEFINE RCLED PORTB,3 ;green led

    #DEFINE RX PORTB,1
    #DEFINE ERRLED PORTB,4 ;red led

    #DEFINE BREAK DMX_reg,0
    #DEFINE STARTCODE DMX_reg,1
    #DEFINE MOVED DMX_reg,2
    #DEFINE ADDR9 DMX_reg,3
    #DEFINE RC9 DMX_reg,4

    DMX_reg EQU 020h
    Reg1 EQU 021h
    Reg2 EQU 022h
    Reg3 EQU 023h
    Reg4 EQU 024h
    W_SAVE EQU 026h
    S_SAVE EQU 027h
    P_SAVE EQU 028h
    pwmcounter EQU 029h
    flag EQU 02Ah
    D_ADDR EQU 02Bh
    temp EQU 02Ch
    R_ADDR EQU 02Dh
    Offset EQU 02Eh
    temp2 EQU 02Fh

    ORG 00h
    GOTO INIT ;Initialize PIC

    ORG 04h ;Interrupt vector
    MOVWF W_SAVE ;save context,
    MOVF STATUS,W ;save STATUS, PCLATH & W
    MOVWF S_SAVE
    MOVF PCLATH,W
    MOVWF P_SAVE
    GOTO INTHANDLER

    INIT

    MOVLW 0x07 ;turn analog comparators off
    MOVWF CMCON
    CLRF PORTA
    CLRF PORTB

    BSF STATUS,RP0 ;Select Bank1

    CLRF TRISA ;porta output
    CLRF TRISB ;portb output
    BSF TRISB,1 ;B1 input (UART Recieve)

    MOVLW 04h
    MOVWF SPBRG ;Set baud rate
    BSF TXSTA,BRGH ;high speed
    BCF TXSTA,SYNC ;Async connection
    CLRF PIE1 ;clear other interrupts
    BSF PIE1,RCIE ;Set recieve interrupt
    BCF STATUS,RP0 ;Return to bank0

    BSF RCSTA,RX9 ;Enable 9bit data

    MOVF RCREG,W ;clear RCREG FIFO
    MOVF RCREG,W
    MOVF RCREG,W

    BSF RCSTA,CREN ;Enable recieve
    BSF RCSTA,SPEN ;Enable UART
    BSF INTCON,PEIE ;Enable interrupts
    BSF INTCON,GIE

    BCF RCLED ;because RA4 is open drain, set means NOT on
    BCF ERRLED

    CLRF Reg1
    CLRF Reg2
    CLRF Reg3
    CLRF Reg4
    CLRF D_ADDR ;set our dmx adress to 0
    BCF ADDR9

    GOTO MAIN ;Goto Main Program

    MAIN
    BCF RCLED
    BCF ERRLED
    MOVLW 0FFh
    MOVWF pwmcounter
    BCF OUT1
    BCF OUT2
    BCF OUT3
    BCF OUT4
    CALL PWM_CYCLE

    GOTO MAIN

    PWM_CYCLE
    MOVF Reg1,W
    XORWF pwmcounter,W
    BTFSC STATUS,Z
    BSF OUT1

    MOVF Reg2,W
    XORWF pwmcounter,W
    BTFSC STATUS,Z
    BSF OUT2

    MOVF Reg3,W
    XORWF pwmcounter,W
    BTFSC STATUS,Z
    BSF OUT3

    MOVF Reg4,W
    XORWF pwmcounter,W
    BTFSC STATUS,Z
    BSF OUT4

    DECFSZ pwmcounter
    GOTO PWM_CYCLE
    RETURN

    INTRETURN
    MOVF P_SAVE,W ;restore context
    MOVWF PCLATH
    MOVF S_SAVE,W
    MOVWF STATUS
    SWAPF W_SAVE,F
    SWAPF W_SAVE,W
    RETFIE

    INTHANDLER
    BTFSS PIR1,RCIF
    GOTO INTRETURN

    BTFSC NO_DMX
    MOVF RCREG,W

    BTFSC NO_DMX
    GOTO INTRETURN

    GOTO DMX

    DMX
    BSF ERRLED
    BTFSC RCSTA,OERR
    GOTO OVERRUN

    BTFSC RCSTA,FERR ;Check for framing error
    GOTO FRAME

    BTFSS BREAK ;check if break has passed
    GOTO RET

    BTFSS STARTCODE ;has a startcode passed ?
    GOTO SC ;yes: go check for valid startcode

    BTFSC STARTCODE
    GOTO CHANNEL

    RET
    MOVF RCREG,W
    GOTO INTRETURN

    OVERRUN
    BCF RCSTA,SPEN
    BSF RCSTA,SPEN
    MOVF RCREG,W
    BSF ERRLED
    GOTO LAST

    FRAME
    BCF BREAK
    BCF STARTCODE
    BCF RC9
    CLRF R_ADDR
    CLRF Offset
    BTFSS RCSTA,RX9D
    BSF BREAK

    MOVF RCREG,W
    GOTO INTRETURN

    SC
    MOVF RCREG,W
    XORLW 00h
    BTFSC STATUS,Z
    BSF STARTCODE
    GOTO INTRETURN

    INCREASE
    INCF R_ADDR
    BTFSC STATUS,Z
    BSF RC9
    RETURN

    CHANNEL

    MOVF Offset,W
    XORLW 00h ;check if offset != 0
    BTFSS STATUS,Z
    GOTO CHAN

    MOVF R_ADDR,W ;else: check if chans match
    XORWF D_ADDR,W
    BTFSC STATUS,Z
    GOTO NINTH ;if so: check for 9th bit

    CALL INCREASE
    GOTO RET ;if not: just return from interrupt

    NINTH
    BTFSC ADDR9
    GOTO TRUE
    MOVF RCREG,W
    GOTO FALSE

    TRUE ;our 9th bit is set
    BTFSC RC9
    GOTO CHAN
    CALL INCREASE
    GOTO RET

    FALSE
    BTFSS RC9
    GOTO CHAN
    CALL INCREASE
    GOTO RET

    CHAN
    ; BCF RCLED
    INCF Offset
    MOVF Offset,W
    XORLW 01h ;check if count = 0
    BTFSC STATUS,Z
    GOTO CHAN1

    MOVF Offset,W
    XORLW 02h
    BTFSC STATUS,Z
    GOTO CHAN2

    MOVF Offset,W
    XORLW 03h
    BTFSC STATUS,Z
    GOTO CHAN3

    MOVF Offset,W
    XORLW 04h
    BTFSC STATUS,Z
    GOTO CHAN4

    MOVF Offset,W
    XORLW 05h
    BTFSC STATUS,Z
    GOTO LAST

    CHAN1
    MOVF RCREG,W
    MOVWF Reg1
    CALL INCREASE
    GOTO INTRETURN
    CHAN2
    MOVF RCREG,W
    MOVWF Reg2
    CALL INCREASE
    GOTO INTRETURN
    CHAN3
    MOVF RCREG,W
    MOVWF Reg3
    CALL INCREASE
    GOTO INTRETURN
    CHAN4
    MOVF RCREG,W
    MOVWF Reg4
    CALL INCREASE
    GOTO INTRETURN

    LAST

    BCF BREAK
    BCF STARTCODE
    CLRF Offset
    GOTO INTRETURN

    END

  78. Hola:
    Existe alguna versión de mplab para server?
    o de que manera puedo accesar desde una computadora en red

  79. Me parece muy ilustrativo y didactico el articulo que presentas, mis felicitaciones y espero que pronto expliques cosas mas profundad.

    Atte
    Jack Perez Ochoa

  80. No me funciona el mplab con el “windows vista home premium”, y no consigo instalarlo de nungun modo!!
    Si alguien sabe porque en Xp se instala correctanmenta y en vista no que me lo diga porque lo necesito en el vista!!

    Muchas gracias.
    askodais@hotmail.com

  81. que tal amigos, acavo de adquirir una computadora que cuenta con Windows vista y no eh podido instalar el MPLAB por que me sale el siguiente error:
    an error occurred during the installation of assembly ‘microsoft.MSXML2R, publickey Token= “6bd6b9abf345378f”, version= “4.1.0.0” type= “win32”, processorArchitecture= “x86″‘. please refer and support for more information.

    les agradeceria mucho que me ayudaran!!!!

  82. que tal amigos, acavo de adquirir una computadora que cuenta con Windows vista y no eh podido instalar el MPLAB por que me sale el siguiente error:
    an error occurred during the installation of assembly ‘microsoft.MSXML2R, publickey Token= “6bd6b9abf345378f”, version= “4.1.0.0″ type= “win32″, processorArchitecture= “x86″‘. please refer and support for more information.

    les agradeceria mucho que me ayudaran!!!!

    si me ayudan mi mail es: cuas_joe@hotmail.com

  83. que tal amigos!! necesito ayuda!! tengo un deber!! quisisera saber si alguin me puede ayudar. le agradeceria!! estoy empezando en esto.

    consiste en:

    escribir un programa que sume dos números de 16 bits a y b, leidos desde los puertos B y C en el microcontrolador 16f877.

    GRACIAS POR LA AYUDA

  84. Amigo, agradecemos tu ayuda, pero en un programita tan sencillo y tienes un error tanto em el codigo aqui escrito como en el qu se descarga.
    Creo que primero deberias de explicar por que se configura el STATUS y para que se cambia de banco de datos.

    Como sea gracias, pero deberias de hacer mas explicito para que se comprenda mas lo que se hace.

  85. CoolDann, donde está el error que dices? Yo te aseguro que ese programa está bien escrito.

  86. Primero quiero felicitaros por este buen tutorial.
    Yo, como la mayoria de personas que lo siguen, soy nuevo en esto de la programacion de los PIC y espero que pronto pueda empezar a crear mis propios programas gracias a vuestros tutoriales.
    Siguiendo este tutorial de como se usa el MPLAB me he encontrado con un problema, he escrito el programa pero no se compilaba, me daba un error (error 128), tras mucho pensar y darle vueltas al programa he realizado un cambio en una de las lineas del programa, la que “; Enciende el led conectado al puerto A” en ella la instruccion que pones en “bsf PORTA” yo le he cambiado por “bsf PORTA,1” y entonces ha compilado el programa y me ha generado el archivo led.hex. ¿esta bien lo que he hecho? No se porque no me funciona tal como esta en el tutorial, espero que perdones mi ignorancia.

  87. El problema es que, posiblemente, el instalador de MPLAB es para PC’s X86 y 32 bits y Vista no tiene este tipo de arquitectura (maneje de 64 bits). Este problema ocurre igual si se quiere instalar una aplicacion para vista con espcificaciones de su arquitectura y no la de X86

  88. Francisco eso que hiciste está bien, no se por qué no me había dado cuenta, CoolDann tenía razón el programa tenía un error y era que usaba la instrucción BSF pero no indicaba que bit poner a 1, lo que hiciste está bien porque estas indicando que ponga en nivel alto el bit 1 del puerto A.
    Eso es algo que debo corregir, espero hacerlo pronto 🙂

  89. Hola de nuevo, tengo algunas dudas mas.
    Me he montado un programdor TE-20SE que lleva un zocalo de 18 pins, uno de 8 pins y uno de 28 pins. En la informacion que dispongo, en el zocalo de 18 pins, solo puedo programar el 16F84.¿Sabes si puedo grabar un 16F628 puesto directamente en el zocalo de 18 pins del TE-20SE? En caso contrario, he pensado sobreponer otro zocalo encima pero con todos los pines cortados escepto los pins 4 MCLR, 5 Vss, 14 Vdd y 12 13 de entrada de datos, creo que si el 16F628 es igual pin a pin con el 16F84 eso deberia ser suficiente para que se programe, pero no estoy seguro.
    Todavia no he instalado el IC-prog y no se si sabre como usarlo y si hay que configurar muchas cosas antes de empezar a programar, estaria bien que, si tienes tiempo, hicieras un pequeño tutorial sobre IC-prog.
    Gracias nuevamente por tu ayuda y comprension con los que estamos empezando.

  90. Hola, tengo un problemilla: hace un tiempo que no trabajo con el MPLab. Antes tenia Windows XP, ahora trabajo con el Vista. Supongo que no tendré problema para hacer correr sobre Windows vista al MPlab, ¿¿pero hay algun parche para que me pueda funcionar el ICProg con el Vista??
    Gracias de antemano
    Un saludo

  91. Hola otraq vez. Todavía me queda una duda. Tengo acceso a una progamadora de pics (la TE20) que funciona por puerto serie. Mi portatil no tiene esespuerto y estoy pensando comprar un interface convertidor USB-serie. ¿Sabeis si voy a tener algun problema con la herramienta ICProg?

    Gracias de nuevo!

  92. Para solucionar lo del error 1935:

    9.2.1 Windows Vista OS

    · When attempting to install MPLAB IDE 7.6x on a Windows Vista PC, you may receive the message: “MPLAB Tools v7.6x Error IS OnError – Error 1935. An error occurred during the installation of assembly…” The problem is some registry settings/permissions related to XML. To resolve this issue, do one of the following:

    · Deselect MPLAB VDI in the MPLAB IDE installation.

    · If you cannot deselect MPLAB VDI from the installation, you can use the Microsoft installation for XML 4.0 SP2. You can get the Microsoft original install here:
    http://www.microsoft.com/downloads/details.aspx?FamilyID=3144b72b-b4f2-46da-b4b6-c5d7485f2b42&DisplayLang=en

  93. Pues instalé el mplab, pero por cosas que suceden lo desisntalé, ahora he tratado de instalar la versión 7.5 y la 8.0 y no me funciona ninguna de ellas, siempre sale error al final de la instalación y he visto que muchos tienen el mismo problema, sería bueno que puliquen la solución.

  94. holas, a todos los participantes del foron, me inquita una pregunta, quisiera saber, como es el procedimieto para, la programacion con lenguaje c,

  95. Hola a todos. Les cuento que es una de las primeras veces que me manejo con pics. Me dieron un circuito para hacer en el cual tengo que mover un motor paso a paso hasta un punto. tocar un boton y que este motor se mueva hasta otro punto. Es para hacer un ascensor de 3 pisos con botoneras externas. Pero la verdad no se como seria el programa. Si alguien me puede ayudar se lo agradeceria.
    Saludos cordiales.
    Cristian

  96. ALGUIEN ME PODRIA DECIR LA MANERA DE HACER UNA MULTIPLICACION DE DOS NUMEROS POR MEDIO DE ROTACIONES SE LOS AGRADECERIA

  97. Error 1935. An error occurred during the installation of assembly
    ‘Microsoft.MSXML2,publickeyToken=6bd6b9abf345378f” ,version=”4.20.9818.0”,type=”win32”,processorArchi tecture=”x86”’. Please refer to Help and Support for more information. HRESULT: 0x80070020.

    ==================================================

    Haber si alguien me dice como solucionó este inconveniente. Mi correo es palermo_02[@]hotmail[.]com

  98. Para el Error 1935. Al momento de la instalación, seleccionar “Custom”, en vez de “Complete”, y desactivar la opcion MLAB VID, en el cuadro de dialogo donde se muestran los programas a instalar. Esta opcion solo es valida para aquellas personas que no usen el MLAB VID. Una vez desactivada esta opcion se procede con la instalacion normalmente.

  99. una disculpa es la opcion: MPlab VDI.

    En el siguiente enlace se detalla con mayor precision este procedimiento:

    http://forum.microchip.com/tm.aspx?m=275170

  100. disculpen la molestia pero necesito saber si alguno de los que frecuenta este foro sabe donde puedo encontrar una lista completa o mas o menos detallada de los registros de la memoria interna de datos que tiene el pic16f877…

  101. La lista completa de los registros del pic 16f877 se encuentran en la hoja de datos de microchip. Siempre que tengas alguna duda sobre un pic lo mejor es referirte a la hoja de datos.

    Click to access 30292c.pdf

  102. […] para cerrar este post de aniversario debo hacer mención al post que ha sido la estrella del blog, el tutorial sobre MPLAB, el tutorial mas visto y el que ha tenido mayor éxito. En aquella ocasión prometí realizar un […]

  103. Hola estoy trando de hacer un air display pero no he podido con la parte de los cogigos!! Stoy trabajando con los pequeñines 12F629!! Alguien me podría ayudar con la copilacion del codigo?? Mi mail es soti_159@hotmail.com
    Saludos
    All the best

  104. Hola, mi pregunta es, en lugar de en ensamblador, yo estoy utilizando como lenguaje de programacion el C, que es lo que deberia modificar en tu tutorial?, como podria compilarlo?. Muchas gracias ;).

  105. Hola, escribo por dos cosas, la primera para felicitar a los autores de la pagina así como de los tutoriales y a los que aportan los comentarios, y la segunda, estoy tratando de hacer un multiplicador y un divisor usando el Algoritmo de Boot, implementandolo en un P16F876A,¿¿Alguien me podría ayudar con la creación del código?? Mi mail es zeratul872007@hotmail.com
    Saludos

  106. Muchas gracias por tus comentarios. Yo nunca he implementado el algoritmo de booth, de hecho ya no lo recordaba, hace 2 años vi una implementación de ese algoritmo en VHDL pero nunca intente hacerlo en un pic, me documentaré sobre el algoritmo y vere si lo puedo aplicar, si lo hago lo publicaré en esta página y te avisaré a tu correo.

  107. Gracias por tu atención, y por tu pronta respuesta, solo para corrección del anterior el correo realmente es zeratul872007@gmail.com, por lo que me disculpo, y también aprovecho para preguntar si tendrás algún manual de implementación de multiplexores para las entradas-salidas de ALU’s (ya sea para la mas comun 76181), por tu atención gracias.

  108. que que onda que hay, nada oshhhh

  109. nesecito saber como programar en lenguaje asembler
    matlab para programar en el pic

  110. hola, alguien sabe como hacer el programa para una ALU con las siguientes funciones:

    suma
    resta
    multiplicacion
    division
    multiplexor
    and
    or
    not
    corrimiento derecha
    corrimiento izquierda

    espero que alguien pueda ayudarme,

    gracias

  111. Hola, soy nuevo en programacion de pic’s, les agradeeria si alguien me puede decir si este programa esta bien

    Debe mostrar secuencias en ledas por el puerto b, mientras que al pulsar un boton del puertoA,el 0,aumenta el tiempo que dura prendida y apagada la seuencia , al presionar el boton en el bit 1 del puerto a debe disminuir el tiempo, al contrariio del 0, y al presionar un bpptpn en el bit 2 debe variar la secuencia que muestra.

    ;PRACTICA 3-234
    ;DECLARACION DE REGISTROS

    STATUS EQU 0X03
    TRISA EQU 0X85
    TRISB EQU 0X86
    PORTA EQU 0X05
    PORTB EQU 0X06
    CMCON EQU 0X1F

    ; DECLARACION DE VARIABLES

    NUM1 EQU 0X20
    NUM2 EQU 0X21
    NUM3 EQU 0X22
    CONT1 EQU 0X23
    CONT2 EQU 0X24
    CONT3 EQU 0X25
    TIME EQU 0X26

    ; ORIGEN DEL PROGRAMA

    ORG 0X00

    ;CONFIGURACION DE PUERTOS

    MOVLW 0X07
    MOVWF CMCON
    BSF STATUS,5
    MOVLW B’00011111′
    MOVWF TRISA
    CLRF TRISB
    BCF STATUS,5

    ;ESTRUCTURA DEL PROGRAMA

    MOVLW 0X00
    MOVWF CONT1
    MOVLW 0X10
    MOVWF TIME
    GOTO AVANCE
    PREGUNTA1
    BTFSC PORTA,0
    GOTO PREGUNTA1

    INCREMENTO
    INCF TIME,1
    BTFSC PORTA,0
    GOTO AVANCE
    GOTO INCREMENTO

    PREGUNTA
    BTFSC PORTA,1
    GOTO PREGUNTA

    DECREMENTO
    DECF TIME,1
    BTFSC PORTA,1
    GOTO AVANCE
    GOTO DECREMENTO

    BOTON

    BTFSC PORTA,2
    GOTO BOTON
    INCF CONT1
    RESTA1 MOVLW 0X01
    SUBWF NUM1,0
    BTFSS STATUS,2
    GOTO RESTA2
    GOTO SECUENCIA1

    RESTA2 MOVLW 0X02
    SUBWF NUM1,0
    BTFSS STATUS,2
    GOTO RESTA3
    GOTO SECUENCIA2

    RESTA3 MOVLW 0X03
    SUBWF NUM1,0
    BTFSS STATUS,2
    GOTO RESTA4
    GOTO SECUENCIA3

    RESTA4 MOVLW 0X04
    SUBWF NUM1,0
    BTFSS STATUS,2
    GOTO RESTA5
    GOTO SECUENCIA4

    RESTA5 MOVLW 0X05
    SUBWF NUM1,0
    BTFSS STATUS,2
    GOTO RESTA6
    GOTO SECUENCIA5

    RESTA6 MOVLW 0X06
    SUBWF NUM1,0
    BTFSS STATUS,2
    GOTO AVANCE
    GOTO SECUENCIA6

    AVANCE
    SECUENCIA1

    MOVLW B’10000000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’01000000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00100000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00010000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00001000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000100′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000010′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000001′
    MOVWF PORTB
    CALL TIEMPO

    SECUENCIA2

    MOVLW B’00000001′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000010′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000100′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00001000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00010000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00100000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’01000000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’10000000′
    MOVWF PORTB
    CALL TIEMPO

    SECUENCIA3

    MOVLW B’10000000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’01000000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00100000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00010000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00001000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000100′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000010′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000001′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000010′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00000100′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00001000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00010000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00100000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’01000000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’10000000′
    MOVWF PORTB
    CALL TIEMPO

    SECUENCIA4

    MOVLW B’00011000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00100100′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’01000010′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’10000001′
    MOVWF PORTB
    CALL TIEMPO

    SECUENCIA5

    MOVLW B’10000001′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’01000010′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00100100′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00011000′
    MOVWF PORTB
    CALL TIEMPO

    SECUENCIA6

    MOVLW B’00011000′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00100100′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’01000010′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’10000001′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’01000010′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00100100′
    MOVWF PORTB
    CALL TIEMPO

    MOVLW B’00011000′
    MOVWF PORTB
    CALL TIEMPO

    ;SUBRUTINA
    TIEMPO
    MOVF TIME,0
    MOVWF NUM3

    WAIT3
    MOVLW D’200′
    MOVWF NUM2

    WAIT2
    MOVLW D’166′
    MOVWF NUM1

    WAIT1
    DECFSZ NUM1,1
    GOTO WAIT1

    DECFSZ NUM2,1
    GOTO WAIT2

    DECFSZ NUM3,1
    GOTO WAIT3
    RETURN

    END

  112. HOLA Comment by Abraham como has estado
    me parece que debes informarte sobre las tablas
    en el mplap te facilitaran mas el trbajo aparte de ahorrar espacio en la memoria del pic
    tambien
    STATUS EQU 0X03
    TRISA EQU 0X85
    TRISB EQU 0X86
    PORTA EQU 0X05
    PORTB EQU 0X06
    CMCON EQU 0X1F
    si colocas la palabra
    ejemplo
    list p=16f84a
    #include
    no tendrias que hacer esto porque el mplap
    los identificaria de inmediato
    tambien debes saber que los pic tienen dividida su memoria dividida en bancos
    asi que no podras generar una secuencia linial demaciado estensa
    la proxima vez que me conecte te enviare algunos ejemplos
    (no funcionara como quieres)

  113. perdon me comiunas letras
    #include

  114. muchas gracias por tu observacion RICARDO, lo tomare en cuenta la proxima vez que realize un programa, de cualquer modo he tratado de hacer el programa de nuevo, y me ecentro con un problema, creo que se como arreglrar una prte de lo muchgo que d seguro esta mal, pero me ayudaria mucho que me explicaran como podria llevar el registro en u contador del numero de veces que el ususario introdujera un 1 en un bit del puerto A, para posteriormente en base a eso me mane a la secuencia igual al numero de veces que introdujo un 1.

  115. Chicos, porque no se dejan de joder con el MicroChip y estas cositas de jugete, usen otros micros mas serios, FreeScale, Atmel, Texas, etc, etc. Dejen de ser hobbistas de taller y salten al profesionalismo, se que me muchos me odiaran por este post pero a la larga muchos me apoyaran.
    Saludos !

  116. Gracias por tu comentario Pablo, sobre todo por lo constructivo que es. Tambien yo te hago un comentario, o mas bien una pregunta: por que no nos ayudas a dejar de ser hobbistas de taller y haces un sitio donde expliques claramente como programar un micro de FreeScale o Atmel y nos hechas la mano un poco?
    Gracias por tu comentario, espero que sigas visitando este sitio de microcontroladores PIC.

  117. BUENAS TARDES A TODOS!!!
    BUENO SOY NUEVO EN ESTO DE LOS MICROCONTROLADORES Y ME GUSTARIA SABER DONDE PUEDO CONSEGUIR INFORMACION DE LA BUENA SOBRE COMO PROGRAMAR MICROCONTROLADORES YA QUE SOY DEMASIADO NOVATO Y NECESITO SABER LO BASICO, NO SE ALGUN ALGUN LIBRO O TEXTO DONDE EXPLIQUE MUY BIEN SU FUNCIONAMIENTO INTERNO Y COMO PROGRAMARLO CON LENGUAJE ASSEMBLER.
    BUENO ESPERO ME PUEDAN AYUDAR Y ESTARE ESPERANDO SU RESPUESTA ………………

  118. realizar un programa en MPLAB un contador que cuente del 00 hasta el 99 y se repita y se simule en isis proteus

  119. Hola; tengo instalado el MPLAB IDE 7.6 y tengo un programador pic start plus, pero no lo he podido configurar para quemar un pic 16f877A; si depronto tienes un tutorial asi como el del inicio del foro te agradeceria muchisimo, ya que necesito quemar urgentemente un programa y no he podido.

    gracias

    atte. Juan

  120. Suerte loco! esta barbaro el blog!!

  121. me gustaria recivir manuales para la creaccion de programas para pic y tambien como usar el proteus para la simulacion de estos me interesa mucho aprender a crear programas con micros asi que me interesa recivir toda la informacion de como hacerlo paso por pasomuchas gracias.

  122. Buenas tardes,
    de verdad que uds tienen un conociemiento muy barabro de este tema, los felicito sinceramente, por otro lado al igual que otros lectores de este foro, pido el favor y me colaboren con informacion o tutoriales como el de arriba en cuestion de la programacion de pics en C, o textos guias o paginas webs, creo que soy el novato de novatos en esta area del saber agradezco cualquier colaboracion al respecto, debo hacer un proyecto con pics pero jajaaj no se por donde debo empezar, este es el msn cclavijog@hotmail.com para los que deseen colaborarme de nuevo muchas gracias

  123. hola.. soy nuevo en esta materia.. es de gran ayuda tu informacion..pero cuando genero el build all no me crea la extension .hex y me marca un error q no puedo borrar..
    como puedo hacer!??
    muchas gracias..

  124. SI ALGUIEN SABE MPLAB por favor serian tan amables de explicarme para que sirven las instrucciones bsf , bcf , clrf , mov wf

    espero alguie responda mi pregunta , bueno muchas gracias

  125. Misael las instrucciones están explicadas en estos dos posts:
    conjunto de instrucciones
    conjunto de instrucciones (segunda parte)

  126. Hola acabo de recuperar del fondo de la estantería los fasciculos de robot y me he puesto con ellos, la cosa no va mal. Mi problema es que no encuentroel manual de de la micro pic trainer, ¿Alguien me lo podría pasar?
    Por lo menos la placa si la tengo
    Gracias

  127. Necesito ayuda sobre la interrupcion externa ya sea por flanco de subida o de bajada para un PIC16F877A, saben donde puedo encontrar esa informacion o algun ejemplo que ilumine mi ignorancia, GRACIAS

  128. ayudenme con un dato, instale mplab 7.51 pero al momento de simularlo con la herramiente de mplab, no se como simular las entradas mediante stimulus, ya que no veo la pantalla que dice el manual

  129. hola soy nuevo en esto de los microprocesadores y del mplab; eh estado estudiando 35 instrucciones y tratando de familiarizarme con ellas; pero quisiera que me ayudaran con algunos programas sencillos para aprender a utilizar las intrucciones y familiarizarme con ellas; de hecho me dejaron hacer un programa que simule 4 operaciones (suma, resta, and y or) pero como empiezo? les agradeceria su ayuda

  130. que tal amigo ps esta padre tu tutorial oye no se si me puedas ayudar… una ves hecho el programa comole agopara programar el pic no se si lo puedas describir como lo anterior grasias por tu atencion

  131. un mundo de posibilidades con el PIC… pero seria mejor que fueramos diseñadores por que hay veces que nos limita mucho para lo que queremos lograr con el PIC prediseñado jeje…

  132. pues para quemar el pic se requiere otro programa yo ocupo uno que se llama winpic800
    es facil de utilizar solo.
    se jala el archivo con extencion .hex ((que genera el propio mplab y se habre en se programa)

    y listo una bendicion del mismo zeus

    despues conectas tu programador t20((puedes descargar el diagrama logico de la red)) lo configuras y ya esta un pedaso de materia sencible a la electrostatica que hace inmortalidades

  133. pues mira

    bsf pone en uno el bit de una localidad

    por ejemplo BSF STATUS,5 ;ESTO INDICA QUE PONE EN UNO EL BIT 5 DE ESTATUS QUE HACE QUE PUEDA ESTAR EN EL BANCO UNO

    BCF claro esta hace lo contrario pone en cero un bit

    clrf LIMPIA UNA LOCALIDAD

    y MOVWF : MUEVE EL DATO ACOMULADO EN EL REGISTRO DE TRABAJO (W) A UNA LOCALIDAD DE MEMORIA POR EJEMPLO

    movwf 0x020

    mueve lo que hay en mi registro de trabajo a la localidad 0x020 (en hexadecimal)de mi pic

  134. Q tal, oye resulta que cuando compilo ese ejemplo, se sale este error:

    Clean: Deleting intermediary and output files.
    Clean: Deleted file “C:\micropic\Proyecto16f628a\Project2.mcs”.
    Clean: Done.
    Executing: “C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe” /q /p16F628A “Ejemploled.asm” /l”Ejemploled.lst” /e”Ejemploled.err”
    Warning[205] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 4 : Found directive in column 1. (list)
    Warning[205] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 5 : Found directive in column 1. (include)
    Warning[205] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 6 : Found directive in column 1. (__config)
    Warning[205] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 8 : Found directive in column 1. (org)
    Warning[203] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 9 : Found opcode in column 1. (goto)
    Warning[203] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 11 : Found opcode in column 1. (movwf)
    Warning[203] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 12 : Found opcode in column 1. (bsf)
    Warning[203] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 13 : Found opcode in column 1. (bcf)
    Warning[203] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 14 : Found opcode in column 1. (bcf)
    Warning[203] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 15 : Found opcode in column 1. (bsf)
    Error[128] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 15 : Missing argument(s)
    Warning[205] C:\MICROPIC\PROYECTO1\EJEMPLOLED.ASM 17 : Found directive in column 1. (end)
    Halting build on first failure as requested.
    BUILD FAILED: Sun May 04 20:58:51 2008

    Sabes a que se debe, supongo q ha de ser un error minimo, mos no se cual es U.U

  135. Tambien me he fijado que al abrir otros ejemplos que tengo guardados en la misma direccion, osea en el proyecto1.mcp no me deja compilarlos, marcandome error del ejemplo del led, teniendo este cerrado, podrias darme una solucion para el ejemplo del led?

  136. Hola Darkgamer, el problema está en mi código, lo acabo de revisar y en la línea donde se enciende el led debería decir “bsf PORTA,0”, hasta ahora simplemente dice PORTA, por eso el MPLAB marca un error Missing argument(s), el argumento que falta es ese 0, es decir que bit de PORTA se debe encender. Gracias por ayudarme a ver mi error.

  137. Hola, necesito ayuda, Tengo que programa pic 16C73B o bien despues en los 16C73A OTP, .Instale en picstart plus comprado recientemente con el mplap 7.6. no se si hay que configuarlo porque no puedo grabar. Agradeceria un turorial del mplap 7.6 en español o bien que alguien me ayude… Este es mi Telefono 658 941 800.
    o mi correo: enrique.eletronica@gmail,com

  138. Es muy urgente por favor

  139. hola:
    saben quisiera aprender mas sobre como utilizar el mplab nose como me pudiesen ayudar
    y quisiera el programa para instalarlo en mi computadora y todo lo que falta para programar un pic… grasias ……………….

  140. Hola. Tengo un problema , a la hora de darle en FILE->New cuando trato de grabarlo con la extencion .asm no aparece ese archivo. porfavor es urgente ayuda

  141. Dengo un gran problema no compila no puedo conseguir el punto hexe nunca me muestra ningun error el MPLAB quize hacer con Project Wizard me muestra un error despues de seleccional el PIC que dice”One of more of your tool patlhs do not point to existing files, they are morked with a red X please insure that the tool pathas are correcte before proceeding”

  142. Hola. Estoy haciendo un programa con le mplab y a la hora de compilar me sale este error continuamente Message[302] C:\USERS\IÑIGO\DOCUMENTS\MOTOR.ASM 21 : Register in operand not in bank 0. Ensure that bank bits are correct.
    A ver si alguien me puede ayudar. Gracias de antemano.

  143. hola a todos¡¡¡ tengo una laptop con widows vista pero he estado intentanto instalar el mplab v8.10 y me aparce lo siguiente:
    MPLAB TOOLS v8.10 Error IS OnError
    Error 1935.An Error ocurred during the installation of assembly ‘Microsoft, MSXML2R, version=”4. 1.0.0, type=”win32″, processorArchitecture=”x86″. please refer to help support for more information.

    Y DESPUES ME APARECE ESTO OTRO
    Error- 1603 fatal error during installation
    consult windows installer help (Msi.chm)or MSDN for more information

    Y YA INTENTE CON LA VERSION 7.61 y la 7.51 y tambine me aparece lo mismo, y tambien ya los ejecute como administrador y me marca los mismos errores, si fueran tan amables de proporcionarme ayuda en ke si algo me falta o ke stoy haciendo mal,
    x favor, gracias

  144. Hola deseo hacer un programa para un Pic que me permita manipular dos motores a pasos alguien me puede ayudar

  145. hola a todos en este momento estoy trabajando en un proyecto de ecualizadores con un dsPIC33F y no entiendo muy bien el manejo de las interrupciones ni la configuracion de los registros si alguno tiene un ejemplo que me pueda mandar se lo agradezco. dejo mi mail

    gtgomez@unicauca.edu.co

  146. que alguien por fa me ayude ala prog de una calculadora con mplab

  147. qui ero saber como haser para que se mueva un motor paso a paso

  148. hola tengo un problemilla de esos estresantes con el mplab, instale la ultima version disponible y siguiendo los pasos de creacion de proyecto cree un archivo nuevo para un simple ejercicio de parpadear un led con el 16f84a, pero no entiendo porque la persistencia del mplab de señalar un error en esta parte del codigo para poner el puerto b como salida

    ;Registro TRISB=00h para salidas.

    bsf STATUS,5
    clrf TRISB
    bcf STATUS,5

    y me da el error 302

    Message[302] C:\MIS DOCUMENTOS\LED_PARPADEA.ASM 31 : Register in operand not in bank 0. Ensure that bank bits are correct.

    he probado otras opciones y sigue el mensaje estresante , alguien experto podria darme un alcanze de porque ese error con un codigo que es usual para configurar el port b como salida? o acaso es la version de mplab la que esta mal?

  149. Make: The target “C:\Documents and Settings\Administrador\Mis documentos\mot_psp\mot-psp.o” is out of date.
    Executing: “C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe” /q /p16F84A “mot-psp.asm” /l”mot-psp.lst” /e”mot-psp.err”
    Warning[205] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 1 : Found directive in column 1. (list)
    Warning[205] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 2 : Found directive in column 1. (radix)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 56 : Symbol not previously defined (b´10010011´)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 57 : Symbol not previously defined (b´00110110´)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 58 : Symbol not previously defined (b´01101100´)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 59 : Symbol not previously defined (b´11001001´)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 68 : Symbol not previously defined (b´11001001´)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 69 : Symbol not previously defined (b´01101100´)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 71 : Symbol not previously defined (b)
    Error[108] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 71 : Illegal character (`)
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 73 : Symbol not previously defined (b´10010011´)
    Error[173] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM 84 : Source file path exceeds 62 characters (C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\MIS DOCUMENTOS\MOT_PSP\MOT-PSP.ASM)
    Halting build on first failure as requested.
    BUILD FAILED: Wed Aug 20 20:31:08 2008
    por q marca estos errores?

  150. si me puden responder hoy mucho mejor por favor

  151. hoye ve me gustaria tener mas conocimientos sobre el lenguage para poder programar pics si me desean ayudar escribanme al correo electronico
    valencia-1989@hotmail.com

    GRASIAS Y TODO BIEN

  152. DESEO TENER INFORMACION BASICA DE COMO SE TRABAJA CON MPLAB

  153. COMO PROGAMAR CON MPLAB 8.1 LOS PIC 16F877 TENGO QUE REALIZAR UN PROGAMA EN MPLAB PARA UNA RED DE RESISTENCIAS APLOCANDO 5 VOLTS SEGUIDO DE UN POTENCIOMETRO Y OCHO RESISTENCIAS EN PARALELO VISUALIZAR LOS LOS DATOS EN EL PUERTO E (3 PRIMEROS VOLTAJES) Y PUERTO A (LOS 5 ULTIMOS VOLTAJES. VISUALIZARLOS EN UN DISPLAY DE 8 SEGMENTOS CON DECODIFICADOR DE 4-1 EN EL PUERTO D.

  154. me gustaria aprender a programar en mplab pero no tengo nada de bases de programacion, donde encuentro material de apoyo para empezar de ceros
    gracias

  155. necesito el codigo para hacer un programa q encienda dos leds x perdio de pulsadores.
    estoy utilizando el pic 16F628.. espero ayuda..! gracias

  156. hola soy nuevo en este sitio y estoy super interesado en aprender a programar un pic pero no tengo experiencia programando alguien me puede guiar de la forma mas facil,mas basico para empezar

  157. hola. tengo un widows vista pero he estado intentanto instalar el mplab v8.10 y me aparce lo siguiente:
    MPLAB TOOLS v8.10 Error IS OnError
    Error 1935.An Error ocurred during the installation of assembly ‘Microsoft, MSXML2R, version=”4. 1.0.0, type=”win32″, processorArchitecture=”x86″. please refer to help support for more information.

    Y DESPUES ME APARECE ESTO OTRO
    Error- 1603 fatal error during installation
    consult windows installer help (Msi.chm)or MSDN for more information

    Y YA INTENTE CON LA VERSION 7.61 y la 7.51 y tambine me aparece lo mismo, que debo hacer para instalar el programa? espero su pronta respuesta.
    x favor, gracias

  158. correo de nir naquir23@aol.com

  159. me pueden proporcionar 4 programas de mplab, porfa que son, con eso me ayudaran muchisimos:
    1.- contador (leds y sin subrutinas)
    2.- contador (leds y con subrutinas)
    3.- contador (display y sin subrutinas)
    4.- contador (display y con subrutinas)

    se los agrdesco por fa.
    grasias

  160. mecesito su ayuda me estoy iniciando en esto instale el mplab cuyo vinculo aparece al principio de esta pagina pero el ejecutarlo me sale un error que dice (Legacy language suite cinfiguration file “C:/Archivos de programa/Microchip/MPLAB IDE/Core/MTC Suites/tlboostbasic.ini” does no exist) y haste lo desinstale y volvi a instalar pero el MPLAB v8.10 pero sigo con el mismo problema porfis si alguien puede ayudarme se lo agradecere muchisimo

  161. HOLA A TODOS;..DISCULPEN NECESITO QUE POR FAVOR ME GUIEN PARA EMPEZAR A PROGRAMAR..BUENO..MI PROBLEMA ES EL SIGTE.TENGO QUE REALIZAR UN PROGRAMA…EN DONDE EL PUERTO B COMO ES SALIDA…EL PUERTO ES ENTRADA…PERO LO QUE DEBE HACER ..EL PROGRAMA ES:………
    Port B=2*Port A=port A+Port A

  162. Hola a todos estoy haciendo un voice cchip quegrabe con elpi16f84, pero tambien estoy tratando de hacer es que cuando reprodusca un motor pasopaso empiese girar almismo tiempo primero 30 ala izquierda y despues 30 ala derecha, les agradeceria mucho que me ayudaran con la programacion nose nada del programar pics porfavor…U_U…..mi correo es artetemio@hotmail.com

  163. hola a todos …. perdon queria saber quien me podria colaborar con un programa para un pic16F877, que me contabilice 20 minutos cada vez que se entre con un impulso, y durante esos 20 minutos me vote un volaje, y cuando acabe vote cero. muchas gracias!

  164. yo puedo quemar el pic desde mplab o nesecito otro programa.

  165. Hola a todos.En mi opinion es una web con teoria muy basica; veo puras preguntas y muy pocas respuestas, al autor de esta pagina le sugiero q consigua mas ejemplos utiles funcionables,
    per gracias de todas formas =)

  166. Que tal,,,,

    saludos a todos….

    estoy empezando en el mundo de lengujae ensamblador y quisiera probar algunos programas y me encontre esta pagina…tengo dos prguntas a que se refiere cuando dice “desarrollar código en lenguaje ensamblador para los microcontroladores PIC”, respesto a la palabra microcontroladores PIC es muy diferente a otros lenguajes ensamblador o siempre asi se programa. digamos ahcer una suma en lengujae maquina… me imagino que se podra ahcer aqui…

    Y con respecto al programa donde dice que ” solamente encienda un led conectado al pin 17 del microcontrolador” My prgunta es en donde esta ese led .. como sabre si funciona o como, en pocas palabras nose en donde se ubica el led del pin 17.

    Espero que me tengan paciencia y em respondan ha estas dudas… espero su respuesta…

    mi correo es..

    skifree@live.com.mx

    saludos…

  167. hola quisiera que me ayuden en como programar un pic pero en mplab para termostato electronico cualquier ayuda se lo voy agradecer

  168. hola como ùedo gramabar en la eprom del pic lla verdad quisiera detalles xq nunca lo hice

  169. nesesito un catalogo de las instruccones que se usan en este progreama y para que se usa cada una………….

  170. me gustaria conseguir informacion de programacion basica de los pic

  171. deceo conocer la teoria basica de los pic y laprogramacion delos pic para poder realisar proyectos para la comunida estudiantil

  172. Hola a todos les doy gracias por el buen post pero quiero que me digan como paso el programa ya compilado al PIC16F628A y al PIC16F84 y si hay que usar algun conector especial porfavor me podrian dar el diagrama.
    De Antemano gracias

  173. he dado compilar el proyecto de ejemplo en el inicio y me aprece este mensaje, espero alguein mediga por que no lo puede compilar,gracias.

    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: “C:\PROYECTOSPIC\PRUEBA.ASM” /q /p16F84A “PRUEBA.ASM” /l”PRUEBA.lst” /e”PRUEBA.err” /d__DEBUG=1
    Could not spawn language tool. Check command-line options. (193)
    A language-plugin exception occurred and was logged.
    ———————————————————————-
    Debug build of project `C:\PROYECTOSPIC\PRUEBA.ASM.mcp’ failed.
    Preprocessor symbol `__DEBUG’ is defined.
    Sat Feb 21 21:07:15 2009
    ———————————————————————-
    BUILD FAILED

  174. pues buscando en muchos foros encontre que solo tenia que darle click derecho al instalador y poner instalar como administrador y fue todo 😀

    espero que les ayude …

  175. A los novatos que quieren aprender programacion de pics hay cursos en youtube bien explicados. tambien podran encontrar como usar el MPLAB para programar PICS y simularlo en el PROTEUS. les dejo este link:

  176. necesito saber,si alguien me podria ayudar a hacer la programacion para un riego,o alguna idea,le a gradeceria mucho.gracias

  177. YO TENIA EL MISMO PROBLEMA DEL BUIL FAILED Y ES QUE LE FALTABA EL REGISTRO TRIS PARA PONERLO COMO SALIDA AQUI LES DEJO EL CODIGO CON EL CUAL FUNCO
    list p=16f628a ; Declaración del procesador
    include p16f628a.inc ;
    __config 0x3F38 ; Declaración de la configuración

    ; Inicio del programa
    org 0x00 ; Vector de Inicio
    goto Inicio ; Ir a la etiqueta ‘Inicio’
    Inicio movlw 0x07 ; Cargar al acumulador W el valor 0x07 para
    movwf CMCON ; deshabilitar comparadores analógicos
    bsf STATUS,RP0 ; Seleccionar el banco de memoria 1
    bcf STATUS,RP1
    bcf TRISB,7 ; Configurar el bit 0 del puerto B como salida
    bcf STATUS,RP0 ; Seleccionar el banco de memoria 0
    bcf STATUS,RP1
    bsf PORTB,7 ; Enciende el led conectado al puerto B

    Fin goto $

    end

    UN RECOMENDACION ES DE PONER LOS COMANDOS “TRIS”, “PORT”, “STATUS” ,ETC. CON MAYUSCULA YA Q EN MI CASO TAMBIEN POR ESO NO FUNCIONABA Y TAMBIEN Q DEBEN ESTAR EN LINEA

  178. hola trate de hacer el proyecto del led y no me funciono lo copie y pegue exactamente como esta y me salen estos errores:

    Clean: Deleting intermediary and output files.
    Clean: Deleted file “C:\prueba\proyecto1.mcs”.
    Clean: Done.
    Executing: “C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe” /q /p16F628A “led.asm” /l”led.lst” /e”led.err”
    Warning[205] C:\PRUEBA\LED\LED.ASM 4 : Found directive in column 1. (list)
    Warning[205] C:\PRUEBA\LED\LED.ASM 5 : Found directive in column 1. (include)
    Warning[205] C:\PRUEBA\LED\LED.ASM 6 : Found directive in column 1. (__config)
    Warning[205] C:\PRUEBA\LED\LED.ASM 8 : Found directive in column 1. (org)
    Warning[203] C:\PRUEBA\LED\LED.ASM 9 : Found opcode in column 1. (goto)
    Warning[203] C:\PRUEBA\LED\LED.ASM 11 : Found opcode in column 1. (movwf)
    Warning[203] C:\PRUEBA\LED\LED.ASM 12 : Found opcode in column 1. (bsf)
    Warning[203] C:\PRUEBA\LED\LED.ASM 13 : Found opcode in column 1. (bcf)
    Warning[203] C:\PRUEBA\LED\LED.ASM 14 : Found opcode in column 1. (bcf)
    Warning[203] C:\PRUEBA\LED\LED.ASM 15 : Found opcode in column 1. (bsf)
    Error[128] C:\PRUEBA\LED\LED.ASM 15 : Missing argument(s)
    Warning[205] C:\PRUEBA\LED\LED.ASM 17 : Found directive in column 1. (end)
    Halting build on first failure as requested.
    BUILD FAILED: Thu Mar 19 21:11:27 2009

    la verdad no se cual es el problema…

  179. gracias me sirvio mucho el tutorial

  180. hola sera que ustedes me podrian colaborar para un programa para movor 3/4 de vuelta un motor paso a paso (unipolar) tengo un programa pero el motoi jira 1/2 vuelta en los dos sentidos y no se como comtrolarlo. de antemano les agradesco por su colavoracion.

  181. Un saludo y enhorabuena por esta pagina.

    A los que recien esten iniciandose:
    si al compilar los programas con el mplab les genera algun mensage de error solo deben darle doble clic sobre el mensage de error “redundancia” y el programa los envia exactamente a la linea en donde esta el error.

    esto para los que inician, porque los que ya saben deben reirse de este comentario. Salu2 desde Chiapas.

  182. hola, soy estudiante de automatizacion industrial, y tengo una duda para programar un semaforo, donde la luz roja tiene que encender durante 8_s, la luz amarilla en 1_s y la luz verde en 8_s; en un cruce de call, aclaro son dos semaforos. Pero tengo que sincronisar los dos semaforos que se encuentran en el cruce de la calle, pero tengo el incoveniente que la luz verde en ambos semaforos se me enciende durante 2_s a la vez los dos semaforos, alguien me podria colaborar con este trabajo…muchas gracias

  183. Hola, me gustaria saber si existe alguna versión de Mplav para el windows Vista, sin tener que cambiar la configuracion de PC… Gracias

  184. hola estoy programando un brazo robotico tengo instalado la versión 7.60 pero son los mismos pasos, no sabia como utilizarlo de verdad gracias.

  185. Hola, me gustaria saber, si alguien sabe como puedo probar un programador de pic ya que lo tengo hace mas de un año y hasta ahora lo vuelvo a utilizar, pero no me quema ningun programa. depronto una rutina corta o un .hex para poder probarlo con el pic 16f84

  186. Realizar un contador binario que decremente cada ves que se tengo una interrupcion externa por RB0
    El Contador binario de 4 bits debera estar conectado en le puerto C en los pines del RC4 al RC7

    Es para le PIC 16F877A

  187. si me podrian ayudar se los agradeceria!
    Saludos!!!

  188. holaaaa amigos quisiera pedirle si alguien me puede ayudar a hacer un programa porfaa es el siguiente tengo q hacer un semaforo con instrucciones con pic 16f84A de 3 tiempo y tiene q tener boton propio , reseteo y nocturno les agradeceria por la ayuda mi correo es pablo_ao_@hotmail.com

  189. HOLA, QUIERO FILICITAR A LOS AUTORES DE LA PAGINA ASI COMO LOS TUTORIALES Y A LOS QUE APOTAN LOS COMENTASRIOS QUE ES DE GRAN AYUDA PARA NOSOTROS LOS NOVATOS. MI PREGUNTA ES: HACE AÑITOS COMPRE UNA PLAQUETA LA CUAL LA UTILIZABA PARA APAGAR Y PRENDER A CONTROL REMOTO, CON TONOS DE TRES DIGITOS DE UN RADIO DE DOS METROS, DICHA PLAQUETA FUNCIONA CON UN INTEGRADO CM 870C CON CRISTAL Y UN PIC 16F84A CON CRISTAL LOCUAL OLVIDE SU CODIGO DE TRES DIGITOS QUE FUNCIONA CON TONO.
    LES AGRADESCO QUE ME DIGAN COMO PROGRAMARLO Y QUEMAR EL PIC DE NUEVO, ASI TENER EL CODIGO, O ME VENDEN LOS ACCESORIOS HE INPREMENTOS PARA QUEMAR EL PIC CON MI COMPUTADOR PENTIUM 4 DE 2.8—- GRACIAS LES AGRADESCO A LOS AMIGOS Y AMIGAS EN LA RED.—orlrueda@hotmail.com

  190. Compañeros les agradesco sus ayuda.

  191. Hola Paola, será que tu me pegas tu ayuda, dime donde compraste el programador de PIC, quiero tener uno para mi practica.

  192. Hola

  193. Hola — M A N U E L— COMO HAGO PARA OBTENER UN QUEMADOR O PROGRAMADOR DE PIC PARA QUEMAR UN PIC 16F84A PARA APAGAR Y PRENDER ALGO CON CODIGO LO UTILIZO CON UN RADIO DE DOS METRO. O SI ALGUIEN ME PUEDE AYUDAR, GRACIAS, SE LO AGRADEZCO.

  194. hola, lo que pasa es que apenas estoy empezando a utilizar este lenguage (mplab) y me gustaria manejarlo bien y poder programar funciones, necesito si me puedes ayudar en donde consigo tutoriales y ejemplos de este programa, ya que estuve mirando casi todo el blog pero no los encontre, gracias.

  195. Como tienen olvidada esta pagina, que lastima nadie contestan.

  196. Hola Esperanza yo he conseguido ejemplos en http://WWW.ELECTRON.ES.VG

  197. hola estoy desarrollando un proyecto para la universida y tengo un pic 12f629 y nesecito progrmarlo, la funcion es la siguiente:
    es un circuito que en el momento de haber un interrupcion y en energia de casa y cuando regresa este la detecta. Este protector detecta la llegada del fluido eléctrico y lo mantiene desconectado del sistema eléctrico de la casa hasta tanto no hayan transcurrido unos 5 minutos que es el tiempo necesario para entregar un nivel de voltaje seguro a nuestro sistema eléctrico.

    Para cumplir este objetivo nuestro dispositivo trae un Temporizador interno de precisión para conexión de cinco minutos.
    Además incorpora un Temporizador de desconexión ante una falla en el fluido de 1 seg.

    Si la carga es desconectada por un apagón o una perturbación en el suministro eléctrico, el dispositivo solo la reconectará transcurrido el tiempo de conexión, después que el valor del voltaje regrese al rango adecuado de trabajo.

    CARACTERISTICAS TECNICAS

    * Voltaje Nominal 120VAC.
    * Frecuencia de operación 60Hz.
    * Temporizado de desconexión ante una falla 1 seg.
    * Temporizado de conexión de la carga 5 min.
    * Capacidad de salida 40A.
    * Led indicador de temporizado.

    sera que deprontp alguin me podria ayudar con esto.
    gracias

  198. buenas, estoy aprendiendo a programar hice el ejercicio del led y me salen errores…ya mire todos los comentarios y vi a otros 2 que les paso lo mismo pero la solucion no me funciono…que puedo hacer..que faltara parece que no reconociera el lenguaje. aqui dejo lo que me salio

    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: “C:\Archivos de programa\Microchip\MPASM Suite\MPAsmWin.exe” /q /p16F84A “e0001.asm” /l”e0001.lst” /e”e0001.err”
    Warning[205] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 4 : Found directive in column 1. (list)
    Warning[205] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 5 : Found directive in column 1. (include)
    Warning[205] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 6 : Found directive in column 1. (__config)
    Warning[205] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 8 : Found directive in column 1. (org)
    Warning[203] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 9 : Found opcode in column 1. (goto)
    Warning[203] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 11 : Found opcode in column 1. (movwf)
    Error[113] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 11 : Symbol not previously defined (CMCON)
    Warning[203] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 12 : Found opcode in column 1. (bsf)
    Warning[203] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 13 : Found opcode in column 1. (bcf)
    Warning[203] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 14 : Found opcode in column 1. (bcf)
    Warning[203] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 15 : Found opcode in column 1. (bsf)
    Warning[205] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 17 : Found directive in column 1. (end)
    Error[173] C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM 18 : Source file path exceeds 62 characters (C:\DOCUMENTS AND SETTINGS\JORGE RAMIREZ\ESCRITORIO\CONTROL 2\E0001.ASM)
    Halting build on first failure as requested.
    BUILD FAILED: Fri Aug 21 21:41:28 2009

    gracias…he probado vario programas y no me funciona ninguno, tenia la version 7.2 y la cambie por la del link que aparece al comienzo pero parece que no es el programa…estare pendiente a la solucion..gracias

  199. hola necesito hallar el return, mas bn q se pone hay y necesito saber eso para q sirve

  200. alguien tendra las tablas de programacion de TRISC, STATUS,INTCON,OPTION-REG, ADREESLT
    ADREESL, ADREES0,ADREES1

  201. hola
    porfavor alguen me puede ayudar con este problemita…

    Cuando le doy build all me sale este error, Tenia el mplab 8.33, instale el 8.40,luego intale el 8.30 otra vez pero nada sigue saliendo , utilizo el compilador C30 v.3, sobre wind. xp

    “This application has requested the Runtime to terminate it in an unusual way”

    Muchas gracias

  202. hala q tal me podrian ayudar con esto:
    diseñar un programa q lea una entrada analogica que se tenga en la salida PWM a 100 hz de tal manera q la salida PWM sea proporcional a la señal analogica.
    se supone que deberia ser facil pero no me queda estoy trabajando con un pic16f877. espero puedan ayudarme y muchas gracias

  203. saludos amigos tengo una pantalla de led q me trajeron de china y no helogrado hacerla funcionar con el software q trajo es de leds rojos de 9,5 pulg por 58 pulgadas el bastidor es color negro ni marca de fabrica tiene
    en la parte posterior trae la conexion electrica a 110 v y un conector para la pc con yb cable parec de telefono
    ser que me pueden ayudar a solucionar mi gran problema
    trae un cd con un programa en ingle y chino que se llama proyect1 solo eso
    gracias por su ayuda
    desde venezuela

  204. por favor ayudenme cuando yo estaba trabajando con PIC16F873A, el problema es k lo puse un END en la final y compilé. Apareció un ERROR.
    que pasó?
    mi programa estaba superbn y surgió un problema de END

  205. como programo un pic 16f84

  206. hola;
    tengo problema con bulld, sale error, no sale el archivo .HEX.
    hecho los paso que salen en la pagina, pero nada
    lo estoy haciendo en un pic 16f628

    espero su ayuda o otro programna para poder convertir en HEX.
    PARA PODER grabarlo en el pic.

    atte
    gracias

    • con el ic prog lo pasas a .hex si tienes el .c

  207. Hola, alguien me puede dar una idea de q proyecto puedo hacer con el pic16f84a, es para la universidad, vengo comenzando, el nivel seria como el de hacer un control paso a paso, no lo podemos hacer ya que ese lo hicieron el periodo pasado, asi q tenemos q hacer otro tipo de proyecto, es para realizarlo en menos de 1 semana. Gracias de antemano!!!

  208. buenas tardes apenas estoy empezando aconocer este tema de crear software para el pic 16f887 y no entiendo muy bn ahber quein me podria explicar estas oeraciones e=a-b+d-c
    f=a+a+b-d
    g=c-a+b-f+e

    muchas gracias

  209. hola que tal les invito a que comenten en el foro http://foros.calculadoras.com.mx/foro_numerica/index.php?topic=12.0 cheken primero el video en la pagina principal saudos

  210. HOLA OYE UN FAVOR ME PODRIAS AYUDAR PARA HACER UN PROGRAMA QUE SIMULE LA UNIDAD ARITMETICA LOGICA EN MPLAB.

  211. alguien podria ayu darme a realizar un programa en proteus y c elaboraendo una alarma

  212. oye mira yo tengo este codigo y cuando le doy build me puros errores ese codigo de que o donde se pa sa a hexadecimal

    #include
    #include

    //Target PIC16F628 configuration word
    #pragma DATA _CONFIG, 0x3F18

    //Set clock frequency
    #pragma CLOCK_FREQ 4000000

    unsigned char message[60];
    unsigned char data;
    unsigned char address;

    rom char* A_seq = {0x7e,0x09,0x09,0x09,0x7e};
    rom char* B_seq = {0x7f,0x49,0x49,0x49,0x3e};
    rom char* C_seq = {0x3e,0x41,0x41,0x41,0x22};
    rom char* D_seq = {0x7f,0x41,0x41,0x41,0x3e};
    rom char* E_seq = {0x7f,0x49,0x49,0x49,0x41};
    rom char* F_seq = {0x7f,0x09,0x09,0x09,0x01};
    rom char* G_seq = {0x3e,0x41,0x41,0x49,0x7a};
    rom char* H_seq = {0x7f,0x08,0x08,0x08,0x7f};
    rom char* I_seq = {0x00,0x41,0x7f,0x41,0x00};
    rom char* J_seq = {0x20,0x40,0x41,0x3f,0x01};
    rom char* K_seq = {0x7f,0x08,0x14,0x22,0x41};
    rom char* L_seq = {0x7f,0x40,0x40,0x40,0x40};
    rom char* M_seq = {0x7f,0x02,0x04,0x02,0x7f};
    rom char* N_seq = {0x7f,0x02,0x04,0x08,0x7f};
    rom char* O_seq = {0x3e,0x41,0x41,0x41,0x3e};
    rom char* P_seq = {0x7f,0x09,0x09,0x09,0x06};
    rom char* Q_seq = {0x3e,0x41,0x51,0x21,0x5e};
    rom char* R_seq = {0x7f,0x09,0x19,0x29,0x46};
    rom char* S_seq = {0x46,0x49,0x49,0x49,0x31};
    rom char* T_seq = {0x01,0x01,0x7f,0x01,0x01};
    rom char* U_seq = {0x3f,0x40,0x40,0x40,0x3f};
    rom char* V_seq = {0x1f,0x20,0x40,0x20,0x1f};
    rom char* W_seq = {0x3f,0x40,0x38,0x40,0x3f};
    rom char* X_seq = {0x63,0x14,0x08,0x14,0x63};
    rom char* Y_seq = {0x03,0x04,0x78,0x04,0x03};
    rom char* Z_seq = {0x61,0x51,0x49,0x45,0x43};

    rom char* a_seq = {0x30,0x4a,0x4a,0x4a,0x7c}; //a
    rom char* b_seq = {0x7f,0x50,0x48,0x48,0x30}; //b
    rom char* c_seq = {0x38,0x44,0x44,0x44,0x20}; //c
    rom char* d_seq = {0x38,0x44,0x44,0x48,0x7f}; //d
    rom char* e_seq = {0x38,0x54,0x54,0x54,0x18}; //e
    rom char* f_seq = {0x08,0x7e,0x09,0x01,0x02}; //f
    rom char* g_seq = {0x06,0x49,0x49,0x49,0x3f}; //g
    rom char* h_seq = {0x7f,0x08,0x04,0x04,0x78}; //h
    rom char* i_seq = {0x00,0x44,0x7d,0x40,0x00}; //i
    rom char* j_seq = {0x20,0x40,0x44,0x3d,0x00}; //j
    rom char* k_seq = {0x7f,0x10,0x28,0x44,0x00}; //k
    rom char* l_seq = {0x00,0x41,0x7f,0x40,0x00}; //l
    rom char* m_seq = {0x7c,0x04,0x08,0x04,0x78}; //m
    rom char* n_seq = {0x7c,0x08,0x04,0x04,0x78}; //n
    rom char* o_seq = {0x38,0x44,0x44,0x44,0x38}; //o
    rom char* p_seq = {0x7c,0x14,0x14,0x14,0x08}; //p
    rom char* q_seq = {0x08,0x14,0x14,0x18,0x7c}; //q
    rom char* r_seq = {0x7c,0x08,0x04,0x04,0x08}; //r
    rom char* s_seq = {0x48,0x54,0x54,0x54,0x20}; //s
    rom char* t_seq = {0x04,0x3f,0x44,0x40,0x20}; //t
    rom char* u_seq = {0x3c,0x40,0x40,0x20,0x7c}; //u
    rom char* v_seq = {0x1c,0x20,0x40,0x20,0x1c}; //v
    rom char* w_seq = {0x3c,0x40,0x30,0x40,0x3c}; //w
    rom char* x_seq = {0x44,0x28,0x10,0x28,0x44}; //x
    rom char* y_seq = {0x0c,0x50,0x50,0x50,0x3c}; //y
    rom char* z_seq = {0x44,0x64,0x54,0x4c,0x44}; //z

    rom char* n0_seq = {0x3e,0x51,0x49,0x45,0x3e};
    rom char* n1_seq = {0x00,0x42,0x7f,0x40,0x00};
    rom char* n2_seq = {0x42,0x61,0x51,0x49,0x46};
    rom char* n3_seq = {0x22,0x41,0x49,0x49,0x36};
    rom char* n4_seq = {0x18,0x14,0x12,0x7f,0x10};
    rom char* n5_seq = {0x27,0x45,0x45,0x45,0x39};
    rom char* n6_seq = {0x3e,0x49,0x49,0x49,0x30};
    rom char* n7_seq = {0x01,0x71,0x09,0x05,0x03};
    rom char* n8_seq = {0x36,0x49,0x49,0x49,0x36};
    rom char* n9_seq = {0x06,0x49,0x49,0x29,0x1e};

    rom char* exp_seq = { 0x00,0x0,0x5f,0x0,0x0};
    rom char* colon_seq= { 0x00,0x36,0x36,0x0,0x0};
    rom char* space_seq ={ 0,0,0,0,0 };
    rom char* heart_seq = {0x0c,0x1e,0x3c,0x1e,0x0c};
    rom char* asterisk_seq = {0x2a,0x1c,0x7f,0x1c,0x2a};

    bit oldVal;
    int idx;

    rom char *GetByteList(char c)
    {

    switch(c)
    {
    case 1: return A_seq;
    case 2: return B_seq;
    case 3: return C_seq;
    case 4: return D_seq;
    case 5: return E_seq;
    case 6: return F_seq;
    case 7: return G_seq;
    case 8: return H_seq;
    case 9: return I_seq;
    case 10: return J_seq;
    case 11: return K_seq;
    case 12: return L_seq;
    case 13: return M_seq;
    case 14: return N_seq;
    case 15: return O_seq;
    case 16: return P_seq;
    case 17: return Q_seq;
    case 18: return R_seq;
    case 19: return S_seq;
    case 20: return T_seq;
    case 21: return U_seq;
    case 22: return V_seq;
    case 23: return W_seq;
    case 24: return X_seq;
    case 25: return Y_seq;
    case 26: return Z_seq;

    case 33: return a_seq;
    case 34: return b_seq;
    case 35: return c_seq;
    case 36: return d_seq;
    case 37: return e_seq;
    case 38: return f_seq;
    case 39: return g_seq;
    case 40: return h_seq;
    case 41: return i_seq;
    case 42: return j_seq;
    case 43: return k_seq;
    case 44: return l_seq;
    case 45: return m_seq;
    case 46: return n_seq;
    case 47: return o_seq;
    case 48: return p_seq;
    case 49: return q_seq;
    case 50: return r_seq;
    case 51: return s_seq;
    case 52: return t_seq;
    case 53: return u_seq;
    case 54: return v_seq;
    case 55: return w_seq;
    case 56: return x_seq;
    case 57: return y_seq;
    case 58: return z_seq;

    case 59: return n0_seq;
    case 60: return n1_seq;
    case 61: return n2_seq;
    case 62: return n3_seq;
    case 63: return n4_seq;
    case 64: return n5_seq;
    case 65: return n6_seq;
    case 66: return n7_seq;
    case 67: return n8_seq;
    case 68: return n9_seq;
    case 69: return exp_seq;
    case 70: return colon_seq;
    case 71: return heart_seq;
    case 72: return asterisk_seq;
    }
    // Everything else is a space
    return space_seq;
    };

    void showData(const char data)
    {
    if(data & 0b0000001) clear_bit(portb,3); else set_bit(portb,3);
    if(data & 0b0000010) clear_bit(porta,7); else set_bit(porta,7);
    if(data & 0b0000100) clear_bit(porta,6); else set_bit(porta,6);
    if(data & 0b0001000) clear_bit(portb,7); else set_bit(portb,7);
    if(data & 0b0010000) clear_bit(portb,6); else set_bit(portb,6);
    if(data & 0b0100000) clear_bit(portb,5); else set_bit(portb,5);
    if(data & 0b1000000) clear_bit(portb,4); else set_bit(portb,4);
    }

    void showMessage(const char *message, char count)
    {
    char i;
    char j;
    char data;

    rom char *sequence;

    for(j=0; j<count; j++)
    {
    sequence = GetByteList(message[j]);
    for(i=0; i<5; i++)
    {
    // Display column
    data = sequence[i];
    showData(data);
    delay_us(200);
    delay_us(200);

    // All Off
    portb = 0xff;
    porta = 0xff;
    delay_us(200);
    delay_us(200);
    }
    // Space between letters.
    delay_ms(1);
    }
    };

    void programming()
    {
    unsigned char data = 1;
    unsigned char i,j;
    unsigned char count;

    for(i=0; i<3;i++)
    {
    for(j=0;j<7;j++)
    {
    showData(data);
    data <<= 1;
    data |= 1;
    delay_ms(45);
    }
    for(j=0;j>= 1;
    showData(data);
    delay_ms(45);
    }
    }

    while(!portb.1 || !portb.2); // Wait for both buttons to be released

    data = eeprom_read(address);
    showData(data);

    while(1)
    {
    count = 10;
    while(!portb.1 && count)
    {
    delay_ms(2);
    count–;
    }
    if(count == 0) // Held down for 20ms?
    {
    data++;
    if(data>0x7f) data = 0;
    showData(data);
    count = 80;
    while(!portb.1)
    {
    delay_ms(15);
    if(count) count–;
    if(count==0)
    {
    data++;
    if(data>73) data=0;
    showData(data);
    if(data==0 || data==16 || data ==32 || data==48 || data==64)
    {
    while(!portb.1);
    }
    }
    }
    }

    if(!portb.2) // Button 2 is pressed
    {
    delay_ms(10);
    if(!portb.2) // Is it still pressed?
    {
    eeprom_write(address++,data);
    data = eeprom_read(address);
    showData(data);
    while(!portb.2); // Wait for release
    }
    }
    }
    }

    void main( void )
    {
    cmcon = 7; //disable comparators

    clear_bit( option_reg, 7 );

    //Configure port A
    trisa = 0x00;
    //Configure port B
    trisb = 0x07; // RB0, 1, 2 are inputs.

    //Initialize port A
    porta = 0x00;
    //Initialize port B
    portb = 0x00;

    delay_ms(100);

    address = 0;
    while((data = eeprom_read(address)) != 0)
    {
    message[address++] = data;
    }

    if(!portb.1 || !portb.2)
    {
    address = 0;
    programming();
    }
    else
    {
    //Endless loop
    while( 1 )
    {
    showMessage(message,address);
    //while(portb.0);
    //while(!portb.0);
    delay_ms(7);
    };
    }
    }

  213. ayudame

  214. hola a todos necesito ayuda con una practica de lab q me tiene loko no se como hacerla nesecito hacer una calculadora q haga las operaciones basicas( resta, suma, division y multiplicacion) utilizando 5 cifras ejemplo 12+69+97+45+121 usando rl MPLAB y el simulador proteus si pueden ayudarme!!! uso el PIC16F877
    aki les dejo mi correo por si lo tinen riber5000@hotmail.com
    muchas gracias

  215. Creo ya es hora del segundo articulo de proteus y demás no? ya te tardaste man y tan bueno que esta, no le quiero perder la liga man, porfas ya comienzale jeje

  216. como instalo mplab si comp tiene windonw 7 y me sale que no es compatible

  217. necesito saber como confeccionar mi programador de pic que componentes necesito y como descargar el icprogram gratis

  218. para window vista

  219. porfa necesito saber como se hace un prograna en asembler donde se debe mantemer encendido un led y al ocurrir una interupcion por el flanco de bajada de la linea RB0/int se debe apagar por 5 segundos y retornar f=10MH . . . . POR FAVOR SE LES AGRADEC SU AYUDA GRACIAS POR TODO

  220. Tengo un disco de instalacion de MPLAB IDE V5.00 ya lo instale pero no se en que parte del programa se pone el codigo deseado !! soy primeriso en este programa y la verdad no se como abrir la ventana para el codigo. Tambien tengo otro disco que se llama MICROCHIP TECHNICAL LIBRARY CD-ROM
    y no se para que es y no se si lo debo de instalar !!!!

    otra pregunta: Tengo el aparato para programar los pic y dice asi:PICSTART PLUS, es este el que se utiliza para bajar la informacion al pic??

    o si alguien tiene una version mas nueva del MPLAB le agradeseria que me la pasaran !!! pero si no puedo utilizar la version que tengo, mucho menos una mas nueva !!!

    Gracias Dios les bendiga.

    soy aprendis de este programa por favor ayudenme !!!!

  221. HOLA GENTE TENGO UN PROBLEMA AL QUERER HACER CORRER EL PROGRAMA NO ME DEJA Y ME DICE “ERROR NO ESPECIFICADO” ALGUNO TIENE UNA SOLUCON?
    DESDE YA GRACIAS.

  222. haber yo estudiio informatica y pus tengo un libro en formato .pdf es para programar estas cosas explicatodo desde como se colocan simbologia y artas madres si alguinh lo quiere esta es mi correo solo agreguenme y digean que lo qiueren y se los paso mi correo es tlaque_1213@hotmil.com

  223. gracias mi estimado por el gran aporte para iniciarse en los pic. soy nevo en esto apenas enpieso y esto m ayudará.

  224. Amigo tengo un problema, ya el programa MPLAB lo descargue sin ningun problema, pero cuando voy a acceder a el me dice error no especificado, que creen que pueda ser?????, ya no hayo que hacer……

  225. Hola gracias por el aporte ,
    Ademas de el software es necesario algún equipo adicional soy nuevo en esto y deseo saber si se necesita una interface y cual puedo comprar
    gracias ah soy de Peru

  226. necesito un programa que incremente de dos en dos y decremente con el pic 16f877a.

  227. Hola amigos, por favor, tengo un proyectito de conteo de objetos varios en tiempo real con C++,este conteo lo mando por el puerto USB y funciona ok, luego la cantidad detectada de objetos (los objetos varian constantemente) tiene que ser enviada al PIC 18F2550, pero al conectar el PIC (previo driver instalado))se pone lenta lenta la PC.
    Alguien sabe por que sucede esto… SLDS.

  228. MUY BUENA PAG.. BUENO YO TAMBIEN VOY EMPEZANDO Y ME GUSTARIA SABER SI PUEDES DECIRME COMO EMPEZAR A SABER MAS HACERCA DE LOS SIMBOLOS Y
    DE LAS PALABARS QUE SE USAN EN EL MPLAB PARA DAR UNA INSTRUCCION

    GRAX…

  229. HOLA, sabes pensaba en decirte que tengo un problema con este ejemplo, pero al ver que muchas personas tambien lo tienen, mejor voy a intentar ver porq y solo me limito a agradecert por la ayuda que ofreces. suerte.

  230. Hola,Al crear la primera vez por cuenta propia un proyecto,cree la ruta de la carpeta para guardarlo muy larga.

    ………………………PROBLEMA RESUELTO………………………

    GRACIAS POR EL APORTE…

  231. hola quisiera que me ayudarn a realizar un programa que me sense dos fases en un modulo pet 12v-127-
    les agradecria mucho

  232. Oolaa me gustaria y les agradeceria que me ayudaran a hacer el siguiente programa en el MPLAB
    es para con un pic 16f84a manejar 5 alarmas ubicadas en una casa
    y que al momento en que se accione una alarma aparezca en una pantalla LCD que alarma se activo muchas gracias !!!

    • BUENAS A TODOS BUENO LA VERDAD YO MANEJO C, Y ES MUCHO MAS SENCILLO NO SE SI PUEDA HACERLO POR AHI ……SI ALGO ME AVISA CREO QUE ES SENCILLO

  233. saludos a todos los participantes de este foro.

    Yo al igual k la mayoría de personas de este foro, recién me estoy iniciando con el aprendizaje del MPLAB, pero se me hace un poco complicado entender las funciones k cumplen las “variables”

    org 0×00 ;
    goto Inicio ;
    Inicio movlw
    movwf CMCON ;
    bsf STATUS,RP0 ;
    bcf STATUS,RP1
    bcf TRISB,7

    la verdad no se como utilizarlos.

    Si hay alguien de este foro k conozca una pagina web
    que contenga un manual para orientarme en el MPLAB le estaré muy agradecido.

    (si el manual es de 100000 hojas se lo agradeceré aun mas ,por que deseo aprender)

    “si alguien desea entender sobre circuitos analógicos, yo los puedo ayudar”

    gracias a todos por compartir.

  234. Tengo Un Manual Carnal, En Unos Dias Te Lo Hago Llegar.. Dime Como Le Hago

  235. hola, me llamo hernan y quiero aprender a programar los microcontroladores pic en especial el pic 16f84a y mi duda es como lo hago para programar mi pic con este programa

  236. hola soy carlos estoy por terminar el colegio pero necesito saber como se usa un contador ascendente bcd para el ptob y que cuente cuando hay un pulso en el ptoa para escribirlo en el mplab.si alguien me podria ayudar le agradeceria mucho.

  237. hola me llamo perucho, estoy empesando a usar el mplab. quiciera que me ayudaran hacer una llave electronica con teclado numerico y pantalla lcd si se puede por favor. gracias amigos

  238. hola me podran ayudar a programar le secuencia d leds con subrutinas y encendido con medio segundo xfa

  239. Hola a todos soy nuevo con la placa pickit 3 y tengo un problema yo nose muy bien como va el compilador MPLAB, me e leido manuales y aun sigo con la duda del manejo. A la hora de compilar tengo mis problemas no me permite compilarlo. A lo mejor es porque quiero trabajar con “C” pero no lo se, vosotros sois los expertos. Si alguien me puede hechar una gran mano se lo agradeceria porque con esta placa no me consigo hacer.
    Un saludo

  240. Hola amiwo como estas? estoi usando este programa en la escuela y la vdd se muy poko, me dejaron com oproyecto final una calculadora que sume reste multiplique y divide y la vdd se me esta complicando muchisisisimo me podrias ayudar enla programacion 😀 estaria infinitamente agredecido con tigo si me peudes ayudar. un barzo y cuidate

  241. hola amigos, estoy cursando en la uni la asignatura MICROPROCESADORES
    y en ella se me fue asignado realizar un programa en ASM para un pic16f876a. Pero el programa debo de realizar con la aplicacion DEBUG de las PC de windows osea asm de x86 (que locura) . Mi confuncion es grande porq yo e programado para pics pero es usando MPLAB osea el ASM de microchip. Se puede realizar un programa con las instrucciones del asm de x86, tomar el .Hex que se genera y grabar este archivo en el PIC ?… Por ser arquitecturas de procesadores diferentes creo q esto no deberia funcionar pero que dicen ustedes ?…

  242. hola !!!
    hasta hora estoy aprendiendo a programar en MPLAB
    necesito hacer las operaciones logicas AND.OR y demas
    y no se como comenzar.
    tengo q dar dos valores de entrada y efectuar las operaciones

  243. ERROR [113] EN MPLAB IDE V8.56 COMO C SOLUCIONA?
    Error[113] C:\DOCUMENTS AND SETTINGS\ADMINISTRADOR\ESCRITORIO\PROGRAMA DEL LADILLA\PROYECTO.ASM 30 : Symbol not previously defined (PROCESO)

  244. aLGUIEN ME PODRIA AYUDAR CON PROGRAMA PARA PIC 16F84 DOS LEDS UNO ENCIENDE AL OPRIMIR UN PULSADOR Y TITILA CADA DIEZ SEGUNDOS Y AL TERMINAR EL SIGUIENTE LES DEBERA QUEDAR ENCENDIDO POR 3 MINUTOS

  245. hola sera que alguien me puede ayudar nececito hacer dos dados electronicos, y necesito que cuando se oprima un boton los dados empiecen a girar aleatoriamento 8000 veces por segundo alguien me puede indicar como hacer esto, es para trabajar con el pic 16f877a en mplab

  246. HOLA NO HE PODIDO COMPILAR EN MPLAB UN ARCHIVO QUE SE ENCUENTRA EN .C PARA UN PIC18f4550. YO NO SE QUE LE PASA A MI COMPUTADOR. ME APARECE UN AVISO QUE DICE “BUILDED FAILED”.
    Ayudenme por favor mi correo es. jhonyhip@gmail.com.

    GRACIAS A TODOS

  247. HOLA

    ME GUSTARIA SABER SI HAY ALGUIEN QUIEN ME PUEDA AYUDAR LO QUE PASA ES QUE NECESITO EL INSTALADOR DEL MPLAB 2.0, 1.0, 8.0 CUALQUIERA DE ESTOS PERO LA VERDAD NO LO ENCUENTRO PORFAVOR ALLUDENMEN ES MUY IMPORTANTE YA QUE ESTOY INICIANDO EN ESTE MUNDO DE LOS PIC MI CORREO ES
    cubillosortizfernando@hotmail.com
    gracias

  248. es compatible con windows 7

  249. hola a todos soi luis
    y apenas me estoi iniciando en esto pero estoi trabajando en un proyecto ya tengo diseñados los circuitos solo que eso de la programacion es nuevo y quisiera saber si me podrian ayudar lo que intento haser es una secuencia de leds usando el pic 16f877 si alguien pudiera ayudarem por favor urge y los planos los tengo todos por si quieren echarles un vistazo dejo mi correo “”qtc_13@hotmail.com”””

    saludos a todos

  250. hola he comprado todo el kit para programar pics porqeu me llama mucho la atencion pero realmente no tengo ni idea de como va el asunto,mi hija me ha dicho q necesita la simulacion de un semaforo de cuatro vias para un proyecto de la escuela y yo he recurrido a hacerlo con un integrado 4017 pero no me funciona estable , si alguien me explicara como programar esto en un pic estaria bueno y de paso me alludan con el codigo please .mi mail es ikro8989@yahoo.com por si postean aqui y me pueden avisar

  251. Hi! I just wanted to ask if you ever have any trouble with hackers?
    My last blog (wordpress) was hacked and I ended up losing many months of hard
    work due to no backup. Do you have any solutions
    to stop hackers?

  252. kisiera saber si este programa esta bien es una simulacion de 10 leds pero no estoy segura de esto
    config wpt=off, osc=xt, pwrt=off, mclre=on
    LISP=18F84A
    INCLUDE libreria

    CONFIGURACION “nombre de la subrutina”
    movlw b´1111111111´
    movwf ADCON1
    movlw b´0000000000´
    movwf TRISB
    movwf TRISA

    PRINCIPAL
    movlw b´1000000001´
    movwf porta
    call Retardo_200micros
    movlw b´1100000011´
    movwf portb
    call Retardo_200micros
    movlw b´1110000111´
    movwf portb
    call Retardo_200micros
    movlw b´1111001111´
    movwf portb
    call Retardo_200micros
    movlw b´1111111111´
    movwf portb
    call Retardo_200micros
    goto principal
    incluide
    (end)

  253. PARA VER SI ME PUEDE HACER EL FA DE AYUDARME A IMPLEMENTAR LA SUMA Y RESTA EN ESTE PROGRAMA:
    LIST P=16F877A, ; usar PIC 16F628A
    #include

    __CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC ; code protec off
    ; power up timer on
    ; watchdog off
    ; osc XT

    OPTIONR EQU 01H;
    INTCON EQU 0BH
    STATUS EQU 03H

    #DEFINE BANCO0 BCF STATUS,5
    #DEFINE BANCO1 BSF STATUS,5

    ORG 0
    GOTO START;

    CBLOCK 0x20

    DISP1 ; VALOR TEMPORAL DEL DISPLAY 1
    DISP2 ; VALOR TEMPORAL DEL DISPLAY 2
    DISP3 ; VALOR TEMPORAL DEL DISPLAY 3
    DISP4 ; VALOR TEMPORAL DEL DISPLAY 4

    TECLA ; VALOR BINARIO DE UNA TECLA PRESIONADA

    KEY_PRESSED; 00: no key; 01: key pressed; 10: key released

    VALORCONV ; VARIABLE UTILIZADA EN LA CONVERSION BINARIA – 7 SEGMENTOS (ENTRADA)

    ITERATE;

    CONTADOR ; CONTADOR USADO EN EL CONTROLADOR DEL DISPLAY

    ENDC

    ORG 04H

    BCF INTCON,2
    CLRWDT
    CALL KEYPAD_KEY
    CLRWDT
    CALL SHOW_DISPLAYS

    RETFIE

    SHOW_DISPLAYS
    ; DISPLAYS SON MOSTRADOS ALTERNATIVAMENTE
    ; CONTADOR TIENE SUS PRIMERO CUATRO BITS, SI ESTÁ
    ; ACTIVADO, SE ACTIVA ESE DISPLAY. CUANDO SE ACTIVA,
    ; SE CAMBIA EL VALOR PARA QUE LA SIGUIENTE VEZ SE ACTIVE EL SIGUIENTE, ETC.

    ; Configuro puerto D como salida
    BANCO1
    MOVLW 0x00
    MOVWF TRISD
    BANCO0

    SHOWDISPLAY1 ; VERIFICA EL DISPLAY 1
    BTFSS CONTADOR,0
    GOTO SHOWDISPLAY2

    MOVF DISP1,0
    MOVWF PORTD

    BSF PORTA,2
    BCF PORTA,5

    BSF CONTADOR,1
    BCF CONTADOR,0

    GOTO EXIT_SHOW_DISPLAY

    SHOWDISPLAY2 ; VERIFICA EL DISPLAY 2
    BTFSS CONTADOR,1
    GOTO SHOWDISPLAY3

    MOVF DISP2,0
    MOVWF PORTD

    BSF PORTA,3
    BCF PORTA,2

    BSF CONTADOR,2
    BCF CONTADOR,1

    GOTO EXIT_SHOW_DISPLAY

    SHOWDISPLAY3 ; VERIFICA EL DISPLAY 3
    BTFSS CONTADOR,2
    GOTO SHOWDISPLAY4

    MOVF DISP3,0
    MOVWF PORTD

    BSF PORTA,4
    BCF PORTA,3

    BSF CONTADOR,3
    BCF CONTADOR,2

    GOTO EXIT_SHOW_DISPLAY

    SHOWDISPLAY4 ; VERIFICA EL DISPLAY 4
    BTFSS CONTADOR,3
    GOTO SAFE_SHOW_DISPLAY

    MOVF DISP4,0
    MOVWF PORTD

    BSF PORTA,5
    BCF PORTA,4

    SAFE_SHOW_DISPLAY

    BSF CONTADOR,0
    BCF CONTADOR,3

    EXIT_SHOW_DISPLAY

    RETURN

    ; AQUI SE DESCRIBE LA SECUENCIA DE SELECCION DE LA TECLA PRESIONADA
    KEYPAD_KEY

    ; LAS TECLAS SON: 0,1, …, 9, *, #
    ; LA SALIDA TECLA SE CODIFICA: 0000, …, 1001.
    ; LAS TECLAS * Y # NO SE CODIFICAN

    ; SE VERIFICAN LOS VALORES DE PORTD EN TÉRMINOS DEL PUERTO B
    ; SE DEBE ASIGNAR FF A PUERTO B, Y SÓLO PONER EN CERO EL PUERTO A CHEQUEAR
    ; SI PORTD ES CERO EN ESE CASO SE PRESIONO LA TECLA

    INICIAKEYPAD

    ; Configuro puerto D como entrada

    BANCO1
    MOVLW 0x0F
    MOVWF TRISD
    BANCO0

    ;MOVLW 0x0F
    ;MOVWF PORTB

    ; VERIFICANDO COLUMNA 1

    BSF PORTB,0
    BSF PORTB,1
    BSF PORTB,2
    BCF PORTB,3

    CLRWDT

    COLUMNA1
    BCF PORTB, 0

    COL1FIL1
    BTFSC PORTD, 3; CHEQUEA POR LA TECLA 1
    GOTO COL1FIL2

    MOVLW 0x01
    GOTO TECLA_SET

    COL1FIL2
    BTFSC PORTD, 2; CHEQUEA POR LA TECLA 4
    GOTO COL1FIL3

    MOVLW 0x04
    GOTO TECLA_SET

    COL1FIL3
    BTFSC PORTD, 1; CHEQUEA POR LA TECLA 7
    GOTO COLUMNA2
    MOVLW 0x07
    GOTO TECLA_SET

    COLUMNA2
    COL2FIL1

    BCF PORTB,1
    BTFSC PORTD, 3; CHEQUEA POR LA TECLA 2
    GOTO COL2FIL2

    MOVLW 0x02
    GOTO TECLA_SET

    COL2FIL2
    BTFSC PORTD, 2; CHEQUEA POR LA TECLA 5
    GOTO COL2FIL3

    MOVLW 0x05
    GOTO TECLA_SET

    COL2FIL3
    BTFSC PORTD, 1; CHEQUEA POR LA TECLA 8
    GOTO COL2FIL4
    MOVLW 0x08
    GOTO TECLA_SET

    COL2FIL4
    BTFSC PORTD, 0; CHEQUEA POR LA TECLA 0
    GOTO COLUMNA3
    MOVLW 0x00
    GOTO TECLA_SET

    COLUMNA3
    COL3FIL1
    BCF PORTB,2

    BTFSC PORTD, 3; CHEQUEA POR LA TECLA 3
    GOTO COL3FIL2

    MOVLW 0x03
    GOTO TECLA_SET

    COL3FIL2
    BTFSC PORTD, 2; CHEQUEA POR LA TECLA 6
    GOTO COL3FIL3

    MOVLW 0x06
    GOTO TECLA_SET

    COL3FIL3
    BTFSC PORTD, 1; CHEQUEA POR LA TECLA 9
    GOTO TECLA_NO_SET
    MOVLW 0x09
    GOTO TECLA_SET

    ;COL3FIL3
    ;BTFSC PORTD, 1; CHEQUEA POR LA TECLA #
    ;GOTO TECLA_NO_SET
    ;MOVLW 0x0b
    ;GOTO TECLA_SET

    TECLA_NO_SET ; CASO ESPECIAL PARA DETECTAR SI SE LEVANTO LA TECLA

    BTFSS KEY_PRESSED,0
    GOTO SALETECLA

    BSF KEY_PRESSED,1

    GOTO SALETECLA

    TECLA_SET

    MOVWF TECLA
    BSF KEY_PRESSED,0

    SALETECLA

    BCF PORTB,2

    RETURN

    ; CONVERSOR HEXADECIMA – 7 SEGMENTOS (DISPLAY)
    SEVENSEGSCONV

    ADDWF PCL,F
    ; B’.GFEDCBA’ ; POSIÇÃO CORRETA DOS SEGUIMENTOS

    RETLW B’00111111′ ; 00
    RETLW B’00000110′ ; 01
    RETLW B’01011011′ ; 02
    RETLW B’01001111′ ; 03
    RETLW B’01100110′ ; 04
    RETLW B’01101101′ ; 05
    RETLW B’01111101′ ; 06
    RETLW B’01000111′ ; 07
    RETLW B’01111111′ ; 08
    RETLW B’01100111′ ; 09
    RETLW B’01100110′ ; 0A
    RETLW B’01110110′ ; 0B
    RETLW B’01100110′ ; 0C
    RETLW B’01100110′ ; 0D
    RETLW B’01100110′ ; 0E
    RETLW B’01100110′ ; 0F

    START

    BANCO1

    MOVLW 0x00 ; carga 00000 en W
    MOVWF TRISA ; puerto A de salida

    MOVLW 0x00
    MOVWF TRISB ; puerto B de salida

    MOVLW 0x0F
    MOVWF TRISD ; puerto D de entrada (pero se modifica por interrupcion)

    CLRF CONTADOR;
    CLRF KEY_PRESSED;

    MOVLW 0x01
    MOVWF CONTADOR ; Inicia en ceros el contador

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; CONFIGURANDO CONTADOR CNT1

    ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    ;BCF STATUS,5 ; volvemos a la pagina 0
    BANCO0

    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ; CONFIGURANDO INTERRUPCION

    BSF INTCON,7 ;Habilita las interrupciones globalmente
    ; BSF INTCON,6 ;Mascara PEIE

    BSF INTCON,5
    ;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    INICIO ; etiqueta

    BTFSS KEY_PRESSED,1 ; chequea si se levantó una tecla (0 indica presionada, 1, levantada)
    GOTO NORMAL

    BCF KEY_PRESSED,0 ; Limpia el registro de control para indicar si se ha presionado tecla
    BCF KEY_PRESSED,1

    MOVF DISP2,0
    MOVWF DISP1

    MOVF DISP3,0
    MOVWF DISP2

    MOVF DISP4,0
    MOVWF DISP3

    MOVF TECLA,0 ; Asigna el valor de tecla a W
    CALL SEVENSEGSCONV ; W = Sevensegs(tecla)
    MOVWF DISP4 ; Muestra en display 4 la codificacion

    BTFSS KEY_PRESSED,2 ; chequea si se levantó una tecla (0 indica presionada, 1, levantada)
    GOTO NORMAL

    BCF KEY_PRESSED,1 ; Limpia el registro de control para indicar si se ha presionado tecla
    BCF KEY_PRESSED,2

    MOVF DISP2,0
    MOVWF DISP1

    MOVF DISP3,0
    MOVWF DISP2

    MOVF DISP4,0
    MOVWF DISP3

    MOVF TECLA,0
    CALL SEVENSEGSCONV
    MOVWF DISP1

    BTFSS KEY_PRESSED,4 ; chequea si se levantó una tecla (0 indica presionada, 1, levantada)
    GOTO NORMAL

    BCF KEY_PRESSED,3 ; Limpia el registro de control para indicar si se ha presionado tecla
    BCF KEY_PRESSED,4

    MOVF DISP2,0
    MOVWF DISP1

    MOVF DISP3,0
    MOVWF DISP2

    MOVF DISP4,0
    MOVWF DISP3

    MOVF TECLA,0
    CALL SEVENSEGSCONV
    MOVWF DISP2

    BTFSS KEY_PRESSED,3 ; chequea si se levantó una tecla (0 indica presionada, 1, levantada)
    GOTO NORMAL

    BCF KEY_PRESSED,2 ; Limpia el registro de control para indicar si se ha presionado tecla
    BCF KEY_PRESSED,3

    MOVF DISP2,0 ;se implementa esta forma para dijitar los cuatro numeros seguidos
    MOVWF DISP1 ;y colocar a funcionar los cuatro display

    MOVF DISP3,0
    MOVWF DISP2

    MOVF DISP4,0
    MOVWF DISP3

    MOVF TECLA,0

    CALL SEVENSEGSCONV
    MOVWF DISP3

    MOVLW 0x00
    MOVWF TECLA
    NORMAL

    CLRWDT

    GOTO INICIO ; va a inicio

    END

  254. como hacer un código para una alu en mplab


Leave a reply to jeferson kid Cancel reply

Create a free website or blog at WordPress.com.
Entries and comments feeds.