This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

HELP ON TRANSMITTING STRING

flag bit 00H

ORG 0000H
JMP CONFIG
ORG 23H

ORG 0100H
HEAD EQU 300H ;-> Starting address of the messages
ORG 0100H

;-------------------------------------
;--------------LCD SETUP--------------
;-------------------------------------
CONFIG: NOP
NOP
NOP
MOV OSCXCN,#0E7H ;> SETTING FOR EXTERNAL OSCILLATOR CONTROL
NOP
NOP
NOP
NOP
ORL OSCXCN,#00H ;-> POLL FOR XTLVLD '0' TO '1' TO SWITCH TO EXTERNAL OSCILLATOR
NOP
NOP
MOV OSCICN,#08H ;-> INTERNAL OSCILLATOR OFF
NOP
NOP

MOV PRT0CF,#03H ;-> PORT 0 CONFIG -
MOV P0MODE,#0FFH ;-> PORT 0 MODE REGISTER - DIGITAL INPUT IS ENABLE
MOV PRT0MX,#01H ;-> PORT 0 MUX CONFIG REGISTER - UART I/O ENABLE FOR TX & RX
MOV P0,#0FCH ;-> PORT 0 REGISTER -

MOV PRT1CF,#0FFH ;-> PORT 1 CONFIG - OUTPUT MODE SET AS PUSH-PULL
MOV P1MODE,#0FFH ;-> PORT 1 MODE REGISTER - DIGITAL INPUT IS ENABLE
MOV P1,#0FFH

MOV PRT2CF,#0E0H ;-> PORT 2 CONFIG - OUTPUT MODE SET AS PUSH-PULL
MOV P2MODE,#0E0H ;-> PORT 2 MODE REGISTER - DIGITAL INPUT IS ENABLE
MOV P2,#1FH

MOV WDTCN,#0DEH
MOV WDTCN,#0ADH

CLR P2.5 ;Send command
CLR P2.6 ;Write command
MOV A,#38H ;??? font
LCALL STROBE
MOV A,#0CH ;Cursor off
LCALL STROBE
MOV A,#06H ;Display pattern
LCALL STROBE
MOV A,#01H ;Clear display
LCALL STROBE
MOV A,#02H ;Return home
LCALL STROBE
SETB P2.5 ;RS send data
MOV DPTR,#HEAD
ACALL MESS

;-------------------------------------
;--------Serial Communication---------
;-------------------------------------
MOV PCON,#80H ;DOUBLE THE BAUD RATE BY SETTING SMOD TO 1
MOV TMOD,#20H ;Set Timer 1 to 8 bits auto-reload timer
MOV SCON,#70H ;Serial Port Control Register 8-bit UART
MOV TH1,#0FDH ;9600bps * (SMOD+1) = 19200bps
SETB TR1 ;Start the timer 1
;----------------------------------------
;-----------------MAIN PROGRAM-----------
;----------------------------------------

;MAIN: MOV DPTR,#HEAD
;ACALL MESS

;----------------------------------------
;------------TRANSMITTING STRING---------
;----------------------------------------

Mess: ;PUSH ACC
MOV R0,#0 ;R0 is character pointer (string
MSS: MOV A,R0 ; length is to 256 bytes).
MOVC A,@A+DPTR ;Get byte to send.
CJNE A,#0DH,TX ;End of string is indicated by a 0DH.
;POP ACC


CHECK: JNB TI,CHECK
CLR TI
CALL DELAY


TX: MOV SBUF,A ;Send a character.
INC R0 ;Next character.
SJMP MSS
JMP CHECK
;CALL DELAY
;WAIT: JNB TI,WAIT
;CLR TI
;INC DPTR

;-------------------------------------
;-----------Phrase Storage------------
;-------------------------------------

ORG 300H
DB 'HOW ARE YOU',0DH

;-------------------------------------
;----------DISPLAY IN LCD-------------
;-------------------------------------
LCD: CLR A
MOVC A,@A+DPTR
CJNE A,#0DH,LOOP
RET

LOOP: LCALL STROBE
INC DPTR
LJMP LCD

STROBE: SETB P2.7 ;Set E to high
MOV P1,A ;Send to port 1
LCALL DELAY
CLR P2.7
RET
;-------------------------------------
;-----------Standard DELAY------------
;-------------------------------------
DELAY: MOV R6,#10H
AA: MOV R7,#0EFH
BB: DJNZ R7,BB
DJNZ R6,AA
RET

END
i tried to transmit the string and show it on the LCD at the same time but i don receive the same string on the LCD
( PC1604A-L 16x4 P-TEC ). IS the error in this program??

Parents Reply Children
No data