Autor Tema: Problemas de principiante con el 16F84 , ayuda POR FAVOR  (Leído 1883 veces)

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

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
Problemas de principiante con el 16F84 , ayuda POR FAVOR
« en: 01 de Septiembre de 2003, 13:42:00 »
Hola!
Acabo de iniciarme al mundillo este de los microcontroladores, con el PIC 16F84 y el compilador PICBasic PRO.
He empezado a hacerme mis primeros programas (muy simples por ahora) , y algunos de ellos funcionan de maravilla. Pero otros , no sé porqué, fracasan. Espero que podáis ayudarme.Os enumero los problemillas.

1er problema:

x var byte
x=10
loop:
     high portb.5
     pause x
     low portb.5
     pause x
     x=x+10
goto loop
end
>>Se supone que este programa , comienza parpadeando un LED (RB5) rápidamente, y disminuye su intérvalo según X se incrementa por 10 sucesivamente. Pues bien,empieza bien, el intervalo se decrementa , pero llegado a un punto , es como si el programa reseteara, pues derepente se acelera el intervalo hasta cotas del principio del programa.¿Qué le pasa?

Problema 2:

input portb.5
output portb.6
loop:
  portb.6=0
  if portb.5=1 then
          portb.6=1
          pause 3000
  endif
goto loop
end

>>Este programa es simplísimo , se supone que cuando la entrada RB5 esté alta (mediante un pulsador) , RB6 (un led) se activará durante 3 segundos.Pues bien, si le pongo el pulsador en RB5, sin pulsarlo ya está encendido el LED , y si quito el pulsador, y por el mero hecho de tocar el pin , el led se enciende durante 3 segundos . Esto con cualquier material, tanto conductor como no... Y si pongo un cable del pin hasta masa, no se enciende...

¿¡Qué leches le pasa a mi PIC o a mi programa!?

Agradeceria respuestas a mi incognita.


Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Problemas de principiante con el 16F84 , ayuda POR FAVOR
« Respuesta #1 en: 01 de Septiembre de 2003, 14:06:00 »
Problema 1:

Una variable byte tien 8 bits, el valor maximo que puede alcanzar es 256, por lo tanto luego de 24 interacciones del Loop te retorna a cero, por ello ves ese problema que relatas.
Prueba a ponerle Word en vez de Byte y tendras hasta 65535 valores posibles.

Problema 2:

Los pines del pic son sensibles a la estatica, por lo tanto no es muy saludable toquetearlos si no tienen un valor logico definido.
Para ello ponlos a masa si quieres ponerlos en bajo y a +V si quieres ponerlo en alto.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Problemas de principiante con el 16F84 , ayuda POR FAVOR
« Respuesta #2 en: 01 de Septiembre de 2003, 14:39:00 »
PROBLEMA 1: Resuelto, muchas gracias.
PROBLEMA 2:
input portb.5
output portb.6
loop:
portb.6=0
if portb.5=1 then
portb.6=1
pause 3000
endif
goto loop
end

>>>> He puesto un pulsador desde el regulador LM7805 que me da los 5V TTL hasta RB5, y cuando acciono el programa , el LED se enciende ( RB6=1 ). ¿A qué se debe? He pensado en una lógica invertida, pero cuando pulso el pulsador , el LED no se apaga. Necesito una solución por favor .

Desconectado Sispic

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1685
    • winpic800
RE: Problemas de principiante con el 16F84 , ayuda POR FAVOR
« Respuesta #3 en: 01 de Septiembre de 2003, 14:48:00 »
si usas
OPTION_REG.7=0    "resistencias portb conectadas

el pulsador tiene que ir al negativo no a +5

Desconectado manex_1987

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1127
RE: Problemas de principiante con el 16F84 , ayuda POR FAVOR
« Respuesta #4 en: 01 de Septiembre de 2003, 14:56:00 »
En el POST de Mglpost , cito:
>>Para ello ponlos a masa si quieres ponerlos en bajo y a +V si quieres ponerlo en alto.

Cómo es eso de que tengo que conectar el pulsador a masa? No me daría 0 como dice mglpost? Perdona mi incultura, no obstante te pregunto esto para aprender la dinámica de los inputs, para poder implementarlos en futuros proyectos.

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
RE: Problemas de principiante con el 16F84 , ayuda POR FAVOR
« Respuesta #5 en: 01 de Septiembre de 2003, 16:01:00 »
Si habilitas los PullUps, como recomienda Sispic, puedes conectar el pulsador entre masa y el pin, eso le da un bajo cuando presionas el pulsador.
Pero debes hacer un cambio, porque si mides en el pin veras que mientras el pulsador esta en reposo tienes un uno logico en el pin, por ello en el programa debes contrastarlo con 0 , no con uno.
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

AciD0

  • Visitante
RE: Problemas de principiante con el 16F84 , ayuda POR FAVOR
« Respuesta #6 en: 04 de Septiembre de 2003, 01:31:00 »

Debido a las  caracteristicas de los integrados  casi siempre tienen  un voltaje muy pequeño en sus pines por lo que el integrado o pic lo toma como un 1 logico(5volts)
encendiendo tu led o dispositivo sin necesidad de precionar el boton (con solo conectar el circuito o tocar alguna parte del circuito con la mano).
para hacer caer  a  0volts este voltaje solo basta con  poner una resistencia  de unos  10k entre el  pin que se desea leer  (portb.5)y la  tierra (masa).
despues colocaremos  el boton  para  que  me lea el 1 logico(5volts) cuando este sea oprimido.