Autor Tema: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A  (Leído 757836 veces)

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado reparamadrid

  • PIC10
  • *
  • Mensajes: 1
Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
« Respuesta #135 en: 26 de Julio de 2011, 10:57:34 »
 :-/ :-/
Muchas gracias xD







Fontaneros
Piscinas

Desconectado Correia

  • PIC10
  • *
  • Mensajes: 39
Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
« Respuesta #136 en: 27 de Julio de 2011, 00:11:14 »
buenas noches suky tu tutorial es muy bueno, me gustaria preguntarte algo sobre el PIC16F628A hize la programacion de 4 semaforos de tres colores cada uno como un semaforo ordinario, y una pregunta este fusil  _INTOSC_OSC_NOCLKOUT significa que el oscilador interno de 4Mhz que posee el microcontrolador ha sido activado y funcionara con el, asi como el tmr0 si es configurado como temporizador funcionara con el, por lo que a su vez los pines 15 y 16 de 16F628A pueden ser usados como salida digital para prender algun led? me gustaria su respuesta.
-Tsuki no Tamashi
-Microcontroladores
-Robotica
-Evangelion
-Einstein

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
« Respuesta #137 en: 27 de Julio de 2011, 12:46:01 »
buenas noches suky tu tutorial es muy bueno, me gustaria preguntarte algo sobre el PIC16F628A hize la programacion de 4 semaforos de tres colores cada uno como un semaforo ordinario, y una pregunta este fusil  _INTOSC_OSC_NOCLKOUT significa que el oscilador interno de 4Mhz que posee el microcontrolador ha sido activado y funcionara con el, asi como el tmr0 si es configurado como temporizador funcionara con el, por lo que a su vez los pines 15 y 16 de 16F628A pueden ser usados como salida digital para prender algun led? me gustaria su respuesta.

Exactamente  ;-)
No contesto mensajes privados, las consultas en el foro

Desconectado LU7FDV

  • PIC10
  • *
  • Mensajes: 1
Re: Mis primeros programas. Tutorial PIC16F84A
« Respuesta #138 en: 04 de Octubre de 2011, 13:34:28 »
El Módulo del Timer 0.
Idéntico al del PIC16F84.

El Módulo del Timer 1.
El Timer 1 a diferencia del Timer 0 es un contador / temporizador de 16 bits. El conteo es realizado por dos registros de 8 bits: (TMR1H (0Fh) y TMR1L (0Eh) ), estos dos registros son tanto leíbles como escribibles.
Así, el registro TMR1 se incrementa de 0000h a FFFFh y en la siguiente cuenta se reinicia en 0000h y así sucesivamente, al reciclarse se activa (en alto) la bandera TMR1IF (PIR1<0>), la cual puede ser utilizada para generar una interrupción, o bien, para ser consultada por poleo, teniendo las mismas precauciones que ya se explicaron antes para la bandera T0IF.

En la siguiente figura se muestra un diagrama de bloques de este módulo, en donde se indican los bits que afectan su operación y la manera en que lo hacen.


Modo temporizador
En este modo el Timer se incrementa (si no se considera preescalador) en cada ciclo de instrucción (a la frecuencia Fosc/4). Este modo se selecciona limpiando el bit TMR1CS (T1CON<1>).
El preescalador que se puede intercalar entre el reloj Fosc/4 y el registro TMR1 puede tener sólo uno de 4 valores: 1/1, 1/2, 1/4 y 1/8.
En este caso la temporización de calcula:
Temporización = Ciclo de instrucción. (65536-TMR1) .Divisor de Frecuencia
Vemos que la máxima temporización posible es con TMR1 = 0, y Divisor de Frecuencia en 8, lográndose unos 524.3 ms aprox.

Modo contador
El Timer 1 también puede operar como contador, en este último caso, la entrada a contar se toma de la patita externa RB6/T1OSO/T1CKI.

Configuraciones:
El Timer 1 posee un bit para habilitación / deshabilitación, este es el bit TMR1ON (T1CON<0>) y habilita en alto.
Además, el Timer 1 posee una entrada interna de RESET, el cual puede ser activado por uno cualquiera de los módulos CCP que.
A continuación se describe el principal registro relacionado con el Timer 1 y todos sus bits, excepto los que tienen que ver con el modo contador:
Registro T1CON (10h)
bits 5:4
T1CKPS1:T1CKPS0.- Bits de selección del valor del divisor de frecuencia del preescalador:
1 1 = divisor 1/8
1 0 = divisor 1/4
0 1 = divisor 1/2
0 0 = divisor 1/1

bit 1
TMR1CS.- Bit de selección de la fuente de reloj
1 = Modo contador (fuente de reloj: patita RC0/T1OSO/T1CKI)
0 = Modo Temporizador (fuente de reloj Fosc/4)

