您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机KS0108 128X64 LCD C语言AVR程序 正文
KS0108 128X64 LCD C语言AVR程序

KS0108 128X64 LCD C语言AVR程序

点击数:7191 次   录入时间:03-04 12:03:00   整理:http://www.55dianzi.com   AVR单片机
                SetPageCol(uPage,uCol+j);
                if(uCol+j<64) ch_r=read_LCD(LEFT);
                else ch_r=read_LCD(RIGHT);
                ch_r&=0x0f;
                ch_w=ASC_16[k].Msk[j];
                ch_w=ch_w<<4;
                ch_w|=ch_r;
                SetPageCol(uPage,uCol+j);
                if(uCol+j<64)    write_LCD(LEFT,DATA,ch_w); 
                else write_LCD(RIGHT,DATA,ch_w); 
            }
            SetPageCol(uPage+1,uCol);
            for(j=0;j<width;j++)
            {
                SetPageCol(uPage+1,uCol+j);
                
                ch_r=ASC_16[k].Msk[j];
                ch_w=ASC_16[k].Msk[ASC_CHR_WIDTH+j];
                ch_r=ch_r>>4;
                ch_w=ch_w<<4; 
                ch_w|=ch_r;
                SetPageCol(uPage+1,uCol+j);
                if(uCol+j<64)    write_LCD(LEFT,DATA,ch_w); 
                else write_LCD(RIGHT,DATA,ch_w); 
            }
        }
    }
    SetPageCol(uPage,uCol+width);
}


void disp_hz(unsigned char *hz)
{
    unsigned char k,j,uPage,uCol,ch_r,ch_w;
    uPage = GetPage();
    uCol = GetCol();
    for(k=0;k<sizeof(GB_16)/sizeof(GB_16[0]);k++)
    {
        if(hz[0] == GB_16[k].Index[0] && hz[1] == GB_16[k].Index[1])
            break;
    }

    if(CurOffset==1) 
    {
    for(j=0;j<ASC_HZ_WIDTH;j++)
    {
        SetPageCol(uPage,uCol+j);
        ch_w=GB_16[k].Msk[j];
        if(uCol+j<64)    write_LCD(LEFT,DATA,ch_w);
        else write_LCD(RIGHT,DATA,ch_w);
    }
    SetPageCol(uPage+1,uCol);

    for(j=0;j<ASC_HZ_WIDTH;j++)
    {
        SetPageCol(uPage+1,uCol+j);
        if(uCol+j<64) ch_r=read_LCD(LEFT);
        else ch_r=read_LCD(RIGHT);
        ch_r&=0xf0;
        ch_w=GB_16[k].Msk[ASC_HZ_WIDTH+j]&0x0f; 
        ch_w|=ch_r;
        SetPageCol(uPage+1,uCol+j);
        if(uCol+j<64)    write_LCD(LEFT,DATA,ch_w); 
        else write_LCD(RIGHT,DATA,ch_w);
    }
    SetPageCol(uPage,uCol+ASC_HZ_WIDTH);
    }

    else //汉字上半部是写半个字节
    {
    for(j=0;j<ASC_HZ_WIDTH;j++)
    {
        SetPageCol(uPage,uCol+j);
        if(uCol+j<64) ch_r=read_LCD(LEFT);
        else ch_r=read_LCD(RIGHT);
        ch_r&=0x0f;
        ch_w=GB_16[k].Msk[j];
        ch_w=ch_w<<4;
        ch_w|=ch_r;
        SetPageCol(uPage,uCol+j);
        if(uCol+j<64)    write_LCD(LEFT,DATA,ch_w); 
        else write_LCD(RIGHT,DATA,ch_w); 
    }
    SetPageCol(uPage+1,uCol);
    for(j=0;j<ASC_HZ_WIDTH;j++)
    {
        SetPageCol(uPage+1,uCol+j);

        ch_r=GB_16[k].Msk[j];
        ch_w=GB_16[k].Msk[ASC_HZ_WIDTH+j];
        ch_r=ch_r>>4;
        ch_w=ch_w<<4; 
        ch_w|=ch_r;
        SetPageCol(uPage+1,uCol+j);
        if(uCol+j<64)    write_LCD(LEFT,DATA,ch_w); 
        else write_LCD(RIGHT,DATA,ch_w); 
    }
    SetPageCol(uPage,uCol+ASC_HZ_WIDTH);
    }
}

void disp_str(unsigned char *p)
{
    unsigned char i=0;
    while(p[i]>0)
    {
        if(p[i] < 128)
        {    /* ASCII */

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:程序  C语言  AVR单片机单片机-工控设备 - AVR单片机