oneskoriť Výpočty na 8051

G

glenjoy

Guest
Je tu niekto vie, ako vytvoriť presnú oneskorenia pomocou 8051, povedzme napríklad 500 ms?Ale to je 8051 bez omeškania kalkulačka softvér pomoct, čo potrebujem, je presné výpočty stroje cyklus / výučba cyklu.

Btw som pomocou DS89C420, vysokorýchlostné jedna verzia.

 
nazdar,

Prečo používať interné časovač, ktorý predložil prerušiť na vedieť bundary miesto počítanie cykly procesora?

 
Časovač bude ale stále potrebujú poznať hodinovej frekvencie, pretože doba je závislá na tom, tak je to stále uskutočnia cykly procesora, ale šikovný spôsob.

 
Most najjednoduchší spôsob je použitie vnútorného časovača, ale musíte byť veľmi opatrný, ak chcete 500ms presne.

Napr. Predpokladajme, máte 12MHz xtal (1MIPS).Udělal jsi časovač spustiť 50ms TH0 = 0x3C TL0 = 0xAF.

Pri prerušení rutinné vám dekrementační jeden (napr. čas) ukazovatele (čas = 10 v začiatku).keď = 0 500ms je preč.

Musíte počítať, koľko cyklov stroja sa preruší a musíte počítať, koľko cyklov, ktoré potrebujete získať v prerušenia a dostať z nej.Tieto počet cyklov musíte odpočítať z 3CAF a dostanete presne 500ms.Mr.Cube

 
ahoj všetkýmdobrý software, aby sa slučka delayd dobe na 8051 je nasledujúci:
Ospravedlňujeme sa, ale musíte prihlásiť a prezerať túto prílohu

 
Ahoj hm_fa_da,

dobrý softvér, ale váš program s týmto bežné, že sa zastaví v čiastkový "tto" pre secified času (napr. 500ms),
a to iným spôsobom nebude proccessed.

Lepší spôsob je urobiť omeškania sa preruší.Mr.Cube

 
Čo potrebujete vedieť, a je
frekvencie oscilátora
inštrukcií cyklu frekvenciu.
čo chcete oneskorenie
Krok 1: frekvencie oscilátora / výučba cyklu fequency

Krok 2: 1/step 1 výsledok

Krok 3: oneskorenie u want * Výsledky v kroku 2

krok 4: hornej hodnoty databázy Registry môžete počítať - výsledok v kroku 3

Výsledky u musieť zaviesť do THL a THH zaregistrovať.

 
Že tak zásadné, že sa jedná o meškaní, ktoré je potrebné vykonať?, Takže
, Ktoré si môžete zahrať s spustiť časy inštrukcie NOP rád ...
alebo prostredníctvom tohto formulára, alebo ktoré ukazujú na vás vyššie, čo potrebujete vedieť o frekvencii hodiny vášho mikro a spustiť časy inštrukcie.
Veľa šťastia!

 
Je mi ľúto, pretože tento krok (3) je zle

"Krok 3: oneskorenie u want * Výsledky v kroku 2"

Pre tento krok Nejsme rozmnožím ale potrebujeme rozdelili HODNOTA

KOREKCIA NA KROK 3

"Krok 3: oneskorenie u want / výsledok v kroku 2"

 
Time8051.zip Najlepším riešením je, že vás naučia počítať meškanie.Já som tiež osobne, ktorí ju využívajú, a jeho výsledkom je takmer 100% v poriadku.
pozdravy

 
Pre stroj cyklu 1.085us (11.085Mhz)

Stroj Cycle (MC)
Oneskorenie: mov R2, # 200 (1MC)
Opäť: mov R3, # 250 (1MC)
Tu: NOP (1MC)
NOP (1MC)
DJNZ R3, Here (2MC)
DJNZ R2, Again (2MC)
RET (1MC)Výpočet:

1) Na Tu slučka, (4x250) 1.085us = 1085us
2) Znovu sa opakuje smyčka Tu slučky 200times, 200x1085us = 217000
3) V mov R3, # 250 & DJNZ R2, opäť => (3x200x1.085us) = 615us
4) Výsledok celkom delay = 217000
651 = 217651us = 217.651ms

5) Poznámka: Pre tiež môžete pridať RET cyklu 1.085us pridať do výsledku.Takže presnejšie!^ _ ^Takže jz zmeniť trochu sa oneskorenie u chcieť.
Maybe skúste použiť časovač je lepší

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Úsmev" border="0" />Poznámka: Maximálna hodnota Registrovať sa môžete obrátiť, je 2 ^ 8 = 256, takže šedohnedá set preťaženia.

 

Welcome to EDABoard.com

Sponsor

Back
Top