bit 0
TMR1ON.- Bit de habilitación / deshabilitación del Timer 1:
1 = habilita Timer 1
0 = Deshabilita Timer 1



ConfigPIC traé una herramienta adicional que nos ayuda a seleccionar el preescaler y valor inicial del Timer para obtener una temporización deseada:


hola amigo soy nuevo en programacion de pic, necesito que me den una mano tengo un proyecto que necesito bases de tiempo de 1 seg, 5seg, 1 min, agradeceria ayuda hasta pronto y gracias

Desconectado ELECTROTHUNDER73

  • PIC10
  • *
  • Mensajes: 1
Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
« Respuesta #139 en: 06 de Diciembre de 2011, 00:29:25 »
ACABO DE INGRESAR A ESTE SISTEMA Y MANDO SALUDOS DESDE LA CIUDAD DE MEXICO, ESPERANDO SER PARTE DE SU CLUB DE LECTORES

Desconectado commo64

  • PIC10
  • *
  • Mensajes: 4
Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
« Respuesta #140 en: 26 de Mayo de 2012, 16:46:23 »
Suky ,

Primero que nada felicitarte por este tutorial!

Estoy comenzando nuevamente en esto de la programacion de PIC16f84 ,mas o menos por el 2001 termine de armar un robot (monty) ,aunque algo llegue hacer luego por distintos motivos largue todo.

Hace algunos meses cansado de verlo ahi en un estante sin hacer nada (jaja) me propuse ver si por fin le encontraba la vuelta a la programacion.

Conclusion hace unas horas este post me hizo a agarrar ganas de registrarme ,oh sorpresa ya me habia registrado hace bastante! ,recupere mi contraseña y usuario y aca estoy!

Queria probar el programa para el LCD en el P16f84 (copie el programa y lo pegue en el Mplab) ,luego al compilarlo me di cuenta despues de un buen rato de buscar que en la linea 51 hay un error de tipeo ,falta una L para la palabra LCD.

Corregido esto pude compilarlo.

Ahora me pongo a armar el circuito para probarlo.

Otra vez ,felicitaciones!

