Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
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

List of 10 messages in thread
TopicAuthorDate
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      

Back to Subject List