Anda di halaman 1dari 5

Control de servo motor con PIC 16F84 y LabView

Descripcin Este Proyecto es un primer paso hacia la Robtica , el diseo busca controlar un servomotor por medio de un PC. El control se a logrado por medio de un microcontrolador PIC16F84 , el cual proporciona las seales necesarias para producir una defleccin en el servo de 0 a 120 grados aprox , con una resolucin de 255 pasos .

El microcontrolador se comunica con el PC por medio del bus de control del puerto paralelo , el software encargado de la comunicacin es nuestro viejo programa send to pic16f84 elaborado en LabView hace un par de meses.

Circuito

Click sobre la imagen para ampliarla

Programa para el PIC ;Recepcin serial de datos ;Por Carlos Fernando Jimnez ;Bucaramanga Jueves 19 de Julio del 2000

PUERTAB EQU 0x06 PUERTAA EQU 0x05 ESTADO EQU 0x03 OPT EQU 0x01 INTCO EQU 0x0B org 0 goto INICIO org 4 goto interr ;****** inicio configuracion de la interrupcion***** INICIO bcf ESTADO,5 ;BANCO0 sbuff EQU 0x0C ;REGISTRO QUE RECIBE LOS DATOS SERIALES contador EQU 0x0E W1 EQU 0X1B w2 equ 0x1c movlw b'10110000' iorwf INTCO ;interrupcion RB0/INT activa movlw b'11110101' ;configuracion del puert andwf PUERTAB,1 ;RB1 salida ('ya puedes enviar los datos' en alto)

movlw b'00000101' iorwf PUERTAB,1 ;RB0 y RB2 entrada('boy a enviarte datos!' en bajo interrupcio) y dato listo en alto bcf ESTADO,5 ;BANCO0 bcf PUERTAB,1 bcf PUERTAB,3 ;*****fin de la configuracion****** bsf ESTADO,5 ;BANCO1 movlw 0x00 movwf PUERTAA BSF ESTADO,5 ;BANCO1 movlw b'10010010' ;DIVISION 1-8 movwf OPT movlw 0X7F movwf sbuff bcf ESTADO,5 ;BANCO0 MAIN ;temporizacion para el servo ;Tiempo para la deflexion min 1 max 2 ms movfw sbuff ;127-255 movwf OPT ;cargamos el timer movlw 0x1f movwf PUERTAA ;Seal arriba movlw 1 movwf W1 espera10 btfsc W1,0 goto espera10

;Minimo tiempo 10 ms de descanso movlw 0x06 movwf w2 buc movlw 0x00 movwf OPT ;cargamos el timer movlw 0x00 movwf PUERTAA ;CAE LA SEAL DE CONTROL movlw 1 movwf W1 espera11 btfsc W1,0 goto espera11 decfsz w2 goto buc

goto MAIN interr btfss INTCO,1 ;Identificacion de la interrupcion goto timer goto serial serial movlw 0x00 ;***** Rutina de recepcion de datos***** movlw 0x00 movwf PUERTAA movwf INTCO ;incapacita TODAS las interrupcines movlw 8 ;los 8 bits a recibir movwf contador ;regitro que lleba la cuenta de los bits llegados movlw 0x00 movwf sbuff ;pone sbuff en cero espera1 bsf PUERTAB,3 btfss PUERTAB,2 ;espera que el bit de sincronia se ponga en 1 goto espera1 movlw b'1' andwf PUERTAB,0 ;mascara del datos dato queda en w iorwf sbuff,1 rlf sbuff bcf PUERTAB,3 ;bit adentro bucle btfsc PUERTAB,2 ;espera que el bit de sincronia vuelva a 0 goto bucle decfsz contador,1 goto salto goto fin salto goto espera1 movlw 0 MOVWF W1 fin movlw b'10110000' ;reabilitacion de TODAS LAS inTerrupciones movwf INTCO RETFIE timer movlw 0x00 movfw INTCO movlw b'10110000' movwf INTCO movlw 0 MOVWF W1 RETFIE

END

Programa para el PC El la seccin de LabView

Anda mungkin juga menyukai