1sec forsinkelse program for 89c51

S

srinivasan2323

Guest
Hej Jeg har brug for et 1sec forsinkelse program til min 89c51 program
 
Ist gøre forsinkelse på 50ms bruger 16 bit timeren så kalde det 20 gange
 
Hej, når u belastning 00 i 16 bit timer, det tager 71.1msec at nå FF og overløb. så 71.1msec * 14times loop giver appx 995msec. for løkker tilbage i dit program efter overløb alt svarer til 1sec forsinkelse. Så skriv et program med 00 i timer og gentag det for 14 gange. måler det, vil du få 1 sek. skrive forsamling blot ikke i C.
 
void delay1s (void) {unsigned char count = 50, mens (tæller> 0) {TH0 = 183; TL0 = 255; TMOD = 1; TR0 = 1; (! TF0), mens {} TF0 = 0; TR0 = 0; tæller -;}}
 
[Quote = srinivasan2323] Hej Jeg har brug for et 1sec forsinkelse program til min 89c51 programmet [/quote] Bedste måde u brug Timer istedet for til loop for nøjagtig timing. Første u kan indlæse værdien i 16 - bit timer til 50 ms. så læsning timeren til 20 gange, vil u får præcis 1 sek forsinkelse.
 
Hej, kan du beslutter at bruge timere eller en rutine kalder for eksempel, MOV R0, # 4 mov R1, # 250 mov r2, # 250 lop: NOP NOP djnz r1, $ djnz r2, $ djnz R0, lop slutningen sådant program ville give en isecond forsinkelse, men alternativt kan man beslutte at bruge timerne i 89c51
 
først fortælle mig det krystal værdi, som UR anvender til systemet
 

Welcome to EDABoard.com

Sponsor

Back
Top