Forum - MCS Electronics

 

FAQFAQ SearchSearch RegisterRegister Log inLog in

new type of nokia 5510 lcd 128x64

 
Post new topic   Reply to topic    www.mcselec.com Forum Index -> BASCOM-AVR
View previous topic :: View next topic  
Author Message
hamedhamedi

Bascom Member



Joined: 12 Feb 2012
Posts: 70

PostPosted: Sat Feb 07, 2015 5:57 pm    Post subject: new type of nokia 5510 lcd 128x64 Reply with quote

Hi

i buy a new type of nokia 5510 lcd,its feature is listed below:


This high quality graphic LCD has the exact same pinout and header footprint as the popular Nokia5110 (PCD8544) but offers much higher build and image quality. The old nokia5110 displays were plagued with problems of its push-on connector failing over time, making the display show a black background.
This new display offers you a high quality drop-in replacement for the Nokia5110 LCD with support of the extensive U8G library.

Features
128x64 pixels
Onboard 5->3.3V level shifter with jumper to select between 3.3V and 5V mode.
UC1701 controller
White LED backlight
Compatible with U8G library and m2tk GUI library
RoHS compliant

Tech. Details
LCD Operating voltage: 3.3V or 5V
Backlight voltage: Min: 2.9V Typ: 3V Max: 3.1V
Backlight current: Min: 24ma Typ: 45ma Max: 60ma
PCB size: 45x45x1.55 mm
LCD size: 43.5x33x3.5 mm
Visible area: 39.8x25.5 mm
Active are: 37.09x23.01 mm

the most important thing about this type of lcd is 128x64 and small size.


i can not drive it.is any code for driving that with bascom?
the controller as mentioned is uc1701.

Regards

(BASCOM-AVR version : 2.0.7.8 )
Back to top
View user's profile
inkni

Bascom Member



Joined: 04 Sep 2013
Posts: 5

south_korea.gif
PostPosted: Sun Feb 08, 2015 3:25 pm    Post subject: UC1701 128x64 GLCD Demo Reply with quote

Hi,

I've tested a "CNK 0.96" 128x64 GLCD" with my own subroutines last year.
It has a UC1701 controller and SPI interface same as 5510 GLCD.

My code's not nice and not convinient, however, works well.
I believe your 5510 GLCD also works well with my codes.

Enjoy quick test.

Regards,

inkni

Code:

