# Συζήτηση Κυκλωμάτων > Ψηφιακά Κυκλώματα > Μικροελεγκτές >  >  NOKIA 3310 LCD και MikroBasic PRO. Υπάρχει έτοιμη βιβλιοθήκη?

## Stergios_[.gr]

Θα ήθελα να χρησιμοποιήσω την οθόνη από ένα ΝΟΚΙΑ 3310 και να την ελέγχω μέσω ενός PIC και MikroBasic. Γνωρίζω ότι θα πρέπει να δουλέψω με το πρωτόκολλο SPI, αλλά θέλω να ρωτήσω αν υπάρχει κάποια έτοιμη βιβλιοθήκη για αυτό...

Στο ίντερνετ βρήκα αυτά, αλλά δεν λειτούργησαν:

http://www.module.ro/lph7366.htmlhttp://www.riecktron.co.za/en/index....jects&Itemid=6
Μήπως έχει δοκιμάσει κάποιος κάτι παρόμοιο για να με κατευθύνει?
Ευχαριστώ!

----------


## Thanos10

Ναι υπαρχει εχω κατι αλλα ειναι στο αλλο pc που εχω στο εργαστηριο, η 3310 ειναι η ποιο διαδεδομενη οθονη κινητου για κατασκευες.

----------


## Stergios_[.gr]

Θάνο, μόλις βρείς την ευκαιρία, θα μπορέσεις να την ανεβάσεις???
ΕΥΧΑΡΙΣΤΩ!

----------


## Thanos10

Στεργιε δες και αυτο που σου ανεβασα παραγει ΗΕΧ για οθονη 3310 υποστηριζει JPG, BMP και GIF αρχεια.

----------


## Stergios_[.gr]

ΤΗΧ θάνο!!
Αλλά δυστυχώς δεν έχω καταφέρει να οδηγήσω την οθόνη ακόμα.. Δοκίμασα ήδη 3, αλλά ούτε να τις ανάψω δεν κατάφερα..
Μήπως έχει κανένα έτοιμο PIC project με οθόνη, για να δοκιμάσω να βεβαιωθώ ότι τουλάχιστον δουλεύουν??? Έχω διαβάσει ότι καταστρέφονται εύκολα,
και φοβάμαι μήπως έκανα μ@λακία.. Αλλά και με τις 3???

----------


## antonis_x

Στεργιε πες για ποιον επεξεργαστη θες ενα ''δοκιμαστικο'' για την οθονη?

----------


## Thanos10

Με πικ εχω αυριο θα σου ανεβασω εχω μερικα,να προσεξεις την τροφοδοσια της οθονης μονο 3,3ν πολλα σχεδια δεν το αναφερουν καθολου δες το LC meter που ανεβασα το σχεδιο μισο ητανε ο τυπος αφηνε να ενωηθει οτι η οθονη θελει 5ν μολις την τροφοδοτισεις με 5ν εφυγε σε τροχια γυρω απο την γη.

----------


## Stergios_[.gr]

Δουλεύω πολύ τον PIC16F887!
Έχεις κάτι στα υπόψιν ΑντώνΗ?? :Drool: 

Έχω όμως μπόλικους:
      PIC12F615       
PIC12F675       
PIC16F1936       
PIC16F722       
PIC16F84A       
PIC16F887       
PIC16F917       
PIC18F13K50       
PIC18F14K50       
PIC18F2455       
PIC18F2458       
PIC18F2550       
PIC18F4455       
PIC18F4550

----------


## Stergios_[.gr]

> Με πικ εχω αυριο θα σου ανεβασω εχω μερικα,να προσεξεις την τροφοδοσια της οθονης μονο 3,3ν πολλα σχεδια δεν το αναφερουν καθολου δες το LC meter που ανεβασα το σχεδιο μισο ητανε ο τυπος αφηνε να ενωηθει οτι η οθονη θελει 5ν μολις την τροφοδοτισεις με 5ν εφυγε σε τροχια γυρω απο την γη.



Οπότε, 3.3V στα πόσα mA?? Δηλαδή, τι αντίσταση να βάλω στα 5V?

----------


## antonis_x

> Δουλεύω πολύ τον PIC16F887!
> Έχεις κάτι στα υπόψιν ΑντώνΗ??
> 
> Έχω όμως μπόλικους:
>       PIC12F615       
> PIC12F675       
> PIC16F1936       
> PIC16F722       
> PIC16F84A       
> ...




Σε λίγα λεπτά θα σου ανεβάσω ένα, για δοκιμή.

----------


## Thanos10

Θα πρεπει να βαλεις ενα LD1117 3.3v η ενα  LM317, η μια αντισταση 470Ω και μια ζενερ 3,3ν, θυμαμε εχω project 18F2550,16F84 και κατι αλλους αλλα και σε AVR αλλα ξερω δουλευεις πικ.

----------


## antonis_x

Μπορει κάποιος να μου πει πως ανεβαζω εδω ενα .zip αρχειο?

----------


## Stergios_[.gr]

Από τον "Επεξεργαστή Κειμένου":
"Προσθήκη Επισύναψης" στο εικονίδιο με τον συνδετήρα, στην γραμμή της γραμματοσειράς
και διαλέγεις το αρχείο σου!

