打印

12864液晶画点问题

[复制链接]
1991|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
konglingfei0615|  楼主 | 2013-8-15 16:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 konglingfei0615 于 2013-8-16 08:07 编辑

最近在学习12864液晶,写了个画点程序,有点问题。每次画一个点,但是屏幕上确显示很多点,这是什么原因?
/*******************************************
函数名称:LCD_DrawDot
功    能:在任意位置绘制点
参    数:点的位置坐标(uchar x,uchar y)
返回值  :无
********************************************/
void LCD_DrawDot(uchar x,uchar y)
{
  uchar x_byte,x_bit,y_ping,y_bit;
  uchar tempH,tempL;
  LCD_Write(0x30,0);
  Delayus(72);
  LCD_Write(0x06,0);
  Delayus(72);
  LCD_Write(0x0c,0);
  Delayus(72);
  LCD_Write(0x01,0);
  Delayus(72);
  LCD_Write(0x36,0);//打开扩展指令
  Delayus(72);
  LCD_Write(0x34,0);//关绘图显示
  Delayus(72);
  x_byte = x / 16;
  x_bit = x % 16;
  y_ping = y / 32;
  y_bit = y % 32;   
  LCD_Write(0x80 + y_bit,0);
  LCD_Write(0x80 + x_byte + 8*y_ping,0);
  tempH = LCD_Read();
  tempH = LCD_Read();
  tempL = LCD_Read();
  Delayus(2);
  LCD_Write(0x80 + y_bit,0);
  LCD_Write(0x80 + x_byte + 8*y_ping,0);
  Delayus(1);
  if(x_bit < 8)
  {
    LCD_Write(tempH|(0x01<<(7-x_bit)),1);
    LCD_Write(tempL,1);
  }
  else
  {
    LCD_Write(tempH,1);
    LCD_Write(tempL|(0x01<<(15-x_bit)),1);
  }
  LCD_Write(0x36,0);
  Delayus(72);
  LCD_Write(0x30,0);
  Delayus(72);  
}








相关帖子

沙发
y651503148| | 2013-8-15 16:59 | 只看该作者
无真相

使用特权

评论回复
板凳
tyw| | 2013-8-15 17:37 | 只看该作者
地板
东风21| | 2013-8-15 18:07 | 只看该作者
无图无真相,看不到

使用特权

评论回复
5
konglingfei0615|  楼主 | 2013-8-15 20:03 | 只看该作者
tyw 发表于 2013-8-15 17:37
〓 LCD 12864 画点相关资料 7篇 3.1M 〓
〓 LCD12864(ST7920控制器)相关资料 11册 9.7M 〓
〓◆ 跟我学液 ...

谢谢T叔,资料收下

使用特权

评论回复
6
ccxlslr| | 2013-8-15 20:45 | 只看该作者
开始要清屏,不然会随 机有一些点

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
konglingfei0615 + 3
7
konglingfei0615|  楼主 | 2013-8-15 22:56 | 只看该作者
ccxlslr 发表于 2013-8-15 20:45
开始要清屏,不然会随 机有一些点

清过屏了,把所有的GDRAM都清零了,不过读地址的时候确还是有值

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

136

帖子

0

粉丝