Elektronika.lt
 2025 m. balandžio 27 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2025 04 27, 17:47. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Atmega ir NOKIA lcd
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 12
Pereiti prie 1, 2  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 03, 19:15 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Sloikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Sveiki. Gal galetumet pirma kart padėti pajungti prie Atmega16 NOKIA 5110 lcd ekraną? Turiu visą telefoną, galvoju nupjauti platos dalį ant kurios dedasi ekranas kaip parodyta čia :

http://serdisplib.sourceforge.net/ser/pcd8544.html

Mano kaip type2 nuorodoj, su guminiais kontaktais.

Net neįsivaizduoju kaip jį jungt prie atmegos. Gal galit patart? Kiek ieškojau tik su PICais schemos. Bibliotekos ir valdymas lyg ir toks pat kaip 3310 tik nežinau, kaip dėl kontaktų. Gal kam teko užvaldyti tokį lcd? Ačiū už betkokią pagalbą.
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 03, 22:27 Pranešti apie taisyklių pažeidimą Atsakyti su citata
sneikaz
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kaip ir prie bet kurio kito proco junk laidais...
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 04, 13:03 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Sloikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Nu vo, dabar viskas daug aiškiau. O prie kurio porto jungt ir koki kontakta prie kurios kojos? Galima kažkaip sujungt, kad lcd bibliotekoj nieko keist nereiktu.
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 04, 13:42 Pranešti apie taisyklių pažeidimą Atsakyti su citata
caca
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
kaip prijungsi -taip ir bus gerai... O programuoti-teks pagal prijungima.

_________________
Nieko taip lengvai nedaliname, kaip patarimus...
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 04, 13:56 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Sloikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Bet pas mane tas lcd be jokio kontrolerio. Kiek žejau tai 3310 lcd dar jungia per kažkokį philips kontrolerį.

Gal galit pasakyt kaip tiksliai pajungt?
Cia is bibliotekos:

Kodas:
#define SET_DC_PIN                 PORTB |= 0x02 
#define CLEAR_DC_PIN               PORTB &= ~0x02
#define SET_SCE_PIN                PORTB |= 0x04
#define CLEAR_SCE_PIN              PORTB &= ~0x04
#define SET_RST_PIN                PORTB |= 0x10
#define CLEAR_RST_PIN              PORTB |= 0x10


Cia lcd pinai:

Kodas:

           |     1 2 3 4 5 6 7 8 9    |
                      rear view
               connector is visible

 1 .. VDD
 2 .. SCLK
 3 .. SI
 4 .. D/C
 5 .. /CS
 6 .. Osc
 7 .. GND
 8 .. Vout
 9 .. /RES
                 


VDD, GND pinai aiškūs Smile. RES lygtais nėra pas 3310, tai galima apseit gal ir be reseto. Kaip kitus sujungt? Osc tai išoriniam kvarcui turėtų būt, kiek suprantu jis nebūtinas.
Kažko toj telefo platoj 1 ir 6 kontaktas trumpai jungtas, t.y VDD su GND, kame šaknys?
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 04, 16:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
sneikaz
Patyręs dalyvis
Patyręs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Gal tu pailsek su tais lcd, nes kazkaip ir su skaiciais iki 9 sunkiai sekas kiek matau...
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 04, 19:59 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Sloikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
sneikaz rašo:
Gal tu pailsek su tais lcd, nes kazkaip ir su skaiciais iki 9 sunkiai sekas kiek matau...


ok, thx
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 06, 00:04 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ciklius
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Na kaip visada lengviausia pi*** protą Smile. o kas ką naudingo pasakėte ???


http://host-photo.com/photo.php?f=nokiaxUIF.jpg

Aš naudoju visą plata kartu su mygtukais.
Laidus lituoju prie platos iš kitos pusės
http://host-photo.com/photo.php?f=IMAG0021.jpg

Viršutinė eilė, dešinys laidas kiek atsimenu +5V (Jokių papildomu kondiku ir t.t nereikia viskas jau yra ant platos)


Apatinė eilė klaviatūra.

Naudojamos kojos
/* Pinout for LCD */
#define LCD_DC_PIN (1<<PD0)
#define LCD_CLK_PIN (1<<PD1)
#define LCD_DATA_PIN (1<<PD4) // PD2
#define LCD_CE_PIN (1<<PD5) // PD3
#define LCD_RST_PIN (1<<PD6) // PD4





http://host-photo.com/photo.php?f=IMAG0023.jpg
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 06, 11:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
MarcaZ
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Is pradziu ledus bent pamirksink, suprasi ka "PORTB, DDRB, (1 << 1), |=, &= ~..." ir t.t. reiskia...


Paskutinį kartą redagavo MarcaZ, 2010 06 06, 11:09. Redaguota 1 kartą
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 06, 11:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Sloikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Tikrai 5V? Nereik 3.3V ekranui?


Paskutinį kartą redagavo Sloikas, 2010 06 06, 13:55. Redaguota 1 kartą
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 06, 13:33 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Sloikas
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
MarcaZ rašo:
Is pradziu ledus bent pamirksink, suprasi ka "PORTB, DDRB, (1 << 1), |=, &= ~..." ir t.t. reiskia...


Oj kiek aš tuos ledus prisimirksinau... Ir su PWM ir su taimeriais... Maždaug dabar viskas aišku, tik nežinau kaip dėl to lcd maitinimo, ar galima 5V jungt.

Radau, kad šitas lcd susitvarko ir su 5V signalais iš kontrolerio, tai tada turbūt ir maitinimas toks pat nebaisus.

Ciklius gal galetum imest tas bibles su kuriom tu dirbi? Man kažko viskas susipainiojo.... Sujungiau taip, kaip sitoj schemoj, tik prie porto C , o ne B.

http://tinkerish.com/blog/wp-content/uploads/2009/01/schematic-atmega8-3310-thermistor.png
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 07, 19:40 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ciklius
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
LCD.C
Kodas:

/*
** lcd.c
**
** LCD 3310 driver
** Unbuffered version - very small memory footprint
** Target: ATMEGA128 :: AVR-GCC
**
** Written by Tony Myatt - 2007
** Quantum Torque - www.quantumtorque.com
*/
#include <stdio.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "lcd.h"

/* delay macro function */
#define lcd_delay() for(int i=-32000;i<32000;i++)

/* Command type sent to the lcd */
typedef enum { LCD_CMD  = 0, LCD_DATA = 1 } LcdCmdData;

/* Function prototypes */
void lcd_base_addr(unsigned int addr);
void lcd_send(unsigned char data, LcdCmdData cd);

/* The lcd cursor position */
int lcdCacheIdx;

