Şimdi Ara

PICC ile yazılmış hazır grafik lcd kütüphanesi olan varmı arkadaslar

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
652
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • PICC ile yazılmış hazır grafik lcd kütüphanesi olan varmı arkadaslar elimde 128*64 grafik lcd kendimce bişeyler yaptım fakat basarılı olamadım yardımlarınınız bekliyorum



  • arkadaslar yardımlarınınzı bekliyorum
  • pp den @Klein usta demişki :

    Bu kodu renesas için yazmıştım. birkaç değişiklikle pic için de kullanabilirsin.  

    /******************************* display **************************************/
    #include "num0.h"
    #include "num1.h"
    #include "num2.h"
    #include "num3.h"
    #include "num4.h"
    #include "num5.h"
    #include "num6.h"
    #include "num7.h"
    #include "num8.h"
    #include "num9.h"
    #include "comma.h"
    #include "space.h"

    /************************* 320x240 LCM definations *******************************/
    #define MAX_COL 320 //MAX COLUMN(SEGMENT)
    #define MAX_ROW 240 // MAX ROW(COMMON)
    #define CM 1
    #define DT 0
    #define TXT_LAYER 0
    #define GRP_LAYER 2400
    #define FX 0x87
    #define FY 0x7
    #define CR_SD 39
    #define TC_P 66
    #define L_F 239
    #define APL 40
    #define SAD_2L 0x60
    #define SAD_2H 0x09

    #define run_led p6_0
    #define cr_str p8_1
    #define cr_clk p8_2
    #define cr_data p8_3
    #define rt_str p8_4
    #define rt_clk p8_6
    #define rt_data p8_7
    far const unsigned int divtable[] = {1000,100,10,1}; //
    far const unsigned char segmap[] = {
    // xabcdefg
    0b10000001,
    0b11001111,
    0b10010010,
    0b10000110,
    0b11001100,
    0b10100100,
    0b10100000,
    0b10001111,
    0b10000000,
    0b10000100}; //

    unsigned char ledarray[8];
    /***************************************************************/


    void delayus(void){
    unsigned int I;
    I=2;
    while(I--);
    }
    void code_w( unsigned char dataval){
    delayus();
    dispa0 = 1;
    disprd = 1;
    dispwr = 0;
    delayus();
    screenbus = dataval;
    delayus();
    dispwr=1;
    }

    void data_w(unsigned char dataval){
    delayus();
    dispa0=0;
    disprd=1;
    dispwr=0;
    screenbus=dataval;
    delayus();
    dispwr=1;
    }

    void disp_on(void){
    code_w(0x59);
    data_w(0x14);
    }
    void disp_off(void){
    code_w(0x58);
    data_w(0x14);
    }

    void gotoxy(unsigned char x , unsigned char y ,unsigned int layer){
    unsigned int temp;
    temp=x+(y*40)+layer;
    code_w(0x46);
    data_w(temp);
    data_w(temp/256);
    }


    void _far showbitmap(unsigned char x ,
    unsigned char y,
    unsigned char far *bitmap)
    {
    unsigned char I;
    unsigned char Z;
    unsigned int K = 2;
    for(Z = 0; Z < bitmap[1] ; Z++){
    gotoxy(x,Z+y,GRP_LAYER);
    code_w(0x42);
    for (I=0; I < bitmap[0] ; I++){
    data_w(bitmap[K]);
    K++;
    }
    }
    }

    void _far shownum(unsigned char x ,
    unsigned char y,
    unsigned char *num)
    {
    unsigned char V;
    unsigned char T;
    unsigned char k=0;
    unsigned char X;
    unsigned char Y;
    X=x;
    Y=y;
    for(V = 0; num[V] !=0 ; V++){
    T=num[V];
    switch(T){
    case '0': showbitmap(V*2+X-k,Y,num0);break;
    case '1': showbitmap(V*2+X-k,Y,num1);break;
    case '2': showbitmap(V*2+X-k,Y,num2);break;
    case '3': showbitmap(V*2+X-k,Y,num3);break;
    case '4': showbitmap(V*2+X-k,Y,num4);break;
    case '5': showbitmap(V*2+X-k,Y,num5);break;
    case '6': showbitmap(V*2+X-k,Y,num6);break;
    case '7': showbitmap(V*2+X-k,Y,num7);break;
    case '8': showbitmap(V*2+X-k,Y,num8);break;
    case '9': showbitmap(V*2+X-k,Y,num9);break;
    case ',': showbitmap(V*2+X,Y+11,comma);k=1;break;
    case ' ': showbitmap(V*2+X-k,Y,spacechr);break;
    }
    }
    }

    void fillgraph(unsigned char x ,
    unsigned char y,
    unsigned char width,
    unsigned char height,
    unsigned char pattern)
    {

    unsigned char I;
    unsigned char Z;
    for(Z = 0; Z < height ; Z++){
    gotoxy(x,Z+y,GRP_LAYER);
    code_w(0x42);
    for (I=0; I < (width) ; I++){
    data_w(pattern);
    }
    }
    }

    void filltext(unsigned char x ,
    unsigned char y,
    unsigned char width ,
    unsigned char height,
    unsigned char pattern)
    {

    unsigned char I;
    unsigned char Z;
    for(Z = 0; Z < height ; Z++){
    gotoxy(x,Z+y,TXT_LAYER);
    code_w(0x42);
    for (I=0; I < (width) ; I++){
    data_w(pattern);
    }
    }
    }

    void _far writeln(unsigned char x , unsigned char y , unsigned char far *msg){
    unsigned char I;
    gotoxy (x,y,TXT_LAYER);
    code_w(0x42);
    for(I = 0; msg[I] != 0; I++){
    data_w(msg[I]);
    }
    }

    void writedecimal(unsigned char x , unsigned char y ,unsigned char length, unsigned char dataval){
    unsigned char I;
    gotoxy (x,y,TXT_LAYER);
    code_w(0x42);
    for(I = 3-length; I < 3; I++){
    data_w(((dataval % divtable[I]) / divtable[I+1])+4;
    }
    }

    void systemset(void){
    code_w(0x40);
    data_w(0x30); // internal cgrom , no d6 correction , 8 pixel char , single panel , inverse display
    data_w(FX); // 87H 8bit per char , 2 ac frame
    data_w(FY); // 07H 8bit per char
    data_w(CR_SD); // 39D 40Col
    data_w(TC_P); // 66
    data_w(L_F); // 239D 240 Line
    data_w(APL); // 40
    data_w(0); // end
    }
    void scroll(void){
    code_w(0x44);
    data_w(0);
    data_w(0);
    data_w(L_F);
    data_w(SAD_2L);
    data_w(SAD_2H);
    data_w(L_F);
    data_w(0);
    data_w(0);
    data_w(0);
    data_w(0);
    }

    void hdot_scr(void){
    code_w(0x5A);
    data_w(0x00);
    }

    void overlay(void){
    code_w(0x5B);
    data_w(0x01);
    }

    void csr_form(void){
    code_w(0x5D);
    data_w(0x07);
    data_w(0x87);
    }

    void csr_dir(unsigned char dir){
    code_w(0x4C+dir);
    }

    void cursor_on(void){
    code_w(0x59);
    data_w(0x17);
    }
    void cursor_off(void){
    code_w(0x59);
    data_w(0x14);
    }

    void clrscr(void){
    fillgraph(0,0,40,240,0);
    filltext(0,0,40,30,0);
    }

    void lcdinit(void){
    systemset();
    scroll();
    hdot_scr();
    overlay();
    csr_form();
    csr_dir(0);
    }

    /***********************************************************************************************

    Led gösterge

    ***********************************************************************************************/

    void send_rt(unsigned char *data){
    unsigned char digitdata=0;
    unsigned char I;
    unsigned char Z;
    unsigned char c;

    rt_str=0;
    for(Z=0;Z<6;Z++){
    c=data[5-Z]-'0';
    digitdata=segmap[c];
    for(I=0;I<8;I++){
    rt_clk=0;
    rt_data= digitdata & 0x01;
    delayus();
    rt_clk=1;
    digitdata >>=1;
    }

    }
    rt_str=1;
    }

    void send_cr(unsigned char *data){
    unsigned char digitdata=0;
    unsigned char I;
    unsigned char Z;
    unsigned char c;

    cr_str=0;
    for(Z=0;Z<6;Z++){
    c=data[5-Z]-'0';
    digitdata=segmap[c];
    for(I=0;I<8;I++){
    cr_clk=0;
    cr_data= digitdata & 0x01;
    delayus();
    cr_clk=1;
    digitdata >>=1;
    }

    }
    cr_str=1;
    }


    /****************** main **********************

    lcdinit();
    disp_off()
    showbitmap(35,0, errortable);
    drawmainmenu(3);
    writeln(5,25,"Merhaba dünya");
    disp_on();
    /****************************************************/

    /******************** Error Table ********************/
    far const unsigned char errortable[] = {
    2,16,
    0b11111111,0b11111111,
    0b11111110,0b01111111,
    0b11111100,0b00111111,
    0b11111100,0b00111111,
    0b11111100,0b00111111,
    0b11111100,0b00111111,
    0b11111100,0b00111111,
    0b11111100,0b00111111,
    0b11111100,0b00111111,
    0b11111100,0b00111111,
    0b11111110,0b01111111,
    0b11111111,0b11111111,
    0b11111110,0b01111111,
    0b11111100,0b00111111,
    0b11111110,0b01111111,
    0b11111111,0b11111111
    };




  • Kontrolcusu nedir.ks serisi mi ya da t6963 serisi mi?
  • quote:

    Orjinalden alıntı: muuzoo

    Kontrolcusu nedir.ks serisi mi ya da t6963 serisi mi?

    işlemcisi KS
    ayrıca musallim arkadaşımada teşeekur ederim
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.