Professional Documents
Culture Documents
INGENIERÍA ELECTRÓNICA
MICROCONTROLADORES
GRUA CONTROLADA POR UN PIC 16F877
Iván Ernesto Zambrano López Jorge Humberto Oviedo Rodríguez Darwin Carreño Niño
ivan_zambrano@hotmail.com jhortwo@hotmail.com darwin_c_82@hotmail.com
BTN_1
Key = Space
VCC R2 VCC
R1 156kOhm 50% EJE_X BOTON_1
Key = a
33kohm
5V 5V
R5
1.0kohm
BTN_2
Key = Space
VCC
VCC R4 BOTON_2
R3 156kOhm 50% EJE_Y
Key = a
33kohm 5V
5V
R6
1.0kohm
Iván Ernesto Zambrano López Jorge Humberto Oviedo Rodríguez Darwin Carreño Niño
ivan_zambrano@hotmail.com jhortwo@hotmail.com darwin_c_82@hotmail.com
Iván Ernesto Zambrano López Jorge Humberto Oviedo Rodríguez Darwin Carreño Niño
ivan_zambrano@hotmail.com jhortwo@hotmail.com darwin_c_82@hotmail.com
BTFSC PORTD,1 ;Verifica si se oprimió el pulsador
; de ascender en Z
Para generar la secuencia de los motores se utiliza GOTO EJEZI
el puerto B del microcontrolador, en los cuatro bits MOVLW B'01000001' ; frecuencia de conversión del A/D de X
MOVWF ADCON0 ; igual a Fosc/8 Y CANAL 0 como
menos significativos se genera la secuencia del ; entrada
motor que realiza el movimiento en Y, en los más
CALL ESPERA ; retardo necesario para tomar la
significativos se genera la secuencia tanto del ; muestra
motor de X como de Z, pero cuando se debe
realizar movimiento en Z se deshabilita el latch de X BSF ADCON0,2 ;empezar conversión en X
WAIT
o viceversa. De esta forma se puede generar BTFSC ADCON0,2 ;cuando sea ‘0’ indica fin de conversión
movimiento simultaneo en los ejes X y Y, pero no GOTO WAIT
CALL MOVIM ; salta a subrutina que verifica el
en Z. ; resultado de la conversión
RRF CONTROL,1 ; rotar a la derecha para seguir llenado
; Control
A continuación se presenta el codigo ASM RRF CONTROL,1
programado en el PIC para el control del sistema. MOVLW B'01001001' ; Fosc/8 Y CANAL 1
MOVWF ADCON0
CALL ESPERA
Programa en MPLAB BSF ADCON0,2 ;empezar conversión en y
WAIT1
list p=16F877 BTFSC ADCON0,2
GOTO WAIT1
ORG 0H CALL MOVIM
GOTO PRINCIPAL SWAPF PORTD,W
ANDWF CONTROL,1
ADCON0 EQU 1FH ; declaración de registros BTFSS CONTROL,0 ;pregunto si en el canal1 a/d>4
ADCON1 EQU 9FH GOTO DIR
PORTA EQU 05H BTFSS CONTROL,2 ;pregunto si en el canal2 a/d>4
TRISA EQU 85H GOTO DIR2
ESTATUS EQU 03H GOTO EJEXYDD
PORTB EQU 06H DIR
TRISB EQU 86H BTFSS CONTROL,1 ;pregunto si en el canal1 a/d<1
PORTC EQU 07H GOTO DIR1
TRISC EQU 87H BTFSS CONTROL,2 ;pregunto si en el canal2 a/d>4
PORTD EQU 08H GOTO DIR3
TRISD EQU 88H GOTO EJEXYID
ADRESH EQU 1EH DIR2
ADRESL EQU 9EH BTFSS CONTROL,3 ;pregunto si en el canal2 a/d<1
DELAY1 EQU 21H GOTO EJEXD
DELAY2 EQU 22H GOTO EJEXYDI
CONTROL EQU 23H DIR3
CONTA0 EQU 24H BTFSS CONTROL,3 ;pregunto si en el canal2 a/d<1
GOTO EJEXI
PRINCIPAL GOTO EJEXYII
BCF ESTATUS,6 DIR1
BSF ESTATUS,5 ;selecciono el banco 1 BTFSS CONTROL,2 ;pregunto si en el canal2 a/d>4
MOVLW 0X03 GOTO DIR4
MOVWF TRISA GOTO EJEYD
MOVLW 0X00 DIR4
MOVWF TRISB ; inicialización del puerto B como salida BTFSS CONTROL,3
; para las secuencias de los motores. GOTO DIR5
MOVWF TRISC ; inicialización del puerto C como salida GOTO EJEYI
; para control de los latch de los DIR5
MOVLW 0XFF ; motores. MOVLW 0XC0
MOVWF TRISD ; inicialización del puerto D como MOVWF PORTC
; entrada MOVLW 0X00
; para leer pulsadores y finales de MOVWF PORTB
; carrera. MOVLW 0X00
MOVLW B'10000100' ; Justifica el ADRESH a la derecha y MOVWF PORTC
;declara 2 canales análogos en el GOTO INICIO
;puerto A, además VDD y VSS Como
; referencias. EJEXYDD
MOVLW 0XC0
MOVWF ADCON1 MOVWF PORTC ; habilita latches de X y Y
BCF ESTATUS,5 ;selecciono el banco 0 GOTO MXYDD ; secuencia X y Y der.
CLRF ADCON0
INICIO CLRF CONTROL EJEXYDI
BTFSC PORTD,0 ;Verifica si se oprimió el pulsador MOVLW 0XC0
;de descender en Z MOVWF PORTC ; habilita latches de X y Y
GOTO EJEZD GOTO MXYDI ; secuencia X der. y Y izq.
Iván Ernesto Zambrano López Jorge Humberto Oviedo Rodríguez Darwin Carreño Niño
ivan_zambrano@hotmail.com jhortwo@hotmail.com darwin_c_82@hotmail.com
MOVLW 0X3C ;BINARIO 00111100
MOVWF PORTB
EJEXYID CALL RETARDO ;RETRASO
MOVLW 0XC0 GOTO INICIO
MOVWF PORTC ; habilita latches de X y Y
GOTO MXYID ; secuencia X izq. y Y der. En esta subrutina se genera la secuencia para el movimiento a la
izquierda en X y hacia la derecha en Y.
EJEXYII
MOVLW 0XC0 MXYID
MOVWF PORTC ; habilita latches de X y Y MOVLW 0X99 ;BINARIO 10011001
GOTO MXYII ; secuencia X y Y izq. MOVWF PORTB
CALL RETARDO ;RETRASO
MOVLW 0X3C ;BINARIO 00111100
EJEXD MOVWF PORTB
MOVLW 0X40 CALL RETARDO ;RETRASO
MOVWF PORTC ; habilita latches de X y Y MOVLW 0X66 ;BINARIO 01100110
GOTO MXYDD ; secuencia X y Y der. MOVWF PORTB
CALL RETARDO ;RETRASO
EJEXI MOVLW 0XC3 ;BINARIO 11000011
MOVLW 0X40 MOVWF PORTB
MOVWF PORTC ; habilita latch de X CALL RETARDO ;RETRASO
GOTO MXYII ; secuencia X izq. GOTO INICIO
Iván Ernesto Zambrano López Jorge Humberto Oviedo Rodríguez Darwin Carreño Niño
ivan_zambrano@hotmail.com jhortwo@hotmail.com darwin_c_82@hotmail.com
BTFSC ESTATUS,0 ;si es ‘1’, se mueve a la izquierda Subrutina que genera un retardo de aproximadamente 60us necesario
GOTO FIN1 para realizar la adquisición del la muestra en la conversión A/D.
BSF CONTROL,3 ;CONTROL=00001000 ESPERA
GOTO FIN1 MOVLW 0x05
FIN MOVWF CONTA0
BSF CONTROL,2 ;CONTROL=00000100 RET1
FIN1 DECFSZ CONTA0,1
BCF ESTATUS,5 GOTO RET1
RETURN RETURN
END
Iván Ernesto Zambrano López Jorge Humberto Oviedo Rodríguez Darwin Carreño Niño
ivan_zambrano@hotmail.com jhortwo@hotmail.com darwin_c_82@hotmail.com
Iván Ernesto Zambrano López Jorge Humberto Oviedo Rodríguez Darwin Carreño Niño
ivan_zambrano@hotmail.com jhortwo@hotmail.com darwin_c_82@hotmail.com
V1
16V
+V
D4 MotorZ
Q4 DIODE
4
TIP122 B
3
2
A
1
D3
Q3 DIODE
U1 TIP122
74LS373
OE E
D7 Q7
D6 Q6
D5 Q5
D4 Q4
D3 Q3
D2 Q2
D1 Q1
D0 Q0 D2
DIODE
Q2
TIP122
D1
DIODE
Q1
TIP122
V2
12V
+V
D7 MotorX
Q7 DIODE
4
TIP122 B
3
2
A
V6 1
R3 5V
33k +V D8
Q8 DIODE
U2 TIP122
74LS373
156k 40% P16F877 OE E
R1 D7 Q7
D6 Q6
R4 D5 Q5
D4 Q4
33k D3 Q3
D2 Q2
C1 R2 D1 Q1
33pF D0 Q0 D6
156k 40% DIODE
V5
XTAL1 5V
C2 4.000MHZ Q6
33pF +V TIP122
S1
+V
V4 R5 D5
S2 1k DIODE
5V
S3
Q5
R6 S4 TIP122
1k
S5
S6
V3
16V
+V
D11 MotorY
Q11 DIODE
4
TIP122 B
3
2
A
1
D12
Q12 DIODE
U3 TIP122
74LS373
OE E
D7 Q7
D6 Q6
D5 Q5
D4 Q4
D3 Q3
D2 Q2
D1 Q1
D0 Q0 D10
DIODE
Q10
TIP122
D9
DIODE
Q9
TIP122
Iván Ernesto Zambrano López Jorge Humberto Oviedo Rodríguez Darwin Carreño Niño
ivan_zambrano@hotmail.com jhortwo@hotmail.com darwin_c_82@hotmail.com