Sei sulla pagina 1di 8

Material

PIC16F84A.
Decodificador 74LS47
Un driver LB1649 con base.
Un driver L293D con base.
6 resistencias de 330 Ohms.
Un motor a pasos de 12 V.
Madera.
Tornillos y clavos.
Una pila de 9V.
Un eliminador de 12 V.
Fuente de 5V.

Herramientas
-

Taladro.
Martillo.
Sierra.
Cautn.
Desarmador.
Soldadura

Diagrama de Conexin
Control del Motor a Pasos (Elevador)
Motor
a
Pasos
PORTB bit 0

L293D

PORTB bit 1

PORTB bit 2

PORTB bit 3

Control Motor DC (Puerta Elevador)

PORTB bit 4
LB1649

PORTB bit 5

Circuito Fsico

Botones

PIC16F84A

L293D

74LS47

LB1649

Salidas para
Motor a
Pasos

Salidas para
Puerta de
Elevador

;La entrada de bits es:


;PORTA bit 0 --> Planta Baja
;PORTA bit 1 --> Piso 1
;PORTA bit 2 --> Piso 2
;
;La salida de bits es:
;
bit mas significativo
;PORTB =
00
00
;
Display 7 segmentos | Puerta elevador |

bit menos significativo


0000
Motor a pasos

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC


LIST P=16F84
INCLUDE
<P16F84.INC>
CBLOCK 0x0C

;Variables a Utilizar
tiempo
puerta
PB
piso1
piso2
estado
vueltas
var1
var2
var3

ENDC

ORG

Inicio

bsf
clrf
movlw
movwf
bcf

STATUS,RP0 ;Configuracin de Puertos


TRISB
b'00000111'
TRISA
STATUS,RP0

Inicializacion

movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf

d'255'
tiempo
d'255'
puerta
d'1'
PB
d'2'
piso1
d'3'
piso2
d'2'
estado
d'25'
vueltas
d'255'
var2
d'25'
var3

;Inicializacin de Variables

Principal

btfsc
goto
btfsc
goto

PORTA,0
PisoPB
PORTA,1
PisoUno

;Men principal, establece la accin


;de Planta baja, primer o segundo
;piso de acuerdo al boton presionado

btfsc
goto
goto

PORTA,2
PisoDos
Principal

PisoPB

movf
movwf
movf
call
decfsz
goto
goto

estado,W
var1
PB,W
PuertasPB
var1,F
Abajo2PB
AbajoPB

;Si es presionado el boton de PB


;determina la accion a realizar

PuertasPB

decfsz
return
movlw
movwf
call
movlw
movwf
call
movlw
movwf
movlw
movwf
goto

var1,F

;Si se esta en PB Abre y Cierra puertas

b'00010000'
PORTB
Retardo2
b'00100000'
PORTB
Retardo2
b'00000000'
PORTB
d'1'
estado
Principal

Puertas

movlw
addwf
call
movlw
subwf
movlw
addwf
call
movlw
subwf
return

b'00010000'
PORTB,F
Retardo2
b'00010000'
PORTB,F
b'00100000'
PORTB,F
Retardo2
b'00100000'
PORTB,F

AbajoPB

movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
decfsz
goto
movlw
movwf
movlw

b'01001000'
PORTB
Retardo1
Retardo1
b'01000100'
PORTB
Retardo1
Retardo1
b'01000010'
PORTB
Retardo1
Retardo1
b'01000001'
PORTB
Retardo1
Retardo1
vueltas,F
AbajoPB
d'1'
estado
d'25'

;Funcin independiente que abre y cierra


;puertas en cualquier estado

;Si se esta en piso 1 baja

movwf
movlw
movf
call
goto

vueltas
b'00000000'
PORTB
Puertas
Principal

Abajo2PB

movf vueltas,W
addwf vueltas,F
goto
Abajo2PB_1

;Si se esta en piso 2 baja el doble


;vueltas=vueltas+vueltas

Abajo2PB_1

movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
decfsz
goto
movlw
movwf
movlw
movwf
movlw
movf
call
goto

b'10001000'
PORTB
Retardo1
Retardo1
b'10000100'
PORTB
Retardo1
Retardo1
b'10000010'
PORTB
Retardo1
Retardo1
b'10000001'
PORTB
Retardo1
Retardo1
vueltas,F
Abajo2PB_1
d'1'
estado
d'25'
vueltas
b'00000000'
PORTB
Puertas
Principal

