在ClassWiz系列计算器推出一年多后,终于出现了第一款ClassWiz clone计算器,同样配备了192x63的高分辨率屏幕以及新的图形化菜单。这里简单逆向一下这个屏幕的控制。其实这个屏幕一开始感觉挺诡异的,用的完全不是常见的控制器,因为出现了很多一般控制器未定义的指令,根据控制器尺寸也看不出什么。最后也没有找到控制器的手册,不过根据同系列其它控制器的手册基本可以猜出指令的用途了。

基本信息

  • 型号:FXD1926304-LCD-A0
  • 分辨率:192 x 63 + 1行图标
  • 灰度:1bpp (likely)
  • 控制器:NT10952

控制序列

初始化

  LCD_WriteCmd(0x88);
  LCD_WriteCmd(0x88);
  LCD_WriteCmd(0x88);
  LCD_WriteCmd(0x88);
  LCD_WriteCmd(0x93);
  LCD_WriteCmd(0xE3);
  LCD_WriteCmd(0xF8); 
  LCD_WriteCmd(0x00);  
  LCD_WriteCmd(0x81);
  LCD_WriteCmd(0x3C); 
  LCD_WriteCmd(0x2E); 
  Delay_ms(500);
  LCD_WriteCmd(0x81); //设置Vop
  LCD_WriteCmd(0x27); //Vop值
  LCD_WriteCmd(0x82); //进入部分显示模式
  LCD_WriteCmd(0x3F); //设置部分显示模式偏压比
  LCD_WriteCmd(0x83); //退出部分显示模式
  LCD_WriteCmd(0x10); //设置列地址高位
  LCD_WriteCmd(0x00); //设置列地址低位
  LCD_WriteCmd(0xA0); //设置帧率
  LCD_WriteCmd(0xAF); //开启显示
  LCD_WriteCmd(0xA4); //取消全屏点亮
  LCD_WriteCmd(0xAF); //开启显示

设置地址

  LCD_WriteCmd(0xB0 | page); //page范围0-7 
  LCD_WriteCmd(0x10);
  LCD_WriteCmd(0x00);

设置对比度

  LCD_WriteCmd(0x81); //设置Vop
  LCD_WriteCmd(0x20 | contrast); //contrast范围0-0x1F

??

  LCD_WriteCmd(0xE0); //进入读改写模式
  LCD_WriteCmd(0xB7);
  LCD_WriteCmd(0x1A);
  LCD_WriteCmd(0x0F);
  res1 = LCD_ReadCmd(); //0x00?
  res2 = LCD_ReadCmd(); //0x00?
  LCD_WriteCmd(0x00);
  LCD_WriteCmd(0xEE); //退出读改写模式

关机

  LCD_WriteCmd(0xAE); //关闭显示
  LCD_WriteCmd(0xA5); //设置全屏点亮

引脚定义

  1. NC
  2. Vo
  3. C1P
  4. C1N
  5. V1
  6. C2P
  7. C2N
  8. V2
  9. C3P
  10. C3N
  11. V3
  12. C4P
  13. C4N
  14. V4
  15. VDD
  16. GND
  17. D7
  18. D6
  19. D5
  20. D4
  21. D3
  22. D2
  23. D1
  24. D0
  25. RD
  26. WR
  27. RS
  28. RST
  29. CS
  30. NC

注:WR RD为低电平有效,上升沿采样,RST为低电平有效,RS低为指令,高为数据