Autor Tema: Problema con simple contador  (Leído 1632 veces)

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

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Problema con simple contador
« en: 05 de Octubre de 2010, 18:43:36 »
Hola a todos,


estoy haciendo un simple contador hasta diez, y no me funciona, lo hago con MPLAB, y lo simulo en el simulador de MPLAB, y funciona bien, pero en proteus no me funciona.

En cuanto le meto un impulso me activa una salida, y yo quiero que no se active hasta que llegue a diez.

Aqui os paso el programa:

   LIST P=16F84
   #INCLUDE <P16F84.INC>
   

   ;============= MAPA DE MEMORIA===================


STATUS   EQU   0X03
TRISA   EQU   0X85
TRISB   EQU   0X86
PTOA   EQU   0X05
PTOB   EQU   0X06
CONTA   EQU   0X1C
REG1   EQU   0X0C
REG2   EQU   0X0D
REG3   EQU   0X0E
Z      EQU   0X02



   ;=============CONFIGURACION DE LOS PUERTOS=================

RESET   ORG      0X00
      GOTO   INICIO

INICIO   BSF      STATUS,5   ;PASAMOS AL BANCO 1
      MOVLW   0H
      MOVWF   TRISA         ;PUERTO A SALIDAS
      MOVLW   0FFH
      MOVWF   TRISB         ;PUERTO B ENTRADAS
      BCF      STATUS,5
      CLRF   PTOA
      CLRF   PTOB
      CLRF   CONTA
      BCF      STATUS,C

;======================PROGRAMA===================================

COMO   BTFSC   PTOB,1      ;COMPRUEBO PULSADOR
   GOTO   COMO
   CALL   TIEMPO
   BTFSC   PTOB,1
   GOTO   COMO
   INCF   CONTA,1
   MOVF   CONTA,W
   XORLW   0AH
   BTFSC   STATUS,Z
   BSF      PTOA,1
   GOTO   COMO
   GOTO    INICIO
   RETURN


   ;==================RETARDO====================

TIEMPO   MOVLW   0AH
      MOVWF   REG1
      MOVLW   05H
      MOVWF   REG2
      MOVLW   02H
      MOVWF   REG3
ESPERA   DECFSZ   REG3
      GOTO   ESPERA
ESPERA1   DECFSZ   REG2
      GOTO   ESPERA1
ESPERA2   DECFSZ   REG1
      GOTO   ESPERA2
      RETURN
END

Desconectado electronico39

  • PIC10
  • *
  • Mensajes: 46
Re: Problema con simple contador
« Respuesta #1 en: 08 de Octubre de 2010, 18:09:46 »
Bueno, pues poco a poco lo he solucionado y funciona correctamente, solo era un cambio de instruccion y a contar

GRACIAS POR VUESTRA AYUDA.