Как да си направим таймер за 1 брой miniute

E

eugenehhk

Guest
Искам да брои 1 miniute или няколко miniute в LC (8051), без да използвате прекъсва, как мога да направя?

THX ~

 
Настройка тази подпрограма:
Код:

POFDel EQU 250; Желан забавяне в милисекунди

POFDel1:

MOV R5, # ((Кристал POFDel *) / 6180000); изготвяне на стойност забавяне djnz

POFDel2:

; MOV R4, 0 #

POFDel3:

djnz R4, POFDel3; Това се вътре линия 515 цикъла

djnz R5, POFDel2; Тази линия се случва на правилното брой пъти

, Да получите най-близко до желаното забавяне в държавите-членки

Ret; се върнат, когато закъснението е пълна

 
Thx:)
Но аз искам да се използва хардуерно да брои времето, то е, защото 8051 се правиш на друга работа в същото време!

 
Цитат:

Искам да използва хардуерно да брои времето, то е, защото 8051 се прави на друга работа в същото време!
 
Здрасти,
да се раздели на броя на 1мин време на време на периода на часовника на процесора.след получаване на брой, U поставени в линия и увеличаване на броя, докато достигне този брой.сега времето ще бъде една мин. ...

Rgeards,
Tumma.

 
Ако искате да използвате, хардуер, трябва да се 555 ...Изберете правилния резистор и кондензатор, ...но аз предпочитам да използвате таймер 8051 прекъсват ...

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
1 минута = (таймер прекъсват интервал) * (брой на some_value)

Заредете 2's допълнение на some_value в брояч,
брояч генерира прекъсване, когато имаш една минута закъснение.

Обнови таймер го и започнете отново.

 
; забавяне от една минута без да се използва прекъсване но като се използват таймер
;--------------------------------------------

MOV ВРТК, # 0000h
orl ТМСШ, # 01h
L1:
MOV tl0, # 0fdh; 50ms
MOV ТН0, # 04h
setb tr0
тук:
JNB tf0, тук
CLR tf0
ВРТК Inc
cjne DPH, # 04h, L1; 1200 <---> 04b0h
cjne ПОП, # 0b1h, L1
Ret

 
първоначален.за бивши.използват таймер / брояч 0 в режим 1

Часовник 12MHZ MSc 1usec ~ 0,97 сек ЗабавянеMOV R2, # 16
MOV ТМСШ, # 01Н
MOV ТН0, # 00Н
MOV TL0, # 00Н
Гръб: SETB TR0
отново: JNB TF0, отново
CLRTR0
CLR TF0
DJNZ R2, назадОбщо Забавяне в секунда = инструкция цикъл * (65536 - първоначална таймер стойност (тук е 0000) * (стойност в R2 (тук 16))

 

Welcome to EDABoard.com

Sponsor

Back
Top