TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: kunobus 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
-
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
-
ok, gracias...seguire trabajando pero he tenido muchos problemas ya q soy muy primiparo para esto....