[help] kode untuk Nokia 6610/6100 lcd dengan atmega32

R

roy_mm

Guest
i have a Nokia 6610/6100 lcd Philips dengan kontrol.i am interfacing dengan atmega32 di 16mhz kristal dan jtag dinonaktifkan.i am winavr menggunakan WinAVR 20080430.

ini adalah kode untuk membuat kotak warnawarni di pusat lcd.

please help me benar dan kode ini saya tulis (atau berkata dimodifikasi dari kode yang tersedia di internet) ----

Kode:# include <avr/io.h>

# include <util/delay.h># define F_CPU 16000000UL# define SPIPORT PORTB

# define SPIDDR DDRB

# define CS 2

# define 3 SDA

# define RESET 4

# define CLK 5# define CBI (reg, sedikit) (reg & = ~ (1 <<bit))

# define SBI (reg, sedikit) (reg | = (1 <<bit))# define CS0 CBI (SPIPORT, CS);

# define CS1 SBI (SPIPORT, CS);

# define CLK0 CBI (SPIPORT, CLK);

# define CLK1 SBI (SPIPORT, CLK);

# define SDA0 CBI (SPIPORT, SDA);

# define SDA1 SBI (SPIPORT, SDA);

# define RESET0 CBI (SPIPORT, RESET);

# define RESET1 SBI (SPIPORT, RESET);# define byte unsigned char

byte n = 0;

byte s1, S2;

byte r, g, b;void sendCMD (byte cmd);

void sendData (byte cmd);

void shiftBits (byte b);

void setPixel (byte r, byte g, byte b);void waitms (int ms)

(

int j;

for (j = 0; j <ms; j )

(

_delay_ms (1);

)

)int main (void)

(

int i;DDRB = 0xFF;SPIDDR = (1 <<SDA) | (1 <<CLK) | (1 <<CS) | (1 <<RESET); / / Port-Arah Setup/ / hardware ulangCS0

SDA0

CLK1RESET1

RESET0waitms (10);RESET1CLK0

SDA1

CLK1waitms (10);/ / Software RESET

sendCMD (0x01);/ / Sleep Out

sendCMD (0x11);/ / Set Constrast

sendCMD (0x25);

sendData (0x3F);/ / Booster ON

sendCMD (0x03);waitms (10);/ / Tampilan inversi pada

sendCMD (0x21);/ / Normal Mode tampilan

sendCMD (0x13);/ / Data pesanan

sendCMD (0xBA);/ / Data Memori akses kontrol

sendCMD (0x36);/ / 8 bit warna

sendCMD (0x3A);

sendData (2);/ / Setup warna tabel

sendCMD (0x2D);sendData (0); / / merah 000 nilai

sendData (2); / / merah 001 nilai

sendData (5); / / merah 010 nilai

sendData (7); / / merah 011 nilai

sendData (9); / / merah 100 nilai

sendData (11); / / merah 101 nilai

sendData (14); / / merah 110 nilai

sendData (16); / / merah 111 nilai

sendData (0); / / hijau 000 nilai

sendData (2); / / hijau 001 nilai

sendData (5); / / hijau 010 nilai

sendData (7); / / hijau 011 nilai

sendData (9); / / hijau 100 nilai

sendData (11); / / hijau 101 nilai

sendData (14); / / hijau 110 nilai

sendData (16); / / hijau 111 nilai

sendData (0); / / biru 000 nilai

sendData (6); / / biru 001 nilai

sendData (11); / / biru 010 nilai

sendData (15); / / biru 011 nilai/ / Nop

sendCMD (0x00);/ / Tampilkan Aktif

sendCMD (0x29);/ / Atur Kolom Alamat

sendCMD (0x2A);

sendData (0);

sendData (131);/ / Halaman Alamat Set

sendCMD (0x2B);

sendData (0);

sendData (131);/ / Menulis beberapa hal (latar belakang)

sendCMD (0x2c);

for (i = 0; i <18000; i )

(

sendData (28); / / 28 adalah hijau

)waitms (200);/ / Mengambil multi-colored persegi di tengah layar

for (i = 0; i <4096; i ) (

setPixel (i, (i% 64) 32, (i / 64) 32);

)sementara (1 == 1)

(

/ / Sekarang menambahkan kode di sini))void shiftBits (byte b) (CLK0

if ((b & 128) = 0) SDA1 lain SDA0

CLK1CLK0

if ((b & 64) = 0) SDA1 lain SDA0

CLK1CLK0

if ((b & 32) = 0) SDA1 lain SDA0

CLK1CLK0

if ((b & 16) = 0) SDA1 lain SDA0

CLK1CLK0

if ((b & 8) = 0) SDA1 lain SDA0

CLK1CLK0

if ((b & 4) = 0) SDA1 lain SDA0

CLK1CLK0

if ((b & 2) = 0) SDA1 lain SDA0

CLK1CLK0

if ((b & 1) = 0) SDA1 lain SDA0

CLK1)void setPixel (warna unsigned char, unsigned char x, unsigned char y)

(

x = 2; / / untuk beberapa alasan dimulai pada 2

sendCMD (0x2B); / / halaman mulai / akhir ram

sendData (x);

sendData (132);

sendCMD (0x2A); / / kolom mulai / akhir ram

sendData (y); / / untuk beberapa alasan dimulai pada 2

sendData (131);

sendCMD (0x2C); / / menulis beberapa crat

sendData (warna);

)/ / mengirim data

void sendData (byte data) (CLK0

SDA1 / / 1 untuk param

CLK1shiftBits (data);

)/ / mengirim cmd

void sendCMD (byte data) (CLK0

SDA0 / / 1 untuk cmd

CLK1shiftBits (data);

)
 

Welcome to EDABoard.com

Sponsor

Back
Top