PIC16F877A ...

K

kiddd

Guest
hi ...I'm
doing hankkeen avulla PIC16F877A ja MOSFET kuljettajan LMD18200T ...
ongelma on lähdekoodin ..En ole käyttöturvallisuustiedotteet PIC16F877A ...voi any1 osuus ur lausuntoa tai mitään ohjeita?Olen käyttäen kokoonpano kieltä ...kiitos ...

 
Hei,

Ehkä jos lähetetty sinun lähdekoodia, joku voi auttaa.Kaikki Tiedän blogitekstiisi on, että PIC tarvitaan tulostaa PWM varten H-silta siru yhdessä muutaman I / O:
n ohjauksesta ja "jarruttaa".The 16F877A on enemmän kuin tarpeeksi tähän tehtävään, mutta se riippuu lähdekoodia, ja mitä haluat mikro tekemistä moottori.

Terveisin,

BuriedCode.

Ps,
en todella "C" tai perus-kieliä, mutta olen sakon kanssa cxx.

 
luettelo p = pic16f877A
sisällyttää p16f873.inc
__config _hs_osc & _wdt_off & _pwrte_on & _lvp_off
errorlevel -302; Suppress pankki varoitus

;**************** Label Määritelmä ********************
nopeus EQU d'8 "; Vertailunopeus (5x8/256 = 0.156V)
muuttaa EQU d'1 '; Muuta arvo (2mV/ms)

johtanut EQU h'20 "; LED valvonta tiedot tallentaa alueella

;**************** Program Käynnistä ***********************
org 0; Nollaa Vector
goto init
org 4; Interrupt Vector
goto int

;**************** Initial Process *********************
init

; *** Port käynnistystoimien
BSF asema, rp0; Vaihda Bank1
movlw b'00000001 "; AN0 tuloliittimeen tilassa
movwf trisa; Aseta TRISA rekisteri
clrf trisb; Aseta TRISB on uotput tilassa
clrf trisc; Aseta TRISC lähtö-tilassa
BCF asema, rp0; Vaihda Bank0

; *** A / D-muuntimen käynnistystoimien
movlw b'10000001 "; ADCS = 10 CHS = AN0 ADON = ON
movwf adcon0; Aseta ADCON0 rekisteri
BSF asema, rp0; Vaihda Bank1
movlw b'00001110 "; ADFM = 0 PCFG = 1110
movwf adcon1; Aseta ADCON1 rekisteri
BCF asema, rp0; Vaihda Bank0

; *** PWM käynnistystoimien
clrf tmr2; Vapaa TMR2 rekisteri
movlw b'11111111 "Max tulli (alhainen nopeus)
movwf ccpr1l; Aseta CCPR1L rekisteri
BSF asema, rp0; Vaihda Bank1
movlw d'255 '; Period = 1638.4usec (610Hz)
movwf pr2; Aseta PR2 rekisteri
BCF asema, rp0; Vaihda Bank0
movlw b'00000110 "Pst = 1:1 TMR2 = ON Pre = 1:16
movwf t2con; Aseta T2CON rekisteri
movlw b'00001100 "; CCP1XY = 0 CCP1M = 1100 (PWM)
movwf ccp1con; Aseta CCP1CON rekisteri

; *** Vertaa tilassa käynnistystoimien
clrf tmr1h; Vapaa TMR1H rekisteri
clrf tmr1l; Vapaa TMR1L rekisteri
movlw h'61 "; H'61A8 '= 25000
movwf ccpr2h; Aseta CCPR2H rekisteri
movlw h'a8 "; 25000 * 0.4usec = 10msec
movwf ccpr2l; Aseta CCPR2L rekisteri
movlw b'00000001 "Pre = 1:1 TMR1 = Int TMR1 = ON
movwf t1con; Aseta T1CON rekisteri
movlw b'00001011 "; CCP2M = 1011 (Compare)
movwf ccp2con; Aseta CCP2CON rekisteri

; *** Välihuomautus valvonta
BSF asema, rp0; Vaihda Bank1
movlw b'00000001 "; CCP2IE = Enable
movwf pie2; Aseta PIE2 rekisteri
BCF asema, rp0; Vaihda Bank0
movlw b'11000000 "GIE = ON PEIE = ON
movwf intcon; Aseta INTCON rekisteri

odota
goto $; Välihuomautus odottaa

;*************** Välihuomautus prosessin *****************
int
clrf pir2; Vapaa keskeytyksettä lippu
ad_check
btfsc adcon0, mene,
ja A / D muuntaa päättyy?
goto ad_check;
No

Uudelleen
movfw adresh; Lue ADRESH rekisteri
sublw nopeudella, Ref nopeus - Jäljitä nopeus
btfsc asema, c Vertailunopeus <Jäljitä?
goto check1;
No

Loikkaa> tai = tarkista

; --- Valvonta alhaisella nopeudella ---
movfw ccpr1l; Lue CCPR1L rekisteri
addlw muutos; Muuta arvo CCPR1L
btfss asema, c; Overflow?
movwf ccpr1l;
No

Kirjoita CCPR1L
goto led_cont; Loikkaa LED valvonta

check1
btfsc asema, z Vertailunopeus = Jäljitä?
goto led_cont; Kyllä.Hyppää LED valvonta

; --- Valvonta nopeasti ---
movlw muutos; Aseta muutosarvo
subwf ccpr1l, f; CCPR1L - Muuta arvo
btfsc asema, c; Underflow?
goto led_cont; Loikkaa LED valvonta
clrf ccpr1l; Aseta nopeimmin nopeus

;**************** LED valvonta prosessin ******************
led_cont
comf ccpr1l, w; täydennyksessä CCPR1L bittinen
movwf johtanut; Tallenna LED tiedot
movlw b'00010000 "Aseta vertailla
subwf johtanut w; LED - tiedot
btfsc asema, c; mukaan?
goto led1;
Nomovlw b'00000000 "Aseta LED valvonta tiedot
goto int_end; Loikkaa keskeyttää loppuun
led1 movlw b'00100000 "Aseta vertailla
subwf johtanut w; LED - tiedot
btfsc asema, c; mukaan?
goto led2;
Nomovlw b'00000001 "Aseta LED valvonta tiedot
goto int_end; Loikkaa keskeyttää loppuun
led2 movlw b'01000000 "Aseta vertailla
subwf johtanut w; LED - tiedot
btfsc asema, c; mukaan?
goto led3;
Nomovlw b'00000011 "Aseta LED valvonta tiedot
goto int_end; Loikkaa keskeyttää loppuun
led3 movlw b'01100000 "Aseta vertailla
subwf johtanut w; LED - tiedot
btfsc asema, c; mukaan?
goto led4;
Nomovlw b'00000111 "Aseta LED valvonta tiedot
goto int_end; Loikkaa keskeyttää loppuun
led4 movlw b'10000000 "Aseta vertailla
subwf johtanut w; LED - tiedot
btfsc asema, c; mukaan?
goto led5;
Nomovlw b'00001111 "Aseta LED valvonta tiedot
goto int_end; Loikkaa keskeyttää loppuun
led5 movlw b'10100000 "Aseta vertailla
subwf johtanut w; LED - tiedot
btfsc asema, c; mukaan?
goto led6;
Nomovlw b'00011111 "Aseta LED valvonta tiedot
goto int_end; Loikkaa keskeyttää loppuun
led6 movlw b'11000000 "Aseta vertailla
subwf johtanut w; LED - tiedot
btfsc asema, c; mukaan?
goto led7;
Nomovlw b'00111111 "Aseta LED valvonta tiedot
goto int_end; Loikkaa keskeyttää loppuun
led7 movlw b'11100000 "Aseta vertailla
subwf johtanut w; LED - tiedot
btfsc asema, c; mukaan?
goto led8;
Nomovlw b'01111111 "Aseta LED valvonta tiedot
goto int_end; Loikkaa keskeyttää loppuun
led8 movlw b'11111111 "Aseta LED valvonta tiedot

;************ END keskeytymis prosessin **************
int_end
movwf portb; Aseta PROTB
retfie

;************************************************* *******
; END DC moottorin nopeutta Controller
;************************************************* *******

loppusaan tämän lähdekoodia noin verkkosivuilla ...Ymmärrän, että tämä lähde koodi 2 moottori ...1 moottori on käyttää havaitsemista varten nopeus ....

nyt ...wat i sekava on intterupt ja vertailla käynnistystoimien ...

 

Welcome to EDABoard.com

Sponsor

Back
Top