elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Ayuda con un proyecto!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un proyecto!  (Leído 22,465 veces)
Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: Ayuda con un proyecto!
« Respuesta #20 en: 18 Febrero 2014, 14:07 pm »

Hola

Para que no te sientas avandonado, estoy con el código. Por ahora te muesto uno incompleto y no útil, solo para que sepas que estoy trabajando.

Edito:
Ya he acabado.


Saludo.


« Última modificación: 18 Febrero 2014, 20:06 pm por Meta » En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: Ayuda con un proyecto!
« Respuesta #21 en: 18 Febrero 2014, 19:59 pm »

Hola de nuevo:

He acabado esquema como el código. Quiero saber si todo está correcto y eches un ojo a todo. Haz pedido el "esquema 1" lo mensionado antes.


Mi otra propuesta es este "esquema 2" de abajo. Se ha incluido un pulsador más para el STOP, por ahora no es funcional, estoy en ello por si lo logro. Por ahora sigue siendo el Reset. Otra cosa que he incluido son 3 Led, para que en todo momento tengas la seguridad en que tiempo tienes activo el temporizador actualmente.


Lista de componentes para el segundo esquema:

Citar
Resistencias:
R1, R2, R3, R4, R5 = 10 K - 1/4W.
R7, R8, R9 = 330 Ohm - 1/4 W.
R6 = 100 Ohm -  1/4 W.

Condensadores:
C1, C2 = 22 pF / 6V
C3 = 100 nF / 6V

Diodos:
D1, D2, D3 = Led de 3 ó 5 mm color rojo, verde o naranja. 2V/25 mA.

Oscilador de cuarzo:
X1 = 4 MHz

Circuitos integrados:
IC1 = PIC16F84A-04
IC2 = L293D

Otros componentes:
M1 = Motor DC 12 V.
5 micropulsadores.

Aunque montes el primer esquema, la programación es del 2º y te funcionan igual.

¿Alguna otra sugerencia, pregunta, ayuda?

un saludo.


« Última modificación: 18 Febrero 2014, 22:36 pm por Meta » En línea

16BITS

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Ayuda con un proyecto!
« Respuesta #22 en: 18 Febrero 2014, 21:04 pm »

Creo que te quedo todo perfecto, la programacion me la pasarias por mi correo o aqui mismo lo subirias es que quisiera montarlo ya que cuento con el cargador de PIC. Muchas Gracias Por Tu Ayuda!
En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: Ayuda con un proyecto!
« Respuesta #23 en: 18 Febrero 2014, 22:16 pm »

Hola:

La programación está aquí.
Muchas suerte.

Quiero si es posible y tu tiempo lo permite que, cuando tengas montado aunque sea protoboard o PCB, muestres fotos reales del proyecto, y si incluye un vídeo, mejor que mejor. Con tu permiso, subiré esas fotos y vídeos a mi blog con el proyecto completo gracias a ti.