'=========================================================================
'CNK12864-13003B 0.96" 128x64 mono GLCD Module Test
'
'                       BY Kim, Inkeun ( HL3LZV ) 2014.05.24.
'=========================================================================
'++ LCD type: FSTN/Positive/Transmissive
'++ Module size(WxHxT):28.5mm x 20mm x 2.9mm
'++ Display view area(WxH): 26.5mm x 14mm
'++ Resolution: 128x64 , View angle:6 O'clock
'++ Driver IC : UC1701
'++ Backlight : 3.1v / White
'-------------------------------------------------------------------------
' Interface => 4 Wire Spi(Sda, Sclk, A0, Cs) + / Rst
'    SDA= PB.0 , SCLK = PB.1 , A0 = PB.2 , RST = PB.3 , CS = PB.4
' VDD => 3.3V
'   Capacidance => C1 ( pin1 <-> Pin6 ) => 0.1uF
'                  C2 ( pin2 <-> Pin3 ) => 1uF
'                  C3 ( pin4 <-> Pin5 ) => 1uF
'-------------------------------------------------------------------------
'   Pin1 = VLCD(C1+), Pin2 = C2+,  Pin3 = C2-, Pin4 = C3-,  Pin5 = C3+
'   Pin6 = VSS(C1-) , Pin7 = VDD,  Pin8 = SDA, Pin9 = SCLK, Pin10= A0
'   Pin11= /RST,      Pin12= /CS , RED = B/L LED A , BLACK= B/L LED K
'=========================================================================
$regfile = "m8def.dat"
$crystal = 8000000
'
Config Pinb.0 = Output                                 'Serial DATA                                   '
Config Pinb.1 = Output                                 'SCLK
Config Pinb.2 = Output                                 'A0 ( Low-> command / High-> Data )
Config Pinb.3 = Output                                 'Reset
Config Pinb.4 = Output                                 'CS ( Active Low )
'
A0 Alias Portb.2                                          'Command or Data
Rs Alias Portb.3                                          'Reset LCD
Cs Alias Portb.4                                          'Chip enable
'
'------------------------------------------------------------------------
Declare Sub Setlcdline(byval Yy As Byte)                    '0 ~ 63
Declare Sub Setlcdpage(byval Page As Byte)               '0 ~ 7
Declare Sub Setlcdcol(byval Xx As Byte )                    '0 ~ 127
Declare Sub Setlcdswreset
Declare Sub Setlcdvolt(byval V5 As Byte )                   'V_LCD Contrast 0~7
Declare Sub Setlcdvolm(byval Vol As Byte )                 'Contrast 0 ~ 63
Declare Sub Setlcdinit                                      'Initializing LCD
Declare Sub Setlcdclear(byval Zz As Byte)          '0~255, 0=> clear, 255=> fill all dots
Declare Sub Lcdouttext                                    'Display TEXT on GLCD
Declare Sub Printfont                                       '8 x 6 Font GLCD Out Sub routine
'-------------------------------
Dim Iii As Byte
Dim Xxx As Byte
Dim Jjj As Byte
Dim Kkk As Byte
Dim Vvv As Byte
Dim Vvv2 As Byte
Dim Lenght As Byte
Dim Loops As Byte
Dim Sign As String * 1
Dim Vvv1 As Byte
Dim Xx1 As Byte
Dim Text As String * 21
'-------------------------------------------------------------------------
Config Spi = Soft , Dout = Pinb.0 , Ss = None , Clock = Pinb.1
Spiinit
'----- LCD Hardware RESET    ---------------------------------------------
Waitms 500                                                  'Wait for voltage circuit stable
Rs = 1 : A0 = 1 : Cs = 1                                    'pull up control pins
Rs = 0 : Waitms 100 : Rs = 1                                'Reset
'
'---- INIT LCD  ----------------------------------------------------------
Call Setlcdinit                                             'initializing GLCD
'
'---- CLEAR LCD ----------------------------------------------------------
Call Setlcdclear(0)
'
Do
'=== Demo 1 => Display Strings  =========================================
'
Setlcdpage 0 : Setlcdcol 0 : Text = "LINE 1  1234567890 11" : Lcdouttext : Wait 1
Setlcdpage 1 : Setlcdcol 0 : Text = "LINE 2  2345678901 22" : Lcdouttext : Wait 1
Setlcdpage 2 : Setlcdcol 0 : Text = "LINE 3  3456789012 33" : Lcdouttext : Wait 1
Setlcdpage 3 : Setlcdcol 0 : Text = "LINE 4  4567890123 44" : Lcdouttext : Wait 2
Setlcdpage 4 : Setlcdcol 0 : Text = "LINE 5  5678901234 55" : Lcdouttext : Wait 1
Setlcdpage 5 : Setlcdcol 0 : Text = "LINE 6  6789012345 66" : Lcdouttext : Wait 1
Setlcdpage 6 : Setlcdcol 0 : Text = "LINE 7  7890123456 77" : Lcdouttext : Wait 1
Setlcdpage 7 : Setlcdcol 0 : Text = "LINE 8  8901234567 88" : Lcdouttext : Wait 3
'
Setlcdclear 0 : Wait 2                                      'clear screen
'
'=== Demo 2 => Display "HL3LZV" from upper left to lowwer right =========
For Iii = 0 To 7
   For Jjj = 0 To 99 Step 25
      Setlcdpage Iii : Setlcdcol Jjj : Text = "HL3LZV" : Lcdouttext
        Wait 1
      Setlcdpage Iii : Setlcdcol Jjj : Text = "      " : Lcdouttext
   Next Jjj
