Мені потрібна допомога, щоб зрозуміти цю затримку код!

G

Ghalebi

Guest
Салам всім,Я використовую PIC16F84A з 4 МГц осцилятор для чогось ..
і хтось годував мене за допомогою наступного коду з метою розвитку 5 секунд затримка ..Код:

; 5 секундної затримкою.

DELAY5

CLRF TMR0; СНВ TMR0.

LOOPB

MOVF TMR0, W, прочитайте TMR0 в W.

SUBLW .160, час - 160

BTFSS СТАН, ZEROBIT; Перевірити різницеві

GOTO LOOPB, різниця не дорівнює нулю

RETLW 0; час становить 160, повернення.
 
Будь ласка, допоможіть ..

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Сумний" border="0" />
 
Внутрішній FOSC годин 32 768Hz, дільника 1:256

MCU годинник FOSC / 4 = 8192Hz

Вихід з дільника є 8192Hz / 256 = 32 Гц

Період Т = 1 / F = 1 / 32 Гц = 0,03125 S

Затримка Т х 160 = 0,03125 S X 160 = 5s

Цей фрагмент коду це погано, випробування для is'nt Zero доцільним.

 
Thanx багато людини, так і чітко ..

але у Didn't як фрагмент, може дати U Ur пропозиції щодо його поліпшення ..

Many Thanks

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Посмішка" border="0" />
 
Ось код:

Код:

; 5-секундну затримку, FOSC 32 768Hz

DELAY5

CLRF TMR0; Відкритий TMR0.

LOOPB

MOVF TMR0, W, прочитайте TMR0 в W.

SUBLW .160, час - 160

BTFSS STATUS, C; Перевірити не позичати

GOTO LOOPB;

RETLW 0; час становить 160, повернення.
 
Ще раз спасибі сер,
Whats але різниця з перевіркою біта Carry замість нуля розрядний!

А що якщо я працюю над FOSC = 4 МГц ..

Привіт

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Посмішка" border="0" />
 
Код:

;--------- Визначення змінних

# DEFINE RAM_Start 0x20

CBLOCK RAM_Start

counterLo

counterMi

counterHi

ENDC

;----------------------------------------------

; FOSC = 4MHz, затримка з 4,999994

;----------------------------------------------

delay5; 2 (від дзвінка)

MOVLW 0x70 3;

MOVWF counterLo 4;

MOVLW 0x10; 5

MOVWF counterMi 6;

MOVLW 0xF9 7;

MOVWF counterHi 8;

петля

incf counterLo, F 1;

btfsc STATUS, Z 3;

incf counterMi, F; 4

btfsc STATUS, Z; 6

incf counterHi 7;

BTFSS STATUS, Z; 9

Перейти циклі 11;

retlw 0x00 10;
 

Welcome to EDABoard.com

Sponsor

Back
Top