C
CMOS
Guest
Hoi,
Ik gebruik voor mijn AT89S8252 project dat gebruik maakt van seriële port@19.2kbps.Het probleem ben ik geconfronteerd met dit uC is dat elk teken ik uit uC op de seriële poort wordt gestuurd tweemaal.Ongeacht wat baudrate of configuratie ik.Bijvoorbeeld als ik 'x' stuurt 'xx' om pc.
Maar als ik dezelfde code op AT89S52, het werkt prima zonder problemen.Kan iemand me helpen alstublieft?
Hier is mijn code.Code:KNO-PCON, # 0x80; SET DOUBLE BAUD RATE
ANL TMOD, # 0x0F; CLEAR ALL TIMER1 bits in TMOD
KNO-TMOD, # 0x20; TIMER1 = 8 BIT AUTO RELOAD
CLR TR1; MAKE SURE TIMER1 is niet actief
CLR TF1
MOV A, # 253
MOV Th1, A; SET TIMER1 RATE
MOV TL1, A
MOV SCON, # 0x50; CONFIG Serial Port
SETB TR1; START TIMER1MOV A, # 'x'
LCALL HOF
SJMP *;************************************************* *************
; PRINTS AARD IN ACC op de seriële poort
;************************************************* *************
HOF: MOV SBUF, A
JNB TI, *
CLR TI; CLR TI NA VERZENDENDE
RET
Ik gebruik voor mijn AT89S8252 project dat gebruik maakt van seriële port@19.2kbps.Het probleem ben ik geconfronteerd met dit uC is dat elk teken ik uit uC op de seriële poort wordt gestuurd tweemaal.Ongeacht wat baudrate of configuratie ik.Bijvoorbeeld als ik 'x' stuurt 'xx' om pc.
Maar als ik dezelfde code op AT89S52, het werkt prima zonder problemen.Kan iemand me helpen alstublieft?
Hier is mijn code.Code:KNO-PCON, # 0x80; SET DOUBLE BAUD RATE
ANL TMOD, # 0x0F; CLEAR ALL TIMER1 bits in TMOD
KNO-TMOD, # 0x20; TIMER1 = 8 BIT AUTO RELOAD
CLR TR1; MAKE SURE TIMER1 is niet actief
CLR TF1
MOV A, # 253
MOV Th1, A; SET TIMER1 RATE
MOV TL1, A
MOV SCON, # 0x50; CONFIG Serial Port
SETB TR1; START TIMER1MOV A, # 'x'
LCALL HOF
SJMP *;************************************************* *************
; PRINTS AARD IN ACC op de seriële poort
;************************************************* *************
HOF: MOV SBUF, A
JNB TI, *
CLR TI; CLR TI NA VERZENDENDE
RET