Next Iii
'
'=== Demo 3 => Clear Screen  =============================================
Setlcdclear 0 : Wait 2                                      'clear screen
Setlcdclear 255 : Wait 2                                    'fill all screen with dots
Setlcdclear 8 : Wait 2                                      'fill with &B00001000
Setlcdclear &B10001100 : Wait 2                             'fill with  &b01100110 (102)
Setlcdclear 0 : Wait 2                                      'clear screen
'
Loop
End
'
' ======== Sub routines ====================================================
Sub Setlcdline(byval Yy As Byte)
      Vvv = &B01000000 + Yy                                 'start line set => ( 0 ~ 63 )
        A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1
End Sub Setlcdline(byval Yy As Byte)
'--------------------------------------------
Sub Setlcdpage(byval Page As Byte)
     Vvv = &B10110000 + Page                                ' Page =>(&B1011CCCC, 0000=>1page ~0111=>8page )
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1
End Sub Setlcdpage(byval Page As Byte)
'--------------------------------------------
Sub Setlcdcol(byval Xx As Byte)
        Vvv = Xx : Vvv1 = Xx
        Shift Vvv , Right , 4 : Vvv = Vvv
                Vvv = &B00010000 + Vvv
        Shift Vvv1 , Left , 4 : Shift Vvv1 , Right , 4
'             Vvv = Vvv1 + 16
' Setting Column address upper bit (&B0001CCCC, &H8:0000 )
       A0 = 0 : Cs = 0 : Spiout Vvv1 , 1 : Spiout Vvv , 1 : Cs = 1 : A0 = 1

' Setting Column address lower bit (&B0000CCCC,&H3 : 0000 )
'       A0 = 0 : Cs = 0 : Spiout Vvv1 , 1 : Cs = 1 : A0 = 1
End Sub Setlcdcol(byval Xx As Byte)
'----------------------------------------------
Sub Setlcdswreset                                      ' LCD Software Reset => &B11100010
       Vvv = &B11100010
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Waitms 500 : Cs = 1 : A0 = 1
End Sub Setlcdswreset
'----------------------------------------------
Sub Setlcdvolt(byval V5 As Byte )               ' &B00100ccc ( 0 ~ 7 )
      Vvv = &B00100000 + V5
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1
End Sub Setlcdvolt(byval V5 As Byte )
'----------------------------------------------
Sub Setlcdvolm(byval Vol As Byte )
    Vvv = Vol : Vvv1 = &B10000001  ' The Electrinic Volume => 2byte
       A0 = 0 : Cs = 0 : Spiout Vvv1 , 1 : Spiout Vvv , 1 : Cs = 1 : A0 = 1
End Sub Setlcdvolm(byval Vol As Byte )
'----------------------------------------------
Sub Setlcdinit
    Call Setlcdswreset

      ' LCD Display start line (&B01CCCCCC, 0 ~ 63 )
           Vvv = &H40
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1

      ' LCD ADC Select => Normal=&B10100000, Reverse=&B10100001 )
           Vvv = &HA0
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1

      ' Commom output mode => &B11000000=> Normal,&B11001000=>:reverse )
           Vvv = &HC8
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1

      ' Set Inverse Display (&B1010011C, &HA6= Not Mirror )
           Vvv = &B10100110
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1

      ' LCD Bias Setting 1/9 bias (&B1010001C, 0=> 1/9 , 1=> 1/7 )
           Vvv = &B10100010
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1

      ' Power Control Setting => (&00101CCC, 111=>Booster,Vreg,V/F all ON )
           Vvv = &B00101111
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1
      ' Set Booster Ratio  => (2 Byte => &hF8, &H00 x4 )
           Vvv = &HF8 : Vvv1 = &H00
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Spiout Vvv1 , 1 : Cs = 1 : A0 = 1
     Call Setlcdvolt(4)
     Call Setlcdvolm(36)
      ' Display On => 'On => &B10101111, Off=> &B10101110
           Vvv = &B10101111
       A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1

 ' No indicator
           Vvv = &HAC : Vvv1 = &H00 : Vvv2 = &HAF
    A0 = 0 : Cs = 0 : Spiout Vvv , 1 : Spiout Vvv1 , 1 : Spiout Vvv2 , 1 : Cs = 1 : A0 = 1

    Call Setlcdclear(0)
    Call Setlcdcol(0)                                       '0~  127
    Call Setlcdpage(0)                                      '0 ~ 7
