??? 01/04/06 23:27 Read: times |
#106530 - more than a couple of comments... Responding to: ???'s previous message |
Dear Jon,
You will certainly hate me but... I first wanted to comment on it line by line and also on the text, just it turned out to be really too much... To ease it a little bit, let me say that the formatting is really now very nice. I throw in the following (leaving the commenting to the reader): CR EQU 13 LF EQU 10 RX_TAIL EQU 08H RX_HEAD EQU 09H TX_TAIL EQU 0AH TX_HEAD EQU 0BH RX_BUFF EQU 0CH RX_BUFF_END EQU 13H TX_BUFF EQU RX_BUFF_END+1 ;14H TX_BUFF_END EQU 1FH NEEDTI BIT 01H ;20H.1 SP_INIT EQU 30H ORG 0 LJMP MAIN ORG 23H LJMP SER_ISR ORG 40H MAIN: MOV SP,#SP_INIT SER_INIT: MOV SCON,#01010000B ;8N1 MOV TMOD,#00100001B MOV TH1,#-3 ;9600Bd @ XTAL=11.0592MHz SETB TR1 ; MOV RX_TAIL,#RX_BUFF MOV RX_HEAD,#RX_BUFF MOV TX_TAIL,#TX_BUFF MOV TX_HEAD,#TX_BUFF SETB NEEDTI ; SETB ES SETB EA ; MOV DPTR,#SINIT LCALL TEXT_OUT ; LOOP: LCALL GET_RX_NR CJNE A,#4,MAIN_X2 MAIN_X2: JC LOOP MOV R2,A MAIN_X3: LCALL GET_CHAR LCALL PUT_CHAR_WAIT DJNZ R2,MAIN_X3 SJMP LOOP ; ; SINIT: DB CR,LF DB 'SERIAL PORT INITIALISED!' DB CR,LF,0 ;*************************** GET_RX_NR: CLR C MOV A,RX_HEAD SUBB A,RX_TAIL JNC GET_RX_NR_X1 CPL A INC A GET_RX_NR_X1: RET ;*************************** GET_CHAR_WAIT: ; LCALL GET_CHAR ; JC GET_CHAR_WAIT ; RET MOV A,RX_TAIL CJNE A,RX_HEAD,GET_CHAR_X1 SJMP GET_CHAR_WAIT GET_CHAR: MOV A,RX_TAIL CJNE A,RX_HEAD,GET_CHAR_X1 SETB C RET GET_CHAR_X1: INC A CJNE A,#RX_BUFF_END+1,GET_CHAR_X2 MOV A,#RX_BUFF GET_CHAR_X2: XCH A,RX_TAIL MOV R0,A MOV A,@R0 CLR C RET ;*************************** PUT_CHAR_WAIT: ; LCALL PUT_CHAR ; JC PUT_CHAR_WAIT ; RET MOV R0,A MOV A,TX_HEAD INC A CJNE A,#TX_BUFF_END+1,PUT_CHAR_WAIT_X1 MOV A,#TX_BUFF PUT_CHAR_WAIT_X1: CJNE A,TX_TAIL,PUT_CHAR_X2 SJMP PUT_CHAR_WAIT_X1 PUT_CHAR: MOV R0,A MOV A,TX_HEAD INC A CJNE A,#TX_BUFF_END+1,PUT_CHAR_X1 MOV A,#TX_BUFF PUT_CHAR_X1: CJNE A,TX_TAIL,PUT_CHAR_X2 MOV A,R0 SETB C RET PUT_CHAR_X2: XCH A,TX_HEAD XCH A,R0 MOV @R0,A JNB NEEDTI,PUT_CHAR_X3 CLR NEEDTI SETB TI PUT_CHAR_X3: CLR C RET ;*************************** TEXT_OUT: CLR A MOVC A,@A+DPTR INC DPTR JZ TEXT_OUT_X1 LCALL PUT_CHAR_WAIT SJMP TEXT_OUT TEXT_OUT_X1: RET ;*************************** SER_ISR: PUSH PSW PUSH ACC MOV A,R0 PUSH ACC JNB RI,SER_ISR_TX SER_ISR_RX: CLR RI MOV A,RX_HEAD INC A CJNE A,#RX_BUFF_END+1,SER_ISR_RX1 MOV A,#RX_BUFF SER_ISR_RX1: CJNE A,RX_TAIL,SER_ISR_RX2 ;in PC, a beep comes here... SJMP SER_ISR_TX SER_ISR_RX2: XCH A,RX_HEAD MOV R0,A MOV @R0,SBUF SER_ISR_TX: JNB TI,SER_ISR_END CLR TI MOV A,TX_TAIL CJNE A,TX_HEAD,SER_ISR_TX1 SETB NEEDTI SJMP SER_ISR_END SER_ISR_TX1: INC A CJNE A,#TX_BUFF_END+1,SER_ISR_TX2 MOV A,#TX_BUFF SER_ISR_TX2: XCH A,TX_TAIL MOV R0,A MOV SBUF,@R0 SER_ISR_END: POP ACC MOV R0,A POP ACC POP PSW RETI END Just one more remark for the hardware part, you mentioned you will replace the DTE/DCE by PC/modem... And I would spare down the 25-pin DSUB description, I think it is really rarely used today. Jan Waclawek |
Topic | Author | Date |
Feedback needed | 01/01/70 00:00 | |
Couple of ideas | 01/01/70 00:00 | |
Missing | 01/01/70 00:00 | |
the source... | 01/01/70 00:00 | |
Stupid EIA | 01/01/70 00:00 | |
Maybe a Name change? | 01/01/70 00:00 | |
minor but annoying ... | 01/01/70 00:00 | |
USB | 01/01/70 00:00 | |
Limited Experience | 01/01/70 00:00 | |
known bad USB/serial | 01/01/70 00:00 | |
FYI - Targus PA088 | 01/01/70 00:00 | |
thoughts | 01/01/70 00:00 | |
I am so stupid | 01/01/70 00:00 | |
Kickstart | 01/01/70 00:00 | |
attribution | 01/01/70 00:00 | |
The ONE thing I always have to look up a | 01/01/70 00:00 | |
Ok - Second revision, but still working, | 01/01/70 00:00 | |
Nice | 01/01/70 00:00 | |
OK | 01/01/70 00:00 | |
MAX202 vs. MAX232A | 01/01/70 00:00 | |
or the 232A | 01/01/70 00:00 | |
Polled; Interrupt | 01/01/70 00:00 | |
polled tx | 01/01/70 00:00 | |
Assorted small ideas | 01/01/70 00:00 | |
Not a good idea | 01/01/70 00:00 | |
Serial speeds? | 01/01/70 00:00 | |
Enhanced specifications | 01/01/70 00:00 | |
That's a strange spec | 01/01/70 00:00 | |
formal stuff | 01/01/70 00:00 | |
formal | 01/01/70 00:00 | |
who's the intended audience | 01/01/70 00:00 | |
3rd Revision | 01/01/70 00:00 | |
Busy? | 01/01/70 00:00 | |
more than a couple of comments... | 01/01/70 00:00 | |
So..... | 01/01/70 00:00 | |
what I like or not... | 01/01/70 00:00 | |
comments | 01/01/70 00:00 | |
Comments on Comments | 01/01/70 00:00 | |
bah... | 01/01/70 00:00 | |
more problems | 01/01/70 00:00 | |
RE: Problems | 01/01/70 00:00 | |
Something Strange | 01/01/70 00:00 | |
Nope.... | 01/01/70 00:00 | |
interrupt | 01/01/70 00:00 | |
All members will enjoy | 01/01/70 00:00 | |
Intel serial intro app note | 01/01/70 00:00 |