El código fuente:
Código
  1. ; ZONA DE DATOS **********************************************************************
  2.  
  3. LIST P=16F84A        ; Procesador.
  4. INCLUDE <P16F84A.INC>   ; Definición de las etiquetas del PIC.
  5. __CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  6.    __IDlOCS    0001            ; Versión del programa.
  7.  
  8. Variables UDATA_SHR
  9. RAM     RES 1
  10. RAM_1   RES 1
  11. RAM_2   RES 1
  12. RAM_3   RES 1
  13. RAM_4   RES 1
  14. RAM_5   RES 1
  15. RAM_6   RES 1
  16. RAM_7   RES 1
  17. RAM_8   RES 1
  18. RAM_9   RES 1
  19. RAM_10  RES 1
  20. RAM_11  RES 1
  21. RAM_12  RES 1
  22. RAM_13  RES 1
  23. RAM_14  RES 1
  24. RAM_15  RES 1
  25. RAM_16  RES 1
  26. RAM_17  RES 1
  27.  
  28. #DEFINE Pulsador_1 PORTA,4 ; Pulsador conectado a RA4.
  29. #DEFINE Pulsador_2  PORTA,3     ; Pulsador conectado a RA3.
  30. #DEFINE Pulsador_3  PORTA,2     ; Pulsador conectado a RA2.
  31. #DEFINE Pul_STOP    PORTA,1     ; Pulsador de parada del motor.
  32. #DEFINE Motor PORTB,7 ; Línea donde se conecta el motor.
  33. #DEFINE Led_1       PORTB,6     ; Led 1.
  34. #DEFINE Led_2       PORTB,5     ; Led 2.
  35. #DEFINE Led_3       PORTB,4     ; Led 3.
  36.  
  37. ; ZONA DE CÓDIGOS ********************************************************************
  38.  
  39. ORG 0 ; El programa comienza en la dirección 0.
  40. Inicio
  41. bsf STATUS,RP0 ; Acceso al Banco 1.
  42. bsf Pulsador_1 ; La línea RA4 se configura como entrada.
  43. bsf Pulsador_2 ; La línea RA3 se configura como entrada.
  44. bsf Pulsador_3 ; La línea RA2 se configura como entrada.
  45. bsf Pul_STOP     ; La línea RA1 se configura como entrada.
  46. bcf Motor ; Se configura como salida.
  47.    bcf     Led_1               ; Led de aviso 5 minutos en activo.
  48.    bcf     Led_2               ; Led de aviso 10 minutos en activo.
  49.    bcf     Led_3               ; Led de aviso 20 minutos en activo.
  50. bcf STATUS,RP0 ; Acceso al Banco 0.
  51. bcf Motor ; En principio Motor apagado igual
  52.    bcf     Led_1               ; que los Leds.
  53.    bcf     Led_2
  54.    bcf     Led_3
  55.  
  56. Principal
  57. btfsc Pulsador_1 ; ¿Pulsador presionado?, ¿(Pulsador)=0?
  58. goto Fin ; No. Vuelve a leerlo.
  59. call Retardo20ms ; Espera que se estabilicen los niveles de tensión.
  60. btfsc Pulsador_1 ; Comprueba si es un rebote.
  61. goto Fin ; Era un rebote y sale fuera.
  62.    bsf     Motor               ; Activa el motor y
  63.    bsf     Led_1               ; enciende el Led 1 que significa
  64. call Retardo5m           ; los 5 minutos encendido.
  65.    bcf     Motor               ; Apaga el motor y
  66.    bcf     Led_1               ; el Led 1.
  67. EsperaDejePulsar_1
  68. btfss Pulsador_1 ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
  69. goto EsperaDejePulsar_1 ; No. Espera que deje de pulsar.
  70. Fin
  71.  
  72. btfsc Pulsador_2 ; ¿Pulsador presionado?, ¿(Pulsador)=0?
  73. goto Fin2 ; No. Vuelve a leerlo.
  74. call Retardo20ms ; Espera que se estabilicen los niveles de tensión.
  75. btfsc Pulsador_2 ; Comprueba si es un rebote.
  76. goto Fin2 ; Era un rebote y sale fuera.
  77.    bsf     Motor               ; Activa el motor y
  78.    bsf     Led_2               ; enciende el Led 2 que significa
  79. call Retardo10m          ; los 10 minutos encendido.
  80.    bcf     Motor               ; Apaga el motor y
  81.    bcf     Led_2               ; el Led 2.
  82. EsperaDejePulsar_2
  83. btfss Pulsador_2 ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
  84. goto EsperaDejePulsar_2 ; No. Espera que deje de pulsar.
  85. Fin2
  86.  
  87. btfsc Pulsador_3 ; ¿Pulsador presionado?, ¿(Pulsador)=0?
  88. goto Fin3 ; No. Vuelve a leerlo.
  89. call Retardo20ms ; Espera que se estabilicen los niveles de tensión.
  90. btfsc Pulsador_3 ; Comprueba si es un rebote.
  91. goto Fin3 ; Era un rebote y sale fuera.
  92.    bsf     Motor               ; Activa el motor y
  93.    bsf     Led_3               ; enciende el Led 3 que significa
  94. call Retardo20m          ; los 10 minutos encendido.
  95.    bcf     Motor               ; Apaga el motor y
  96.    bcf     Led_3               ; el Led 3.
  97. EsperaDejePulsar_3
  98. btfss Pulsador_3 ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
  99. goto EsperaDejePulsar_3 ; No. Espera que deje de pulsar.
  100. Fin3    goto Principal
  101.  
  102. ; Subrutinas ****************************************************************
  103.  
  104. Retardo20ms
  105. ;199993 cycles
  106. movlw 0x3E
  107. movwf RAM_8
  108. movlw 0x9D
  109. movwf RAM_9
  110. Retardo20ms_0
  111. decfsz RAM_8, f
  112. goto $+2
  113. decfsz RAM_9, f
  114. goto Retardo20ms_0
  115.  
  116. ;3 cycles
  117. goto $+1
  118. nop
  119.  
  120. ;4 cycles (including call)
  121. return
  122.  
  123. Retardo5m
  124. ;299999995 cycles
  125. movlw 0x54
  126. movwf RAM_10
  127. movlw 0xA1
  128. movwf RAM_11
  129. movlw 0xFD
  130. movwf RAM_12
  131. movlw 0x02
  132. movwf RAM_13
  133. Retardo5m_0
  134. decfsz RAM_10, f
  135. goto $+2
  136. decfsz RAM_11, f
  137. goto $+2
  138. decfsz RAM_12, f
  139. goto $+2
  140. decfsz RAM_13, f
  141. goto Retardo5m_0
  142.  
  143. ;1 cycle
  144. nop
  145.  
  146. ;4 cycles (including call)
  147. return
  148.  
  149. Retardo10m
  150. ;599999992 cycles
  151. movlw 0xA9
  152. movwf RAM_4
  153. movlw 0x41
  154. movwf RAM_5
  155. movlw 0xFA
  156. movwf RAM_6
  157. movlw 0x04
  158. movwf RAM_7
  159. Retardo10m_0
  160. decfsz RAM_4, f
  161. goto $+2
  162. decfsz RAM_5, f
  163. goto $+2
  164. decfsz RAM_6, f
  165. goto $+2
  166. decfsz RAM_7, f
  167. goto Retardo10m_0
  168.  
  169. ;4 cycles
  170. goto $+1
  171. goto $+1
  172.  
  173. ;4 cycles (including call)
  174. return
  175.  
  176. cblock
  177. RAM
  178. RAM_1
  179. RAM_2
  180. RAM_3
  181. endc
  182.  
  183. Retardo20m
  184. ;1199999995 cycles
  185. movlw 0x54
  186. movwf RAM_14
  187. movlw 0x82
  188. movwf RAM_15
  189. movlw 0xF3
  190. movwf RAM_16
  191. movlw 0x08
  192. movwf RAM_17
  193. Retardo20m_0
  194. decfsz RAM_14, f
  195. goto $+2
  196. decfsz RAM_15, f
  197. goto $+2
  198. decfsz RAM_16, f
  199. goto $+2
  200. decfsz RAM_17, f
  201. goto Retardo20m_0
  202.  
  203. ;1 cycle
  204. nop
  205.  
  206. ;4 cycles (including call)
  207. return
  208.  
  209. END
  210.  
  211.  
  212.  