End Sub Setlcdinit
'-----------------------------------------------------------
Sub Setlcdclear(byval Zz As Byte)
    For Jjj = 0 To 7
            Setlcdpage Jjj
        For Iii = 0 To 127
               Setlcdpage Jjj : Setlcdcol Iii
            Vvv = Zz
            A0 = 1 : Cs = 0 : Spiout Vvv , 1 : Cs = 1 : A0 = 1
        Next Iii
    Next Jjj

End Sub Setlcdclear(byval Zz As Byte)
'------------------------------------------------------------
Sub Printfont
    For Kkk = 0 To 5
        Read Xxx
             A0 = 1 : Cs = 0 : Spiout Xxx , 1 : Cs = 1 : A0 = 1
    Next Kkk
End Sub Printfont
'------------------------------------------------------------
Sub Lcdouttext
  Lenght = Len(text)
      For Loops = 1 To Lenght
          Sign = Mid(text , Loops , 1)
              If Sign = " " Then Restore 10:
              If Sign = "0" Then Restore 0:
              If Sign = "1" Then Restore 1:
              If Sign = "2" Then Restore 2:
              If Sign = "3" Then Restore 3:
              If Sign = "4" Then Restore 4:
              If Sign = "5" Then Restore 5:
              If Sign = "6" Then Restore 6:
              If Sign = "7" Then Restore 7:
              If Sign = "8" Then Restore 8:
              If Sign = "9" Then Restore 9:
              If Sign = "A" Or Sign = "a" Then Restore A:
              If Sign = "B" Or Sign = "b" Then Restore B:
              If Sign = "C" Or Sign = "c" Then Restore C:
              If Sign = "D" Or Sign = "d" Then Restore D:
              If Sign = "E" Or Sign = "e" Then Restore E:
              If Sign = "F" Or Sign = "f" Then Restore F:
              If Sign = "G" Or Sign = "g" Then Restore G:
              If Sign = "H" Or Sign = "h" Then Restore H:
              If Sign = "I" Or Sign = "i" Then Restore I:
              If Sign = "J" Or Sign = "j" Then Restore J:
              If Sign = "K" Or Sign = "k" Then Restore K:
              If Sign = "L" Or Sign = "l" Then Restore L:
              If Sign = "M" Or Sign = "m" Then Restore M:
              If Sign = "N" Or Sign = "n" Then Restore N:
              If Sign = "O" Or Sign = "o" Then Restore O:
              If Sign = "P" Or Sign = "p" Then Restore P:
              If Sign = "Q" Or Sign = "q" Then Restore Q:
              If Sign = "R" Or Sign = "r" Then Restore R:
              If Sign = "S" Or Sign = "s" Then Restore S:
              If Sign = "T" Or Sign = "t" Then Restore T:
              If Sign = "U" Or Sign = "u" Then Restore U:
              If Sign = "V" Or Sign = "v" Then Restore V:
              If Sign = "W" Or Sign = "w" Then Restore W:
              If Sign = "X" Or Sign = "x" Then Restore X:
              If Sign = "Y" Or Sign = "y" Then Restore Y:
              If Sign = "Z" Or Sign = "z" Then Restore Z:
                 Printfont
      Next Loops
