Autor Tema: contador decendente  (Leído 1929 veces)

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

Desconectado sientrar

  • PIC10
  • *
  • Mensajes: 4
contador decendente
« en: 09 de Noviembre de 2004, 09:37:00 »
Quisiera saber como hacer un contador de tiempo con cuatro pulsadores uno que comiense a contar otro que suba de valor otro que baje de valor y el ultimo pulsador que detenga la cuenta ,si  detengo la cuenta me guarda donde deje de contar y  cuando toco  el pulsador que comienza a contar de donde dejo , si toco dos veces el  pulsador que cuenta directamente cuenta de una variable que carge al comienzo del programa ejemplo 6minutos , me olvide decir que el contador sea decendente.  Si me pueden mandar ejemplos me ayudarian mucho por que recuçien comienzo con el tema. Elpic es un 16F84 y si puede ser ejemplos de assembler

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: contador decendente
« Respuesta #1 en: 09 de Noviembre de 2004, 15:09:00 »
Ok, en primer lugar edita el nombre del mensaje, es una politica ak q debas especificar el tema, no poner ayuda o SOS o cualkiera de estos q no especifique de q se trata, esto aparece en el foro. Por ejemplo pon Ayuda con Contador

Segundo, el programa que pides suena como a un cronometro,  lo q deberias decir es por ejemplo, cuanto es el tiempo q deseas entre cada valor de la cuenta y a dond va la salida (transmision, LCD, display LED...), el programa (la parte que cuenta y detiene y resetea) es bastante sencillo pero debes proveer a dond se dirige la cuenta, tb cual es el limite maximo (10, 60, 1000000???) porq d eso depende el conteo, y por ende, la forma en q se debe diseñar el programa y de cuanto en cuanto es la razon de incremente (de 1 en 1, 2 3...), mientras mas especifico seas con lo q preguntas mas podremos ayudarte.

Desconectado sientrar

  • PIC10
  • *
  • Mensajes: 4
RE: contador decendente
« Respuesta #2 en: 10 de Noviembre de 2004, 16:38:00 »
Disculpen pr ser tan poco especifico pero como ya dije soy nuevo en esto y no me doy cuenta de los miles de errores que cometo.
En cuanto a lo que quiero hacer un contador decendente que tenga como tope   30  minutos por  ejemplo .Aqui lesa mando como me gustaria conectar los ports
RA0= PULSADOR STAR (comienza conteo decendente  hasta llegar a  0)
RA1=PULSADOR UP(incrementa de a un minuto)
RA2=PULSADOR DOWN(decrementa de a una unidad ejemplo si tuviera 8 minutos toco este pulsador me quedaria 7minutos)
RA3= detiene la cuenta (es decir apaga el contador)
despues esto se veria en 2 display uno de minutos y otro de decenas de minutos
aqui muestro como conecte los display lo hice de forma multiplexada para ocupar menos espacio y para utilizar menos linaes de E/S lo conecte a un 4511
RB1=A DE 4511
RB2=B DE 4511
RB3=C DE 4511
RB4=D DE 4511
RB5= PNP QUE VA A DISPLAY DE UNIDADES
RB6=PNP QUE VA A DECENAS DE UNIDADES

LO QUE ME GUSTARIA QUE HICIERA ESTE CONTADOR ES QUE CUANDO SE APAGA  LA CUENTA POR MEDIO DE RA3 CUANDO VUELVO A TOCAR EL PULASADOR START SIGA  CONTANDO POR DONDE ME DEJO, Y QUE SI YO TOCARA 2 VECES EL PULSADOR DE RA3 SE PUSIERA LA CUENTA EN CERO .


BUENO MUCHAS GRACIAS POR CONTESTARME EL MENSAJE Y SI ME PUEDEN MOSTARR COMO HACERLO LES AGRADECERIA MUCHO
pd: el lenguaje me gustaria que fuera en asm

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: contador decendente
« Respuesta #3 en: 10 de Noviembre de 2004, 18:22:00 »
ok, otra pregunta: necesitas que el contador muestre en pantalla dond va??, en vez del 4511 usa un 7447 (TTL = mas economico)

lo de los cuatro pulsadores... bueno si kieres que la cuenta sea dinamica (es decir muestre el contenido de los valores del display todo el tiempo hasta que presione el boton te recomiendo usar interrupciones, pero debes decirme si necesitas que tu aparato muestre minutos o segundos.

Nuevamente: EDITA EL NOMBRE DEL POST!!!

Desconectado sientrar

  • PIC10
  • *
  • Mensajes: 4
RE: contador decendente
« Respuesta #4 en: 10 de Noviembre de 2004, 19:46:00 »
EN cuanto a donde lo quiero ver solo es una practica y lo que quisiera ver es la dinamica de los display .
EL valor que quiero ver en los display es de minutos lo que me gustaria es ponerle un limite de cuenta es decir que llegue como maximo a 30 minutos.

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: contador decendente
« Respuesta #5 en: 10 de Noviembre de 2004, 20:34:00 »
Ok, ahora solo t falta decir en q lenguaje lo vas a hacer BASIC, ASM o C, sin embargo ya tenemos bastante hecho. Solo t falta l lenguaje y podre responder a tu pregunta completamente. Si lo haces en BASIC (proton) seria algo como esto:

DEVICE = 16F84
XTAL = 4

dim contador as byte
dim temp as byte
dim modo as byte

ON INTERRUPT GOTO Pulsar
goto contar

Pulsar:
      clearbit intcon, rbif
      temp = portb & $F0      "Mascara de borrado solo se desean los bits superiores
      select  temp
           case 16   "Iniciar (RESET)
                low contador
           case 32   "Contador ascendente
                modo = 1
           case 64   "Contador descendente
                modo = 2
           case 128  "No contar (detener)
                 modo 0
       endselect
       resume

Contar:
for seg = 1 to 59
        for tm = 1 to 10
             delayms 100
        next
next                
select modo
    case 1
       min = min + 1
    case 2
       min = min - 1
endselect
if min = -1 then min = 30
if min = 31 then min = 0
"Aki la rutina q muestra los datos en el display
goto contar

Como puedes ver cambian:
PORTB<4..7> contiene los interruptores (para poder aprovechar la interrupcion)
PORTB<1..2> contiene los transistores de display (q debes crear)
PORTA los datos BCD (q debes crear)


Desconectado sientrar

  • PIC10
  • *
  • Mensajes: 4
RE: contador decendente
« Respuesta #6 en: 11 de Noviembre de 2004, 07:06:00 »
SI el dato que mandaste esta bueno pero el lenguaje me gustaria que fuera
ASM por que estoy tratando de aprenderlo.
GRACIAS por responder tan rapido