Autor Tema: Mi primer programa problemas con el 16f873 gracias  (Leído 2741 veces)

0 Usuarios y 1 Visitante están viendo este tema.

rmatama

  • Visitante
Mi primer programa problemas con el 16f873 gracias
« en: 30 de Marzo de 2006, 09:13:00 »
Hola este es el programa. Lo unico que me tira es el contador. Creo que he cofigurado bien los puertos pero en el wacth de mplab no me aparece nada mas k la cuenta del contador. HELPPPP

;Este programa cuneta en binario y muestra el resultado por los leds del puerto C
;La cuenta binaria sera:
; -Ascendente si el PIN RB7 esta a nivel alto 1
; -Descendente si el PIN RB7 esta a nivel bajo 0
; El retardo enter los valores mostrados debera ser de 0.5 segundos "MEDIANTE EL TIMER 0"

   LIST p=16F873

   include<p16F873.inc>


;Una variable contador
;Poner el pin RB7 del puerto B como entrada mediante TRISB
;Tiene que contar de 0000 0000 a 1111 1111 de forma ascendente o forma descendente
;Una vez haya contado sacarlo por el puerto C y el siguiente valor a mostrar debe tardar 0,5 segundo

;Inicializo el contador a cero
CONTADOR EQU 0x10




      
   ORG 0x00
       goto INICIO

   ORG 0x04 ;La interrupcion del timer
       goto INTERRUPCION
   ORG 0x05


INTERRUPCION:



DECREMENTAR:
       bsf TRISB,7 ; EL pin 7 del puerto b es de entrada
       clrf TRISC ; Puerto c de salida
       decf CONTADOR,1 ; decremento el contador
       movlw CONTADOR; Movemos el contador al registro W
        movwf PORTC ; Movemos el registro W a PORTC
      ;Mostrarlo el dato durante 0.5 segundos
       ;goto INTERRUPCION;Mediante la interrupcion de un timer
       btfsc PORTB,7;Comprobar si como esta el pin RB7 de puerto b esta a 0
       goto INICIO
       Return



        



INICIO:
       bsf TRISB,7 ; EL pin 7 del puerto b es de entrada
      clrf TRISC ; Puerto c de salida
       incf CONTADOR,1 ; incremento el contador
       movlw CONTADOR; Movemos el contador al registro W
        movwf PORTC ; Movemos el registro W a PORTC
       ;Mostrarlo el dato durante 0.5 segundos
      ;Mediante la interrupcion de un timer
      btfss PORTB,7;Comprobar si como esta el pin RB7 de puerto b esta a 1
       goto DECREMENTAR
       Return
 
      END

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: Mi primer programa problemas con el 16f873 gracias
« Respuesta #1 en: 30 de Marzo de 2006, 14:11:00 »
Hola rmatama, veo que posees varios errores, por ese motivo aqui te dejo una rutina que funciona correctamente para lo que deseas hacer, de esta manera podras comparar en que te as confundido:

Codigo:
; CUARZO DE 4 MHz

   LIST      P = 16F873
   INCLUDE      <P16F873.INC>

ESTADO      EQU   0x20
WWW      EQU   0x21
CONTADOR   EQU   0x22

;-----------------------------------------------------------------------------------------------
   ORG   0x00          ; Vector de arranque
   goto   INICIO
   ORG   0x04          ; Vector de interrupcion
   goto   INTERRUPCION

;-----------------------------------------------------------------------------------------------
INTERRUPCION            ; Interrupcion que se realizara cada 0.5 seg
   movwf   WWW         ; Se guarda el estado del registro W
   swapf   STATUS,W
   movwf   ESTADO         ; Se guarda el estado del registro STATUS

   movlw   H"DC"
   movwf   TMR1L
   movlw   H"0B"         ; Por cada interrupcion cargo los registros TMR1L y TMR1H con el dato H"0BDC"=D"3036" que
   movwf   TMR1H         ; resulta de la resta de 65536-65250=3036    

   btfsc   PORTB,7         ; Se verifica el estado del pin RB/, si es cero se salta
   goto   INCREMENTAR      ; Si es 1 salta a INCREMENTAR

   decf   CONTADOR,F       ; Decremento el contador
   movf   CONTADOR,w      ; Movemos el contador al registro W
   movwf   PORTC          ; Movemos el registro W a PORTC
   goto   RET
INCREMENTAR
   incf   CONTADOR,F       ; Incremento el contador
   movf   CONTADOR,W      ; Movemos el contador al registro W
   movwf   PORTC          ; Movemos el registro W a PORTC
RET
   swapf   ESTADO,W
   movwf   STATUS         ; Se reponen los datos al registro STATUS
   swapf   WWW,F
   swapf   WWW,W         ; Se reponen los datos al registro W
   bcf   PIR1,TMR1IF      ; Se borra el flag de la interrupción del TMR1
   retfie            ; Sale de la interrupcion