End Sub Lcdouttext
'=========================================================
'
10:
Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00
0:
Data &H00 , &H3E , &H41 , &H41 , &H41 , &H3E
1:
Data &H00 , &H00 , &H41 , &H7F , &H40 , &H00
2:
Data &H00 , &H42 , &H61 , &H51 , &H49 , &H46
3:
Data &H00 , &H22 , &H41 , &H49 , &H49 , &H36
4:
Data &H00 , &H18 , &H14 , &H52 , &H7F , &H50
5:
Data &H00 , &H4F , &H49 , &H49 , &H49 , &H31
6:
Data &H00 , &H3E , &H49 , &H49 , &H49 , &H32
7:
Data &H00 , &H03 , &H01 , &H71 , &H09 , &H07
8:
Data &H00 , &H36 , &H49 , &H49 , &H49 , &H36
9:
Data &H00 , &H26 , &H49 , &H49 , &H49 , &H3E

A:
Data &H00 , &H78 , &H16 , &H11 , &H16 , &H78
B:
Data &H00 , &H7F , &H49 , &H49 , &H49 , &H36
C:
Data &H00 , &H3E , &H41 , &H41 , &H41 , &H22
D:
Data &H00 , &H7F , &H41 , &H41 , &H41 , &H3E
E:
Data &H00 , &H7F , &H49 , &H49 , &H49 , &H41
F:
Data &H00 , &H7F , &H09 , &H09 , &H09 , &H01
G:
Data &H00 , &H3E , &H41 , &H41 , &H49 , &H3A
H:
Data &H00 , &H7F , &H08 , &H08 , &H08 , &H7F
I:
Data &H00 , &H00 , &H41 , &H7F , &H41 , &H00
J:
Data &H00 , &H30 , &H40 , &H40 , &H40 , &H3F
K:
Data &H00 , &H7F , &H08 , &H14 , &H22 , &H41
L:
Data &H00 , &H7F , &H40 , &H40 , &H40 , &H40
M:
Data &H00 , &H7F , &H02 , &H0C , &H02 , &H7F
N:
Data &H00 , &H7F , &H06 , &H08 , &H30 , &H7F
O:
Data &H00 , &H3E , &H41 , &H41 , &H41 , &H3E
P:
Data &H00 , &H7F , &H09 , &H09 , &H09 , &H06
Q:
Data &H00 , &H3E , &H41 , &H51 , &H21 , &H5E
R:
Data &H00 , &H7F , &H09 , &H19 , &H29 , &H46
S:
Data &H00 , &H26 , &H49 , &H49 , &H49 , &H32
T:
Data &H00 , &H01 , &H01 , &H7F , &H01 , &H01
U:
Data &H00 , &H3F , &H40 , &H40 , &H40 , &H3F
V:
Data &H00 , &H0F , &H30 , &H40 , &H30 , &H0F
W:
Data &H00 , &H3F , &H40 , &H38 , &H40 , &H3F
X:
Data &H00 , &H63 , &H14 , &H08 , &H14 , &H63
Y:
Data &H00 , &H07 , &H08 , &H70 , &H08 , &H07
Z:
Data &H00 , &H61 , &H51 , &H49 , &H45 , &H43
Back to top
View user's profile
hamedhamedi

Bascom Member



Joined: 12 Feb 2012
Posts: 70

PostPosted: Mon Feb 09, 2015 9:53 am    Post subject: Reply with quote

Hi inkni

the code work fine.thank you.

can i show picture using this code?

Regards
Back to top
View user's profile
inkni

Bascom Member



Joined: 04 Sep 2013
Posts: 5

south_korea.gif
PostPosted: Mon Feb 09, 2015 11:09 am    Post subject: My code can dump graphics Reply with quote

Hi,

The sound's good my code work fine. Thank you.

My code can show pictures but needs more command lines.
I will upload the graphic dump demo soon after.

Regards,

Inkni
Back to top
View user's profile
Display posts from previous:   
Post new topic   Reply to topic    www.mcselec.com Forum Index -> BASCOM-AVR All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum