微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 江湖救急,关于12864液晶

江湖救急,关于12864液晶

时间:10-02 整理:3721RD 点击:
最近终于找到了合适的讲解12864液晶的资料,不过在讲解显示图片是看的不是很明白,里面是这么说的,液晶是先显示左半屏,再显示右半屏, 但是取数组中的元素是逐个往下取出的, 所以是对于一个半屏而言, 每隔一行取数组中的元素 ,而隔去的那一行是另一个半屏要取的数据!,对应的程序是这样的

  1. void display_BMP(uchar a[][64])//显示图形的左边部分
  2. {
  3. uchar i,j;
  4. for(j=0;j<8;j++)
  5. {
  6. SelectScreen(1);//选左屏命令
  7. Set_page(j);//设置页数
  8. Set_column(0);设置初始行为0行
  9. for(i=0;i<64;i++) //显示左屏
  10. {
  11. write_LCD_data(a[2*j][i]);//每隔一行取一次数组中的数据
  12. }
  13. SelectScreen(2);//选右屏命令
  14. Set_page(j);
  15. Set_column(0);
  16. for(i=0;i<64;i++) //显示右屏
  17. {
  18. write_LCD_data(a[2*j+1][i]);//每隔一行取一次数组中的数据
  19. }
  20. }
  21. }

复制代码

图片是128*64大小,对应的是纵向取模和字节倒序。我知道他讲的是左半屏显示前64位数据,右半屏显示隔一行的64位数据,然而这是为什么呢?虽然是显示左屏的一页然后再显示右屏的一页,但是这样也没什么不同嘛,正常来说不也是先打印左右,然后再下一行嘛,为什么就不能依次显示数据呢?偏偏要右屏隔一行再显示。求各位前辈指教。ps:学习资料的大海橡树的资料,12864液晶型号是AMPIRE128*64

这与使用的液晶驱动芯片有关
具体看一下你的液晶的手册
看一下驱动IC的型号,对应找一下芯片手册看一下就明白了

我用keil和proteus联调追踪代码运行就知道问题所在了。多谢回答

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top