Espero que te vaya de maravilla, en el simulador me funciona bien, lo probaré también en realidad realidad. 

Suerete...
En línea

16BITS

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re:
« Respuesta #24 en: 18 Febrero 2014, 23:48 pm »

Me gustaría que me pasaras tu cuenta de PayPal para apoyarte por apoyarme compañero

Enviado desde mi XT1032 mediante Tapatalk
En línea

xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: Ayuda con un proyecto!
« Respuesta #25 en: 18 Febrero 2014, 23:58 pm »

Meta yo soy más de programación de PICs en C y toco poco de ASM, y me quedé impresionado del trabajo que hiciste sin llevarte nada a cambio a parte de las gracias. Espero que el usuario se moleste en hacer unas fotos y un vídeo una vez lo tenga montado...

Una posible mejora sería añadir control del motor por PWM para moderar la velocidad de giro a la que se asa la carne, aunque no sé si sería útil o es mejor hacerlo a una velocidad constante.

Otra sería añadir protección contra sobrecorriente del motor y así evitar quemarlo en el caso de que hubiera algún fallo. Se podría hacer fácilmente con un comparador e interrupciones, aunque no sé si ese modelo tiene comparadores la verdad.

En fin solo eran ideas para exprimir el PIC un poquito más.

EDITO: bueno retiro lo dicho ya que no vi que 16BITS había publicado... y yo también me quedo a la espera de ver el proyecto montado ;D

