Delay Proračuni na 8051

G

glenjoy

Guest
Ima li itko ovdje zna kako napraviti točno kašnjenja korištenjem 8051,
recimo na primjer 500 ms?Ali to je bez odgađanja 8051 calculator softver pomoći, ono što mi treba je točno izračuni su strojnog ciklusa / upute ciklusa.

BTW Ja sam koristeći DS89C420, a High Speed jedna verzija.

 
bok,

Zašto ne koristiti interni brojač koji proizvoditi jedan prekid na znam bundary umjesto brojanja procesora?

 
Vremena će učiniti, ali vi i dalje trebate znati sat vremena jer učestalost ovisi o tome, pa to je još uvijek broje procesora ali na pametan način.

 
Većina najjednostavniji način je da koristite interni vremena, ali ćete morati biti vrlo carefull ako želite 500ms točno.

Npr. Pretpostavimo da imate 12MHz xtal (1MIPS).Vi se vremena za pokretanje 50ms TH0 = 0x3C TL0 = 0xAF.

Prekinuti rutinu u koju opadajućom jedan (npr. vrijeme) varijabla (vrijeme = 10 u početku).= 0 trenutku kada je otišao 500ms.

Morate se izračunati koliko strojevi ciklusi su prekinuti i morat ćete izračunati koliko ciklusa morate doći u prekidati i da biste dobili vanjska strana od Internet.Ovi broj ciklusa trebate oduzimati od 3CAF i dobijete upravo 500ms.Mr.Cube

 
hi svidobar softver za napraviti petlju delayd vrijeme 8051 je ovaj:
Žao nam je, ali morate prijaviti da biste vidjeli u ovom prilogu

 
Hi hm_fa_da,

dobar softver, ali sa ovim programom rutinu koja će se zaustaviti u potprogram "TTO" za secified vrijeme (npr. 500ms) tako drugi proces neće biti proccessed.

Bolji način je da kašnjenje s prekine.Mr.Cube

 
u što trebate znati je
oscilator frekvencija
instruction cycle frekvenciju.
kašnjenje što želite
Korak 1: oscilator frekvencija / ciklus instrukcija fequency

Korak 2: 1/step 1 rezultat

Korak 3: zakašnjenja u žele * rezultirati korak 2

Korak 4: gornja vrijednost registra može računati - rezultat u koraku 3

rezultat u trebate učitati na thl i thh registrirate.

 
Tako da je to presudno za kašnjenje koje trebate provesti?, Tako
koje se mogu igrati sa vožnji puta uputa poput NOP ...
ili putem ovog obrasca, ili s kojima se naznačiti da li gore, morate znati da učestalost takta vašeg mikro i trčanje vremena upute.
Sretno!

 
Žao mi je, jer ovaj korak (3) nije u redu

"Korak 3: zakašnjenja u žele * rezultat u koraku 2"

ZA OVAJ KORAK SMO ALI NE mnošenja trebamo podijeljen je vrijednost

ISPRAVAK NA KORAK 3

"Korak 3: zakašnjenja u žele / rezultat u koraku 2"

 
Time8051.zip je najbolje rješenje, on će vas naučiti kako izračunati zakašnjenja.Također sam osobno koristeći Internet i njegova rezultat je blizu 100% ispravan.
pozdravi

 
Stroj za ciklus 1.085us (11.085Mhz)

Strojno ciklusom (MC)
Delay: MOV R2, # 200 (1MC)
Opet: MOV R3, # 250 (1MC)
Ovdje: NOP (1MC)
NOP (1MC)
DJNZ R3, ovdje (2MC)
DJNZ R2, Again (2MC)
Močiti (1MC)Izračun:

1) Za Ovdje petlja, (4x250) 1.085us = 1085us
2) Opet petlja ponoviti Ovdje petlja 200times, 200x1085us = 217000
3) MOV R3, # 250 & DJNZ R2, opet => (3x200x1.085us) = 615us
4) Rezultati ukupno kašnjenje = 217000
651 = 217651us = 217.651ms

5) Napomena: u također možete dodati močiti ciklusa, 1.085us dodaj u rezultat.Tako da više precizan!^ _ ^Dakle, jz modificirati malo da biste dobili zakašnjenja u žele.
Mayb pokušati iskoristiti vrijeme je bolje

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />Napomena: Registracija najvišu vrijednost može ići je 2 ^ 8 = 256, pa postavite sivosmeđ preopterećenje.

 

Welcome to EDABoard.com

Sponsor

Back
Top