Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

13/03/2011 #21

Avatar de Meta

Hola:

He hecho una prueba muy simple. Parece ser que el 16F84A no funciona muy bien en el Proteus 7.7 SP2. Lo que debe hacer este circuito es simplemente activar los ventiladores y desactivarlos, sólo funciona los Led.

Código:
;************************************* VentiladorDC_01.asm **********************************
;
;
;
; ZONA DE DATOS **********************************************************************

    LIST        P=16F84A
    INCLUDE        <P16F84A.INC>
    __CONFIG    _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

#DEFINE        Led_Naranja    PORTA,0        ;  
#DEFINE        Detener_Ventilador    PORTA,3        ; Interruptor
#DEFINE        Activar_Ventilador    PORTA,4        ; Interruptor 
#DEFINE        Led_Verde    PORTB,0    ;
#DEFINE        Led_Rojo    PORTB,1    ;
#DEFINE        Ventilador1    PORTB,2    ;
#DEFINE        Ventilador2    PORTB,3    ;
#DEFINE        Canal1        PORTB,4    ;
#DEFINE        Canal2        PORTB,5    ;
#DEFINE        Ventilador3    PORTB,6    ;
#DEFINE        Ventilador4    PORTB,7    ;


; ZONA DE CÓDIGOS ********************************************************************

    ORG     0
Inicio
    bsf        STATUS,RP0
    bcf        Led_Naranja
    bsf        Activar_Ventilador
    bsf        Detener_Ventilador    
    clrf    TRISB                    ; Las líneas del Puerto B configuradas como salida.
    bcf        STATUS,RP0
Principal    
    clrw                            ; Con esta combinación se detiene el motor.
    btfss    Activar_Ventilador
    goto    Vent_OFF
    goto     Vent_ON

Vent_ON
    movlw    b'11111101'    
    goto    ActivaSalida
Vent_OFF
    movlw    b'11001110'

ActivaSalida
    movwf    PORTB
    goto    Principal

    END


Ampliar esquema con Zoom.
http://www.subeimagenes.com/img/tacometro-23732.jpg

Saludo.








Edito:
Estaba haciendo otra prueba pero no me sale en asm.

Con un sólo pulsador quiero hacer esto.
- Si pulso RA4 una vez, se activa los ventiladores y enciende el aparato. El Led Verde enciende, Rojo y Naranja apagado.
- Si vuelvo a pulsar el mismo pulsador RA4, se apaga el aparato, los ventiladores se quedan encendiso al menos 2 minutos, Led se apaga el Verde, Rojo apagado y Naranja encendido.
- Cuando pasen los 2 minutos, todos los Led apagado menos el Rojo que se enciende y se queda ahí.

Código:
;************************************* VentiladorDC_01.asm **********************************
;
;
;
; ZONA DE DATOS **********************************************************************

    LIST        P=16F84A
    INCLUDE        <P16F84A.INC>
    __CONFIG    _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

    CBLOCK 0x0C
    Flag
    ENDC

#DEFINE        Led_Naranja    PORTA,0    ;  
#DEFINE        Tacometro1    PORTA,1 ; Tacómetro del ventilador 1.
#DEFINE        Tacometro2    PORTA,2 ; Tacómetro del ventilador 2.
#DEFINE        Led_Azul_tacometro_2    PORTA,3    ; Interruptor
#DEFINE        Activar_Ventilador    PORTA,4    ; Interruptor 
#DEFINE        Led_Verde    PORTB,0    ;
#DEFINE        Led_Rojo    PORTB,1    ;
#DEFINE        Ventilador1    PORTB,2    ;
#DEFINE        Ventilador2    PORTB,3    ;
#DEFINE        Canal1        PORTB,4    ;
#DEFINE        Canal2        PORTB,5    ;
#DEFINE        Ventilador3    PORTB,6    ;
#DEFINE        Ventilador4    PORTB,7    ;


; ZONA DE CÓDIGOS ********************************************************************

    ORG     0
Inicio
    bsf        STATUS,RP0
    bcf        Led_Naranja
    bsf        Tacometro1
    bsf        Tacometro2
    bcf        Led_Azul_tacometro_2
    bsf        Activar_Ventilador
    clrf    TRISB                    ; Las líneas del Puerto B configuradas como salida.
    bcf        STATUS,RP0
    bcf        Led_Naranja
    bcf        Led_Azul_tacometro_2
Principal    
    clrw                            ; Con esta combinación se detiene el motor.
DejaPulsar
    btfss    Activar_Ventilador
    goto    Vent_ON
    goto     DejaPulsar

Vent_ON
    movlw    .1
    movwf    Flag
    movlw    b'11111101'    ; Encender ventiladores.
    goto    ActivaSalida

Vent_OFF
    bsf        Led_Naranja
    call    Retardo_2s
    movlw    b'11001110' ; Apagar ventiladores.
    bcf        Led_Naranja
    goto    ActivaSalida

ActivaSalida
    movwf    PORTB
    btfss    Flag,0
    goto    Vent_OFF
    goto    Principal

    INCLUDE <RETARDOS.INC>
    END
La parte del tacómetro mejor dejarlo para un Led directamente.
15/03/2011 #22


En asm no lo practico mucho pero hice lo que se puede aver si sirve.
Modifique el esquema para simplificar.
15/03/2011 #23

Avatar de Meta

Me funciona muy bien tu código. Voy a adaptarlo mientras pueda y aviso.
24/03/2011 #24

Avatar de snakewather

Que onda meta!

Bueno espero no haberme demorado jejjejee apenas hoy tuve un ratito, y aqui esta mi aportacion.

Ya hasta le puse nombre a este proyecto META bueno almenos en mi version jejeje.

Esta hecho en Pic Basic PRO ya que se me hizo mas rapido ahorita ya que tengo mas experiencia en este que en CCS aunque lo voy a migrar despues a CCS con mas tiempo.

El programa esta estructurado asi:

Se captaran señales digitales 5vcd en el puerto A del PIC16F84 asi que lo configure como entrada, las salidas seran en el PUERTO B del pic donde se conectaran los ventiladores y leds indicadores.

LED_ROJO = almenos un aparato encendido
LED_VERDE = almenos un ventilador activado
LED amarillo = ventilador Proximo a apagarse. (parpadeando)

EL programa lo estructure en varias rutinas y dos subrutinas para los retardos que son fijos (3min para encender ventilador y 5 min para apagarlo).

Lo simule rapidillo en Proteus y si me sirvio al 100 asi que si no les jala fisicamente diganme.

dentro de un dia lo armo fisicamente y les digo si asi esta al 100% funcionando.
Archivos Adjuntos
Tipo de Archivo: rar Cooler16F84_v1.rar (2,8 KB (Kilobytes), 16 visitas)
24/03/2011 #25

Avatar de Meta

Muchas gracias, pues en mi caso no funciona nada. Puedes descargar tu ejemplo con el esquema aquí.
Archivos Adjuntos
Tipo de Archivo: zip Ventilator.zip (21,6 KB (Kilobytes), 35 visitas)
24/03/2011 #26

Avatar de snakewather

Meta dijo: Ver Mensaje
Muchas gracias, pues en mi caso no funciona nada. Puedes descargar tu ejemplo con el esquema aquí.
No puedo ver el esquematico mandeme una captura de imagen del archivo ISIS es que tengo el PROTEUS 7.2 SP6
29/03/2011 #27

Avatar de snakewather

Que tal ya probe fisicamente el Programa que postee de Cooler y funciona a la perfeccion. me aplaudo a mi mismo jejejeje.

Tu como vas meta que tal te esta quedando el tuyo con ASM.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.