| ??? 02/12/01 09:22 Read: times |
#9230 - My codings |
Tansmission Part
PCON EQU 87H ; ORG 00H AJMP MAIN MAIN: MOV SCON,#01000000B MOV TMOD,#00100000B MOV TH1,#244 ANL PCON,#01111111B SETB TR1 START TIMER 1 CLR TI LOOP: MOV A,#41H MOV SBUF,A JNB TI,$ CLR TI MOV A,#42H MOV SBUF,A JNB TI,$ CLR TI MOV A,#43H MOV SBUF,A JNB TI,$ CLR TI JMP LOOP END ----------------------------- Receiption Part PCON EQU 87H RS REG P2.0 RW REG P2.1 EN REG P2.2 ; ORG 00H AJMP MAIN ORG 023H JMP SERIAL_INT MAIN: ACALL INIT MOV 20H,#0 MOV SCON,#01010000B MOV TMOD,#00100000B MOV TH1,#244 ;LOAD ANL PCON,#01111111B SETB TR1 MOV IE,#90H CLR RI ;ENSURE THAT THE RECEIVE INTERRUPT FLAG IS CLEAR LOOP: JMP LOOP ;ENDLESS LOOP (UNLESS INTERRUPT OCCURS) LINE1: DB "TESTING",00H ; SERIAL_INT: CLR RI MOV A,SBUF MOV 20H,#0 MOV 20H,A MOV A,#10000000B ;set the address ACALL W_INS MOV DPTR,#LINE1 ACALL W_STR ACALL DELAY2 ACALL DELAY2 ACALL DISPLAY RETI ; DISPLAY: MOV A,#11000000B ;set the address ACALL W_INS MOV A,20H ACALL W_DATA ACALL DELAY2 ACALL DELAY2 RET ;------------------------------- W_STR: PUSH A NEXT: CLR A MOVC A,@A+DPTR JZ END_STR ACALL W_DATA INC DPTR JMP NEXT END_STR: POP A RET ;------------------------------- CHECK: PUSH A ; check busy flag, if BF=1, then back to loop BUSY: CLR RS SETB RW SETB EN MOV A,P1 CLR EN JB ACC.7,BUSY ACALL DELAY POP A RET ;------------------------------- DELAY: MOV R6,#5 ; delay for 2498us D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET ;------------------------------- DELAY2: MOV R6,#250 ; delay for 5s D2: MOV R7,#200 DJNZ R7,$ DJNZ R6,D1 RET ;------------------------------- W_INS: ACALL CHECK ; write instruction CLR EN CLR RS CLR RW SETB EN MOV P1,A CLR EN RET ;------------------------------- W_DATA: ACALL CHECK ; write data CLR EN SETB RS CLR RW SETB EN MOV P1,A CLR EN RET ;------------------------------- CLRLCD: MOV A,#00000001B ; clear the screen of LCD ACALL W_INS RET ;------------------------------- INIT: MOV A,#00111000B ; 8-bit, 2-lines display, 5*7 font ACALL W_INS MOV A,#00001000B ; turn off display ACALL W_INS MOV A,#00000001B ; clear DD RAM ACALL W_INS MOV A,#00001110B ; turn on display and cursor ACALL W_INS MOV A,#00000110B ; entry mode set ACALL W_INS RET ;------------------------------- END |
| Topic | Author | Date |
| UART transmission error | 01/01/70 00:00 | |
| My codings | 01/01/70 00:00 | |
| My codings | 01/01/70 00:00 | |
| RE: UART transmission error | 01/01/70 00:00 | |
| RE: UART transmission error | 01/01/70 00:00 | |
| RE: UART transmission error | 01/01/70 00:00 | |
| RE: UART transmission error | 01/01/70 00:00 | |
| RE: UART transmission error | 01/01/70 00:00 | |
| RE: UART transmission error | 01/01/70 00:00 | |
RE: UART transmission error | 01/01/70 00:00 |



