| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4323 人关注过本帖
标题:19264A液晶屏的页地址的8个位是横着放还是竖着放的?
只看楼主 加入收藏
小焦叔叔
Rank: 1
来 自:广西 河池
等 级:新手上路
帖 子:59
专家分:2
注 册:2020-2-15
结帖率:78.57%
收藏
 问题点数:0 回复次数:0 
19264A液晶屏的页地址的8个位是横着放还是竖着放的?
我用19264A液晶屏显示12*12汉字(就是下载的《HZK12》文件里的字形码)时弄了一个复杂的数据转换函数:

struct byte Dat_Turn(unsigned char *dats)
{
   struct byte res;
   unsigned char temp[24];
   unsigned char i,j,k;

   for(i=0;i<8;i++)        //第一组有8行
   {
      for(j=0;j<2;j++)        //每行有2排
      {
         if(j==0)                //左边一排
         {
            for(k=0;k<8;k++)           //每排8位
            {
               if(dats[2*i+j]&(0x80>>k))
               {
                  temp[k]=temp[k]|(0x01<<i);
               }
               else
               {
                  temp[k]=temp[k]&(~(0x01<<i));
               }
            }
         }
         else         //右边一排
         {
            for(k=0;k<4;k++)       //每排4位
            {
               if(dats[2*i+j]&(0x80>>k))
               {
                  temp[k+8]=temp[k+8]|(0x01<<i);
               }
               else
               {
                  temp[k+8]=temp[k+8]&(~(0x01<<i));
               }
            }
         }
      }
   }
   for(i=0;i<4;i++)       //第二组4行
   {
      for(j=0;j<2;j++)       //每组2排
      {
         if(j==0)           //左边一排
         {
            for(k=0;k<8;k++)     //左边8位
            {
               if(dats[2*i+j+16]&(0x80>>k))
               {
                  temp[k+12]=temp[k+12]|(0x01<<i);
               }
               else
               {
                  temp[k+12]=temp[k+12]&(~(0x01<<i));
               }
            }
         }
         else          //右边一排
         {
            for(k=0;k<4;k++)       //右边4位
            {
               if(dats[2*i+j+16]&(0x80>>k))
               {
                  temp[k+20]=temp[k+20]|(0x01<<i);
               }
               else
               {
                  temp[k+20]=temp[k+20]&(~(0x01<<i));
               }
            }
         }
      }
   }

   for(i=0;i<12;i++)
   {
      res.byte[i]=(((unsigned int)(temp[i+12]))<<8)|temp[i];
   }

   return(res);
}

汉字是正常显示了。但是,后来我觉得厂家生产液晶屏时应该是考虑到用户显示字库里的汉字的,所以我觉得说明书上的这样规定是对的,就是页地址的8个位是横着摆的,程序应该是这样:

void Start_Line_Set(unsigned char y0)
{
   Wcom(0xC0|y0);
}

void Addr_Y_Set(unsigned char y)
{
   Wcom(0x40|y);       //64页
}

void Addr_X_Set(unsigned char x)
{
   Wcom(0xB8|x);        //8格
}

但是,我按照这种逻辑写的一些测试程序但是错的。实在不知道真正的设置应该是哪样?
有会19264A液晶屏显示原理的或生产厂家的工程师网友,可否传授正经给在下吗?我替所有的不懂得的网友都感谢您!谢谢!!!祝工作顺利!!!!!!财源广进!!!!!!!!阖家幸福!!!!!!!!!!
搜索更多相关主题的帖子: for unsigned 个位 char temp 
2020-07-02 20:32
快速回复:19264A液晶屏的页地址的8个位是横着放还是竖着放的?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020027 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved