Witam Szanownych Forumowiczów 8)
Napisałem (a właściwie przerobiłem programik z książki):
;********* Ustawienie TIMER˘w *********
;TIMER 0
T0_G EQU 0 ;GATE
T0_C EQU 0 ;COUNTER/-TIMER
T0_M EQU 0 ;MODE (0..3)
TIM0 EQU T0_M+T0_C*4+T0_G*8
;TIMER 1
T1_G EQU 0 ;GATE
T1_C EQU 0 ;COUNTER/-TIMER
T1_M EQU 2 ;MODE (0..3)
TIM1 EQU T1_M+T1_C*4+T1_G*8
TMOD_SET EQU TIM0+TIM1*16
;******* Transmisja Szeregowa *********
TR_M EQU 1 ;tryb transmisji (1..3)
TR_R EQU 0 ;zezwolenie na odbiór
SCON_SET EQU TR_M*64+TR_R*16
;SMOD=1
;TIMER1=57600/300bodów=192
TH1_SET EQU 256-192
TL1_SET EQU 256-192
;**************************************
LJMP START
ORG 100H
START:
MOV SCON,#SCON_SET ;port szeregowy
ORL PCON,#80H ;SMOD=1
MOV TMOD,#TMOD_SET ;Timer 1 dla
MOV TH1,#TH1_SET ;transmisji
MOV TL1,#TL1_SET
SETB TR1 ;start Timera 1
SETB TI
zero:
mov A,#10h
LOOP:
jz zero
JNB TI,$ ;czy można nadać
CLR TI ;kolejny znak
ADD A,#10H
MOV SBUF,A
;nadaj znak
SJMP LOOP
i wszystko byłoby ok, gdyby nie to iż ten programik jest napisany dla kwarcu 11.059.200 a ja posiadam 12Mhz. I odnośnie tego mam pytanie:
Jak przeliczyć prędkość transmisji??
PS. Próbowałem to obliczać, ale jakoś mi niewychodziło :? dlatego prosiłbym o łapotologiczne wyjaśnienie tego problemu
PS2. Może ktoś posiada programik do liczenia prędkości RS
Pozdrawiam
Napisałem (a właściwie przerobiłem programik z książki):
;********* Ustawienie TIMER˘w *********
;TIMER 0
T0_G EQU 0 ;GATE
T0_C EQU 0 ;COUNTER/-TIMER
T0_M EQU 0 ;MODE (0..3)
TIM0 EQU T0_M+T0_C*4+T0_G*8
;TIMER 1
T1_G EQU 0 ;GATE
T1_C EQU 0 ;COUNTER/-TIMER
T1_M EQU 2 ;MODE (0..3)
TIM1 EQU T1_M+T1_C*4+T1_G*8
TMOD_SET EQU TIM0+TIM1*16
;******* Transmisja Szeregowa *********
TR_M EQU 1 ;tryb transmisji (1..3)
TR_R EQU 0 ;zezwolenie na odbiór
SCON_SET EQU TR_M*64+TR_R*16
;SMOD=1
;TIMER1=57600/300bodów=192
TH1_SET EQU 256-192
TL1_SET EQU 256-192
;**************************************
LJMP START
ORG 100H
START:
MOV SCON,#SCON_SET ;port szeregowy
ORL PCON,#80H ;SMOD=1
MOV TMOD,#TMOD_SET ;Timer 1 dla
MOV TH1,#TH1_SET ;transmisji
MOV TL1,#TL1_SET
SETB TR1 ;start Timera 1
SETB TI
zero:
mov A,#10h
LOOP:
jz zero
JNB TI,$ ;czy można nadać
CLR TI ;kolejny znak
ADD A,#10H
MOV SBUF,A
;nadaj znak
SJMP LOOP
i wszystko byłoby ok, gdyby nie to iż ten programik jest napisany dla kwarcu 11.059.200 a ja posiadam 12Mhz. I odnośnie tego mam pytanie:
Jak przeliczyć prędkość transmisji??
PS. Próbowałem to obliczać, ale jakoś mi niewychodziło :? dlatego prosiłbym o łapotologiczne wyjaśnienie tego problemu
PS2. Może ktoś posiada programik do liczenia prędkości RS
Pozdrawiam