hola colegas electronicos como ven mi pregunta seria la siguiente como podria modificar el siguiente programa para poder controlar la velocidad del motor con un potenciometro .
En este programa se controla la velocidad con 4 swich .
les mostrare el diagrama y y el programa del pic
saludos gracias.
el programa que tengo es este..
...
En este programa se controla la velocidad con 4 swich .
les mostrare el diagrama y y el programa del pic
saludos gracias.
el programa que tengo es este..
Código:
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
LIST P=16F84A
INCLUDE <P16F84A.INC>
CBLOCK 0x0C
Ciclos_ON
Ciclos_OFF
GuardaEntrada
Var
ENDC
MaximaEntrada EQU .10
ORG 0
Inicio:
bsf STATUS,RP0
movlw b\'00001111\' ;RA3:RA0 como entradas.
movwf TRISA
clrf TRISB ;Las lineas del Puerto B se configuran como salidas.
bcf STATUS,RP0
Principal
movf PORTA,W ;Lee el puerto de entrada.
andlw b\'00001111\'
movwf GuardaEntrada ;Guarda el valor.
btfsc STATUS,Z ;Si RA3:RA0=0 el motor se detiene
goto DC_CeroPorCiento
sublw MaximaEntrada ;(W)=10-(PORTA)
btfsc STATUS,Z
goto DC_100PorCiento
btfss STATUS,C ;¿C=1?,¿(w)positivo?,¿(PORTA)<=10?.
goto DC_CeroPorCiento ;Ha resultado(PORTA>10).
movwf Ciclos_OFF ;10-(PORTA)-->(Ciclos_OFF).
movf GuardaEntrada,W
movwf Ciclos_ON ;Carga RA3:RA0 en (Ciclos_ON).
Motor_ON
movlw b\'10000000\' ;Habilita los drivers y un sentido de giro.
movwf PORTB
call Retardo_1ms
decfsz Ciclos_ON,F ;Si(Ciclos_ON)=0 salta a Motor_OFF.
goto Motor_ON ;+2
Motor_OFF
clrf PORTB ;Inhabilita los drivers. Motor parado.
call Retardo_1ms
decfsz Ciclos_OFF,F ;Si(Ciclos_OFF)=0 salta a Principal.
goto Motor_OFF ;+1
goto Fin
DC_CeroPorCiento
clrf PORTB ;Inhabilita los drivers. Motor Parado.
goto Fin
DC_100PorCiento
movlw b\'10000000\' ;Habilita los drivers y un sentido de giro
movwf PORTB
Fin:
goto Principal
INCLUDE<RETARDO.INC>
END