久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3045|回復: 3
打印 上一主題 下一主題
收起左側

求教怎樣在1.8寸tftlcd上顯示變量的數值

[復制鏈接]
跳轉到指定樓層
樓主
ID:562680 發表于 2020-2-25 21:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
官方提供的數據

以下為guan'fang
u16 LCD_BGR2RGB(u16 c)
{
  u16  r,g,b,rgb;   
  b=(c>>0)&0x1f;
  g=(c>>5)&0x3f;
  r=(c>>11)&0x1f;         
  rgb=(b<<11)+(g<<5)+(r<<0);                 
  return(rgb);

}




void Gui_Circle(u16 X,u16 Y,u16 R,u16 fc)
{//BresenhamËã·¨
    unsigned short  a,b;
    int c;
    a=0;
    b=R;
    c=3-2*R;
    while (a<b)
    {
        Gui_DrawPoint(X+a,Y+b,fc);     //        7
        Gui_DrawPoint(X-a,Y+b,fc);     //        6
        Gui_DrawPoint(X+a,Y-b,fc);     //        2
        Gui_DrawPoint(X-a,Y-b,fc);     //        3
        Gui_DrawPoint(X+b,Y+a,fc);     //        8
        Gui_DrawPoint(X-b,Y+a,fc);     //        5
        Gui_DrawPoint(X+b,Y-a,fc);     //        1
        Gui_DrawPoint(X-b,Y-a,fc);     //        4

        if(c<0) c=c+4*a+6;
        else
        {
            c=c+4*(a-b)+10;
            b-=1;
        }
       a+=1;
    }
    if (a==b)
    {
        Gui_DrawPoint(X+a,Y+b,fc);
        Gui_DrawPoint(X+a,Y+b,fc);
        Gui_DrawPoint(X+a,Y-b,fc);
        Gui_DrawPoint(X-a,Y-b,fc);
        Gui_DrawPoint(X+b,Y+a,fc);
        Gui_DrawPoint(X-b,Y+a,fc);
        Gui_DrawPoint(X+b,Y-a,fc);
        Gui_DrawPoint(X-b,Y-a,fc);
    }
       
}
//»-Ïßoˉêy£¬ê1óÃBresenham »-ÏßËã·¨
void Gui_DrawLine(u16 x0, u16 y0,u16 x1, u16 y1,u16 Color)   
{
int dx,             // difference in x's
    dy,             // difference in y's
    dx2,            // dx,dy * 2
    dy2,
    x_inc,          // amount in pixel space to move during drawing
    y_inc,          // amount in pixel space to move during drawing
    error,          // the discriminant i.e. error i.e. decision variable
    index;          // used for looping       


        Lcd_SetXY(x0,y0);
        dx = x1-x0;//¼ÆËãx¾ààë
        dy = y1-y0;//¼ÆËãy¾ààë

        if (dx>=0)
        {
                x_inc = 1;
        }
        else
        {
                x_inc = -1;
                dx    = -dx;  
        }
       
        if (dy>=0)
        {
                y_inc = 1;
        }
        else
        {
                y_inc = -1;
                dy    = -dy;
        }

        dx2 = dx << 1;
        dy2 = dy << 1;

        if (dx > dy)//x¾ààë′óóúy¾àà룬ÄÇÃ′ÿ¸öxÖáéÏÖ»óDò»¸öμ㣬ÿ¸öyÖáéÏóDèô¸é¸öμã
        {//ÇòÏßμÄμãêyμèóúx¾àà룬òÔxÖáμYÔö»-μã
                // initialize error term
                error = dy2 - dx;

                // draw the line
                for (index=0; index <= dx; index++)//òa»-μÄμãêy2»»á3¬1yx¾ààë
                {
                        //»-μã
                        Gui_DrawPoint(x0,y0,Color);
                       
                        // test if error has overflowed
                        if (error >= 0) //êÇ·ñDèòaÔö¼óy×ø±êÖμ
                        {
                                error-=dx2;

                                // move to next line
                                y0+=y_inc;//Ôö¼óy×ø±êÖμ
                        } // end if error overflowed

                        // adjust the error term
                        error+=dy2;

                        // move to the next pixel
                        x0+=x_inc;//x×ø±êÖμÿ′λ-μãoó¶¼μYÔö1
                } // end for
        } // end if |slope| <= 1
        else//yÖá′óóúxÖᣬÔòÿ¸öyÖáéÏÖ»óDò»¸öμ㣬xÖáèô¸é¸öμã
        {//òÔyÖáÎaμYÔö»-μã
                // initialize error term
                error = dx2 - dy;

                // draw the line
                for (index=0; index <= dy; index++)
                {
                        // set the pixel
                        Gui_DrawPoint(x0,y0,Color);

                        // test if error overflowed
                        if (error >= 0)
                        {
                                error-=dy2;

                                // move to next line
                                x0+=x_inc;
                        } // end if error overflowed

                        // adjust the error term
                        error+=dx2;

                        // move to the next pixel
                        y0+=y_inc;
                } // end for
        } // end else |slope| > 1
}



