??? 06/21/10 12:51 Read: times |
#176801 - please help Responding to: ???'s previous message |
i tried this code
but it is not work 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 i tried this code but it is not work |
Topic | Author | Date |
128240A 1/128 duty - graphic still dark | 01/01/70 00:00 | |
contrast? | 01/01/70 00:00 | |
lcd black | 01/01/70 00:00 | |
please help me | 01/01/70 00:00 | |
please help | 01/01/70 00:00 | |
why nobody answer | 01/01/70 00:00 | |
Please provide the missing info![]() | 01/01/70 00:00 |