PIC16f877a

D

dhanraj_kmr

Guest
min tvil er hva bruk av CCP og PWM modus i denne prosessoren?
der det kreves?og hvorfor???

Enn på forhånd

 
Det er mange bruke for CCP og PWM.
Avhengig av programmet,
du kan komme med kreative ideer for å bruke dem.
Det er ingen streng regel hva de skal brukes til.

PWM er svært nyttig i kraft veksling kontroll.
Driftssyklus eller frekvens brukes vanligvis for kretser inngang.

CCP er for å fange ekstern hendelse med tidtaker.
Du vil kunne kjenne tid med hensyn til skriving utløse.
Eksempel kan være en stopper se tidtakeren funksjoner.

www.siongboon.com

 
dhanraj_kmr wrote:

min tvil er hva bruk av CCP og PWM modus i denne prosessoren?

der det kreves?
og hvorfor???Enn på forhånd
 
thankz mye ...........pl laste opp noen eksempler programes hvis du gjerne ...........

 
Her er et eksempel som referanse

////////////////////////////////////////////////// ///////////////////////
/ / / / EX_PWM.C / / / /
/ / / / / / / /
/ / / / Dette programmet viser hvordan du bruker den innebygde PIC PWM./ / / /
/ / / / Programmet tar en analog inngang og bruker digital / / / /
/ / / / Verdi for å angi Driftssyklus.Frekvensen er fastsatt av / / / /
/ / / / Brukeren over RS-232./ / / /
/ / / / / / / /
/ / / / Konfigurer CCS prototype kortet som følger: / / / /
/ / / / Koble et omfang på pin 3 (C2) / / / /
/ / / / Connect 9 til 15 (pott) / / / /
/ / / / Se ekstra tilkoblinger nedenfor./ / / /
/ / / / / / / /
////////////////////////////////////////////////// ///////////////////////# hvis definert (__PCM__)
#
include <16F877.h>
# sikringer HS, NOWDT, NOPROTECT, NOLVP
# bruke forsinkelse (klokke = 10000000)
# bruke RS232 (baud = 9600, xmit = PIN_C6, RCV = PIN_C7, BRGH1OK) / / Jumpers: 8 til 11, 7 til 12

# elif definert (__PCH__)
#
include <18F452.h>
# sikringer HS, NOWDT, NOPROTECT, NOLVP
# bruke forsinkelse (klokke = 10000000)
# bruke RS232 (baud = 9600, xmit = PIN_C6, RCV = PIN_C7, BRGH1OK) / / Jumpers: 8 til 11, 7 til 12
# endifvoid main () (
char valg;
byte value;printf ( "\ r \ nFrequency: \ r \ n");
printf ( "1) 19,5 kHz \ r \ n");
printf ( "2) 4,9 kHz \ r \ n");
printf ( "3) 1,2 kHz \ r \ n");

do (
utvalg = getc ();
) Mens ((utvalg <'1')||( utvalg>'3 '));setup_ccp1 (CCP_PWM); / / Configure CCP1 som en PWM

/ / Syklusen vil bli (1/clock) * 4 * t2div * (perioden 1)
/ / I dette programmet klokke = 10000000 og perioden = 127 (nedenfor)
/ / For tre mulige valg syklusen er:
/ / (1 / 10000000) * 4 * 1 * 128 = 51,2 oss eller 19.5 kHz
/ / (1 / 10000000) * 4 * 4 * 128 = 204,8 oss eller 4.9 kHz
/ / (1 / 10000000) * 4 * 16 * 128 = 819,2 oss eller 1.2 kHz

bryteren (utvalg) (
case'1 ': setup_timer_2 (T2_DIV_BY_1, 127, 1);
break;
tilfelle'2 ': setup_timer_2 (T2_DIV_BY_4, 127, 1);
break;
tilfelle'3 ': setup_timer_2 (T2_DIV_BY_16, 127, 1);
break;
)setup_port_a (ALL_ANALOG);
setup_adc (adc_clock_internal);
set_adc_channel (0);
printf ( "% c \ r \ n", valg);

while (true) (
value = read_adc ();

printf ( "% 2X \ r", value);

set_pwm1_duty (verdi); / / Dette angir tid pulsen er
/ / Høy hver syklus.Vi bruker A / D
/ / For å lage en enkel demo.
/ / Det på høy tid vil være:
/ / Hvis verdien er LONG INT:
/ / Verdi * (1/clock) * t2div
/ / Hvis verdien er INT:
/ / Verdi * 4 * (1/clock) * t2div
/ / For eksempel en verdi på 30 og t2div
/ / Av 1 høy tid 12us
/ / ADVARSEL: En verdi for høyt eller lavt vil
/ / Hindre utgang fra
/ / Endring.
)

)

 
Hei alle sammen!
Jeg gjør et emne om pic 16f877a er måle og vise hastighet motor på LCD
men
jeg er nybegynner Jeg vet ikke om pic så mye.behage hjelpe meg å skrive kode og circuts.
Thanks a lot!

 
noen hjelpe meg!
behage hjelpe meg å fullføre dette emnet.
takk en meget

 
Høres ut som du vil ha noen til å gjøre leksene dine oppdrag for deg.

 
no!dette er underlagt jeg gjøre for meg det ikke lekser.Jeg vil konsultere hvis du hjelpe meg.
takk en meget_______________________

ha det gøy

 

Welcome to EDABoard.com

Sponsor

Back
Top