;-----------------------------------------------------------------------------------------------
INICIO
   bsf   STATUS,RP0
   bcf   STATUS,RP1      ; Selecciono BANCO-1 de memoria RAM
   movlw   B"11111111"
   movwf   TRISA         ; Puerto A como entrada
   movlw   B"11111111"
   movwf   TRISB         ; Puerto B como entrada
   movlw   B"00000000"
   movwf   TRISC         ; Puerto C como salida
   movlw   B"00000110"
   movwf   ADCON1         ; Configuro el Puerto A como entradas digitales
   bcf   STATUS,RP0
   bcf   STATUS,RP1      ; Selecciono BANCO-0 de memoria RAM

   movlw   B"00110001"      ; Configuro el TMR1 como controlador de los 0.5seg ya que el TMR0 no alcanza a ese tiempo
   movwf   T1CON         ; Habilito el TMR1 y selecciono el prescaler en 8

   movlw   B"11000000"
   movwf   INTCON         ; Habilito las interrupciones globales y perifericas
   clrf   PIR1         ; Borro todos los flag de las interrupciones incluyendo el del TMR1
   bsf   STATUS,RP0      ; Paso al BANCO-1 de memoria RAM
   movlw   B"00000001"
   movwf   PIE1         ; Habilito la interrupcion por sobreflujo del TMR1
   bcf    STATUS,RP0      ; Paso al BANCO-0 de memoria RAM

   movlw   H"DC"
   movwf   TMR1L
   movlw   H"0B"         ; Cargo los registros TMR1L y TMR1H con el dato H"0BDC"=D"3036" que
   movwf   TMR1H         ; resulta de la resta de 65536-65250=3036

RETORNO         
   nop
   goto   RETORNO         ; Continuamente se esta en esta rutina asta que se genera la interrupcion

;-----------------------------------------------------------------------------------------------
   END


Un saludo y suerte, cualquier duda solo preguntala.

Atte. CARLOS
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Mi primer programa problemas con el 16f873 gracias
« Respuesta #2 en: 30 de Marzo de 2006, 20:29:00 »
Una sugerencia para los moderadores.

Este topic no debiera ser movido a Todo Sobre Microcontroladores PIC?  Creo que aquí en programadores no encaja......

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Sispic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Mi primer programa problemas con el 16f873 gracias
« Respuesta #3 en: 31 de Marzo de 2006, 07:53:00 »
Si maunix , pero si lo movemos entonces será tu pregunta la que no encajará .

Es su primer programa , su primer post + pregunta , dejemos que aqui pueda leer las respuestas y el tiempo ya curará el resto .

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
RE: Mi primer programa problemas con el 16f873 gracias
« Respuesta #4 en: 31 de Marzo de 2006, 09:48:00 »
oye sis y si movemos el post de manuix sera el tuyo el que no encajará jejejeje Muchas risasMuchas risasMuchas risasMuchas risas

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Mi primer programa problemas con el 16f873 gracias
« Respuesta #5 en: 31 de Marzo de 2006, 14:12:00 »
Escrito originalmente por Sispic
Si maunix , pero si lo movemos entonces será tu pregunta la que no encajará .

Es su primer programa , su primer post + pregunta , dejemos que aqui pueda leer las respuestas y el tiempo ya curará el resto .



Bueno, parece que no fue tan bienvenida la sugerencia. jaja.

Tenía pensado en que se podía mover directamente el post y borrar el mío y asunto solucionado.  Mi post no tenía la intención de quedarse ahi viviendo por siempre Sonrisa
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Sispic

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Mi primer programa problemas con el 16f873 gracias
« Respuesta #6 en: 31 de Marzo de 2006, 14:30:00 »
No maunix , asi se dará cuenta para la proxima vez . si lo movemos es posible que no lo encuentre y no lo lea .

Tambien  la respuesta elmasvital quedará desencajada .Fumador

Pero por supuesto es bienvenida tu sugerencia , le falto esto Muchas risas a mi respuesta ya que es ironica Giño

saludete

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Mi primer programa problemas con el 16f873 gracias
« Respuesta #7 en: 31 de Marzo de 2006, 15:35:00 »
Escrito originalmente por Sispic
No maunix , asi se dará cuenta para la proxima vez . si lo movemos es posible que no lo encuentre y no lo lea .

Tambien  la respuesta elmasvital quedará desencajada .Fumador

Pero por supuesto es bienvenida tu sugerencia , le falto esto Muchas risas a mi respuesta ya que es ironica Giño

saludete



Bien Sonrisa ahora si entendi  Sonrisa GiganteSonrisa GiganteSonrisa Gigante, no había entendido la ironía Giño

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

rmatama

  • Visitante
RE: Mi primer programa problemas con el 16f873 gracias
« Respuesta #8 en: 02 de Abril de 2006, 11:02:00 »
Lo primero gracias Carlos, falte a unas cuantas clases me pire de viaje jejej ( aunk tampoco se si hubiera servido para algo...) y digamos k el profesor no da todas las facilidades k podria dando ejemplos y demas solo explica las transpariencias y ya esta.
Voy a ver si soy capaz solucionando algunas laguna que tengo y creo k gracias a tu codigo podre ya que es muy explicativo y aclarativo. Si tengo alguna duda ya la posteare.
Y en referencia a si el post esta mal puesto no se como era un programa?? dije a donde los programadores jeje si si debo ponerlo en otro lado a mi me lo indicais y sin problemas.

Pues lo dixo muy agradecido y a ver si voy cogiendo el trukillo a los pic

Un Saludo.Giño


 

anything