PROYECTOS » Motor paso a paso
'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2022 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 25/02/2022 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
''''DIRECCION DE RE3GISTROS'''
TRISA=133
TRISB=134
PORTA=5
PORTB=6
'''DEFINICION DE VARIABLES'''
X VAR BYTE 'VARIABLE X PARA INCREMENTAR EL PULSO CON PULSOUT'
''CONFIGURACION DE PUERTOS''
POKE 133,3 'PORTA=00000011(PA.0 Y PA.1 COMO ENTRADA)'
POKE 134,0 'PORTA=00000000(TOFO PORTB COMO SALIDAS)'
''DEFINICION DE ALIAS'''
PULSADOR1 VAR PORTA.0 'INCREMENTA ANGUYLO DEL SERVOMOTOR'
PULSADOR2 VAR PORTA.1 'DECREMENTO ANGULO DEL SERVOMOTOR'
'''ESTADOS INICIALES'''
X=187 '178*10US=1.87ms DE ANCHO DE PULSO(PULSOUT), 0 GRADOS
LOW PORTB.0 'INICIA SALIDA DE PULSO EN BAJO'
'''programa principal''
INICIO:
IF PULSADOR1=0 THEN LAZO1 'SI PA.0=0 ENTONCES SALTO A LAZO1'
IF PULSADOR2=0 THEN LAZO2 'SI PA.1=0 ENTONCES SALTO A LAZO2'
PULSOUT PORTB.0,X 'SALIDA DE ANCHO DE PULSO(100*X us)
PAUSE 18 'ESPERA DE 18 ms (APROX FREC DE 60 HZ)
GOTO INICIO 'RETORNO A ETIQUETA INICIO'
LAZO1:
X=X+1 'INCREMENTA EL VALOR DEL ANCHO DE PULSO'
PULSOUT PORTB.0,X 'SALIDA DE ANCHO DE PULSO(100*X us)
PAUSE 18 'ESPERA DE 18 ms (APROX FREC DE 60 HZ)
IF X>250 THEN 'ANCHO DE PULSO>2.5ms(250*10uS) ENTONCES:
X=250 'VALOR MAXIMO DE ANCHO DE PULSO=2.5ms'
ENDIF
GOTO INICIO 'RETORNO A ETIQUETA INICIO'
LAZO2:
X=X-1 'DECREMENTA EL VALOR DEL ANCHO DE PULSO'
PULSOUT PORTB.0,X 'SALIDA DE ANCHO DE PULSO(100*X us)
PAUSE 18 'ESPERA DE 18 ms (APROX FREC DE 60 HZ)
IF X<00 THEN 'ANCHO DE PULSO<1ms(100*10us) ENTONCES:'
X=100 'VALOR MINIMO DE ANCHO DE PULSO**1ms'
ENDIF
GOTO INICIO 'RETORNO A ETIQUETA INICIO'