/* Alphabet lookup */
unsigned char PROGMEM font5x7 [][5] = {
   { 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 },   // $
   { 0x32, 0x34, 0x08, 0x16, 0x26 },   // %
    { 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
    { 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 },   // ]
    { 0x06, 0x09, 0x09, 0x06, 0x00 },   // ^
    { 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
    { 0x00, 0x7F, 0x3E, 0x1C, 0x08 },   // > Filled
   { 0x08, 0x1C, 0x3E, 0x7F, 0x00 },     // < Filled
   { 0x08, 0x7C, 0x7E, 0x7C, 0x08 },   // Arrow up
   { 0x10, 0x3E, 0x7E, 0x3E, 0x10 },   // Arrow down   
   { 0x3E, 0x3E, 0x3E, 0x3E, 0x3E },   // Stop
   { 0x00, 0x7F, 0x3E, 0x1C, 0x08 }    // Play
};

/* Performs IO & LCD controller initialization */
void lcd_init(void)
{
    // Pull-up on reset pin
    LCD_PORT |= LCD_RST_PIN;
   
   // Set output bits on lcd port
   LCD_DDR |= LCD_RST_PIN | LCD_CE_PIN | LCD_DC_PIN | LCD_DATA_PIN | LCD_CLK_PIN;
   
   // Wait after VCC high for reset (max 30ms)
    _delay_ms(15);
   
    // Toggle display reset pin
    LCD_PORT &= ~LCD_RST_PIN;
    lcd_delay();
    LCD_PORT |= LCD_RST_PIN;

    // Disable LCD controller
    LCD_PORT |= LCD_CE_PIN;

    lcd_send(0x21, LCD_CMD);  // LCD Extended Commands
    lcd_send(0xC8, LCD_CMD);  // Set LCD Vop(Contrast)
    lcd_send(0x06, LCD_CMD);  // Set Temp coefficent
    lcd_send(0x13, LCD_CMD);  // LCD bias mode 1:48
    lcd_send(0x20, LCD_CMD);  // Standard Commands, Horizontal addressing
    lcd_send(0x0C, LCD_CMD);  // LCD in normal mode
   
    // Clear lcd
    lcd_clear();
   
   // For using printf
   fdevopen(lcd_chr, 0);
}

/* Set display contrast. Note: No change is visible at ambient temperature */
void lcd_contrast(unsigned char contrast)
{
   lcd_send(0x21, LCD_CMD);            // LCD Extended Commands
    lcd_send(0x80 | contrast, LCD_CMD);      // Set LCD Vop(Contrast)
    lcd_send(0x20, LCD_CMD);            // LCD std cmds, hori addr mode
}

/* Clears the display */
void lcd_clear(void)
{
   lcdCacheIdx = 0;
   
   lcd_base_addr(lcdCacheIdx);
   
    // Set the entire cache to zero and write 0s to lcd
    for(int i=0;i<LCD_CACHE_SIZE;i++) {
      lcd_send(0, LCD_DATA);
    }
}

/* Clears an area on a line */
void lcd_clear_area(unsigned char line, unsigned char startX, unsigned char endX)

    // Start and end positions of line
    int start = (line-1)*84+(startX-1);
    int end = (line-1)*84+(endX-1);
   
   lcd_base_addr(start);
   
    // Clear all data in range from cache
    for(unsigned int i=start;i<end;i++) {
        lcd_send(0, LCD_DATA);
    }
}

/* Clears an entire text block. (rows of 8 pixels on the lcd) */
void lcd_clear_line(unsigned char line)
{
    lcd_clear_area(line, 1, LCD_X_RES);
}

/* Sets cursor location to xy location corresponding to basic font size */
void lcd_goto_xy(unsigned char x, unsigned char y)
{
    lcdCacheIdx = (x-1)*6 + (y-1)*84;
}

/* Sets cursor location to exact xy pixel location on the lcd */
void lcd_goto_xy_exact(unsigned char x, unsigned char y)
{
    lcdCacheIdx = (x-1) + (y-1)*84;
}

/* Displays a character at current cursor location */
void lcd_chr(char chr)
{
   lcd_base_addr(lcdCacheIdx);

    // 5 pixel wide characters and add space
    for(unsigned char i=0;i<5;i++) {
      lcd_send(pgm_read_byte(&font5x7[chr-32][i]) << 1, LCD_DATA);
    }
   lcd_send(0, LCD_DATA);
   
   lcdCacheIdx += 6;
}

/* Displays string at current cursor location and increment cursor location */
void lcd_str(char *str)
{
    while(*str) {
        lcd_chr(*str++);
    }
}

// Set the base address of the lcd
void lcd_base_addr(unsigned int addr) {
   lcd_send(0x80 |(addr % LCD_X_RES), LCD_CMD);
   lcd_send(0x40 |(addr / LCD_X_RES), LCD_CMD);
}

/* Sends data to display controller */
void lcd_send(unsigned char data, LcdCmdData cd)
{
   // Data/DC are outputs for the lcd (all low)
   LCD_DDR |= LCD_DATA_PIN | LCD_DC_PIN;
   
    // Enable display controller (active low)
    LCD_PORT &= ~LCD_CE_PIN;

    // Either command or data
    if(cd == LCD_DATA) {
        LCD_PORT |= LCD_DC_PIN;
    } else {
        LCD_PORT &= ~LCD_DC_PIN;
    }
   
   for(unsigned char i=0;i<8;i++) {
   
      // Set the DATA pin value
      if((data>>(7-i)) & 0x01) {
         LCD_PORT |= LCD_DATA_PIN;
      } else {
         LCD_PORT &= ~LCD_DATA_PIN;
      }
      
      // Toggle the clock
      LCD_PORT |= LCD_CLK_PIN;
      LCD_PORT &= ~LCD_CLK_PIN;
   }

   // Disable display controller
    LCD_PORT |= LCD_CE_PIN;
   
   // Data/DC can be used as button inputs when not sending to LCD (/w pullups)
   LCD_DDR &= ~(LCD_DATA_PIN | LCD_DC_PIN);
   LCD_PORT |= LCD_DATA_PIN | LCD_DC_PIN;
}


[/list]
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 07, 19:41 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ciklius
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
LCD.H

Kodas:

/*
** lcd.h
**
** LCD 3310 driver
** Target: ATMEGA :: AVR-GCC
**
** Written by Tony Myatt - 2007
** Quantum Torque - www.quantumtorque.com
*/
#ifndef _NOKIALCD_H_
#define _NOKIALCD_H_

/* Lcd screen size */
#define LCD_X_RES 84
#define LCD_Y_RES 48
#define LCD_CACHE_SIZE ((LCD_X_RES * LCD_Y_RES) / 8)

/* Pinout for LCD */
#define LCD_DC_PIN       (1<<PD0)
#define LCD_CLK_PIN    (1<<PD1)
#define LCD_DATA_PIN    (1<<PD4)  // PD2
#define LCD_CE_PIN       (1<<PD5)  // PD3
#define LCD_RST_PIN    (1<<PD6)  // PD4
#define LCD_PORT      PORTD
#define LCD_DDR         DDRD

/* Special Chars */
#define ARROW_RIGHT   ICON(0)
#define ARROW_LEFT    ICON(1)
#define ARROW_UP    ICON(2)
#define ARROW_DOWN    ICON(3)
#define STOP       ICON(4)
#define PLAY       ICON(5)

/* Function for my special characters */
#define   ICON(x)      'z'+1+x

void lcd_init(void);
void lcd_contrast(unsigned char contrast);
void lcd_clear(void);
void lcd_clear_area(unsigned char line, unsigned char startX, unsigned char endX);
void lcd_clear_line(unsigned char line);
void lcd_goto_xy(unsigned char x, unsigned char y);
void lcd_goto_xy_exact(unsigned char x, unsigned char y);
void lcd_chr(char chr);
void lcd_str(char* str);

#endif



Paskutinį kartą redagavo Ciklius, 2010 06 07, 19:44. Redaguota 1 kartą
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 07, 19:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ciklius
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
main.c

Kodas:

/*
** main.c
**
** Nokia 3310 Example Program
** Target: ATMEGA :: AVR-GCC
**
** Written by Tony Myatt - 2007
** Quantum Torque - www.quantumtorque.com
*/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <avr/pgmspace.h>
#include <stdio.h>
#include "lcd.h"

/* main -- Program starts here */
int main(void)
{   
   // Setup LCD
   lcd_init();
   lcd_contrast(0x40);
   
   // Print on first line
   lcd_goto_xy(1,1);
   lcd_str("Banzai :P");
   
   // Print on second line with custom characters
   lcd_goto_xy(4,2);
   lcd_chr(ARROW_LEFT);
   printf(" CIKLIUS ");
   lcd_chr(ARROW_RIGHT);
   
   while(1);
}
 Atmega ir NOKIA lcd
PranešimasParašytas: 2010 06 07, 19:53 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ciklius
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Jeigu jungi per ta nokios platą tada tikrai galima naudoti 5V
Seniau jungiau ant 3,3 , bet laimingo atsitiktinumo dėka gavau didelį kiekį tu ekranų tai pabandžiau su 5v ir nieko veikia Smile



Sloikas rašo:
MarcaZ rašo:
Is pradziu ledus bent pamirksink, suprasi ka "PORTB, DDRB, (1 << 1), |=, &= ~..." ir t.t. reiskia...


Oj kiek aš tuos ledus prisimirksinau... Ir su PWM ir su taimeriais... Maždaug dabar viskas aišku, tik nežinau kaip dėl to lcd maitinimo, ar galima 5V jungt.

Radau, kad šitas lcd susitvarko ir su 5V signalais iš kontrolerio, tai tada turbūt ir maitinimas toks pat nebaisus.

Ciklius gal galetum imest tas bibles su kuriom tu dirbi? Man kažko viskas susipainiojo.... Sujungiau taip, kaip sitoj schemoj, tik prie porto C , o ne B.

http://tinkerish.com/blog/wp-content/uploads/2009/01/schematic-atmega8-3310-thermistor.png
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Football Training Kit
Football Training Equipment, Football Skills, Football Training
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama