Elevador de Tres Pisos Con PIC16f84a

8

Click here to load reader

description

Proyecto de elevador de tres pisos con un microcontrolador

Transcript of Elevador de Tres Pisos Con PIC16f84a

Page 1: Elevador de Tres Pisos Con PIC16f84a

M L293D

Motor a

Pasos

PORTB bit 0

PORTB bit 1

PORTB bit 2

PORTB bit 3

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)

Page 2: Elevador de Tres Pisos Con PIC16f84a

1

Control Motor DC (Puerta Elevador)

Circuito Físico

PORTB bit 4

PORTB bit 5

LB1649

Botones PIC16F84A 74LS47

LB1649 L293D

Salidas para Motor a Pasos

Salidas para Puerta de Elevador

Page 3: Elevador de Tres Pisos Con PIC16f84a

2

;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 bit menos significativo ;PORTB = 00 00 0000 ; Display 7 segmentos | Puerta elevador | 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 0 Inicio bsf STATUS,RP0 ;Configuración de Puertos clrf TRISB movlw b'00000111' movwf TRISA bcf STATUS,RP0 Inicializacion movlw d'255' ;Inicialización de Variables movwf tiempo movlw d'255' movwf puerta movlw d'1' movwf PB movlw d'2' movwf piso1 movlw d'3' movwf piso2 movlw d'2' movwf estado movlw d'25' movwf vueltas movlw d'255' movwf var2 movlw d'25' movwf var3 Principal btfsc PORTA,0 ;Menú principal, establece la acción goto PisoPB ;de Planta baja, primer o segundo btfsc PORTA,1 ;piso de acuerdo al boton presionado goto PisoUno

Page 4: Elevador de Tres Pisos Con PIC16f84a

3

btfsc PORTA,2 goto PisoDos goto Principal PisoPB movf estado,W ;Si es presionado el boton de PB movwf var1 ;determina la accion a realizar movf PB,W call PuertasPB decfsz var1,F goto Abajo2PB goto AbajoPB PuertasPB decfsz var1,F ;Si se esta en PB Abre y Cierra puertas return movlw b'00010000' movwf PORTB call Retardo2 movlw b'00100000' movwf PORTB call Retardo2 movlw b'00000000' movwf PORTB movlw d'1' movwf estado goto Principal Puertas movlw b'00010000' ;Función independiente que abre y cierra addwf PORTB,F ;puertas en cualquier estado call Retardo2 movlw b'00010000' subwf PORTB,F movlw b'00100000' addwf PORTB,F call Retardo2 movlw b'00100000' subwf PORTB,F return AbajoPB movlw b'01001000' ;Si se esta en piso 1 baja movwf PORTB call Retardo1 call Retardo1 movlw b'01000100' movwf PORTB call Retardo1 call Retardo1 movlw b'01000010' movwf PORTB call Retardo1 call Retardo1 movlw b'01000001' movwf PORTB call Retardo1 call Retardo1 decfsz vueltas,F goto AbajoPB movlw d'1' movwf estado movlw d'25'

Page 5: Elevador de Tres Pisos Con PIC16f84a

4

movwf vueltas movlw b'00000000' movf PORTB call Puertas goto Principal Abajo2PB movf vueltas,W ;Si se esta en piso 2 baja el doble addwf vueltas,F ;vueltas=vueltas+vueltas goto Abajo2PB_1 Abajo2PB_1 movlw b'10001000' ;Mueve a PB desde piso 2 movwf PORTB call Retardo1 call Retardo1 movlw b'10000100' movwf PORTB call Retardo1 call Retardo1 movlw b'10000010' movwf PORTB call Retardo1 call Retardo1 movlw b'10000001' movwf PORTB call Retardo1 call Retardo1 decfsz vueltas,F goto Abajo2PB_1 movlw d'1' movwf estado movlw d'25' movwf vueltas movlw b'00000000' movf PORTB call Puertas goto Principal PisoUno movf estado,W ;Si es presionado el boton de Piso1 movwf var1 ;determina la accion a realizar movf piso1,W call P1PB decfsz var1,F goto P1P2 goto P1aP1 P1PB decfsz var1,F ;se presiona piso1 ¿estado PB? return P1PB1 movlw b'00000001' ;Se eleva al piso 1 movwf PORTB call Retardo1 call Retardo1 movlw b'00000010' movwf PORTB call Retardo1 call Retardo1 movlw b'00000100' movwf PORTB call Retardo1 call Retardo1

