help me tot 10kHz PWM DC motor controle door AT89c52

M

member_tdh

Guest
Hi all!
Ik heb een project is de controle een DC-motor (1KW).Ik heb geprobeerd om PWM puls te genereren bij 10 kHz, maar niet successed.Kan iemand me laten zien hoe hepl PWM puls te genereren bij 10 kHz gebruik IC AT89C52.
Bedankt allemaal!

 
Hier is een voorbeeld van hoe te genereren met behulp van PWM Timer0 Interrupt ..

Probeer te volgen en indien u nog problemen hebben - kom terug ..
http://www.iguanalabs.com/pwm.htm

Groeten,
IanP

 
Hi!
Ik wil het schrijven van een code door C language.Can iemand me helpen!

 
member_tdh:
Het is niet verstandig om een AT89c52 bedienen 10K PWM, tenzij je taken te geven op de chip is weinig.
Toch zal ik antwoord op uw vraag.
Gebruik Keil C stellen de volgende C programma

/ / Gebruik 24M oscillator

# define T0_Init_Data 0x38
sbit PWM_Pin = P0 ^ 0;
unsigned char High_V_Data;
unsigned char Low_V_Data;
unsigned char PWM_Flag = 0;

void Init_T0 (void) / / inleiding T0
(
Th0 = T0_Init_Data;
TL0 = th0;
/ / T0 gebruik Timer-functie en operationele modus 2
TMOD & = 0xf8;
TMOD = 0x02;
/ / Enable interrupt
EA = 1;
ET0 = 1;
)

void Set_PWM (unsigned char data) / / de parameter betekent assortiment PWM hoge voltage.The gegevens's :0 --- (0xff-T0_Init_Data)
(
/ / stop timer T0
TR0 = 0;
/ / set nieuwe PWM parameter
High_V_Data = 0xff-(T0_Init_Data data);
Low_V_Data = data;

PWM_Flag = 1;
Th0 = High_V_Data;
/ / start timer T0
TR0 = 1;
)

/ / T0 overloop onderbreking dienen
void int_T0 onderbreken 1
(
if (PWM_Flag == 1)
(
PWM_Pin = 0;
PWM_Flag = 0;
Th0 = Low_V_Data;
)
if (PWM_Flag == 0)
(
PWM_Pin = 1;
PWM_Flag = 1;
Th0 = High_V_Data;
)
)

Het is een lange tijd heb ik geen gebruik 51Core chip, als er een fout in het programma, verontschuldig ik voor.
Als een vraag, plz zenden mij een E-mail: aaaaaaaaaalyl (at) 163.com
Ik zal proberen mijn best om u te helpen.

 
hoi!
dit is mijn test bron: (. c) na uw code die u gived mij, maar deze code is niet goed uitgevoerd.Kan u repareren voor mij?
thanks!

void Init_T0 (void)
(
TMOD | = 0x22; / / Timer1, mode 2, Timer0, modus 2
Th0 = T0_Init_Data;
TL0 = th0;
ET0 = 1;
EA = 1;
)

void Set_PWM (BYTE PWM)
(
TR0 = 0;
High_V_Data = 0xff-(T0_Init_Data PWM);
Low_V_Data = PWM;
PWM_Flag = 1;
Th0 = High_V_Data;
TR0 = 1;
)

void int_T0 () interrupt TF0_VECTOR / / 1
(
if (PWM_Flag & 1)
(
PWM_Pin = 0;
PWM_Flag = 0;
Th0 = Low_V_Data;
)
anders
(
PWM_Pin = 1;
PWM_Flag = 1;
Th0 = High_V_Data;
)
)

void main (void)
(
Init_T0 ();

while (1)
(
Set_PWM (pwm_val);
SenChr (PWM_Pin);

if (Inc_pwm_val == 0)
(
delay (12000);
while (Inc_pwm_val == 0)
(
pwm_val = 1;
if (pwm_val> 250) pwm_val = 250;
)
)
anders
(
if (Dec_pwm_val == 0)
(
delay (12000);
while (Dec_pwm_val == 0)
(
pwm_val-= 1;
if (pwm_val <5) pwm_val = 5;
)
)
)

) / / End terwijl
) / / End main

 
hi IanP,

deze pagina kan niet worden geopend en ik heb hetzelfde probleem

i need assembly code ...23 maart 2006 10:11 Re: help me 10kHz PWM DC motor aan controle door AT89c52

-------------------------------------------------- ------------------------------

Hier is een voorbeeld van hoe te genereren met behulp van PWM Timer0 Interrupt ..

Probeer te volgen en indien u nog problemen hebben - kom terug ..
h ** p: / / www.iguanalabs.com / pwm.htm

Groeten,
Massive Attack

 
Het lijkt erop dat de IGUANALABS server problemen of it's gone ..
Ondertussen, misschien deze korte voorbeeld zal zijn van elk gebruik om u te ..
Code:

$ NOPAGING

$ MOD252; 8051 en PWMORG 0000h

LJMP StartORG 000Bh

LJMP TimerStart:

mov TMOD, # 00000001b

mov th0, # 11101010b

mov TL0, # 01111001b

setb TR0

setb ET0

setb EA

mov R0, # 0d

mov R1, # 85D

mov R2, # 170D

mov P2, # 11111111b

mov A, # 255d

Nogmaals:

inc A

mov B, R0

cjne A, B, Next_1

CLR P2.0

Next_1:
mov B, R1

cjne A, B, Next_2

CLR P2.1

Next_2:

mov B, R2

cjne A, B, Next_3

CLR P2.2

Next_3:

cjne A, # 255d, Again

mov P2, # 11111111b

ljmp AgainTimer:

inc R0

inc R1

inc   R2
mov th0, # 11101010b

mov TL0, # 01111001b

retieindigen
 
gebruiken SG3525 met de AT89c52 .........en het genereren van de 20 kHz PWM dan u zal zeer goede resultaten te krijgen

 
Probeer deze link hoewel het opzettelijk werd gebruikt als PCB boor controller, werkt het met andere DC motor, heb ik al gedaan en nog steeds in goede vorm al die jaren.

http://www.web-ee.com/Electronic-Projects/projects/pcb_drill/index.shtml

 

Welcome to EDABoard.com

Sponsor

Back
Top