Elevador de Tres Pisos Con PIC16f84a

Proyecto de elevador de tres pisos con un microcontroladorDescripción completa

Views 186 Downloads 8 File size 235KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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. Cautín. Desarmador. Soldadura

Diagrama de Conexión Control del Motor a Pasos (Elevador) Motor a Pasos PORTB bit 0

L293D

PORTB bit 1

PORTB bit 2

PORTB bit 3

M

Control Motor DC (Puerta Elevador)

PORTB bit 4 LB1649

PORTB bit 5

Circuito Físico

Botones

PIC16F84A

L293D

74LS47

LB1649

Salidas para Motor a Pasos

Salidas para Puerta de Elevador

1

;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

CBLOCK 0x0C

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

ENDC

ORG

0

Inicio

bsf clrf movlw movwf bcf

STATUS,RP0 ;Configuración 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

;Inicialización de Variables

Principal

btfsc goto btfsc goto

PORTA,0 PisoPB PORTA,1 PisoUno

;Menú principal, establece la acción ;de Planta baja, primer o segundo ;piso de acuerdo al boton presionado

2

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'

;Función independiente que abre y cierra ;puertas en cualquier estado

;Si se esta en piso 1 baja

3

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

4

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

5

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

6

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

7