PWM para pic 16f84a con entrada analogica

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..
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
...
 
El PIC16F84A no puede leer señal análoga, necesitas un chip dedicado a eso o cambiar por un PIC que si tenga ADC (conversor análogo a digital).
Si fuera lenguaje basic, hay una instrucción POT con la que si podrias, sin necesidad de tener ADC y por cualquier pin del PIC, esto necesita de un circuito RC. En asm, se podria implementar porque POT solamente espera hasta que C (condensador) se descargue por medio de R (resistencia/potenciómetro) y de acuerdo al tiempo que se demoró la descarga determina el valor.
 
Como dicen los compañeros el PIC 16f84 no tiene entadas analogicas, todas son entradas/salida digital
Para querer seguir con Tú proyecto deberias ó bien cambiar de pic que tuviera entrada analogica, como los modelos que te indican en un post más arriba ó bien tienes que utilizar un convertidor a/d como el ADC 0804 ó el encoder que te recomienda Scooter
Espero que Tú decisión la postees para asi poder ayudarte
Un saludo
P.D.
No veo el diagrama del circuto
 
Buenas:

Si usas el PIC16F84A carece de convertidores, a pesar de ello insistes en usar ese PIC por cualquier motivo, hay un IC a parte que controla entradas y salidas analógicas. ADC y DAC.

Fig2709_PCF8591_DAC.gif


http://pic16f84a.org/proteus.html#Proteus_Capitulo_27

Saludo.
 
Atrás
Arriba