Está en la página 1de 4

;******************************************************************************* *************** ;Controladora Bipolar 16f84a-LB1845 - 1/2 paso ;ESTECA55 www.esteca55.com.

ar ; ;Velocidad del Reloj: 4 MHz ;Perro Guardin: deshabilitado Tipo de Reloj : XT ;Proteccin del cdigo: OFF Reloj Instruccin: 1 MHz = 1 mS ; ;Para un correcto funcionabiento como no se estan utilizando interrupciones el a ncho del pulso ;para realizar un paso dever ser al menos de 5 uSeg, esto es conf en cualqueir p rog de CNC ; ;******************************************************************************* *************** include RADIX TEMP1 TEMP2 POSSIG_DER POSSIG_IZQ STEP DIR ENABLE PASO_1 PASO_2 PASO_3 PASO_4 PASO_5 PASO_6 PASO_7 PASO_8 org goto org "P16F84.INC" HEX EQU ;Definiciones de registros internos ;Sistema de numeracin hexadecimal. 0x0c ;Registros de propsito general. EQU 0x0d EQU 0x0e EQU 0x0f

SET SET SET SET SET SET SET SET SET 0x00 INICIO 0x05

SET 0x00 SET 0x01 0x02 b'00011000' b'00001100' b'00000110' b'00001101' b'00011001' b'00101101' b'00100110' b'00101100' ;vector de reset

;******************************************************************************* *************** ;PROGRAMA PRINCIPAL. INICIO: bsf movlw movwf clrf bcf clrf clrf clrf STATUS, RP0 b'00011111' TRISA TRISB STATUS, RP0 INTCON PORTB POSSIG_DER

;PORTA como Entrada ;Se configura PORTB como SALIDA ;Se anulan las interrupciones. ;Pongo en cero el puerto B

movlw movwf

PASO_3 POSSIG_IZQ ;Testea el enable ;Se mira el estado de STEP, y si ;esta en 0 regreso al bucle, y ;si esta en 1 me fijo la dir ;para realizar el paso

BUCLE: btfss PORTA, ENABLE call DESACTIVAR btfss PORTA, STEP

goto btfss goto goto

BUCLE PORTA, DIR IZQUIERDA DERECHA ;paso a la izquierda ;paso a la derecha

;******************************************************************************* *************** DESACTIVAR: bsf PORTB, 0x06 ;desactivo el LB1845 poniendoo :en 1 RB6 BUCLE_2: btfss PORTA, ENABLE ;permanece en esta sobrutina goto BUCLE_2 ;mientras el enable este en 0 bcf PORTB, 0x06 RETURN ;******************************************************************************* *************** : en las sig tablas deduzco el paso siguiente a realizar ; segun los contadores de paso POSSIG_IZQ y POSSIG_IZQ IZQUIERDA: movf addwf goto goto goto goto goto goto goto goto DERECHA: movf addwf goto goto goto goto goto goto goto goto POSSIG_IZQ, W PCL, F PASO1 PASO2 PASO3 PASO4 PASO5 PASO6 PASO7 PASO8 POSSIG_DER, W PCL, F PASO1 PASO2 PASO3 PASO4 PASO5 PASO6 PASO7 PASO8

;POS ;POS ;POS ;POS ;POS ;POS ;POS ;POS

0 1 2 3 4 5 6 7

;POS ;POS ;POS ;POS ;POS ;POS ;POS ;POS

0 1 2 3 4 5 6 7

;******************************************************************************* **************************

PASO1: movlw movwf movlw movwf movlw movwf goto PASO2: movlw movwf movlw movwf movlw movwf goto PASO3: movlw movwf movlw movwf movlw movwf goto PASO4: movlw movwf movlw movwf movlw movwf goto PASO5: movlw movwf movlw movwf movlw movwf goto PASO6: movlw movwf movlw movwf movlw movwf goto PASO7: movlw movwf movlw movwf

PASO_1 PORTB 0x07 POSSIG_IZQ 0x01 POSSIG_DER BUCLE PASO_2 PORTB 0x00 POSSIG_IZQ 0x02 POSSIG_DER BUCLE PASO_3 PORTB 0x01 POSSIG_IZQ 0x03 POSSIG_DER BUCLE PASO_4 PORTB 0x02 POSSIG_IZQ 0x04 POSSIG_DER BUCLE PASO_5 PORTB 0x03 POSSIG_IZQ 0x05 POSSIG_DER BUCLE PASO_6 PORTB 0x04 POSSIG_IZQ 0x06 POSSIG_DER BUCLE PASO_7 PORTB 0x05 POSSIG_IZQ

;realiso el paso 1 (b'00000001')

;realiso el paso 2 (b'00100001')

;realiso el paso 3

;realiso el paso 4

;realiso el paso 5

;realiso el paso 6)

;realiso el paso 7

movlw movwf goto PASO8: movlw movwf movlw movwf movlw movwf goto END

0x07 POSSIG_DER BUCLE PASO_8 PORTB 0x06 POSSIG_IZQ 0x00 POSSIG_DER BUCLE

;realiso el paso 8

;******************************************************************************* **************************