Using Nokia LCD


Closed Thread
Results 1 to 40 of 301

Thread: Using Nokia LCD

Hybrid View

  1. #1
    Join Date
    Feb 2006
    Location
    Gilroy, CA
    Posts
    1,530


    Did you find this post helpful? Yes | No

    Default

    You might try something like this. The characters you show as an example could be simplified to fit into half the space, but this allows you to smooth the characters if you like. I did not smooth them, just kept to your example font, so hopefully you can see what I am trying to do. Each hex data point of the character is basically a binary image of the column. It starts at the base of the character, but since our character is going to take 4 character positions, our zero starts at half of the 16 pixels high. So the left column of the top of the zero is 11111100 (or $FC) all the 1's are black. As you can see, it takes a long time to make the characters. There may be a tool out there somewhere to make this easier for you. Hopefully you just need numbers!

    The building of the characters are shown on the data sheet for the display on pages 8-9, and 22-23.
    Code:
    FA VAR BYTE[5] 'upper left of character
    FB VAR BYTE[5] 'upper right of character
    FC VAR BYTE[5] 'lower left of character
    FD VAR BYTE[5] 'lower right of character
    
    '-------------------------------------------------------------------------------    
    ' This part demonstrates how to write to LCD
    Lcd_SendChar:
        lookdown Lcd_data,[" !\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"],CharNum
        Lcd_data = CharNum +32
        
        SELECT CASE lcd_data
    
        Case 48 ' a zero                   
        	FA(0)=$FC:FA(1)=$FC:FA(2)=$3:FA(3)=$3:FA(4)=$C3 ' // 0
        	FB(0)=$C3:FB(1)=$33:FB(2)=$33:FB(3)=$FC:FB(4)=$FC ' // 0  
        	FC(0)=$0F:FC(1)=$0F:FC(2)=$33:FC(3)=$33:FC(4)=$30 ' // 0
        	FD(0)=$30:FD(1)=$30:FD(2)=$30:FD(3)=$0F:FD(4)=$0F ' // 0  
        Case 49 ' a one                  
    
        
        end SELECT
    Write_LCD:
        High Lcd_DC
        SHiftOUT Lcd_SDO , Lcd_CLK , MSBFIRST, [ FA(0),FA(1),FA(2),FA(3),FA(4)] 'upper left
    'need to point to next position here
        SHiftOUT Lcd_SDO , Lcd_CLK , MSBFIRST, [ FB(0),FB(1),FB(2),FB(3),FB(4),$00,$00] 'upper right
    'need to add code to change location to lower left position for bottom of character here!
        SHiftOUT Lcd_SDO , Lcd_CLK , MSBFIRST, [ FC(0),FC(1),FC(2),FC(3),FC(4)] 'lower left
    'need to add code to change to next position
        SHiftOUT Lcd_SDO , Lcd_CLK , MSBFIRST, [ FD(0),FD(1),FD(2),FD(3),FD(4),$00,$00] 'lower right
    'need to add code to move back to upper level (and shift right) for beginning of next character
        Low Lcd_DC
        Return
    Attached Images Attached Images  
    Last edited by ScaleRobotics; - 7th April 2010 at 03:05.

  2. #2
    Join Date
    Feb 2006
    Location
    Gilroy, CA
    Posts
    1,530


    Did you find this post helpful? Yes | No

    Default font and bitmap tool

    The attached program fastLCD.zip will help you with text, as well as graphics. It will let you create characters, and it will create hex for them.

    Attached Images Attached Images  
    Attached Files Attached Files

  3. #3
    Join Date
    Dec 2008
    Location
    Ploiesti, ROMANIA
    Posts
    582


    Did you find this post helpful? Yes | No

    Default Thank You !

    Nice program, but I use already Excel (bin2hex) for those big characters...Unfortunately, I need to understand the codes You and HJota propose and modify all my code; the procedures for define and display the characters are different...Per aspera ad astra ...

  4. #4
    Join Date
    Dec 2008
    Location
    Ploiesti, ROMANIA
    Posts
    582


    Did you find this post helpful? Yes | No

    Default First step !

    I succeded to display "23.56" ! it's a step, don't ?!
    Now, assuming that I succed to write the code for reading DS18B20, how display temperature instead "23.56" ?
    It's correct so : " lookup i, [temperature DIG 3, temperature DIG 2, temperature DIG 1], j" or how ? Thanks !
    Attached Images Attached Images  
    Attached Files Attached Files

  5. #5
    Join Date
    Feb 2006
    Location
    Gilroy, CA
    Posts
    1,530


    Did you find this post helpful? Yes | No

    Default

    How about changing from this:
    Code:
    for i=0 to 4
    lookup i,["23.56"],j
    lcdstr(i)=j
    next i
    to something like this:
    Code:
    lcdstr(4) = 48 + temperature dig 3
    lcdstr(3) = 48 + temperature dig 2
    lcdstr(2) = "."
    lcdstr(1) = 48 + temperature dig 1
    lcdstr(0) = 48 + temperature dig 0
    You would have to do something when your temperature goes to single digits though.

  6. #6
    Join Date
    Dec 2008
    Location
    Ploiesti, ROMANIA
    Posts
    582


    Did you find this post helpful? Yes | No

    Default

    What I put here ?
    Code:
    lcdstr(4) = 48 + temperature dig 3
    lcdstr(3) = 48 + temperature dig 2
    lcdstr(2) = "."
    lcdstr(1) = 48 + temperature dig 1
    lcdstr(0) = 48 + temperature dig 0
    
    Tc=2
    for i=0 to 4
    lookup i,["??????"],j
    lcdstr(i)=j
    next i
    nC=5

  7. #7
    Join Date
    Feb 2006
    Location
    Gilroy, CA
    Posts
    1,530


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by fratello View Post
    What I put here ?
    Code:
    lcdstr(4) = 48 + temperature dig 3
    lcdstr(3) = 48 + temperature dig 2
    lcdstr(2) = "."
    lcdstr(1) = 48 + temperature dig 1
    lcdstr(0) = 48 + temperature dig 0
    
    Tc=2
    for i=0 to 4
    lookup i,["??????"],j
    lcdstr(i)=j
    next i
    nC=5
    remove the for i = loop. The code above will load the values in the lcdstr string.

Similar Threads

  1. Nokia COLOR LCD PicBasicPro 2.50a example code
    By skimask in forum Code Examples
    Replies: 49
    Last Post: - 28th September 2011, 01:43
  2. 16f688 LCD what have I done wrong
    By spitfiredriver in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 8th August 2009, 19:54
  3. Play with LCD on PICDEM
    By The IceMan in forum mel PIC BASIC
    Replies: 5
    Last Post: - 22nd August 2008, 16:56
  4. Need help with LCD number display.
    By Steve Matson in forum mel PIC BASIC
    Replies: 8
    Last Post: - 26th June 2007, 23:07
  5. LCD will not start
    By btaylor in forum mel PIC BASIC Pro
    Replies: 49
    Last Post: - 24th May 2007, 02:30

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts