T
tumee
Guest
Harap dapat satu membantu saya?
Aku menulis di bawah ini kode sederhana di asm.Tetapi tidak berhasil.
Jadi aku telah menggunakan simulasi Keil compiler.Itu bekerja.
Tapi itu tidak bekerja pada perangkat keras.Aku diatur baundrate ke 9600, kristal untuk 11.0592MHz.Mengapa hal ini tidak bekerja?
ORG 00h
START:
; Aktifkan port transmisi.
; MOV SP, # 050H
MOV SCON, # 050H; Mode 1, 8-bit UART, memungkinkan penerima
MOV TMOD, # 020H; Timer 1, mode 2, 8-bit reload
MOV TH1, # 0FdH; Reload nilai 9.700 baud
SETB TR1; Buat timer
SETB TI; Hapus buffer
SETB EA; Aktifkan interupsi
MOV P2, # 0FFH
MOV A, P2
CLR C
SUBB A, # 0FFH
JZ HERE
MOV P2, A
CLR TI
MOV SBUF, A
JNB TI, $
HERE: CLR TI
MOV SBUF, # 054H
JNB TI, $
CLR TI
MOV SBUF, # 075H
JNB TI, $
CLR TI
MOV SBUF, # 06DH
JNB TI, $
CLR TI
MOV SBUF, # 065H
JNB TI, $
CLR TI
MOV SBUF, # 065H
JNB TI, $
CLR TI
MOV SBUF, # 021H
JNB TI, $
CALL DELAY
LJMP START
DELAY:
MOV R6, # 100
Loops: MOV R7, # 100
DJNZ R7, $
DJNZ R6, Loops
RET
ENDPlease help me.
Aku menulis di bawah ini kode sederhana di asm.Tetapi tidak berhasil.
Jadi aku telah menggunakan simulasi Keil compiler.Itu bekerja.
Tapi itu tidak bekerja pada perangkat keras.Aku diatur baundrate ke 9600, kristal untuk 11.0592MHz.Mengapa hal ini tidak bekerja?
ORG 00h
START:
; Aktifkan port transmisi.
; MOV SP, # 050H
MOV SCON, # 050H; Mode 1, 8-bit UART, memungkinkan penerima
MOV TMOD, # 020H; Timer 1, mode 2, 8-bit reload
MOV TH1, # 0FdH; Reload nilai 9.700 baud
SETB TR1; Buat timer
SETB TI; Hapus buffer
SETB EA; Aktifkan interupsi
MOV P2, # 0FFH
MOV A, P2
CLR C
SUBB A, # 0FFH
JZ HERE
MOV P2, A
CLR TI
MOV SBUF, A
JNB TI, $
HERE: CLR TI
MOV SBUF, # 054H
JNB TI, $
CLR TI
MOV SBUF, # 075H
JNB TI, $
CLR TI
MOV SBUF, # 06DH
JNB TI, $
CLR TI
MOV SBUF, # 065H
JNB TI, $
CLR TI
MOV SBUF, # 065H
JNB TI, $
CLR TI
MOV SBUF, # 021H
JNB TI, $
CALL DELAY
LJMP START
DELAY:
MOV R6, # 100
Loops: MOV R7, # 100
DJNZ R7, $
DJNZ R6, Loops
RET
ENDPlease help me.