智能车制作

标题: 求教nokia5110位图显示方法 [打印本页]

作者: HIT120220    时间: 2013-4-12 12:24
标题: 求教nokia5110位图显示方法
/***********************************************************
*函数名称:LCD_draw_bmp_pixel
*函数功能:位图绘制函数
*入口参数:X、Y    :位图绘制的起始X、Y坐标;
           *map    :位图点阵数据;
           Pix_x   :位图像素(长)
           Pix_y   :位图像素(宽)
*出口参数:无
*修改人  :BDC
*修改时间:2011/08/04
*备 注:
***********************************************************/
void LCD_draw_bmp_pixel(uchar X,uchar Y,uchar *map, uchar Pix_x,uchar Pix_y)
{
    uint i,n;
    uchar row;
              //计算位图所占行数
      if (Pix_y%8==0)   //如果为位图所占行数为整数
      row=Pix_y/8;      
      else
         row=Pix_y/8+1;  //如果为位图所占行数不是整数
   
LCD_set_XY(X,Y);
    for (n=0;n<row;n++)  //换行
      {
        for(i=0;i<Pix_x;i++)
          {
       LCD_set_XY(X+i,Y+n);
             LCD_write_byte(map[i+n*Pix_x], 1);
          }                        
      }      
}
没看懂  自己试着改参数 总也显示不出卡!

作者: gy810986741    时间: 2013-4-12 12:24
/*-----------------------------------------------------------------------
LCD_draw_map      : 位图绘制函数

输入参数:X、Y    :位图绘制的起始X、Y坐标;
          *map    :位图点阵数据;
          Pix_x   :位图像素(长)
          Pix_y   :位图像素(宽)

编写日期          :2011-4-5
最后修改日期      :2011-4-6
-----------------------------------------------------------------------*/
void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,unsigned char *map,
                  unsigned char Pix_x,unsigned char Pix_y,unsigned char hhh)
{
    unsigned int i;
    signed int n;
    unsigned char row,*p;
    unsigned char CCD_temp[84];
    p=CCD_temp;
    for (n=0;n<IMAGE_COLUMN;n=n+2)
    {
        *p = (Image[hhh][n])   +(Image[hhh+1][n])*2+ (Image[hhh+2][n])*4+ (Image[hhh+3][n])*8+
             (Image[hhh+4][n])*16+(Image[hhh+5][n])*32+(Image[hhh+6][n])*64+(Image[hhh+7][n])*128;   
        p++;
    }
    if(Pix_y % 8 == 0)
        row = Pix_y / 8;      //计算位图所占行数
    else
        row = Pix_y / 8 + 1;
   
    for (n=0;n<row;n++)
    {
        LCD_set_XY(X,Y);
        for(i=0; i<Pix_x; i++)
        {
            LCD_write_byte(CCD_temp[i+n * Pix_x], 1);
        }
        Y++;                         //换行
    }      
}
作者: gy810986741    时间: 2013-4-12 20:20

作者: gy810986741    时间: 2013-4-12 20:21
液晶是竖着写的,要把原图像数组转换一下,也就是你中间少了一段
作者: HIT120220    时间: 2013-4-13 13:08
我说呢,每次调参数那个起始坐标总是横竖相反,谢谢啦。最佳答案给你了,一会我试试去。
是不是就把这一段参数替换原参数就可以了?

作者: gy810986741    时间: 2013-4-13 13:37
HIT120220 发表于 2013-4-13 13:08
我说呢,每次调参数那个起始坐标总是横竖相反,谢谢啦。最佳答案给你了,一会我试试去。
是不是就把这一段 ...

这个替换过后有没有问题我不敢保证,但是思路是这样的,如果还显示不了,你看看函数的入口参数设置又没有问题,祝你早日解决
作者: gy810986741    时间: 2013-4-13 13:38
HIT120220 发表于 2013-4-13 13:08
我说呢,每次调参数那个起始坐标总是横竖相反,谢谢啦。最佳答案给你了,一会我试试去。
是不是就把这一段 ...

我一直用的是这个,应该不会有问题的





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2