You are on page 1of 8

INICIO

CONFIGURACION DE
PUERTOS

1 1 1 1 1 1 1 1
PP R A V

NO

RCO=1

SA=0000110

SA=000011
00
SB=000100
01
CONT=60

SB=0001000
1
CONT=30
PORTB=DISPLAY(C
ONT)
CONT=CONT-1

PORTB=DISPLAY(CO
NT)
CONT=CONT-1
CONT=0

SI
SA=00001110

SI

CONT=0

NO
RETARDO=1S
EG

NO

SI
SA=00001010
SB=00010010

SB=00010010

RETARDO=3SEG

RETARDO=3SE
G
SA=00010001

SA=00010001

SB=00001100

SB=00001100

CONT=60

CONT=30

PORTB=DISPLAY(CO
NT)

PORTB=DISPLAY(CONT
)

CONT=CONT-1

CONT=0

REARDO=1
SEG

RETARDO=1SE
G

CONT=CONT1
CONT=0

RETARDO=1
SEG

NO

SI

NO
SI

FIN

CODIGO EN MPLAB SEMAFORO


INCLUDE<P16F877.INC>
LIST P=16F877
R=hex
CONT
NUM
DECENAS
UNIDAD
PDel0
PDel1
PDel2
CONT1
PDel0D
PDel1D
PDel2D

INICIO

EQU

21
EQU
EQU
EQU
EQU
EQU
EQU

EQU

EQU
EQU
EQU

22
23
24
25
26
27
28

29
30
31

BANKSEL
MOVLW
MOVWF
CLRF
MOVLW
MOVWF
BANKSEL

TRISB
B'10000000'
TRISC
TRISB
B'11000000'
TRISD
PORTB

CLRF
CLRF
CLRF
CALL
CALL
BTFSS
GOTO
BSF
BSF
BSF

PORTD
PORTC
CONT
BINBCD
MOSTRAR
PORTC,0
TY
PORTC,1;SALIDA ROJA DEL SEMAFORO A
PORTD,4
PORTC,5;SALIDA EN VERDE DEL SEMAFORO B

.31
CONT

CALL
CALL
GOTO

BINBCD
MOSTRAR
ER

ER

BSF
BSF
BSF
MOVLW
MOVWF
DECFSZ
GOTO
GOTO

REPETIR

SALIR CALL

PORTC,5;SALIDA EN VERDE DEL SEMAFORO PEATONAL A


PORTC,4;SALIDA EN ROJO DEL SEMAFORO PEATONAL B
PORTD,5

CONT
REPETIR
SALIR

MOSTRAR
BCF
CALL
BCF
CALL
BCF
CALL
BSF
CALL
CALL
CALL
BCF
CALL

PORTC,1
RETARDO1
PORTC,4
RETARDO1
PORTD,4
RETARDO1
PORTC,2; SEMAFORO EN AMARILLO POR 3 SEGUNDOS
RETARDO1
RETARDO1
RETARDO1
PORTC,2
RETARDO1

BSF
CALL

PORTC,3
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
PORTD,2
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1

CALL

CALL
CALL
CALL
CALL
BSF
CALL
CALL

CALL

CALL
CALL

CALL

BSF

CALL
CALL

BSF
CALL
CALL
CALL
CALL
BSF
CALL
CALL
CALL
GOTO

PORTD,3
RETARDO1
RETARDO1
PORTC,5
RETARDO1
RETARDO1
RETARDO1
RETARDO1
PORTD,6
RETARDO1
RETARDO1
RETARDO1
INICIO

;-----------------------------------------------------------------------TY

CLRF
PORTD
CLRF
PORTC
CLRF
CONT
BSF
PORTD,2;SALIDA EN ROJO DEL SEMAFOR B
BSF
PORTC,3
BSF
PORTD,5;SALIDA EN VERDE DEL SEMAFORO PEATONAL
BSF
PORTC,4; SEMAFORO EN ROJO DEL PEATONAL A
MOVLW
.61
MOVWF
CONT
RT
DECFSZ
CONT
GOTO
TYR
GOTO
AREPA
;----------------------------------------------------------------------------------AREPA CALL
MOSTRAR; LLAMAMOS EL DISPLAY PARA VER P0R EL CONTEO DE 30 O
60
BSF
PORTD,4
CALL
RETARDO1
BSF
PORTC,1
CALL
RETARDO1