Saludos


Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
« Respuesta #141 en: 26 de Mayo de 2012, 17:40:48 »
Gracias por el dato! Éxitos en los proyectos!!


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado freemanman2012

  • PIC10
  • *
  • Mensajes: 1
Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
« Respuesta #142 en: 25 de Septiembre de 2012, 09:28:15 »
    Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A


    La idea de este tutorial es ayudar a los que recién están empezando, aquí mostraremos como comenzar. Usaremos en primer lugar el microcontrolador PIC16F84A, porque es el que por lo general se usa en la enseñanza. Comenzaremos explicando como esta constituido, los terminales, manejo de corrientes de los puertos, osciladores externos, circuito de reset, memoria de programa y memoria de datos. Luego iremos a lo interesante, que es la programación, nuestros primeros programitas, de los cuales se tratará de explicarlos detalladamente, el funcionamiento y los registros que se usan en cada caso.-


    INDICE

    El PIC16F84A

    Todas las simulaciones hechas en proteus, aqui (Para el PIC16F84A)



    El PIC16F628A/648A





     
    Herramientas
    Software para escribir nuestro código y compilar: MPLAB
    Software para simular: Proteus
    Una plaquita programadora.
    Software para grabar nuestro PIC, se puede usar el WinPic800 o el Icprog

    :-)  Aquí dejo un tutorial de como crear un proyecto en MPLAB, compilar y simular. Un programador de PIC sencillo que pueden armar  (Programador JDM – Serial)(circuito, PCB para hacer la plaqueta y una pequeña explicación de cómo grabar con WinPIC800) y un tutorial para crear placas de circuito impreso (PCB) por el método de la plancha --->  Tutoriales


    Datasheets

    DATASHEET del PIC16F84A
    DATASHEET del PIC16F628A/648A



    ConfigPIC: Software para realizar el código automáticamente a partir de una interfase de configuración.

    Desconectado donpablio

    • PIC10
    • *
    • Mensajes: 5
    Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
    « Respuesta #143 en: 29 de Marzo de 2013, 18:14:37 »
    Hola necesito un poco de ayuda estoy tratando de aprender mediante este tutorial, pero quiero realizar los mismos programas para ql pic12f683 pero no puedo realizar nisiquiera el primeroel de encender un led con un pushbutton si me pueden ayudar se los agradeceria asi es como tengo el codigo:

       list          p=12F683
          #include    <p12f683.inc>
                   
          __CONFIG   _FCMEN_OFF & _IESO_OFF & _MCLRE_OFF & _WDT_OFF & _INTOSCIO
                             
          org 0x00                   
                   
          BSF       STATUS,RP0    ;PASANDO DE BANCO 0 A BANCO 1
          MOVLW      b'001010'      ;CARGANDO EN W
          MOVWF    TRISIO         ;CONFIGURAR TRISIO COMO W
          BCF       STATUS,RP0    ;PASANDO DEL BANCO 1 A BANCO 0
          MOVLW      b'000000'      ;GPIO APAGADO
          MOVWF      GPIO
    AQUI:
          BTFSC      GPIO, 1         
          GOTO      APAGAR
          MOVLW      b'000001'
          MOVWF      GPIO
          GOTO      AQUI
          
    APAGAR:
          MOVLW      b'000000'
          MOVWF      GPIO
          GOTO       AQUI
          
           END

    espero y me puedan ayudar gracias de ante mano
    estos son los bancos de memoria


    Desconectado joseydoris

    • PIC12
    • **
    • Mensajes: 58
    Re: Mis primeros programas. PIC16F84A y PIC16F628A/648A
    « Respuesta #144 en: 13 de Abril de 2013, 04:02:37 »
    Un saludo Suky:Estoy intentado hacer un receptor para un control remoto de tv,pruebo con el modulo CCP modo captura saco la lectura por el puerto A para visualizar los valores emitidos por cada tecla y no se quedan estables los valores.Quizas este errado con este modulo para esta aplicacion.Att jose

    Desconectado Miguel_P

    • PIC10
    • *
    • Mensajes: 1
    AYUDA
    « Respuesta #145 en: 12 de Septiembre de 2013, 15:56:19 »
    Hola que tal,  necesito su ayuda si no es mucha molestia, debo hacer un asm en mplab que controle un motor hacia la izquierda, derecja, paro osea 3 pushbuttons con el pic16f84a. Y usando el l293d para inverdir el voltaje del motor, el motor es dc. el problema que tengo es que mi programa no me corre y ya he usado varios programas pero sigo sin obtener ese resultado y pues como apenas estoy iniciando en esto me cuesta un poco de trabajo entenderle.   

    Desconectado joseydoris

    • PIC12
    • **
    • Mensajes: 58
    Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
    « Respuesta #146 en: 13 de Septiembre de 2013, 01:21:38 »
    Un saludo:lo puedes hacer con un l298,es uh puente H y segun los pines que utilices puedes hacerlo girar izd o der

    Desconectado Citron23

    • PIC10
    • *
    • Mensajes: 13
    Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
    « Respuesta #147 en: 22 de Septiembre de 2013, 11:45:36 »
    Como dicen que es de bien nacido ser Agradecido. Muchas gracias por los tutoriales Suky ((:-))

    Un Saludo  :-/

    Desconectado JAR

    • PIC10
    • *
    • Mensajes: 13
    Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
    « Respuesta #148 en: 02 de Junio de 2014, 14:28:40 »
    Hola chicos.
    Estoy siguiendo este tutorial en el poco tiempo que tengo, pero al empezar con los codigo, al cargarlo en Mplab, me indica un solo error y no se como solucionarlo.
    Ante todo, felicitar a Suky por este fantástico tutorial y a continuación os indico el código que es el primero de Suky y el error;


    ; **** Encabezado ****
            list p=16F84A
       #include P16F84A.inc
    __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
    ;**** Definicion de variables ****
    Led      equ   0   ; Definimos Led como el bit cero de un registro, en este caso PORTB.-
    Pulsador   equ   0   ; Definimos Pulsador como el bit 0, en este caso sera para PORTA
    ;**** Configuracion de puertos ***
    Reset   org   0x00   ; Aqui comienza el micro.-
               goto   Inicio   ; Salto a inicio de mi programa.-
               org   0x05   ; Origen del codigo de programa.-
    Inicio   bsf   STATUS,RP0    ; Pasamos de Banco 0 a Banco 1.-
                movlw   b'11111'   ; Muevo 11111 a W.-
                     movwf   TRISA      ; Cargo en TRISA.-
                movlw   b'11111110'   
                movwf   TRISB
                bcf   STATUS,RP0   ; Paso del Banco 1 al Banco 0
                bcf   PORTB,Led   ; Comienza apagado.-
    ;**** Control de Led ****
    Bucle            btfsc   PORTA,Pulsador   ; Preguntamos si esta en 0 logico.-
                goto   Apagar         ; Esta a 1 logico, Apagamos Led.-
                bsf   PORTB,Led      ; Esta a 0 logico, Encendemos Led.-
                goto   Bucle         ; Testeamos nuevamente la condicion del Pulsador.-
       
    Apagar   bcf   PORTB,Led      ;Apagamos Led.-
               goto   Bucle         ;Testeamos nuevamente la condicion del Pulsador.-
       
                  end




    Y esta es la respuesta de Mplab

    Building LED.HEX...

    Compiling LED.ASM:
    Command line: "C:\ARCHIV~1\MPLAB\MPASMWIN.EXE /aINHX8M /e+ /l+ /x- /c+ /rhex /p16F84A /q F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM"
    Message[301] C:\ARCHIV~1\MPLAB\P16F84.INC 37 : MESSAGE: (Processor-header file mismatch.  Verify selected processor.)
    Warning[205] F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM 5 : Found directive in column 1. (__CONFIG)
    Error[113]   F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM 12 : Symbol not previously defined (inicio)
    Message[302] F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM 16 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM 18 : Register in operand not in bank 0.  Ensure that bank bits are correct.

    MPLAB is unable to find output file "LED.HEX". This may be due to a compile, assemble, or link process failure.

    Build failed.

    ¿Me podríais decir que estoy haciendo mal?
    Muchas gracias de antemano.

    Desconectado JAR

    • PIC10
    • *
    • Mensajes: 13
    Re: Mis primeros programas en ASM. PIC16F84A y PIC16F628A/648A
    « Respuesta #149 en: 02 de Junio de 2014, 15:17:25 »
    Hola chicos.
    Estoy siguiendo este tutorial en el poco tiempo que tengo, pero al empezar con los codigo, al cargarlo en Mplab, me indica un solo error y no se como solucionarlo.
    Ante todo, felicitar a Suky por este fantástico tutorial y a continuación os indico el código que es el primero de Suky y el error;


    ; **** Encabezado ****
            list p=16F84A
       #include P16F84A.inc
    __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
    ;**** Definicion de variables ****
    Led      equ   0   ; Definimos Led como el bit cero de un registro, en este caso PORTB.-
    Pulsador   equ   0   ; Definimos Pulsador como el bit 0, en este caso sera para PORTA
    ;**** Configuracion de puertos ***
    Reset   org   0x00   ; Aqui comienza el micro.-
               goto   Inicio   ; Salto a inicio de mi programa.-
               org   0x05   ; Origen del codigo de programa.-
    Inicio   bsf   STATUS,RP0    ; Pasamos de Banco 0 a Banco 1.-
                movlw   b'11111'   ; Muevo 11111 a W.-
                     movwf   TRISA      ; Cargo en TRISA.-
                movlw   b'11111110'   
                movwf   TRISB
                bcf   STATUS,RP0   ; Paso del Banco 1 al Banco 0
                bcf   PORTB,Led   ; Comienza apagado.-
    ;**** Control de Led ****
    Bucle            btfsc   PORTA,Pulsador   ; Preguntamos si esta en 0 logico.-
                goto   Apagar         ; Esta a 1 logico, Apagamos Led.-
                bsf   PORTB,Led      ; Esta a 0 logico, Encendemos Led.-
                goto   Bucle         ; Testeamos nuevamente la condicion del Pulsador.-
       
    Apagar   bcf   PORTB,Led      ;Apagamos Led.-
               goto   Bucle         ;Testeamos nuevamente la condicion del Pulsador.-
       
                  end




    Y esta es la respuesta de Mplab

    Building LED.HEX...

    Compiling LED.ASM:
    Command line: "C:\ARCHIV~1\MPLAB\MPASMWIN.EXE /aINHX8M /e+ /l+ /x- /c+ /rhex /p16F84A /q F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM"
    Message[301] C:\ARCHIV~1\MPLAB\P16F84.INC 37 : MESSAGE: (Processor-header file mismatch.  Verify selected processor.)
    Warning[205] F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM 5 : Found directive in column 1. (__CONFIG)
    Error[113]   F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM 12 : Symbol not previously defined (inicio)
    Message[302] F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM 16 : Register in operand not in bank 0.  Ensure that bank bits are correct.
    Message[302] F:\ELECTR~1\MICROC~1\PROJEC~1\LED.ASM 18 : Register in operand not in bank 0.  Ensure that bank bits are correct.

    MPLAB is unable to find output file "LED.HEX". This may be due to a compile, assemble, or link process failure.

    Build failed.

    ¿Me podríais decir que estoy haciendo mal?
    Muchas gracias de antemano.


    Hola de nuevo.
    Ya resolví el problema y era el siguiente: En la fila diez, (goto inicio, inicio) lo escribo en minúsculas y en la fila 12, (Inicio   bsf   STATUS,RP0), lo pongo en mayúsculas por lo que no era reconocido por el programa.
    Así y todo, muchas gracias.


     

    anything