128240A 1/128 duty T6963C lcd still black

Thread Starter

mariammo

Joined Jun 19, 2010
4
please i have 128240A 1/128 duty T6963C based graphic display after setting as following
;graphic home set;graphic area set
;text home set;text area set
;or mode ,internal cg rom mode
;mode set lcd on curser on and blink off
; cursor 1 line ;set cursor pos at 0,0
;address pointer set to text area address 5000h
;write 21h "A charecter" at all area
it is still black
not display any thing
what is the problem
;========================================================== call read_status
MOV PA_BUFFER,#90h ; lcd off curser off
call CNTRL_WRITE
;==========================================================
lcd contrast is ok it is changing from min to max by pot
the last code i believe it will change lcd from black to white but it is not . why?
please send to me as soon as you can
thanks for your responce
 

R!f@@

Joined Apr 2, 2009
10,014
If you are asking for help, here are few things to keep in mind.

State very clearly what ur project is.
attach schematics if any.
Explain what ur goal is and what you have done so far.
Inform us on your basic skill levels, what u are familiar with and not.
Post the code if any.
All and every bit of detail will be needed if you want any one of us to respond quickly.
 

Thread Starter

mariammo

Joined Jun 19, 2010
4
i need to write arabic messages
i use keil asm.
i tried this code but it is still black
please help me

Rich (BB code):
 lcdcd bit p2.5; 
 lcdrd bit p2.6; 
 lcdwr bit p2.7; 
 lcdreset bit p2.0;
 lcdce bit p2.1; 
 lcdfs bit p2.2  ; 1= 6x8 ,0=8x8
 LCD_PORT data 080H ;p0
 ORG   0000H
 JMP   RESET
 RESET: 
 CPL WD_RESET
 setb lcdcd  ; 
 setb lcdrd  ; 
 setb lcdwr  ; 
 setb lcdreset ;
 setb lcdce ; 
 setb lcdfs ; 
  mov LCD_PORT,#0ffh  ;input
    clr lcdreset     ; reset
 LCALL WRITE_DELAY  ; 20 microsec
    setb lcdreset
 LCALL WRITE_DELAY
 clr lcdfs
 LCALL WRITE_DELAY
// ;==================================================================
 call read_status
  MOV PA_BUFFER,#00h  ; text home set
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#00h ;050h 
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#40h 
 call CNTRL_WRITE
; LCALL WRITE_DELAY

 call read_status
  MOV PA_BUFFER,#1eh  ; text area set 30 charecter for 1 row
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#00h 
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#41h 
 call CNTRL_WRITE
; LCALL WRITE_DELAY
// ;==================================================================
 call read_status
  MOV PA_BUFFER,#080h ;or ,internal cg rom mode 
 call CNTRL_WRITE
; LCALL WRITE_DELAY
 ;==================================================================
 call read_status
  MOV PA_BUFFER,#094h ;mode set text on ,graphic off ,curser off and blink off
 call CNTRL_WRITE
; LCALL WRITE_DELAY
 ;==================================================================
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#0a0h ; cursor 1 line 
 call CNTRL_WRITE
; LCALL WRITE_DELAY
// ;==================================================================
// ;==================================================================
 call read_status
   MOV PA_BUFFER,#00h ;address pointer set to text area address 00
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#00h 
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#24h 
 call CNTRL_WRITE
; LCALL WRITE_DELAY
 ;==================================================================
 ;==================================================================
 call read_status
  MOV PA_BUFFER,#00h    ;set cursor pos at 0,0
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#00h 
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#21h 
 call CNTRL_WRITE
; LCALL WRITE_DELAY
//// ;==================================================================
////// ;==================================================================
 MAIN:

  CPL WD_RESET
    push 00      ;1 screen
 push 01
 mov r1,#04h
  wrire0ag:
 mov r0,#078h
  wrireag:

 call read_status
  MOV PA_BUFFER,#021h  ;write 21h A charecter
 call DATA_WRITE
; LCALL WRITE_DELAY
 call read_status
  MOV PA_BUFFER,#0c0h 
 call CNTRL_WRITE