;Mueve a PB desde piso 2

PisoUno

movf
movwf
movf
call
decfsz
goto
goto

estado,W
var1
piso1,W
P1PB
var1,F
P1P2
P1aP1

;Si es presionado el boton de Piso1


;determina la accion a realizar

P1PB

decfsz var1,F
return

;se presiona piso1 estado PB?

P1PB1

movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call

;Se eleva al piso 1

b'00000001'
PORTB
Retardo1
Retardo1
b'00000010'
PORTB
Retardo1
Retardo1
b'00000100'
PORTB
Retardo1
Retardo1

movlw
movwf
call
call
decfsz
goto
movlw
movwf
movlw
movwf
movlw
movf
call
goto

b'00001000'
PORTB
Retardo1
Retardo1
vueltas,F
P1PB1
d'2'
estado
d'25'
vueltas
b'01000000'
PORTB
Puertas
Principal

P1aP1

movlw
movwf
call
movlw
movwf
call
movlw
movwf
movlw
movwf
goto

b'01010000'
PORTB
Retardo2
b'01100000'
PORTB
Retardo2
b'01000000'
PORTB
d'2'
estado
Principal

;abre y cierra puerta si estado=piso1


; y boton presionado es piso1

P1P2

movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
decfsz
goto
movlw
movwf
movlw
movwf
movlw
movf
call
goto

b'10001000'
PORTB
Retardo1
Retardo1
b'10000100'
PORTB
Retardo1
Retardo1
b'10000010'
PORTB
Retardo1
Retardo1
b'10000001'
PORTB
Retardo1
Retardo1
vueltas,F
P1P2
d'2'
estado
d'25'
vueltas
b'01000000'
PORTB
Puertas
Principal

;Si estado=piso2 y presiona piso1


;baja a piso1

PisoDos

movf
movwf
movf
call
decfsz
goto

estado,W
var1
piso2,W
P2PB
var1,F
P2aP2

;Si es presionado el boton de Piso2


;determina la accion a realizar

goto

P2P1

decfsz
return
movf
addwf
goto

var1,F
vueltas,W
vueltas,F
P2PB_1

P2PB_1

movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
decfsz
goto
movlw
movwf
movlw
movwf
movlw
movf
call
goto

b'00000001'
PORTB
Retardo1
Retardo1
b'00000010'
PORTB
Retardo1
Retardo1
b'00000100'
PORTB
Retardo1
Retardo1
b'00001000'
PORTB
Retardo1
Retardo1
vueltas,F
P2PB_1
d'3'
estado
d'25'
vueltas
b'00000000'
PORTB
Puertas
Principal

P2P1

movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
movlw
movwf
call
call
decfsz
goto
movlw
movwf
movlw
movwf
movlw
movf
call

b'01000001'
PORTB
Retardo1
Retardo1
b'01000010'
PORTB
Retardo1
Retardo1
b'01000100'
PORTB
Retardo1
Retardo1
b'01001000'
PORTB
Retardo1
Retardo1
vueltas,F
P2P1
d'3'
estado
d'25'
vueltas
b'10000000'
PORTB
Puertas

P2PB

;Si estado=1 y boton=piso2 entonces


;sube hasta piso2

;Si estado=2 y boton=piso2 entonces


;sube de piso1 a piso2

goto

Principal

P2aP2

movlw
movwf
call
movlw
movwf
call
movlw
movwf
movlw
movwf
goto

b'10010000'
PORTB
Retardo2
b'10100000'
PORTB
Retardo2
b'10000000'
PORTB
d'3'
estado
Principal

Retardo1

decfsz
goto
movlw
movwf
movlw
movwf
return

tiempo,F
Retardo11
d'255'
tiempo
d'255'
var2

Retardo11

decfsz
goto
movlw
movwf
goto

var2,F
Retardo11
d'255'
var2
Retardo1

Retardo2

decfsz
goto
movlw
movwf
movlw
movwf
return

puerta,F
Retardo22
d'255'
puerta
d'255'
var2

Retardo22

decfsz
goto
movlw
movwf
goto

var2,F
Retardo222
d'255'
var2
Retardo2

Retardo222

decfsz
goto
movlw
movwf
goto

var3,F
Retardo222
d'25'
var3
Retardo22

;si estado=3 y boton=piso2 entonces


;abre y cierra puerta

END

Potrebbero piacerti anche