naléhavou pomoc třeba na 8051 ..

  • Thread starter jayant.shrivastava
  • Start date
J

jayant.shrivastava

Guest
Ahoj kluci ...Níže je můj program pro zobrazování RPM hrabě z tohoto zařízení zub čidla na setrvačníku motoru.Nejsem schopen nastavit správně zaregistrovat k přetečení počítat a také si nejsem jistý, jestli jsem dostat správné výsledky na sériový displej ....
Napsal jsem tento program v poslední době a musí být schopen realizovat hardware za 2 týdny od teď! ...nejsou k dispozici žádné chyby jako takové v programu.
Potřebuji ur pomoci naléhavě !!!!!Můžete dejte mi vědět, pokud program je správné, nebo musím udělat nějaké změny ....?????

Mám také obsahovat PWM pomocí DPS moduly ...Je možné, abych to udělal ....

to PWM bude kontrola škrtící klapky pomocí elektro-magnetické elektromagnetický ventil ... I am using časovač 2 ... a im ne jistý, která hodnota nahrát do počítat ...
by mělo být něco přes RCAP2L nebo jiný??To je program, já používám NXP (Philips), aby 8051, který má 3 časovače a také modul DPS pro etc PWM, ...plzz pomoc!!I bude zobrazovat RPM sériově za každou 1 sekundu, ale myslím si dokonce, že část inicializaci timer0 přerušení nefunguje správně ..

# Include <p89v51rx2.H>
# Include <stdio.h>
# Define INTERRUPT_Timer_2_Overflow 5
# Define TRUE 1
# Define FALSE 0

sbit Pulse_count = P1 ^ 1;

unsigned long int CountL, CountH, Count1 = 0; Flag_1sec, Count_Temp = 0;

neplatné Timer_2_Init (void);
neplatné Timer_0_Init (void);
neplatné RPM_Display_At_Controller_End (void);
neplatné RPM_Display_At_User_End (void);
neplatné Serial_Init (void);
neplatné Serial_Display (void);

/ /
//------------------------------------------------ -------------------------------------------------- -------------------------------------------------- ----------------------------------------------
/ /
void main (void)
(
Timer_2_Init ();
Serial_Init (); / / Nastavení časovače 2
EA = TRUE; / / globálně povolit přerušení
while (1)
(
if (Flag_1sec == TRUE)
(
Flag_1sec = FALSE;
Count1 = (CountH-CountL) (Count_Temp);
RPM_Display_At_Controller_End ();
RPM_Display_At_User_End ();

)
)
)

/ /
/ /
//------------------------------------------------ -------------------------------------------------- -------------------------------------------------- ----------------------------------------------
/ /
/ /
//------------------------------------------------ -------------------------------------------------- -------------------------------------------------- ----------------------------------------------
/ /

neplatné Timer_2_Init (void)
(
T2MOD = 0x0C9;
T2CON = 0x04; / / Load Timer 2 kontrolní registrovat
TH2 = 0xFC; / / Load Timer 2 vysokorychlostní byte
TL2 = 0x65; / / Load Timer 2 nízké byte
RCAP2L = 0x65; / / Load Timer 2 reload kapitán.reg.nízké byte
RCAP2H = 0xFC; / / Load Timer 2 reload kapitán.reg.vysoká byte
CountL = RCAP2L;
CountH = RCAP2H;
C_T2 = 1; / / Set počítadlo
CP_RL2 = 1;
EXEN2 = 1,
ET2 = 1; / / Timer 2 přerušení je povoleno, a ISR se bude nazývat, kdykoli časovač přeteče
TR2 = 1; / / Start Timer 2 běží
)
/ /
//------------------------------------------------ -------------------------------------------------- -------------------------------------------------- ----------------------------------------------
/ /
static void Zpětná vazba (void) přerušení INTERRUPT_Timer_2_Overflow
(
TF2 = 0;
CountL ;
CountH -;
Count_Temp ;
/ / EXF2 = 0;

)
/ /
/ /
//------------------------------------------------ ----------------------------------------

 

Welcome to EDABoard.com

Sponsor

Back
Top