void Gui_box(u16 x, u16 y, u16 w, u16 h,u16 bc)
{
        Gui_DrawLine(x,y,x+w,y,0xEF7D);
        Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0x2965);
        Gui_DrawLine(x,y+h,x+w,y+h,0x2965);
        Gui_DrawLine(x,y,x,y+h,0xEF7D);
    Gui_DrawLine(x+1,y+1,x+1+w-2,y+1+h-2,bc);
}
void Gui_box2(u16 x,u16 y,u16 w,u16 h, u8 mode)
{
        if (mode==0)        {
                Gui_DrawLine(x,y,x+w,y,0xEF7D);
                Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0x2965);
                Gui_DrawLine(x,y+h,x+w,y+h,0x2965);
                Gui_DrawLine(x,y,x,y+h,0xEF7D);
                }
        if (mode==1)        {
                Gui_DrawLine(x,y,x+w,y,0x2965);
                Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0xEF7D);
                Gui_DrawLine(x,y+h,x+w,y+h,0xEF7D);
                Gui_DrawLine(x,y,x,y+h,0x2965);
        }
        if (mode==2)        {
                Gui_DrawLine(x,y,x+w,y,0xffff);
                Gui_DrawLine(x+w-1,y+1,x+w-1,y+1+h,0xffff);
                Gui_DrawLine(x,y+h,x+w,y+h,0xffff);
                Gui_DrawLine(x,y,x,y+h,0xffff);
        }
}


/**************************************************************************************
1|ÄüÃèêö: ÔúÆáÄ»ÏÔê¾ò»í1Æeμİ′Å¥¿ò
êä    èë: u16 x1,y1,x2,y2 °′Å¥¿ò×óéϽÇoíóòϽÇ×ø±ê
êä    3ö: ÎT
**************************************************************************************/
void DisplayButtonDown(u16 x1,u16 y1,u16 x2,u16 y2)
{
        Gui_DrawLine(x1,  y1,  x2,y1, GRAY2);  //H
        Gui_DrawLine(x1+1,y1+1,x2,y1+1, GRAY1);  //H
        Gui_DrawLine(x1,  y1,  x1,y2, GRAY2);  //V
        Gui_DrawLine(x1+1,y1+1,x1+1,y2, GRAY1);  //V
        Gui_DrawLine(x1,  y2,  x2,y2, WHITE);  //H
        Gui_DrawLine(x2,  y1,  x2,y2, WHITE);  //V
}

/**************************************************************************************
1|ÄüÃèêö: ÔúÆáÄ»ÏÔê¾ò»°¼ÏÂμİ′Å¥¿ò
êä    èë: u16 x1,y1,x2,y2 °′Å¥¿ò×óéϽÇoíóòϽÇ×ø±ê
êä    3ö: ÎT
**************************************************************************************/
void DisplayButtonUp(u16 x1,u16 y1,u16 x2,u16 y2)
{
        Gui_DrawLine(x1,  y1,  x2,y1, WHITE); //H
        Gui_DrawLine(x1,  y1,  x1,y2, WHITE); //V
       
        Gui_DrawLine(x1+1,y2-1,x2,y2-1, GRAY1);  //H
        Gui_DrawLine(x1,  y2,  x2,y2, GRAY2);  //H
        Gui_DrawLine(x2-1,y1+1,x2-1,y2, GRAY1);  //V
    Gui_DrawLine(x2  ,y1  ,x2,y2, GRAY2); //V
}


