I'm on it....
See you tomorrow.
Dave
I had a go at loading a couple of custom characters with no success, so I thought I'd make my name move across the screen. Here's a part of the program.
The trouble is, on the third line down of the LCD (first square) my name also appears there. Could I when trying to load a custom character have inadvertently done something to the CGRAM setting? I then thought maybe it's the cursor so I turned that off with no joy, name moves across the screen still and also 1'st square third line.
Nice work on the website by the way.Code:MAIN: pause 1000 LCDOUT $FE,$0C 'Cursor off PAUSE 50 LCDOUT $FE,1," *" pause 500 LCDOUT $FE,1," *D" pause 500 LCDOUT $FE,1," *DA" PAUSE 500 LCDOUT $FE,1," *DAV" PAUSE 500 LCDOUT $FE,1," *DAVE"
Dave
Part of the problem might be the 21 spaces on a 20 character screen??
Post you custom character code and we will see whats up.
Dave
Always wear safety glasses while programming.
Hi mackrackit,
Oh dear, I can't even count up to 20 now
I've been working on my HEX today, maybe that explains it
Working a treat now thanks, 'again'.
It's not mine it's Darrel Taylor's, from that link you posted. It's the battery symbol.Post you custom character code and we will see whats up.
DaveCode:MAIN: PAUSE 500 LCDOUT $FE,$78,$06,$0f,$0f,$0f,$0f,$0f,$0f,$00 GOTO MAIN
Last edited by LEDave; - 23rd April 2010 at 22:37.
The LCDOUT character stuff place at the beginning of your code, in the variable area.
Then in your loopCode:LCDOUT $FE,$40,$06,$0f,$0f,$0f,$0f,$0f,$0f,$00 'This is the first character #0 'The first place in the RAM is $40 'The next character would start with $48 VARS DEFINES ...
Code:MAIN: PAUSE 500 LCDOUT $FE,1,0 'First character LCDOUT $FE,1,1 'Second character if you have one GOTO MAIN
Dave
Always wear safety glasses while programming.
Cheers mackrackit,
Things slowly starting to filter through. I'll have a look tomorrow.
I love the old LCD though, cracking.
Dvae
Hi mackrackit,
Well I managed to get the program to do what I wanted it to do, namely run through four custom characters then place the four custom characters one in each corner of the display ( program code below).
All the info to do this was found within the LCD link you postedHowever, I can't really see how the CONSTANT:
works, what does the 128 part of it mean? I guess it must relate to LCD position HEX 0000 DDRAM Address for a 4 Line LCD but can't relate that to a CGRAM character position.Code:Row1 CON 128
Dave (lovin his LCD).Code:ANSEL = %00000000 'Disable analog select so ports work as digital i/o. CMCON0 = %00000111 'Disable analog comparators. TRISA = %00000000 'Set PORTA as OUTPUT. PORTA = %00000000 'Set PORTA pins all low. TRISC = %00000000 'Set PORTC as OUTPUT. PORTC = %00000000 'Set PORTC pins all low. DEFINE LCD_DREG PORTC 'PORTC.0 WILL CONNECT TO DB4, PORTC3 TO DB7 DEFINE LCD_DBIT 0 DEFINE LCD_RSREG PORTC DEFINE LCD_RSBIT 4 'PORTC.4 CONNECT TO LCD PIN4 DEFINE LCD_EREG PORTC DEFINE LCD_EBIT 5 'PORTC.5 CONNECT TO LCD PIN6 DEFINE LCD_BITS 4 DEFINE LCD_LINES 4 DEFINE LCD_COMMANDUS 2000 DEFINE LCD_DATAUS 150 Row1 CON 128 Row2 CON 192 Row3 CON 148 Row4 CON 212 DEFINE OSC 4 LCDOUT $FE,$40,$02,$06,$1a,$1a,$1a,$06,$02,$00 'FIRST CHAR 0 (Battery) LCDOUT $FE,$48,$06,$0f,$0f,$0f,$0f,$0f,$0f,$00 'Second CHAR 1 (Speaker) lcdout $FE,$50,$1F,$11,$15,$17,$17,$15,$11,$1F 'Third CHAR 2 (Copywrite) lcdout $FE,$58,$00,$0a,$0a,$00,$00,$11,$0e,$00 'Fourth CHAR 3 (Smiley) MAIN: PAUSE 500 LCDOUT $FE,1,0 'First character pause 1000 LCDOUT $FE,1,1 'Second character pause 1000 lcdout $FE,1,2 'Third character PAUSE 1000 lcdout $fe,1,3 'Fourth Character pause 1000 LCDOUT $FE,Row1+0,0 'Places CHAR 0 Top LHS of display. PAUSE 250 lcdout $FE,ROW1+19,1 'Places CHAR 1 Top RHS of display. PAUSE 250 LCDOUT $FE,Row4+0,2 'Places CHAR 2 Bottom LHS of display. PAUSE 250 LCDOUT $FE,Row4+19,3 'Places CHAR 3 Bottom RHS of display. PAUSE 4000 GOTO MAIN
Last edited by LEDave; - 25th April 2010 at 20:06.
Bookmarks