Podany program muszę przerobić tak, aby napis, który się wyświetla latał po ekranie w lewo i w prawo. Proszę pomóżcie.
W ogóle nie rozumiem tych mikrokontrolerów ;(
LJMP START
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
ORG 100H
START:
LCALL WAIT_KEY
LCALL LCD_CLR
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
MOV R0,#0
MOV DPTR,#TXT
LOOP:
MOV A,R0
MOVC A,@A+DPTR
CJNE A,#0,DALEJ
SJMP KONIEC
DALEJ:
MOV SBUF,A
JNB TI,$
CLR TI
INC R0
SJMP LOOP
KONIEC:
SJMP $
TXT:
DB 0Ch
DB 'Rekord 1',0
W ogóle nie rozumiem tych mikrokontrolerów ;(
LJMP START
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
ORG 100H
START:
LCALL WAIT_KEY
LCALL LCD_CLR
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
MOV R0,#0
MOV DPTR,#TXT
LOOP:
MOV A,R0
MOVC A,@A+DPTR
CJNE A,#0,DALEJ
SJMP KONIEC
DALEJ:
MOV SBUF,A
JNB TI,$
CLR TI
INC R0
SJMP LOOP
KONIEC:
SJMP $
TXT:
DB 0Ch
DB 'Rekord 1',0