Un saludo!
« Última modificación: 19 Febrero 2014, 00:00 am por xiruko » En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re:
« Respuesta #26 en: 19 Febrero 2014, 00:26 am »

Me gustaría que me pasaras tu cuenta de PayPal para apoyarte por apoyarme compañero

Enviado desde mi XT1032 mediante Tapatalk

Hola campeón:

He tardado en hacerlo porque tuve que mirar los libros viejos para recordar ciertas cosas del asm, ejejjejeej. Al final, el circuito funciona. Gracias a los apoyos, puedomos conseguir recursos que la gente me pidan para hacer proyectos de este tipo y más complejos, incluido tutoriales.

No esperaba una donación tan pronto para este año y es de agradecer.  :)

El enlace está en el botón pequeño de donar, abajo.
http://electronica-pic.blogspot.com.es/2010/11/dona-y-ayudas-para-futuros-proyectos.html

Puede comentar cualquier cosa para el futuro. Ahhhhh, adaptaré para otros PIC similares del 16F84A para que la gente tenga más opción de montarlo si no encuentra el indicado. 16F27A/628A/648A, 16F87/88 y 16F886. Si una persona no encuentra uno en su tienda habitual, encuentra otro. Lo publicaré en el Blog las actuallizaciones.

Gracias de nuevo por seguir adelante con el proyecto sin que te canses. Me di cuenta que este tema, tiene muchos visitantes.

Meta yo soy más de programación de PICs en C y toco poco de ASM, y me quedé impresionado del trabajo que hiciste sin llevarte nada a cambio a parte de las gracias. Espero que el usuario se moleste en hacer unas fotos y un vídeo una vez lo tenga montado...

Una posible mejora sería añadir control del motor por PWM para moderar la velocidad de giro a la que se asa la carne, aunque no sé si sería útil o es mejor hacerlo a una velocidad constante.

Otra sería añadir protección contra sobrecorriente del motor y así evitar quemarlo en el caso de que hubiera algún fallo. Se podría hacer fácilmente con un comparador e interrupciones, aunque no sé si ese modelo tiene comparadores la verdad.

En fin solo eran ideas para exprimir el PIC un poquito más.

EDITO: bueno retiro lo dicho ya que no vi que 16BITS había publicado... y yo también me quedo a la espera de ver el proyecto montado ;D

Un saludo!

Hola Xiruko:

El C me estaba metiendo hace poco con CCS, ahora me dio por Arduino. Estoy aprendiendo y me queda mucho, ejejjejeje. El que sepa hacer este proyecto en C, es bienvenido, pruebo el código, hago pruebas en mi casa haber si sirve realmente que no sea simuladores, y lo subo al Blog si lo desean.

Le animo que muestre fotos y vídeos del proyecto si lo desea. Siento curiosidad, de todas maneras, en estos momentos, estoy adaptando el PIC16F84A al PIC16F88 porque es el que tengo ahora en este mismo momento.

En cuanto a exprimir el PIC un poquito más, más bien sería con el 16F88 que tiene más funciones. En cuanto a PWM, como es velocidad constante, no hace falta. Por cierto, se me olvidó poner el esquema, el condensador de protección del motor en paralelo. Lo actualizaré cuando pueda.



Gracias por la sugerencia, gracias por seguir leyendo y aún así, me sorprende que en 5 días haya muchos visitante por este tema.

 ;)
« Última modificación: 19 Febrero 2014, 00:51 am por Meta » En línea

16BITS

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Ayuda con un proyecto!
« Respuesta #27 en: 19 Febrero 2014, 05:21 am »

Muchas Gracias, Una PRegunta en que programa puedo montar la programacion para montarlo al pic :C


Ya Aporte Mi Donacion!
En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: Ayuda con un proyecto!
« Respuesta #28 en: 19 Febrero 2014, 07:12 am »



Hola:

El MPLAP X lo puedes descargar en cualquier Sistema Operativo Windows, Linux y Mac en este enlace. Te viene con asm incluido. No olvidar que MPLAB X es un IDE.

