5420|10

19

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

为什么12864串口画横线不行正常呢? [复制链接]

这程序在并口下都是正常的,但在串口下画垂直线和斜线都是正常的但画水平线就不正常,串口下只用2根线与单片机链接!!!
void drawPoint(unsigned char x,unsigned char y,unsigned char color)
{
unsigned char row,collum,cbite;
unsigned char tempH,tempL;
Write_Cmd(0x34);
Write_Cmd(0x36);
collum=x>>4;
cbite=x&0x0f;
if(y<32)
  row=y;
else
  {row=y-32;
collum+=8;
}
Write_Cmd(0x80+row);
Write_Cmd(0x80+collum);
ReceiveByte();
tempH=ReceiveByte();
tempL=ReceiveByte();
Write_Cmd(0x80+row);
Write_Cmd(0x80+collum);
if (color)
{
  if(cbite<8)
  {
  tempH|=(1<<(7-cbite));
  //tempL=(1<<(7-cbite));
  }
  else
  {
  //tempH=(1<<(15-cbite));
  tempL|=(1<<(15-cbite));
  }
}
else
{
    if(cbite<8)
  {
  tempH&=~(1<<(7-cbite));
  //tempL=(1<<(7-cbite));
  }
  else
  {
  //tempH=(1<<(15-cbite));
  tempL&=~(1<<(15-cbite));
  }
}
Write_Data(tempH);
Write_Data(tempL);
Write_Cmd(0x30);
}
void drawRowLine(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char color)
{
    unsigned char  temp;
    if(x0>x1)     // 对x0、x1大小进行排列,以便画图
    {
        temp = x1;
        x1 = x0;
        x0 = temp;
    }   
    while(x1>=x0)
    {
        drawPoint(x0, y0, color); // 逐点显示,描出垂直线
        x0++;
    }
   
}

/***********************************************************
函数名:  drawCollumLine
函数说明:画竖直线
传入参数:(x0,y0),竖直线的起点;(x1,y0)竖直线的终点;
   color=1,点亮;color=0,擦除
传出参数:无
返回值:  无
************************************************************/
void drawCollumLine(unsigned char x0,unsigned char y0,unsigned char y1,unsigned char color)
{
unsigned char temp;
if(y0>y1)
{
  temp=y0;
  y0=y1;
  y1=temp;
}
while (y0<=y1)
{
drawPoint(x0,y0,color);
y0++;
}
}
此帖出自单片机论坛

最新回复

问题解决了没有啊?  详情 回复 发表于 2016-7-20 10:24
点赞 关注
 

回复
举报

1万

帖子

28

TA的资源

裸片初长成(高级)

沙发
 
楼主应该好好比较一下两种程序对LCD寄存器的写入差别,看看LCD驱动芯片资料,特别是行列地址的控制方法,及写入时地址的变化

你只说不正常,到底是怎么不正常?用的驱动IC是什么?看它的datasheet了没有?
此帖出自单片机论坛
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

回复 沙发 dontium 的帖子

就是画横线时,第一个点打出来后,第二点打出来一直向后移动,空出八位后的点是亮的,依此类推比如.        .        .       .这样的!
此帖出自单片机论坛
 
 
 

回复

1万

帖子

28

TA的资源

裸片初长成(高级)

4
 
你给的程序,没有关系到具体的显示问题。
这个是最底层的控制。可能在你的drawPoint()函数中,你仔细研究一下它是怎么工作的。
此帖出自单片机论坛
 
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

5
 
楼主这个问题解决了,没有,我也遇到这个问题
此帖出自单片机论坛
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

6
 
ReceiveByte();
tempH=ReceiveByte();
tempL=ReceiveByte();应该是你的读取函数错了吧  把你的读取函数发出来看看啊
此帖出自单片机论坛
 
 
 

回复

2856

帖子

260

TA的资源

五彩晶圆(高级)

7
 

回复 6楼 wmbp520 的帖子

查看本帖全部讨论,请登录或者注册
此帖出自单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

8
 
查看本帖全部讨论,请登录或者注册
此帖出自单片机论坛
 
 
 

回复

412

帖子

665

TA的资源

纯净的硅(中级)

9
 
查看本帖全部讨论,请登录或者注册
此帖出自单片机论坛
 
个人签名宁静致远
 
 

回复

412

帖子

665

TA的资源

纯净的硅(中级)

10
 
查看本帖全部讨论,请登录或者注册
此帖出自单片机论坛
 
个人签名宁静致远
 
 

回复

412

帖子

665

TA的资源

纯净的硅(中级)

11
 
查看本帖全部讨论,请登录或者注册
此帖出自单片机论坛
 
个人签名宁静致远
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表