----------


## Thanos10

Θα πας απαντηση στο θεμα και πατα επεξεργαστης κειμενου απο εκει θα ανεβασεις το ζιπ.

----------


## Thanos10

Μαζι γραψαμε.

----------


## antonis_x

Μαλλον το βρήκα, ευχαριστώ..

Οταν το δοκιμάσεις στην πράξη μην ξεχάσεις τον κρύσταλλο (4MHz χρησιμοποίησα) με τους πυκνωτές τους, γιατί στις φωτό δε φαίνεται.

----------


## Stergios_[.gr]

Ευχαριστώ πολύ Αντώνη!
Αύριο πρωί θα ποστάρω αποτελέσματα!! (Δεν έχω jumperάκια μαζί μου, για το breadboard)..
1000ευχαριστώ!

----------


## antonis_x

Βρήκα πρόχειρο έαν 18f4550 και το έκανα στο breadboard.

Και στο παράδειγμα με τον 16F887 και για τον 18F4550 χρησιμοποίησα 4MHz κρύσταλλο.
Στο συμπιεσμένο αρχείο που παρέθεσα πιο πάνω είναι μέσα ενα hex για τον 16f887, ένα hex για τον 18f4550 και 2 screenshots απο τη δοκιμή στον Isis του Proteus ωστε να τα χρησιμοποιήσεις σαν σχηματικό κιόλας.
887 δεν έχω, σήμερα(ναι, σήμερα) μου ρθαν δείγματα κάτι 16f886 αλλά δεν ξέρω τι τους έκανα, γι αυτό το έκανα με τον 18f4550 που  έχεις κι εσύ, και τον βρήκα εύκολα.
Πρόσεξε στα σχηματικά, ότι τα pin που χρησιμοποιώ των μικροελεγκτων ειναι διαφορετικά, στον 4550 δεν είναι καν αυτά της spi, αυτό γιατί δεν χρησιμοποιώ hardware spi αλλά software, άρα βάζω όποια πόδια με βολεύουν.


p.s. οτι και να πεις για την ποιότητα της φωτογραφίας  θα χεις δικιο, χαχα!

----------


## antonis_x

Επίσης όπως είπε και ο Θάνος, πρόσεξε την τροφοδοσία της οθόνης, στο πάνω παράδειγμα(της φωτογραφίας) χρησιμοποίησα ίδια τροφοδοσία για την οθόνη και τον επεξεργαστή, 3,3V.

Μια που βρήκα τώρα πως ανεβαίνουν εδώ αρχεία και φωτό, είπα να του δώσω να καταλάβει... :Tongue:

----------


## aris285

Καλημερα μια ερωτηση
την οθωνη του 3310 πως την συνδεετε? κολατε καλωδια στις επαφες?

----------


## Stergios_[.gr]

> Πρόσεξε στα σχηματικά, ότι τα pin που χρησιμοποιώ των μικροελεγκτων ειναι διαφορετικά, στον 4550 δεν είναι καν αυτά της spi, αυτό γιατί δεν χρησιμοποιώ hardware spi αλλά software, άρα βάζω όποια πόδια με βολεύουν.



Soft SPI με ποιά γλώσσα προγραμματισμού??

----------


## Stergios_[.gr]

> Καλημερα μια ερωτηση
> την οθωνη του 3310 πως την συνδεετε? κολατε καλωδια στις επαφες?



Μεχρι στιγμής με αυτές τις δύο μεθόδους..

Κολλώντας καλώδια στις επαφές,
και 
φτιάχνοντας επαφές σε PCB και πιέζοντας την οθόνη πάνω τους..

lcd3310.jpg

ΥΓ: βέβαια δεν είμαι και ο κατάλληλος άνθρωπος για να μιλάει για αυτό!!!!!

----------


## Stergios_[.gr]

> Επίσης όπως είπε και ο Θάνος, πρόσεξε την τροφοδοσία της οθόνης, στο πάνω παράδειγμα(της φωτογραφίας) χρησιμοποίησα ίδια τροφοδοσία για την οθόνη και τον επεξεργαστή, 3,3V.
> 
> Μια που βρήκα τώρα πως ανεβαίνουν εδώ αρχεία και φωτό, είπα να του δώσω να καταλάβει...



Παρεμπιπτόντως, ο PIC18F4550 έχει έξοδο +3.3V, από την Vusb!

----------


## billtech

Στεργιε κοιταξε ποιος απο αυτους μπορει να δουλευει με 3.3V και δουλεψε τον στα 3.3 μαζι με την οθονη.
η κοιταξε αν εχεις καποιον LF ΠΧ 18LF452.

----------


## Stergios_[.gr]

*ΧΙΛΙΑ ΕΥΧΑΡΙΣΤΩ ΑΝΤΩΝΗ!!!*
ΟΛΑ ΚΑΛΑ!! ΜΟΝΟ ΜΙΑ ΕΙΧΑ ΚΑΨΕΙ!!! ...φιουφ!


NOKIA_LCD_2010.10.13 (Large).jpg

----------


## antonis_x

