P
piersuk
Guest
Paumanhin para sa pagiging tulad ng isang Newbie at walang ideya kung ano ang ginagawa ko, ngunit ay sinusubukan ko na magtrabaho sa pamamagitan ng mga bagay-bagay.
Ano ay sinusubukan ko na gawin ay ang pagmamaneho ng DC motor sa
iba't ibang voltages na may 2 ikalawang pagkaantala inbetween bawat hakbang.Ako may tried ang mga inaasam ko sa ibaba na kung saan ay dalawang hakbang 3.8v at 6v ngunit alas no.
Anumang tulong sa ang code ay appreciated.Sa karagdagan Gusto kong malaman kung ano at kung saan na idagdag ang bawat boltahe hakbang na piraso ng code.
Ito ang aking code
Code:
LISTAHAN P = PIC16F819, r = hex, f = INHX8MIsama "p16f819.inc"__CONFIG 3909H;********* Programa ng tamang magsisimula dito ************************************ *Org 00H; reset vector
Goto STARTOrg 010HSTART
; Mga 3 linya itakda ang panahon ng pulsing (39 KHz)
MOVLW 01FH
BSF KALAGAYAN, RP0
MOVWF PR2; Gumawa ng lahat ng port outputs (lamang B1 ay ginagamit)
CLRF TRISB
BCF KALAGAYAN, RP0; Configure bilang PWM mode
MOVLW B'00001100 '
MOVWF CCP1CON; Ang halaga ng CCPRIL set ang duty cycle at sa gayon ang boltahe
; MOVLW 010H; nagbibigay 2.52 V
MOVLW 018H; nagbibigay 3.8 V
; MOVLW 022H; 6v
MOVWF CCPR1L; Patayin ang PWM sa
BSF T2CON, TMR2ON; at simulan ang pagpapatakbo ng timer; Delay = 2 seconds
; Clock dalas = 4 MHz; Tunay na delay = 2 seconds = 2000000 cycles
; Error = 0%cblock
d1
d2
d3
endcAntala
; 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_0; 4 cycles (kabilang ang mga tawag); Mga 3 linya itakda ang panahon ng pulsing (39 KHz)
MOVLW 01FH
BSF KALAGAYAN, RP0
MOVWF PR2; Gumawa ng lahat ng port outputs (lamang B1 ay ginagamit)
CLRF TRISB
BCF KALAGAYAN, RP0; Configure bilang PWM mode
MOVLW B'00001100 '
MOVWF CCP1CON; Ang halaga ng CCPRIL set ang duty cycle at sa gayon ang boltahe
; MOVLW 010H; nagbibigay 2.52 V
; MOVLW 018H; nagbibigay 3.8 V
MOVLW 022H; nagbibigay 6.0v
MOVWF CCPR1L; Patayin ang PWM sa
BSF T2CON, TMR2ON; at simulan ang pagpapatakbo ng timerAleta NOP
Goto palikpikEND
Ano ay sinusubukan ko na gawin ay ang pagmamaneho ng DC motor sa
iba't ibang voltages na may 2 ikalawang pagkaantala inbetween bawat hakbang.Ako may tried ang mga inaasam ko sa ibaba na kung saan ay dalawang hakbang 3.8v at 6v ngunit alas no.
Anumang tulong sa ang code ay appreciated.Sa karagdagan Gusto kong malaman kung ano at kung saan na idagdag ang bawat boltahe hakbang na piraso ng code.
Ito ang aking code
Code:
LISTAHAN P = PIC16F819, r = hex, f = INHX8MIsama "p16f819.inc"__CONFIG 3909H;********* Programa ng tamang magsisimula dito ************************************ *Org 00H; reset vector
Goto STARTOrg 010HSTART
; Mga 3 linya itakda ang panahon ng pulsing (39 KHz)
MOVLW 01FH
BSF KALAGAYAN, RP0
MOVWF PR2; Gumawa ng lahat ng port outputs (lamang B1 ay ginagamit)
CLRF TRISB
BCF KALAGAYAN, RP0; Configure bilang PWM mode
MOVLW B'00001100 '
MOVWF CCP1CON; Ang halaga ng CCPRIL set ang duty cycle at sa gayon ang boltahe
; MOVLW 010H; nagbibigay 2.52 V
MOVLW 018H; nagbibigay 3.8 V
; MOVLW 022H; 6v
MOVWF CCPR1L; Patayin ang PWM sa
BSF T2CON, TMR2ON; at simulan ang pagpapatakbo ng timer; Delay = 2 seconds
; Clock dalas = 4 MHz; Tunay na delay = 2 seconds = 2000000 cycles
; Error = 0%cblock
d1
d2
d3
endcAntala
; 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_0; 4 cycles (kabilang ang mga tawag); Mga 3 linya itakda ang panahon ng pulsing (39 KHz)
MOVLW 01FH
BSF KALAGAYAN, RP0
MOVWF PR2; Gumawa ng lahat ng port outputs (lamang B1 ay ginagamit)
CLRF TRISB
BCF KALAGAYAN, RP0; Configure bilang PWM mode
MOVLW B'00001100 '
MOVWF CCP1CON; Ang halaga ng CCPRIL set ang duty cycle at sa gayon ang boltahe
; MOVLW 010H; nagbibigay 2.52 V
; MOVLW 018H; nagbibigay 3.8 V
MOVLW 022H; nagbibigay 6.0v
MOVWF CCPR1L; Patayin ang PWM sa
BSF T2CON, TMR2ON; at simulan ang pagpapatakbo ng timerAleta NOP
Goto palikpikEND