;
;

TYR

BCF
CALL
BSF
CALL
BCF
CALL
BCF
CALL
BCF
CALL
BCF
CALL
BCF
CALL

PORTC,4
RETARDO1
PORTC,2
RETARDO1
PORTC,2
RETARDO1
PORTD,2
RETARDO1
PORTD,5
RETARDO1
PORTC,3
RETARDO
PORTC,4;
RETARDO1

BSF
CALL
call
CALL
CALL
BSF
CALL
BSF
CALL
RETURN

PORTD,3
RETARDO1
RETARDO1
RETARDO1
RETARDO1
PORTD,4
RETARDO1
PORTC,1
RETARDO1

CALL
CALL
GOTO

BINBCD
MOSTRAR
RT

;**************************************************

MOSTRAR

MOVF
CALL
MOVWF
BSF
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL

UNIDAD,W ; MUESTRA POR EL DISPLAY


DISPLAY
PORTB
PORTD,0
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1
RETARDO1

BCF
PORTD,0
MOVF DECENAS,W
CALL DISPLAY
MOVWF PORTB
BSF
PORTD,1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
CALL RETARDO1
BCF
PORTD,1
RETURN
;-----------------------------------------------------------------------;RUTINA PARA CONVRTIR BINARIO A BCD
;-----------------------------------------------------------------------BINBCD
MOVF CONT,W ;SEPARA LOS DIGITOS EN DECENAS Y UNIDADES
MOVWF NUM
CLRF DECENAS
CLRF UNIDAD
MOVLW .10
REPITE
SUBWF NUM,1
BTFSS STATUS,0
GOTO SUM
INCF DECENAS
GOTO REPITE
SUM
ADDWF NUM,0
MOVWF UNIDAD
RETURN
;-------------------------------------------------------------------------------------------DISPLAY
ADDWF
BINARIO A DECIMAL
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW

PCL,F
3FH
06H
5BH
4FH
66H
6DH
7DH

;TODO ESTA RUTINA ES PARA CONVERSION DE


;POS
;POS
;POS
;POS
;POS
;POS
;POS

0
1
2
3
4
5
6

RETLW 07H
RETLW 7FH
RETLW 67H
RETURN
RETARDO1

;POS 7
;POS 8
;POS 9

movlw
.30
; 1 set numero de repeticion (B)
movwf
PDel0
; 1 |
PLoop1 movlw
.50
; 1 set numero de repeticion (A)
movwf
PDel1
; 1 |
PLoop2 clrwdt
; 1 clear watchdog
clrwdt
; 1 ciclo delay
decfsz
PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)
goto
PLoop2
; 2 no, loop
decfsz
PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)
goto
PLoop1
; 2 no, loop
PDelL1A goto PDelL2B
; 2 ciclos delay
PDelL2B goto PDelL3
; 2 ciclos delay
PDelL3 clrwdt
; 1 ciclo delay
return
; 2+2 Fin.
END

D1

D3

LED-GREEN

LED-RED

U1
13
14
1
2
3
4
5
6
7
8
9
10

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RE0/AN5/RD
RC2/CCP1
RE1/AN6/WR
RC3/SCK/SCL
RE2/AN7/CS
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7

33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30

D2

D4

LED-RED

LED-GREEN

PIC16F877

PROYECTO DE LABORATORIO #1

SEMAFORO CON PEATONALES

MICROCONTROLADORES

ACKSON RENTERIA MENA

DOCENTE

FRANCISCO MONTOYA GONZALES

INSTITUCION UNIVERSITARIA DE ENVIGADO


FACULTAD DE INGENIERIAS
INGENIERIA ELECTRONICA
ENVIGADO- ANTIOQUIA
2008-09-17