Καλημέρα, και μόλις πήγα να σου πω να προσέξεις και το pinout της οθόνης γιατί το screenshot από το proteus μπορεί να σε μπέρδευε και να την έβαζες ανάποδα, αλλά απ ότι φαίνεται σωστά τη σύνδεσες. :Biggrin:

----------


## antonis_x

> Soft SPI με ποιά γλώσσα προγραμματισμού??



Με mikroC pro.

----------


## Stergios_[.gr]

Αντώνη,
αν δεν σου κάνει κόπο, μήπως θα μπορούσες να μου στείλεις τα ΗΕΧ έτσι ώστε να λειτουργεί με τον εσωτερικό ταλαντωτή του 887?

Ευχαριστώ πολύ για τον κόπο σου!!

----------


## Stergios_[.gr]

> Στεργιε κοιταξε ποιος απο αυτους μπορει να δουλευει με 3.3V και δουλεψε τον στα 3.3 μαζι με την οθονη.
> η κοιταξε αν εχεις καποιον LF ΠΧ 18LF452.



Βασίλη, δουλεύουν και οι 2 (PIC16F887 και PIC18F4550) από 2V έως και 5.5V..  :Wink: 

Έτσι, τους προγραμμάτισα, και απλά έθεσα την τάση 3.1ν από το PICkit2.

----------


## Thanos10

Οποτε εισαι οκ δες και την φωτο.

----------


## Stergios_[.gr]

Ναι-ναι, είμαι οκ!
Θάνο, είδα την φωτό αυτή και στο άλλο νήμα, που παρουσιάζεις το LC-meter.. THX!

----------


## antonis_x

> Αντώνη,
> αν δεν σου κάνει κόπο, μήπως θα μπορούσες να μου στείλεις τα ΗΕΧ έτσι ώστε να λειτουργεί με τον εσωτερικό ταλαντωτή του 887?
> 
> Ευχαριστώ πολύ για τον κόπο σου!!



Θα το κάνω το βράδυ γιατί τώρα δεν είμαι σπίτι και θα γυρίσω μετά τις 7.

----------


## antonis_x

> Στεργιε δες και αυτο που σου ανεβασα παραγει ΗΕΧ για οθονη 3310 υποστηριζει JPG, BMP και GIF αρχεια.



Ωραίο προγραμματάκι Θάνο, το δοκίμασα κιόλας το βράδυ δουλεύει μια χαρά, και είναι και εύχρηστο, είχα κάτι αντίστοιχο αλλά αυτό μ αρέσει περισσότερο γιατί ρυθμίζεις εύκολα το κοντραστ της φωτό που κωδικοποιείς!

----------


## billtech

> Βασίλη, δουλεύουν και οι 2 (PIC16F887 και PIC18F4550) από 2V έως και 5.5V.. 
> 
> Έτσι, τους προγραμμάτισα, και απλά έθεσα την τάση 3.1ν από το PICkit2.



πως τους προγραμματισες να δουλευουν στα 2V-5,5V?

----------


## Stergios_[.gr]

Απλά τους προγραμματίζεις,
και τους δίνεις 2-5.5ν  :Very Happy: !


Εννοούσα:

Έτσι λοιπόν,
τους προγραμμάτισα κανονικά, 
και τους τροφοδότισα με 3.1ν από την επιλογή μεταβλητής τάσης του PICkit2

----------


## Stergios_[.gr]

Την βιβλιοθήκη NOKIA_3310_LCD για MikroBASIC PRO και PIC16/PIC18 την έχει κανένας?