Descarga directa pinchando aquí:

Windows:
MPLAB X v2.00 - DESCARGAR.

Linux:
MPLAB X v2.00 - DESCARGAR.

Mac:
MPLAB X v2.00 - DESCARGAR.

Muchos ánimos.

Edito:

He recibido donación para apoyar Blog.

Muchísimas gracias y a los demás también por las sugerencias.
« Última modificación: 19 Febrero 2014, 09:40 am por Meta » En línea

Meta


Desconectado Desconectado

Mensajes: 3.439



Ver Perfil WWW
Re: Ayuda con un proyecto!
« Respuesta #29 en: 19 Febrero 2014, 10:02 am »

Hola de nuevo:

Dejo el esquema mejorado, ya que se ha incorporado un condensador en el L293D y en el propio motor.


Lista de componentes:

Citar
Resistencias:
R1, R2, R3, R4, R5 = 10 K - 1/4W.
R7, R8, R9 = 330 Ohm - 1/4 W.
R6 = 100 Ohm -  1/4 W.

Condensadores:
C1, C2 = 22 pF / 6V
C3,C5 = 100 nF / 6V
C4 = 250 n / 16V

Diodos:
D1, D2, D3 = Led de 3 ó 5 mm color rojo, verde o naranja. 2V/25 mA.

Oscilador de cuarzo:
X1 = 4 MHz

Circuitos integrados:
IC1 = PIC16F84A-04
IC2 = L293D

Otros componentes:
Z1 = Zócalo de 18 pines.
Z2 = Zócalo de 16 pines.
M1 = Motor DC 12 V.
5 micropulsadores.

Cosas que debes tener en cuenta. Si es la misma fuente alimenteción de los 5V y 12V, no le pasará nada. Si son de fuentes diferenes conectado a la misma masa, no funcionará.


Código más optimizado y corregido.
Código
  1. ; ZONA DE DATOS **********************************************************************
  2.  
  3. LIST P=16F84A        ; Procesador.
  4. INCLUDE <P16F84A.INC>   ; Definición de las etiquetas del PIC.
  5. __CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC
  6.    __IDlOCS    0001            ; Versión del programa.
  7.  
  8. Variables UDATA_SHR 0x0C
  9. RAM     RES 1
  10. RAM_1   RES 1
  11. RAM_2   RES 1
  12. RAM_3   RES 1
  13. RAM_4   RES 1
  14. RAM_5   RES 1
  15. RAM_6   RES 1
  16. RAM_7   RES 1
  17. RAM_8   RES 1
  18. RAM_9   RES 1
  19. RAM_10  RES 1
  20. RAM_11  RES 1
  21. RAM_12  RES 1
  22. RAM_13  RES 1
  23. RAM_14  RES 1
  24. RAM_15  RES 1
  25. RAM_16  RES 1
  26. RAM_17  RES 1
  27.  
  28. #DEFINE Pulsador_1 PORTA,4 ; Pulsador conectado a RA4.
  29. #DEFINE Pulsador_2  PORTA,3     ; Pulsador conectado a RA3.
  30. #DEFINE Pulsador_3  PORTA,2     ; Pulsador conectado a RA2.
  31. #DEFINE Pul_STOP    PORTA,1     ; Pulsador de parada del motor.
  32. #DEFINE Motor PORTB,7 ; Línea donde se conecta el motor.
  33. #DEFINE Led_1       PORTB,6     ; Led 1.
  34. #DEFINE Led_2       PORTB,5     ; Led 2.
  35. #DEFINE Led_3       PORTB,4     ; Led 3.
  36.  
  37. ; ZONA DE CÓDIGOS ********************************************************************
  38.  
  39. ORG 0 ; El programa comienza en la dirección 0.
  40. Inicio
  41. bsf STATUS,RP0 ; Acceso al Banco 1.
  42. bsf Pulsador_1 ; La línea RA4 se configura como entrada.
  43. bsf Pulsador_2 ; La línea RA3 se configura como entrada.
  44. bsf Pulsador_3 ; La línea RA2 se configura como entrada.
  45. bsf Pul_STOP     ; La línea RA1 se configura como entrada.
  46. bcf Motor ; Se configura como salida.
  47.    bcf     Led_1               ; Led de aviso 5 minutos en activo.
  48.    bcf     Led_2               ; Led de aviso 10 minutos en activo.
  49.    bcf     Led_3               ; Led de aviso 20 minutos en activo.
  50. bcf STATUS,RP0 ; Acceso al Banco 0.
  51. bcf Motor ; En principio Motor apagado igual
  52.    bcf     Led_1               ; que los Leds.
  53.    bcf     Led_2
  54.    bcf     Led_3
  55.  
  56. Principal
  57. btfsc Pulsador_1 ; ¿Pulsador presionado?, ¿(Pulsador)=0?
  58. goto Fin ; No. Vuelve a leerlo.
  59. call Retardo20ms ; Espera que se estabilicen los niveles de tensión.
  60. btfsc Pulsador_1 ; Comprueba si es un rebote.
  61. goto Fin ; Era un rebote y sale fuera.
  62.    bsf     Motor               ; Activa el motor y
  63.    bsf     Led_1               ; enciende el Led 1 que significa
  64. call Retardo5m           ; los 5 minutos encendido.
  65.    bcf     Motor               ; Apaga el motor y
  66.    bcf     Led_1               ; el Led 1.
  67. EsperaDejePulsar_1
  68. btfss Pulsador_1 ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
  69. goto EsperaDejePulsar_1 ; No. Espera que deje de pulsar.
  70. Fin
  71.  
  72. btfsc Pulsador_2 ; ¿Pulsador presionado?, ¿(Pulsador)=0?
  73. goto Fin2 ; No. Vuelve a leerlo.
  74. call Retardo20ms ; Espera que se estabilicen los niveles de tensión.
  75. btfsc Pulsador_2 ; Comprueba si es un rebote.
  76. goto Fin2 ; Era un rebote y sale fuera.
  77.    bsf     Motor               ; Activa el motor y
  78.    bsf     Led_2               ; enciende el Led 2 que significa
  79. call Retardo10m          ; los 10 minutos encendido.
  80.    bcf     Motor               ; Apaga el motor y
  81.    bcf     Led_2               ; el Led 2.
  82. EsperaDejePulsar_2
  83. btfss Pulsador_2 ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
  84. goto EsperaDejePulsar_2 ; No. Espera que deje de pulsar.
  85. Fin2
  86.  
  87. btfsc Pulsador_3 ; ¿Pulsador presionado?, ¿(Pulsador)=0?
  88. goto Fin3 ; No. Vuelve a leerlo.
  89. call Retardo20ms ; Espera que se estabilicen los niveles de tensión.
  90. btfsc Pulsador_3 ; Comprueba si es un rebote.
  91. goto Fin3 ; Era un rebote y sale fuera.
  92.    bsf     Motor               ; Activa el motor y
  93.    bsf     Led_3               ; enciende el Led 3 que significa
  94. call Retardo20m          ; los 10 minutos encendido.
  95.    bcf     Motor               ; Apaga el motor y
  96.    bcf     Led_3               ; el Led 3.
  97. EsperaDejePulsar_3
  98. btfss Pulsador_3 ; ¿Dejó de pulsar?. ¿(Pulsador)=1?
  99. goto EsperaDejePulsar_3 ; No. Espera que deje de pulsar.
  100. Fin3    goto Principal
  101.  
  102. ; Subrutinas ****************************************************************
  103.  
  104. Retardo20ms
  105. ;199993 cycles
  106. movlw 0x3E
  107. movwf RAM_8
  108. movlw 0x9D
  109. movwf RAM_9
  110. Retardo20ms_0
  111. decfsz RAM_8, f
  112. goto $+2
  113. decfsz RAM_9, f
  114. goto Retardo20ms_0
  115.  
  116. ;3 cycles
  117. goto $+1
  118. nop
  119.  
  120. ;4 cycles (including call)
  121. return
  122.  
  123. Retardo5m
  124. ;299999995 cycles
  125. movlw 0x54
  126. movwf RAM_10
  127. movlw 0xA1
  128. movwf RAM_11
  129. movlw 0xFD
  130. movwf RAM_12
  131. movlw 0x02
  132. movwf RAM_13
  133. Retardo5m_0
  134. decfsz RAM_10, f
  135. goto $+2
  136. decfsz RAM_11, f
  137. goto $+2
  138. decfsz RAM_12, f
  139. goto $+2
  140. decfsz RAM_13, f
  141. goto Retardo5m_0
  142.  
  143. ;1 cycle
  144. nop
  145.  
  146. ;4 cycles (including call)
  147. return
  148.  
  149. Retardo10m
  150. ;599999992 cycles
  151. movlw 0xA9
  152. movwf RAM_4
  153. movlw 0x41
  154. movwf RAM_5
  155. movlw 0xFA
  156. movwf RAM_6
  157. movlw 0x04
  158. movwf RAM_7
  159. Retardo10m_0
  160. decfsz RAM_4, f
  161. goto $+2
  162. decfsz RAM_5, f
  163. goto $+2
  164. decfsz RAM_6, f
  165. goto $+2
  166. decfsz RAM_7, f
  167. goto Retardo10m_0
  168.  
  169. ;4 cycles
  170. goto $+1
  171. goto $+1
  172.  
  173. ;4 cycles (including call)
  174. return
  175.  
  176. Retardo20m
  177. ;1199999995 cycles
  178. movlw 0x54
  179. movwf RAM_14
  180. movlw 0x82
  181. movwf RAM_15
  182. movlw 0xF3
  183. movwf RAM_16
  184. movlw 0x08
  185. movwf RAM_17
  186. Retardo20m_0
  187. decfsz RAM_14, f
  188. goto $+2
  189. decfsz RAM_15, f
  190. goto $+2
  191. decfsz RAM_16, f
  192. goto $+2
  193. decfsz RAM_17, f
  194. goto Retardo20m_0
  195.  
  196. ;1 cycle
  197. nop
  198.  
  199. ;4 cycles (including call)
  200. return
  201.  
  202. END
  203.  
  204.  
  205.  

