P
piersuk
Guest
Désolé d'être un débutant et d'avoir aucune idée de ce que je fais, mais je tente de travailler à travers les choses.
Ce que
j'essaie de faire est de conduire un moteur à courant continu à des tensions différentes avec 2 secondes de retard Entre chaque étape.J'ai essayé ci-dessous qui, je l'espère, sera à deux pas 3.8v et 6v mais hélas pas.
Toute aide de ce code serait appréciée.En outre, je voudrais savoir quoi et où pour ajouter chaque étape de tension morceau de code.
Ceci est mon code
Code:
LIST P = PIC16F819, r = hex, f = INHX8MINCLUDE "p16f819.inc"__CONFIG 3909H;********* Bon programme commence ici ************************************ *ORG 00H; vecteur reset
GOTO STARTORG 010HSTART
; Ces 3 lignes de la période de pulsation (39 kHz)
MOVLW 01FH
BSF STATUS, RP0
MOVWF PR2; Faire tous les ports de sorties (B1 seulement est utilisé)
CLRF TRISB
BCF STATUS, RP0; Configurer comme mode PWM
MOVLW B'00001100 '
MOVWF CCP1CON, La valeur de CCPRIL fixe le cycle et, par conséquent, la tension
; MOVLW 010H; donne 2,52 V
MOVLW 018H; donne 3,8 V
; MOVLW 022H; 6v
MOVWF CCPR1L, Tourner sur le PWM
BSF T2CON, TMR2ON et démarrer la minuterie marche; Delay = 2 secondes
, La fréquence d'horloge = 4 MHz; Réelles delay = 2 secondes = 2000000 cycles
; Erreur = 0%cblock
d1
d2
d3
ENDCRetard
; 1999996 cycles
movlw 0x11
movwf d1
movlw 0x5D
movwf d2
movlw 0x05
movwf d3
Delay_0
decfsz d1, f
goto $ 2
decfsz d2, f
goto $ 2
decfsz d3, f
goto Delay_04 cycles (y compris l'appel); Ces 3 lignes de la période de pulsation (39 kHz)
MOVLW 01FH
BSF STATUS, RP0
MOVWF PR2; Faire tous les ports de sorties (B1 seulement est utilisé)
CLRF TRISB
BCF STATUS, RP0; Configurer comme mode PWM
MOVLW B'00001100 '
MOVWF CCP1CON, La valeur de CCPRIL fixe le cycle et, par conséquent, la tension
; MOVLW 010H; donne 2,52 V
; MOVLW 018H; donne 3,8 V
MOVLW 022H; donne 6.0v
MOVWF CCPR1L, Tourner sur le PWM
BSF T2CON, TMR2ON et démarrer la minuterie marcheFIN NOP
GOTO FINFIN
Ce que
j'essaie de faire est de conduire un moteur à courant continu à des tensions différentes avec 2 secondes de retard Entre chaque étape.J'ai essayé ci-dessous qui, je l'espère, sera à deux pas 3.8v et 6v mais hélas pas.
Toute aide de ce code serait appréciée.En outre, je voudrais savoir quoi et où pour ajouter chaque étape de tension morceau de code.
Ceci est mon code
Code:
LIST P = PIC16F819, r = hex, f = INHX8MINCLUDE "p16f819.inc"__CONFIG 3909H;********* Bon programme commence ici ************************************ *ORG 00H; vecteur reset
GOTO STARTORG 010HSTART
; Ces 3 lignes de la période de pulsation (39 kHz)
MOVLW 01FH
BSF STATUS, RP0
MOVWF PR2; Faire tous les ports de sorties (B1 seulement est utilisé)
CLRF TRISB
BCF STATUS, RP0; Configurer comme mode PWM
MOVLW B'00001100 '
MOVWF CCP1CON, La valeur de CCPRIL fixe le cycle et, par conséquent, la tension
; MOVLW 010H; donne 2,52 V
MOVLW 018H; donne 3,8 V
; MOVLW 022H; 6v
MOVWF CCPR1L, Tourner sur le PWM
BSF T2CON, TMR2ON et démarrer la minuterie marche; Delay = 2 secondes
, La fréquence d'horloge = 4 MHz; Réelles delay = 2 secondes = 2000000 cycles
; Erreur = 0%cblock
d1
d2
d3
ENDCRetard
; 1999996 cycles
movlw 0x11
movwf d1
movlw 0x5D
movwf d2
movlw 0x05
movwf d3
Delay_0
decfsz d1, f
goto $ 2
decfsz d2, f
goto $ 2
decfsz d3, f
goto Delay_04 cycles (y compris l'appel); Ces 3 lignes de la période de pulsation (39 kHz)
MOVLW 01FH
BSF STATUS, RP0
MOVWF PR2; Faire tous les ports de sorties (B1 seulement est utilisé)
CLRF TRISB
BCF STATUS, RP0; Configurer comme mode PWM
MOVLW B'00001100 '
MOVWF CCP1CON, La valeur de CCPRIL fixe le cycle et, par conséquent, la tension
; MOVLW 010H; donne 2,52 V
; MOVLW 018H; donne 3,8 V
MOVLW 022H; donne 6.0v
MOVWF CCPR1L, Tourner sur le PWM
BSF T2CON, TMR2ON et démarrer la minuterie marcheFIN NOP
GOTO FINFIN