En parejas montar: controlador de velocidad para un motor mediante PWM.
Traer informe con los siguientes aspectos: objetivos generales, objetivos especificos, procedimiento y resultado; (colocar codigo comentado). (Montarlo con el PIC16F877A).
Presiona el icono, para ver los archivos vistos en clase.
|
led.mcp |
|
led.mcw |
|
PIC Delay.rar |
Ejercicio explicado en clase
__config _WDT_OFF&_PWRTE_ON &_XT_OSC&_LVP_OFF&_CP_OFF ; Configuración para el programador
LIST p=16F877A
#define PDel0 0x00
#define PDel1 0x00
PDel2 equ 0
ORG 0x00 ;Inicio de programa
CONFIGURACION
bsf STATUS,RP0 ; banco 1
bcf STATUS,RP1
movlw b'00000000' ; RA0,RA2,RA3 como entrada y los demas como salida
movwf TRISA
INICIO_DE_LA_LOGICA
bCf STATUS,RP0 ; banco 0
bCf STATUS,RP1
GOTO PDelay
bSf PORTA,0
PDelay movlw .165 ; 1 set number of repetitions (C)
movwf PDel0 ; 1 |
PLoop0 movlw .41 ; 1 set number of repetitions (B)
movwf PDel1 ; 1 |
PLoop1 movlw .147 ; 1 set number of repetitions (A)
movwf PDel2 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
clrwdt ; 1 cycle delay
decfsz PDel2, 1 ; 1 + (1) is the time over? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel1, 1 ; 1 + (1) is the time over? (B)
goto PLoop1 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) is the time over? (C)
goto PLoop0 ; 2 no, loop
return ; 2+2 Done
END