Δημιουργός ήταν ο χρήστης Anton (http://www.mikroe.com/forum/viewtopic.php?p=6491#p6491) αλλά έχει εξαφανισθεί από το Ιντερνετ το ΖΙΡ της..

----------


## antonis_x

Γιατι δεν του στελνεις ενα mail του ιδιου? στο λινκ που παρεθεσες σε ενα κομματι κωδικα λεει το μειλ του στα σχόλια,
γράφει:
// Written by ANTON RIECKERT
// anton.rieckert@gmail.com

----------


## Stergios_[.gr]

(Δεν έχει απαντήσει ακόμα..)

----------


## Stergios_[.gr]

> Θα πρεπει να βαλεις ενα LD1117 3.3v η ενα  LM317, η μια αντισταση 470Ω και μια ζενερ 3,3ν, θυμαμε εχω project 18F2550,16F84 και κατι αλλους αλλα και σε AVR αλλα ξερω δουλευεις πικ.



Μια ΝΟΟΒ ερώτηση:
3.3ν είναι το όριο μόνο του pin της Vdd? Ή όλα τα pin της οθόνης έχουν όριο 3.3ν? Μπορώ να τρέχω στα 5ν τον μΕ και τις εντολές του, και απλά να δίνω 3.3ν στην τροφοδοσία της οθόνης? (μην ξεχνάτε, δεν υπάρχουν χαζές ερωτήσεις...)

----------


## Thanos10

Ναι Στεργιε μπορεις να το κανεις, δες  στην κατασκευη που ανεβασα (LC meter) να δεις καποια πραγματα,την τροφοδοσια της οθονης αλλα και του Μ.Ε.

----------


## antonis_x

Εδώ είναι και τα hex για δοκιμή της οθόνης με τον εσωτερικό ταλανωτή του 887 και του 4550.
Λογο εκεκτημένης ταχύτητας και στα 2 παραδειγματα η ταχυτητα θα είναι  πολυ μικρή, γι αυτό θα περιμένεις μερικά δευτερόλεπτα για να σου  εμφανιστεί η εικόνα στν οθόνη.

----------


## antonis_x

Και η δοκιμή με τον 18f4550.

----------


## Stergios_[.gr]

XAXAXA!!
Λολ! το αβαταρ μου!!

Ευχαριστώ πολύ Αντώνη για τα ΗΕΧ!

----------


## Stergios_[.gr]

Για την επίλυση του θέματος των 3.3V υπαρχει αυτό το άρθρο από την Microchip: *3V Tips 'n' Tricks*

Παραθέτω την οικονομική λύση με Ζένερ:

----------


## Thanos10

> Και η δοκιμή με τον 18f4550.



Με το προγραμματακι που ανεβασα το εκανες καλο.

----------


## Thanos10

Στεργιε για πες μου τι καλο θα φιαξεις με την οθονη.

----------


## antonis_x

Θάνο δεν το έφτιαξα με το προγραμματάκι που ανέβασες, αλλά μ αυτό:  http://www.electronicslab.ph/forum/i...c,16197.0.html
(στο 2ο ποστ έχει και λινκ για download), μ αρέσει γιατί έχει και επιλογή απευθείας για invert color! αν και αυτό δεν υποστηρίζει gif και του Στέργιου πχ το άβαταρ ήθελε μετατροπή, αλλά σιγά το πράμα. Κατα τ άλλα την ίδια δουλειά κάνουν, μόνο που αυτό που ανέβασες έχει ποιο εύχρηστη ρύθμιση του κοντραστ.

----------


## aris285

[QUOTE='Stergios_[.gr];392432']Μεχρι στιγμής με αυτές τις δύο μεθόδους..

Κολλώντας καλώδια στις επαφές,
και 
φτιάχνοντας επαφές σε PCB και πιέζοντας την οθόνη πάνω τους..

Συνημμένο Αρχείο 16198

Αν κολεισουμε τα καλωδια απευθειας στην οθωνη δεν υπαρχει περιπτωση να τησ κανουμε ζημια με το κολητηρι?

----------


## Stergios_[.gr]

> Στεργιε για πες μου τι καλο θα φιαξεις με την οθονη.



Θάνο, θέλω να φτιάξω ένα USB-to-serial περιφερειακό για τον ΗΥ, στον οποίο θα έχω ένα εικονικό αλτίμετρο για τον εξομοιωτή πτήσης μου..  :Blushing: 





> Αν κολεισουμε τα καλωδια απευθειας στην οθωνη δεν υπαρχει περιπτωση να τησ κανουμε ζημια με το κολητηρι?



ΧΑΛΑΡΑ ΚΙΟΛΑΣ!! γιαυτό πρέπει να αποφεύγεται αυτή η μέθοδος!...

----------


## Stergios_[.gr]

> Ναι υπαρχει εχω κατι αλλα ειναι στο αλλο pc που εχω στο εργαστηριο, η 3310 ειναι η ποιο διαδεδομενη οθονη κινητου για κατασκευες.



 Θάνο, μήπως μπορείς να μου την στείλεις??

----------


## Stergios_[.gr]

> Με mikroC pro.



Αντώνη, 
μήπως θα μπορούσα να δώ τον κώδικά σου? Να δώ πως να το κάνω και εγώ στην mikroBasic PRO?

Δυσκολεύομαι..

Αυτό είναι το κυρίως πρόγραμμα:



```
program PIC16F887_NOKIA_3310_LCD
'****************************************************************************'
' Written by ANTON RIECKERT
' anton@riecktron.co.za
' http: www.riecktron.co.za
' Last updated  : 14 November 2008    - Added support for P16 and P18
'
' Small test application to test a Nokia 3310 LCD connected to a PIC micro
'****************************************************************************'

include "NOKIA_3310_LCD"

main:
'     OSCCON = %1111101
     
     PortB = 0
     TRISB = 0

     TRISD = 0

     TRISC = 0
     PORTC = 0

     ADCON1 = 6

     ' These are the default pin assignments
     ' PortC,3   -  CS   - Chip Enable
     ' PortC,2   -  RES  - Reset Input
     ' PortC,5   -  SCLK - Serial Clock Input
     ' PortC,0   -  DC   - Data / Command
     ' PortC,4   -  SDA  - Serial Data Input}

     Nok_Init(PortC, 3, 2, 5, 0, 4)

     NOK_Out(3,3,"by")
     NOK_Out(0,5,"Anton Rieckert")

     while true
       portd.2 = not portd.2
       delay_ms(1000)
       Nok_Out(36,3,"by")
       Nok_Out(0,5,"Anton Rieckert")
     wend
end.
```

----------


## Stergios_[.gr]

και αυτή είναι η βιβλιοθήκη που καλώ:



```
'****************************************************************************
' LCD Initialization
Sub Procedure NOK_Init(Dim Byref port as byte, Dim cs, reset_pin, sclk, dc, sda as byte)
'****************************************************************************
Sub Procedure NOK_Write (Dim datas, mode as byte)
'****************************************************************************'
' Draws a character on screen at current possition
Sub Procedure NOK_Chr(Dim symlcd as Byte)
'****************************************************************************'
' Set the current position for data (0<= x <= 84,  0<= y <= 5)
Sub Procedure NOK_GotoXY(Dim x,y as byte)
'****************************************************************************'
' Inverts Display - Here is still a bug. It only inverst once and doesn't
' want to invert back again
Sub Procedure NOK_Invert
'****************************************************************************'
' Clear the LCD Data memory
Sub Procedure NOK_Clear
'****************************************************************************'
' Writes a string at x, y position (maks 14 char per row)  (0 <= x <= 84 , 0 <= y <= 5)
Sub Procedure NOK_Out(Dim x, y as byte, Dim Byref sentance as char[14])
'****************************************************************************'
' Writes a string at current position
Sub Procedure NOK_Out_CP(Dim Byref sentance as char[14])
'****************************************************************************'
 
 implements
 '****************************************************************************'
 const font5x7_1 as byte[230] = (
     0x00, 0x00, 0x00, 0x00, 0x00 ,  ' sp
     0x00, 0x00, 0x2f, 0x00, 0x00 ,  ' !
     0x00, 0x07, 0x00, 0x07, 0x00 ,  ' "
     0x14, 0x7f, 0x14, 0x7f, 0x14 ,  ' #
     0x24, 0x2a, 0x7f, 0x2a, 0x12 ,  ' $
     0xc4, 0xc8, 0x10, 0x26, 0x46 ,  ' %
     0x36, 0x49, 0x55, 0x22, 0x50 ,  ' &
     0x00, 0x05, 0x03, 0x00, 0x00 ,  ' '
     0x00, 0x1c, 0x22, 0x41, 0x00 ,  ' (
     0x00, 0x41, 0x22, 0x1c, 0x00 ,  ' )
     0x14, 0x08, 0x3E, 0x08, 0x14 ,  ' *
     0x08, 0x08, 0x3E, 0x08, 0x08 ,  ' +
     0x00, 0x00, 0x50, 0x30, 0x00 ,  ' ,
     0x10, 0x10, 0x10, 0x10, 0x10 ,  ' -
     0x00, 0x60, 0x60, 0x00, 0x00 ,  ' .
     0x20, 0x10, 0x08, 0x04, 0x02 ,  ' /
     0x3E, 0x51, 0x49, 0x45, 0x3E ,  ' 0
     0x00, 0x42, 0x7F, 0x40, 0x00 ,  ' 1
     0x42, 0x61, 0x51, 0x49, 0x46 ,  ' 2
     0x21, 0x41, 0x45, 0x4B, 0x31 ,  ' 3
     0x18, 0x14, 0x12, 0x7F, 0x10 ,  ' 4
     0x27, 0x45, 0x45, 0x45, 0x39 ,  ' 5
     0x3C, 0x4A, 0x49, 0x49, 0x30 ,  ' 6
     0x01, 0x71, 0x09, 0x05, 0x03 ,  ' 7
     0x36, 0x49, 0x49, 0x49, 0x36 ,  ' 8
     0x06, 0x49, 0x49, 0x29, 0x1E ,  ' 9
     0x00, 0x36, 0x36, 0x00, 0x00 ,  ' :
     0x00, 0x56, 0x36, 0x00, 0x00 ,  '
     0x08, 0x14, 0x22, 0x41, 0x00 ,  ' <
     0x14, 0x14, 0x14, 0x14, 0x14 ,  ' =
     0x00, 0x41, 0x22, 0x14, 0x08 ,  ' >
     0x02, 0x01, 0x51, 0x09, 0x06 ,  ' ?
     0x32, 0x49, 0x59, 0x51, 0x3E ,  ' @
     0x7E, 0x11, 0x11, 0x11, 0x7E ,  ' A
     0x7F, 0x49, 0x49, 0x49, 0x36 ,  ' B
     0x3E, 0x41, 0x41, 0x41, 0x22 ,  ' C
     0x7F, 0x41, 0x41, 0x22, 0x1C ,  ' D
     0x7F, 0x49, 0x49, 0x49, 0x41 ,  ' E
     0x7F, 0x09, 0x09, 0x09, 0x01 ,  ' F
     0x3E, 0x41, 0x49, 0x49, 0x7A ,  ' G
     0x7F, 0x08, 0x08, 0x08, 0x7F ,  ' H
     0x00, 0x41, 0x7F, 0x41, 0x00 ,  ' I
     0x20, 0x40, 0x41, 0x3F, 0x01 ,  ' J
     0x7F, 0x08, 0x14, 0x22, 0x41 ,  ' K
     0x7F, 0x40, 0x40, 0x40, 0x40 ,  ' L
     0x7F, 0x02, 0x0C, 0x02, 0x7F)   ' M
 
 const font5x7_2 as byte[225] = (
     0x7F, 0x04, 0x08, 0x10, 0x7F ,  ' N
     0x3E, 0x41, 0x41, 0x41, 0x3E ,  ' O
     0x7F, 0x09, 0x09, 0x09, 0x06 ,  ' P
     0x3E, 0x41, 0x51, 0x21, 0x5E ,  ' Q
     0x7F, 0x09, 0x19, 0x29, 0x46 ,  ' R
     0x46, 0x49, 0x49, 0x49, 0x31 ,  ' S
     0x01, 0x01, 0x7F, 0x01, 0x01 ,  ' T
     0x3F, 0x40, 0x40, 0x40, 0x3F ,  ' U
     0x1F, 0x20, 0x40, 0x20, 0x1F ,  ' V
     0x3F, 0x40, 0x38, 0x40, 0x3F ,  ' W
     0x63, 0x14, 0x08, 0x14, 0x63 ,  ' X
     0x07, 0x08, 0x70, 0x08, 0x07 ,  ' Y
     0x61, 0x51, 0x49, 0x45, 0x43 ,  ' Z
     0x00, 0x7F, 0x41, 0x41, 0x00 ,  ' [
     0x55, 0x2A, 0x55, 0x2A, 0x55 ,  ' 55
     0x00, 0x41, 0x41, 0x7F, 0x00 ,  ' ]
     0x04, 0x02, 0x01, 0x02, 0x04 ,  ' ^
     0x40, 0x40, 0x40, 0x40, 0x40 ,  ' _
     0x00, 0x01, 0x02, 0x04, 0x00 ,  ' '
     0x20, 0x54, 0x54, 0x54, 0x78 ,  ' a
     0x7F, 0x48, 0x44, 0x44, 0x38 ,  ' b
     0x38, 0x44, 0x44, 0x44, 0x20 ,  ' c
     0x38, 0x44, 0x44, 0x48, 0x7F ,  ' d
     0x38, 0x54, 0x54, 0x54, 0x18 ,  ' e
     0x08, 0x7E, 0x09, 0x01, 0x02 ,  ' f
     0x0C, 0x52, 0x52, 0x52, 0x3E ,  ' g
     0x7F, 0x08, 0x04, 0x04, 0x78 ,  ' h
     0x00, 0x44, 0x7D, 0x40, 0x00 ,  ' i
     0x20, 0x40, 0x44, 0x3D, 0x00 ,  ' j
     0x7F, 0x10, 0x28, 0x44, 0x00 ,  ' k
     0x00, 0x41, 0x7F, 0x40, 0x00 ,  ' l
     0x7C, 0x04, 0x18, 0x04, 0x78 ,  ' m
     0x7C, 0x08, 0x04, 0x04, 0x78 ,  ' n
     0x38, 0x44, 0x44, 0x44, 0x38 ,  ' o
     0x7C, 0x14, 0x14, 0x14, 0x08 ,  ' p
     0x08, 0x14, 0x14, 0x18, 0x7C ,  ' q
     0x7C, 0x08, 0x04, 0x04, 0x08 ,  ' r
     0x48, 0x54, 0x54, 0x54, 0x20 ,  ' s
     0x04, 0x3F, 0x44, 0x40, 0x20 ,  ' t
     0x3C, 0x40, 0x40, 0x20, 0x7C ,  ' u
     0x1C, 0x20, 0x40, 0x20, 0x1C ,  ' v
     0x3C, 0x40, 0x30, 0x40, 0x3C ,  ' w
     0x44, 0x28, 0x10, 0x28, 0x44 ,  ' x
     0x0C, 0x50, 0x50, 0x50, 0x3C ,  ' y
     0x44, 0x64, 0x54, 0x4C, 0x44)   ' z
 '****************************************************************************
 dim
      ___NCS,                 ' CS   - Chip Enable
      ___NRES,                ' RES  - Reset Input
      ___NSCLK,               ' SCLK - Serial Clock Input
      ___NDC,                 ' DC   - Data / Command
      ___NSDA   as byte       ' SDA  - Serial Data Input
 
 #IFDEF P18 THEN
   Dim  portaddresse as word
 #ELSE
   Dim  portaddresse as byte
 #ENDIF
 '****************************************************************************
 ' LCD Initialization
 Sub Procedure NOK_Init(Dim Byref port as byte, Dim cs, reset_pin, sclk, dc, sda as byte)
 
     portaddresse = @port
      ___NCS   = cs
      ___NRES  = reset_pin
      ___NSCLK = sclk
      ___NDC   = dc
      ___NSDA  = sda
 
 #IFDEF P18 THEN
     FSR0H = hi(portaddresse)
     FSR0L = lo(portaddresse)
 
     ' Set initial status of LCD pins
     ClearBit(INDF0,___NSCLK)          '    SCLK = low
     ClearBit(INDF0,___NSDA)           '    SDA  = low
     ClearBit(INDF0,___NDC)            '    DC   = low
     ClearBit(INDF0,___NCS)            '    CS   = low
     ClearBit(INDF0,___NRES)           '    RES  = low
 
     ' Toggle LCD reset
     Delay_ms(200)
     ClearBit(INDF0,___NRES)       '     RES = low
     Delay_ms(500)
     SetBit(INDF0,___NRES)         '     RES = high
 
     SetBit(INDF0,___NCS)         '     CS  = high
 #ELSE
     FSRPtr = portaddresse
 
     ' Set initial status of LCD pins
     ClearBit(INDF,___NSCLK)          '    SCLK = low
     ClearBit(INDF,___NSDA)           '    SDA  = low
     ClearBit(INDF,___NDC)            '    DC   = low
     ClearBit(INDF,___NCS)            '    CS   = low
     ClearBit(INDF,___NRES)           '    RES  = low
 
     ' Toggle LCD reset
     Delay_ms(200)
     ClearBit(INDF,___NRES)       '     RES = low
     Delay_ms(500)
     SetBit(INDF,___NRES)         '     RES = high
 
     SetBit(INDF,___NCS)         '     CS  = high
 #ENDIF
 
     NOK_Write(0x21,0)       '     Extended commands
     NOK_Write(0xc5,0)       '     LCD Vop
     NOK_Write(0x06,0)       '     Temp coef
     NOK_Write(0x13,0)       '     LCD Bias 1:48
     NOK_Write(0x20,0)       '     Standard commands
     NOK_Write(0x0c,0)       '     Normal Mode
 
     ' Clear and position at top of LCD
     NOK_Clear
     NOK_GotoXY(0,0)
 End Sub
 '****************************************************************************
 Sub Procedure NOK_Write (Dim datas, mode as byte)
 Dim i, k as byte
 
 #IFDEF P18 THEN
   FSR0H = hi(portaddresse)
   FSR0L = lo(portaddresse)
 
   ' Pull DC high for DATA or low for COMMAND
   If (TestBit(mode,0) = 1) then SetBit(INDF0,___NDC) End If
   If (TestBit(mode,0) = 0) then ClearBit(INDF0,___NDC) End If
 
   ClearBit(INDF0,___NCS)   '       CS = low
 
   ' Clock in 8 bits of data - Highst bit first
   For i = 8 to 1 Step -1
     k = i - 1
     ClearBit(INDF0,___NSCLK)                             ' SCLK = low
     If TestBit(Datas,k) = 0 then ClearBit(INDF0,___NSDA)  ' SDA = low
                            else SetBit(INDF0,___NSDA)    ' SDA = high
     End If
     SetBit(INDF0,___NSCLK)                               ' SCLK = high
   Next i
   SetBit(INDF0,___NCS)     '        CS = high
 
 #ELSE
   FSRPtr = portaddresse
 
   ' Pull DC high for DATA or low for COMMAND
   If (TestBit(mode,0) = 1) then SetBit(INDF,___NDC) End If
   If (TestBit(mode,0) = 0) then ClearBit(INDF,___NDC) End If
 
   ClearBit(INDF,___NCS)   '       CS = low
 
   ' Clock in 8 bits of data - Highst bit first
   For i = 8 to 1 Step -1
     k = i - 1
     ClearBit(INDF,___NSCLK)                             ' SCLK = low
     If TestBit(Datas,k) = 0 then ClearBit(INDF,___NSDA)  ' SDA = low
                            else SetBit(INDF,___NSDA)    ' SDA = high
     End If
     SetBit(INDF,___NSCLK)                               ' SCLK = high
   Next i
   SetBit(INDF,___NCS)     '        CS = high
 #ENDIF
 
 End Sub

```


*..ΣΥΝΕΧΙΖΕΤΑΙ Ο ΚΩΔΙΚΑΣ!*

----------


## Stergios_[.gr]

*ΣΥΝΕΧΕΙΑ ΚΩΔΙΚΑ:
*


```
'****************************************************************************'
  ' Draws a character on screen at current possition
  Sub Procedure NOK_Chr(Dim symlcd as Byte)
  Dim l, m as Byte
  
    NOK_Write(0x00,1)          ' Space between characters
  
    If (symlcd < 78) then
      For l = 1 to 5
        m = (symlcd - 32)
        m = m * 5
        m = m + l
        m = m - 1
        NOK_Write(Font5x7_1[m],1)
      Next l
    End If
  
    If (symlcd > 77) then
      symlcd = symlcd - 46
      For l = 1 to 5
        m = (symlcd - 32)
        m = m * 5
        m = m + l
        m = m - 1
        NOK_Write(Font5x7_2[m],1)
      Next l
    End If
  
  End Sub
  '****************************************************************************'
  ' Set the current position for data (0<= x <= 84,  0<= y <= 5)
  Sub Procedure NOK_GotoXY(Dim x,y as byte)
  Dim n, o as Byte
  
    n = x
    o = y
    SetBit(n,7)
    SetBit(o,6)
    NOK_Write (o,0)
    NOK_Write (n,0)
  
  End Sub
  '****************************************************************************'
  ' Inverts Display - Here is still a bug. It only inverst once and doesn't
  ' want to invert back again
  Sub Procedure NOK_Invert
  
    NOK_Write(0x0D,0)
  
  End Sub
  '****************************************************************************'
  ' Clear the LCD Data memory
  Sub Procedure NOK_Clear
  Dim p, q, r as Byte
  
  #IFDEF P18 THEN
    FSR0H = hi(portaddresse)
    FSR0L = lo(portaddresse)
  
    ClearBit(INDF0,___NSDA)  ' SDA = low - Data bit is low
    SetBit(INDF0,___NDC)     ' DC = high - Data mode
    ClearBit(INDF0,___NCS)   ' CS = low  - Chip Enable
  
    For p = 1 to 6           '  for 6 rows
      For q = 1 to 84        '    for 84 colums
        For r = 1 to 8       '   for 8 loop (8 bits)
          ClearBit(INDF0,___NSCLK)   '  SCLK = low  - Serial Clock Input
          SetBit(INDF0,___NSCLK)     '  SCLK = high - Serial Clock Input
        Next r
      Next q
    Next p
    SetBit(INDF0,___NCS)     ' CS = high  - Chip Enable
    NOK_GotoXY(0,0)
  
  #ELSE
    FSRPtr = portaddresse
  
    ClearBit(INDF,___NSDA)   ' SDA = low - Data bit is low
    SetBit(INDF,___NDC)      ' DC = high - Data mode
    ClearBit(INDF,___NCS)    ' CS = low  - Chip Enable
  
    For p = 1 to 6           '  for 6 rows
      For q = 1 to 84        '    for 84 colums
        For r = 1 to 8       '   for 8 loop (8 bits)
          ClearBit(INDF,___NSCLK)   '  SCLK = low  - Serial Clock Input
          SetBit(INDF,___NSCLK)     '  SCLK = high - Serial Clock Input
        Next r
      Next q
    Next p
    SetBit(INDF,___NCS)      ' CS = high  - Chip Enable
    NOK_GotoXY(0,0)
  #ENDIF
  
  End Sub
  '****************************************************************************'
  ' Writes a string at x, y position (maks 14 char per row)  (0 <= x <= 84 , 0 <= y <= 5)
  Sub Procedure NOK_Out(Dim x, y as byte, Dim Byref sentance as char[14])
  Dim v as byte
  
    NOK_GotoXY(x,y)
    For v = 0 to length(sentance) - 1
      NOK_Chr(sentance[v])
    Next v
  
  End Sub
  '****************************************************************************'
  ' Writes a string at current position
  Sub Procedure NOK_Out_CP(Dim Byref sentance as char[14])
  Dim v as byte
  
    For v = 0 to length(sentance) - 1
      NOK_Chr(sentance[v])
    Next v
  
  End Sub
  '****************************************************************************'
  
  end.
```


Συζήτηση γίνεται ταυτόχρονα και εδώ στο φορουμ της MikroE:* MikroBasic PRO and NOKIA 3310 LCD. Any libraries?,* όπου βρίσκεται και ολόκληρος ο κώδικας

----------


## Thanos10

Στεργιε σου ανεβαζω μια σελιδα για την 3310 πολυ ενδιαφερον μονο κανε μεταφραση http://radiokot.ru/articles/29/

----------


## antonis_x

> Αντώνη, 
> μήπως θα μπορούσα να δώ τον κώδικά σου? Να δώ πως να το κάνω και εγώ στην mikroBasic PRO?



Στέργιε οι βιβλιοθήκες μου γι αυτή την οθόνη είναι μεγάλο μπέρδεμα αυτή τη στιγμή γιατί βρίσκονται σε φάση αλλαγών, φτιάχνω κάποιες καινούργιες ρουτίνες κλπ, και με 2 λόγια είναι λίγο χάος.
Πάντως δες εδώ: http://www.botskool.com/tutorials/el...cd-pic-18f2520
Από κει είχα πάρει τις πρώτες μου βιβλιοθήκες, και είχα κάνει  το παραδειγμά του και δουλεύει, κάτω κάτω στη σελίδα δίνει και τις βιβλιοθήκες με τις ρουτίνες για την οθόνη και τον κώδικα του παραδείγματος του σε mikroc.

----------


## Πετρος Πετριδης

Για να μην ανοίξω άλλο θέμα, μήπως ξέρετε πού μπορώ να βρώ μία οθόνη για 3110 c που έχει πατηθεί και χάλασε?Τα διάφορα καταστήματα κινητών την έχουν από 28 εως 45 ευρώ και στο νετ ο ένας δεν έχει στοκ κι άλλος δίνει μόνον χονδρική κλπ.

----------


## billtech

στο ebay κοιταξες αδερφε? απο οσο ειδα εχει πραμα..και φτηνο...

----------


## Stergios_[.gr]

*+1
EBAY 4TW!*

----------


## Thanos10

> Για να μην ανοίξω άλλο θέμα, μήπως ξέρετε πού μπορώ να βρώ μία οθόνη για 3110 c που έχει πατηθεί και χάλασε?Τα διάφορα καταστήματα κινητών την έχουν από 28 εως 45 ευρώ και στο νετ ο ένας δεν έχει στοκ κι άλλος δίνει μόνον χονδρική κλπ.



Εδω εχει http://www.pds.com.gr/index.asp?mod=...itemcats&id=59

----------


## antonis_x

Εχει και στη sparkfun, κάποτε είχε την οθόνη με όλο το μπροστά πλαίσιο, τώρα έχει σκέτη την οθόνη. http://www.sparkfun.com/commerce/pro...oducts_id=9924

----------


## Πετρος Πετριδης

Ευχαριστώ για τις απαντήσεις σας.
Βρήκα αυτό εδώ.Η διαφορά στην τιμή είναι μεγάλη από τα 5 δολάρια ΗΠΑ στα 28 ευρώ.Μήπως είναι απάτη?
http://cgi.ebay.com/LCD-Display-Scre...item563ddb2c17

----------

