查看: 4253|回复: 14

请教PCA8538的点阵显示和温度显示可以同时用吗?

[复制链接]
  • TA的每日心情
    开心
    2014-8-19 22:51
  • 签到天数: 127 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-11-7 13:31:01 | 显示全部楼层 |阅读模式
    分享到:
    看手册,对手册中的 多模式不理解,简单来说,最大控制象素 9*102, 而这 些象素对 应点阵区的点, 哪么其它的 7段 ,14段显示区如何 映射到 ram,    难道 说7段,14段,点阵不能同时使用 ?

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-15 10:18
  • 签到天数: 1027 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2013-11-7 14:07:48 | 显示全部楼层
    建议你先学习一下LCD驱动的基本原理。
    也可参考我的关于COM-SEG对应关系的帖子。
    https://www.cirmall.com/bbs/thread-17447-1-1.html
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-2 16:02
  • 签到天数: 257 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-11-15 10:17:37 | 显示全部楼层
    当然可以同时显示了,你只需要刷新对应的显示内存RAM就是了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-19 22:51
  • 签到天数: 127 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2013-11-15 13:25:55 | 显示全部楼层
    xiaopaohu123 发表于 2013-11-15 10:17
    当然可以同时显示了,你只需要刷新对应的显示内存RAM就是了

    RAM的段位有102, 也就是说点阵区只用到了其中的95段而不是102 ?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-2 16:02
  • 签到天数: 257 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-11-15 14:46:31 | 显示全部楼层
    holts 发表于 2013-11-15 13:25
    RAM的段位有102, 也就是说点阵区只用到了其中的95段而不是102 ?

    是这样的,0-94这95个为点阵区,其他的为段码区。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-19 22:51
  • 签到天数: 127 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2013-11-15 14:50:39 | 显示全部楼层
    xiaopaohu123 发表于 2013-11-15 14:46
    是这样的,0-94这95个为点阵区,其他的为段码区。

    明白了,我原来以为 1:8模式下,这102个段全划给点阵区使用了,原来留了一手
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-2 16:02
  • 签到天数: 257 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-11-15 14:57:29 | 显示全部楼层
    这个应该搞成1:9的模式下搞
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-2 16:02
  • 签到天数: 257 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-11-15 14:58:04 | 显示全部楼层
    别弄成1:8,否则显示不正常的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-8-19 22:51
  • 签到天数: 127 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2013-11-19 10:26:25 | 显示全部楼层
    xiaopaohu123 发表于 2013-11-15 14:58
    别弄成1:8,否则显示不正常的

    1.         SPI_Sends(0X80); //控制字节
    2.         SPI_Sends(0xB4); // Driving scheme C, 3-line inversion
    3.         SPI_Sends(0X80); //控制字节
    4.         SPI_Sends(0xd0); // 1:9
    5.         SPI_Sends(0X80); //控制字节
    6.         SPI_Sends(0x39); // Display enable
    复制代码
    这样是不是就是1:9 ?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-4-2 16:02
  • 签到天数: 257 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-11-19 10:51:51 | 显示全部楼层
    holts 发表于 2013-11-19 10:26
    这样是不是就是1:9 ?

    是的,你说的不错。

    我的初始化代码:1:9 MUX,温度测控打开

    delay(100);
      PD_ODR&=~nxp_reset;
       delay(500);
      PD_ODR|=nxp_reset;
      delay(500);
      PD_ODR&=~nxp_cs;
      delay(10);
       temp = SPI1_RWByte(0x20);
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0x3a);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0xd8);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0x18);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0xd4);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0xc9);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0x45);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0x73);
       delay(200);
       temp = SPI1_RWByte(0xc0);//temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0x07);//all en ttemperature//temp = SPI1_RWByte(0x00);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0xd0);//0xd3 1:8 mux   // 0xd0 1:9 mux
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0xb3);//b3
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0x39);
       
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0x80);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0x90);
       
       temp = SPI1_RWByte(0x80);
       temp = SPI1_RWByte(0xa0);
       
       temp = SPI1_RWByte(0x20);//command write to display ram
       //temp = SPI1_RWByte(0xff);
       //for(i=0;i<63;i++)temp = SPI1_RWByte(0xaa);
       //for(i=0;i<96;i++)temp = SPI1_RWByte(eeb);
       //for(i=0;i<6;i++)temp = SPI1_RWByte(0xff);
       for(i=0;i<102;i++)temp = SPI1_RWByte(0xff);
       //for(i=0;i<96;i++)temp = SPI1_RWByte(0xff);
       //for(i=0;i<6;i++)temp = SPI1_RWByte(0xff);
       
       PD_ODR|= nxp_cs;//不选中 cs
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-20 01:29 , Processed in 0.181960 second(s), 32 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.