Page 6: Elevador de Tres Pisos Con PIC16f84a

5

movlw b'00001000' movwf PORTB call Retardo1 call Retardo1 decfsz vueltas,F goto P1PB1 movlw d'2' movwf estado movlw d'25' movwf vueltas movlw b'01000000' movf PORTB call Puertas goto Principal P1aP1 movlw b'01010000' ;abre y cierra puerta si estado=piso1 movwf PORTB ; y boton presionado es piso1 call Retardo2 movlw b'01100000' movwf PORTB call Retardo2 movlw b'01000000' movwf PORTB movlw d'2' movwf estado goto Principal P1P2 movlw b'10001000' ;Si estado=piso2 y presiona piso1 movwf PORTB ;baja a piso1 call Retardo1 call Retardo1 movlw b'10000100' movwf PORTB call Retardo1 call Retardo1 movlw b'10000010' movwf PORTB call Retardo1 call Retardo1 movlw b'10000001' movwf PORTB call Retardo1 call Retardo1 decfsz vueltas,F goto P1P2 movlw d'2' movwf estado movlw d'25' movwf vueltas movlw b'01000000' movf PORTB call Puertas goto Principal PisoDos movf estado,W ;Si es presionado el boton de Piso2 movwf var1 ;determina la accion a realizar movf piso2,W call P2PB decfsz var1,F goto P2aP2

Page 7: Elevador de Tres Pisos Con PIC16f84a

6

goto P2P1 P2PB decfsz var1,F ;Si estado=1 y boton=piso2 entonces return ;sube hasta piso2 movf vueltas,W addwf vueltas,F goto P2PB_1 P2PB_1 movlw b'00000001' movwf PORTB call Retardo1 call Retardo1 movlw b'00000010' movwf PORTB call Retardo1 call Retardo1 movlw b'00000100' movwf PORTB call Retardo1 call Retardo1 movlw b'00001000' movwf PORTB call Retardo1 call Retardo1 decfsz vueltas,F goto P2PB_1 movlw d'3' movwf estado movlw d'25' movwf vueltas movlw b'00000000' movf PORTB call Puertas goto Principal P2P1 movlw b'01000001' ;Si estado=2 y boton=piso2 entonces movwf PORTB ;sube de piso1 a piso2 call Retardo1 call Retardo1 movlw b'01000010' movwf PORTB call Retardo1 call Retardo1 movlw b'01000100' movwf PORTB call Retardo1 call Retardo1 movlw b'01001000' movwf PORTB call Retardo1 call Retardo1 decfsz vueltas,F goto P2P1 movlw d'3' movwf estado movlw d'25' movwf vueltas movlw b'10000000' movf PORTB call Puertas

Page 8: Elevador de Tres Pisos Con PIC16f84a

7

goto Principal P2aP2 movlw b'10010000' ;si estado=3 y boton=piso2 entonces movwf PORTB ;abre y cierra puerta call Retardo2 movlw b'10100000' movwf PORTB call Retardo2 movlw b'10000000' movwf PORTB movlw d'3' movwf estado goto Principal Retardo1 decfsz tiempo,F goto Retardo11 movlw d'255' movwf tiempo movlw d'255' movwf var2 return Retardo11 decfsz var2,F goto Retardo11 movlw d'255' movwf var2 goto Retardo1 Retardo2 decfsz puerta,F goto Retardo22 movlw d'255' movwf puerta movlw d'255' movwf var2 return Retardo22 decfsz var2,F goto Retardo222 movlw d'255' movwf var2 goto Retardo2 Retardo222 decfsz var3,F goto Retardo222 movlw d'25' movwf var3 goto Retardo22 END