Autor Tema: ayuda con semáforo en asm  (Leído 2676 veces)

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

Desconectado kunobus

  • PIC10
  • *
  • Mensajes: 2
ayuda con semáforo en asm
« en: 27 de Octubre de 2010, 13:43:32 »
buenos dias, escribo para las personas q me puedan ayudar con un semaforo de cuatro carriles con en el pic16f84a codigo asm, apenas estoy empesando en esto y se me a dificultado un poco...espero que me puedan colaborar..anexo un comienso pero no se si esta bueno...de ante mano gracias...

LIST    p=16F84                 
#include "P16F84.INC"               

               CBLOCK 0x10           
                 l1
            l2
               
                ENDC

                org     0            ;
                 goto    setports        ;

               org     4               ;
            retfie                 ;

setports         clrw                    ;
                 movwf   PORTA           ;
                 movwf   PORTB           ;
                 bsf     STATUS,RP0      ;
                 clrw                    ;
                 movwf   TRISB
            movwf   TRISA           ;
                 bcf     STATUS,RP0      ;

loop             clrwdt           
                 bsf      PORTA, 1
            nop
            bsf      PORTB, 6
            nop
            bsf      PORTB, 0
            nop
            bsf      PORTB, 3
            call   retverde
            bcf      PORTB, 6
            nop
            bsf      PORTB, 5
            call   retpeaton
            bcf      PORTA, 1
            nop
            bcf      PORTB, 5
            nop
            bsf      PORTA, 0
            nop
            bsf      PORTB, 4
            call   retpaso
            bcf      PORTB, 3
            nop
            bsf      PORTB, 7
            nop
            bcf      PORTB, 0
            nop
            bsf      PORTB, 2
            call   retrojo
            bcf      PORTB, 2
            nop
            bsf      PORTB, 1
            call   retpeaton2
            bcf      PORTB, 1
            nop
            bcf      PORTB, 7
            nop
            bsf      PORTB, 3
            nop
            bsf      PORTB, 0
            call   retpaso
            nop
            bcf      PORTB, 4
     
            goto    loop             ;

;
;
;--------------------------------------------------------------------
miniret         movlw   1
                 movwf   l1

b1               call    miniret2
                decfsz  l1
               goto    b1

                 return


miniret2      clrf          l2
b2               decfsz        l2
                 goto          b2
                return
;--------------------------------------------------------------------
retpeaton2      bcf      PORTB, 7
            call   miniret
            bsf      PORTB, 7
            call   miniret           
            call   miniret
            call   miniret
            bcf      PORTB, 7
            call   miniret
            bsf      PORTB, 7
            call   miniret
            call   miniret
            call   miniret
            bcf      PORTB, 7
            call   miniret
            bsf      PORTB, 7
            call   miniret
            call   miniret
            call   miniret
            bcf      PORTB, 7

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: ayuda con semáforo en asm
« Respuesta #1 en: 27 de Octubre de 2010, 14:38:56 »
Hola, bienvenido al foro!
he leído rapidamente, y no le encuentro sentido a los NOP
         nop
            bsf      PORTB, 6
            nop
            bsf      PORTB, 0
            nop
            bsf      PORTB, 3
, si se los quitas, funcionaria igual, y ahorrarrias codigo...

Para que el lenguaje sea más "agaradable" tendrias que definir las luces, para obtener un codigo más legible y amigable...

ejemplo
#define ROJA1  PORTB,0
#DEFINE AMARILLA1 PORTB,1
#DEFINE VERDE11 PORTB,2
#DEFINE ROJA2 PORTB,3
ETC

con lo cual, tu codigo quedaria
bsf ROJA1
BSF VERDE2   :mrgreen:

te falta el END final...

ademas, el cblock seria para el f84    CBLOCK   H'0C'

Saludos!

Norberto





« Última modificación: 27 de Octubre de 2010, 14:42:13 por todopic »
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado kunobus

  • PIC10
  • *
  • Mensajes: 2
Re: ayuda con semáforo en asm
« Respuesta #2 en: 28 de Octubre de 2010, 09:10:07 »
ok, gracias...seguire trabajando pero he tenido muchos problemas ya q soy muy primiparo para esto....