??? 09/21/06 06:02 Read: times Msg Score: +1 +1 Good Answer/Helpful |
#124747 - A routine I used Responding to: ???'s previous message |
Hi Sanjib,
This is a routine I used for a Serial LCD Module at 19k2 and it works fine. For 9600 you must adjust the delay routine. Try: SBDELAY: MOV R3,#45 ; Wacht bit tijd SBT10: DJNZ R3,SBT10 ; 45 RET Have a nice day Robert ; Soft UART op 19k2 PUTSCHAR: PUSH IE CLR IE.7 ; Interrupts uit PUSH B MOV B,R3 PUSH B ; Push R3 MOV B,R2 ; Save R2 in B CLR STXD ; Start bit laag CALL SBDELAY ; Wacht Start bit MOV R2,#8 ; Stuur 8 bits PC10: RRC A ; Bit naar carry MOV STXD,C ; Write bit CALL SBDELAY ; Wacht Data bit DJNZ R2,PC10 ; Volgend bit SETB STXD ; stop bit RRC A ; A op orginele waarde CALL SBDELAY ; Wacht Stop bit MOV R2,B ; Restore R2 POP B MOV R3,B ; Restore R3 POP B POP IE RET SBDELAY: MOV R3,#22 ; Wacht bit tijd SBT10: DJNZ R3,SBT10 ; 22.5 NOP ; en de halve RET |