; LCALL WRITE_DELAY
    djnz r0,wrireag
 djnz r1,wrire0ag
 pop 01
 pop 00
 main1:
   CPL WD_RESET
 jmp main1

 ;==================================================================

 ;==================================================================
 CNTRL_WRITE:
 setb LCDce
 setb  LCDcd
 setb lcdrd
 setb LCDwr
 MOV  LCD_PORT,PA_BUFFER
 nop
 clr  LCDce
 clr  LCDwr
 LCALL WRITE_DELAY
 setb LCDwr
 setb LCDce
 RET
 
 ;==================================================================
 DATA_WRITE:
 setb LCDce
 setb  LCDcd
 setb lcdrd
 setb LCDwr
 MOV  LCD_PORT,PA_BUFFER
 nop
 clr  LCDcd
 clr  LCDce
 clr  LCDwr
 LCALL WRITE_DELAY
 setb LCDwr
 setb LCDce
 setb lcdcd
 RET
 ;==================================================================
 DATA_read:
 clr LCDcd
 NOP
 setb LCDwr
 nop
 clr lcdrd
 nop
 clr LCDce
 NOP
 NOP
 NOP
 MOV  LCD_PORT,PA_BUFFER
 nop
 nop
 setb LCDce
 LCALL WRITE_DELAY
 RET
 ;==================================================================
 read_status:
 push acc
 mov  LCD_PORT,#0ffh  ; input
 setb LCDce
 setb  LCDcd
 setb lcdrd
 setb LCDwr
 nop
  redstag:
        clr LCDce 
 clr lcdrd
 LCALL WRITE_DELAY
 MOV  a,LCD_PORT
 ;LCALL WRITE_DELAY
 setb lcdrd
 setb LCDce
 anl a,#03h
 cjne a,#03h,redstag
 pop acc
 RET
 ;==================================================================
 error_status:
 push acc
 mov  LCD_PORT,#0ffh  ; input
 setb LCDce
 setb  LCDcd
 setb lcdrd
 setb LCDwr
 nop
  rederstag:
        clr LCDce 
 clr lcdrd
 LCALL WRITE_DELAY
 MOV  a,LCD_PORT
 ;LCALL WRITE_DELAY
 setb lcdrd
 setb LCDce
 anl a,#040h
 cjne a,#00h,rederstag
 pop acc
 RET
 ;==================================================================
 lcd_chick:
 push acc
 anl  LCD_PORT,#0ffh  ; input
 setb  LCDcd
 setb LCDwr
 clr lcdrd
  lcdstag: 
 LCALL WRITE_DELAY
 MOV  a,LCD_PORT
 jnb acc.7,lcdstag
 setb lcdrd
 pop acc
 RET

   ;==================================================================
 WRITE_DELAY: PUSH 02
 MOV R2,#28H ;28H=40 MICROSEC,46H=70
 DJNZ R2,$
 POP 02
 CPL WD_RESET
 RET
 ;==================================================================
 end
 
Last edited by a moderator:

Thread Starter

mariammo

Joined Jun 19, 2010
4
lcdcd bit p2.5;
lcdrd bit p2.6;
lcdwr bit p2.7;
lcdreset bit p2.0;
lcdce bit p2.1;
lcdfs bit p2.2 ; 1= 6x8 ,0=8x8
LCD_PORT data 080H ;p0
all outputs are pulled up
inputs and outputs used before in many systems
and i used it with powertip 2x20 character display it was work
vout(-15v) output lcd socket pin 20 is connected to vo lcd socket pin 4 by pot 10k
 

retched

Joined Dec 5, 2009
5,207
Is it all black? If so, the negative voltage may be too high. That negative voltage is used to make more contrast, if you remove it, you should still have your characters.

Have you tried a simple 'hello, world" with it?

I would grab a simple basic compiler with LCD functions, that will allow you to send characters to the LCD with a 'printLED "Hello",2' type statement.

That will help to determine if it is your code, your wiring, or maybe you have a faulty LCD display.
 

Thread Starter

mariammo

Joined Jun 19, 2010
4
thanks for answer
the negative voltage come from built in generator into lcd socket pin 20 and i adjust it by pot 10k but same result all black
 

arry

Joined Apr 2, 2010
26
When you send a message to the Lcd try adjusting the pot from 0 to its maximum value. Sometimes the voltage level for visible contrast is very sensitive.

You could try programs like lcdstudio or LcdInfo to see if your Lcd is not broken.
 
Top