Aca dejo la ultima version del programa logre hacer titilar los semaforos peatonales de paso aunque aun lo estoy modificando, lo proximo que quiero es colocar un buzzer para ayudar a los invidentes a cruzar la calle espero que les guste esta actualizacin y acepto criticas de todo tipo un abrazo gente
LIST p=16F84 ; PIC16F844 procesador
#include "P16F84.INC" ; header file
CBLOCK 0x10 ; Almacenamiento
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
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
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
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
return
;--------------------------------------------------------------------
retpeaton bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
bcf PORTA, 1
call miniret
bsf PORTA, 1
call miniret
call miniret
call miniret
return
;--------------------------------------------------------------------
retpaso movlw 10
movwf l1
a1 call retpaso2
decfsz l1
goto a1
return
retpaso2 clrf l2
a2 decfsz l2
goto a2
return
;--------------------------------------------------------------------
retverde movlw 50
movwf l1
x1 call retverde2
decfsz l1
goto x1
return
retverde2 clrf l2
x2 decfsz l2
goto x2
return
;--------------------------------------------------------------------
;retamarillo movlw 30
; movwf l1
;y1 call retamarillo2
; decfsz l1
; goto y1
; return
;retamarillo2 clrf l2
;y2 decfsz l2
; goto y2
; return
;---------------------------------------------------------------------
retrojo movlw 60
movwf l1
z1 call retrojo2
decfsz l1
goto z1
return
retrojo2 clrf l2
z2 decfsz l2
goto z2
return
;---------------------------------------------------------------------
END