void Gui_DrawFont_GBK16(u16 x, u16 y, u16 fc, u16 bc, u8 *s)
{
        unsigned char i,j;
        unsigned short k,x0;
        x0=x;

        while(*s)
        {       
                if((*s) < 128)
                {
                        k=*s;
                        if (k==13)
                        {
                                x=x0;
                                y+=16;
                        }
                        else
                        {
                                if (k>32) k-=32; else k=0;
       
                            for(i=0;i<16;i++)
                                for(j=0;j<8;j++)
                                        {
                                            if(asc16[k*16+i]&(0x80>>j))        Gui_DrawPoint(x+j,y+i,fc);
                                                else
                                                {
                                                        if (fc!=bc) Gui_DrawPoint(x+j,y+i,bc);
                                                }
                                        }
                                x+=8;
                        }
                        s++;
                }
                       
                else
                {
               

                        for (k=0;k<hz16_num;k++)
                        {
                          if ((hz16[k].Index[0]==*(s))&&(hz16[k].Index[1]==*(s+1)))
                          {
                                    for(i=0;i<16;i++)
                                    {
                                                for(j=0;j<8;j++)
                                                        {
                                                            if(hz16[k].Msk[i*2]&(0x80>>j))        Gui_DrawPoint(x+j,y+i,fc);
                                                                else {
                                                                        if (fc!=bc) Gui_DrawPoint(x+j,y+i,bc);
                                                                }
                                                        }
                                                for(j=0;j<8;j++)
                                                        {
                                                            if(hz16[k].Msk[i*2+1]&(0x80>>j))        Gui_DrawPoint(x+j+8,y+i,fc);
                                                                else
                                                                {
                                                                        if (fc!=bc) Gui_DrawPoint(x+j+8,y+i,bc);
                                                                }
                                                        }
                                    }
                                }
                          }
                        s+=2;x+=16;
                }
               
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:584814 發表于 2020-2-26 07:56 | 只看該作者
你貼的程序里用Gui_DrawFont_GBK16()函數。
回復

使用道具 舉報

板凳
ID:462827 發表于 2020-2-26 09:01 | 只看該作者
void Gui_DrawFont_GBK16(u16 x, u16 y, u16 fc, u16 bc, u8 *s)

這個應該就是顯示函數,是在x,y坐標開始,以fc為前景色、bc為背景色,顯示字符串s。
你可以根據你的屏幕最長能顯示多少字符來設置一個字符串,然后用sprintf生成其內容,并用上面這個函數來顯示,可以中英文混合并試驗,比如:
u8 str[80];
u16 num=666;
sprintf(str,"這是一個數字:%d",num);
Gui_DrawFont_GBK16(0,0,0x00, 0xff, str);
回復

使用道具 舉報

地板
ID:229016 發表于 2020-2-26 09:39 | 只看該作者
建議你參考原子的液晶屏例程,他的庫函數有函數接口
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产成人精品女人久久久 | 国产在线一区二区三区 | 国产精品久久久久久影院8一贰佰 | 国产欧美在线一区二区 | 国产一区久久精品 | 欧美一区二区三区一在线观看 | 久久伊人操 | 在线成人免费视频 | 精品美女视频在线观看免费软件 | 国产福利在线视频 | 精品一区二区在线观看 | 亚洲网站在线观看 | 粉嫩一区二区三区四区公司1 | 午夜免费看| 欧美久 | 国产三级大片 | 夜夜爽99久久国产综合精品女不卡 | 亚洲精品第一页 | 成人免费在线视频 | 欧美日韩亚洲二区 | 日韩精品在线免费观看视频 | 久久久久久久久毛片 | 国产最好的av国产大片 | 国产电影一区 | 狠狠操狠狠搞 | 日韩成人免费中文字幕 | 国产第一亚洲 | 久久久久久久久久爱 | 久草在线| 精品91久久久 | 日韩欧美在线免费观看视频 | 日日操日日舔 | 999精品视频 | 天堂av资源 | 免费av手机在线观看 | 99在线免费观看 | 亚洲一区亚洲二区 | 欧美色专区 | 一区二区三区在线播放 | 一区二区三区亚洲 | 精品久久久久久久久久久院品网 |