Si quieres una sugerencia más, añado dos salidas, por si pones un altavoz o un zumbador piezoeléctrico. Cuando termine el tiempo, a parte de apagarse el motor, suena un pitido como el microondas. Ya me dirás si te interesa, lo programo ingernamente, aunque físicamente no lo vayas a usar, si en el futuro decides ponerlo, solo es ponerlo, ya que la programación está hecha.

Ya me dirás la respuesta.

Sigo mejorando si puedo por si acaso...

Muchas gracias de nuevo.

Edito:

Ya he sacado otro código con ayuda de amigos bajo el timer 0.  Te podrás ahorrar el pulsador y las resistencias del RESET. La nueva función funciiona tal como la querías desde el principio. Por ejemplo:

Si has pulsado el pulsador P2 de 10 minutos, mientras sigue el motor encendido, pulso cualquier pulsador, por ejeplo, el P1 de 5 minutos, ahora el temporizador empezará desce 0 y cuenta los 5 minutos. También tiene la posibilidad de pulsar el botón de Stop en cualquier momento, se detiene el proceso, puedes interrumpir el proceso y sin resetear el PIC.

Si al final lo quieres así, me avisas, preparo el código mejor para que se entienda.

Edito 2:


A parte del nuevo código de asm, también tengo el de C bajo XC8. Lo subiré después de revisarlos. ;)

Saludo.
« Última modificación: 19 Febrero 2014, 23:20 pm por Meta » En línea

Páginas: 1 2 [3] 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROYECTO!!!!
Electrónica
carcepower 2 3,062 Último mensaje 10 Marzo 2006, 12:33 pm
por plomo17
Ayuda con un Proyecto !!!!!!!!! « 1 2 »
Programación Visual Basic
VirucKingX 10 4,278 Último mensaje 26 Abril 2006, 04:04 am
por VirucKingX
ayuda con proyecto
Programación Visual Basic
claudio145 4 1,905 Último mensaje 31 Agosto 2007, 01:19 am
por cark
Ayuda con un proyecto « 1 2 3 4 »
Programación Visual Basic
lord manson 38 12,504 Último mensaje 19 Julio 2008, 14:49 pm
por lord manson
Ayuda CON mi proyecto « 1 2 »
Programación Visual Basic
blood_brother 11 5,439 Último mensaje 23 Agosto 2009, 18:29 pm
por seba123neo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines