一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 1769|回复: 1
收起左侧

[电子电路] 大数字万年历低温显示不正常的解决

[复制链接]
发表于 2019-2-20 21:53 | 显示全部楼层 |阅读模式
2019年新年第一帖!

16年发烧设计的大数字万年历送了好多朋友,近来才有人反馈低温时显示不正常,后来一想,max7219驱动这块确实没有考虑显示负号的问题。
重新查看了max7219和ds3231的资料,略改程序,测试OK。
把ShowTime函数增加几行:
  1. void        ShowTime(bit b)        //更新信息
  2. {
  3.     WriteWord_2 (Digit4, DStime[0] / 10);
  4.     WriteWord_2 (Digit5, DStime[0] % 10);
  5.     if(gpscount)
  6.     {
  7.      WriteWord_3 (Digit4, BjTime.Sec / 10); //测试gps走时
  8.      WriteWord_3 (Digit5, BjTime.Sec % 10);
  9.     }
  10.                 if(DStime[7]<128)//正数时直接显示
  11.                 {
  12.     WriteWord_3 (Digit6, DStime[7] / 10);
  13.     WriteWord_3 (Digit7, DStime[7] % 10);
  14.                 }
  15.                 else
  16.                 {
  17.     WriteWord_3 (Digit6, 0x0A);//负数显示 -
  18.     WriteWord_3 (Digit7, DStime[7] % 10);        //零下只显示一位       
  19.                 }       
  20. ...
  21. }
复制代码
现在深圳室温显示26度多:
00.jpg

代码中 -30,显示 -3度,OK:
  1. u8    read_temp()       /* -------- read temperature -------- */
  2. {
  3.     int     itemp;
  4.     float   ftemp;
  5.     //温度数据是以2 进制格式存储的并不需要数制转换
  6.     write_byte(0x0e, 0x20); //0x0e寄存器的CONV位置1开启温度转换
  7.     itemp = ( (int) read_random(0x11) << 5 );
  8.     itemp += ( read_random(0x12) >> 3);
  9.     Stop_I2C();
  10.     if(itemp & 0x1000)
  11.         itemp += 0xe000;        /* if sign bit set, make 16 bit 2's comp */
  12.     ftemp = 0.03125 * (float) itemp;        /* convert to degrees C */
  13.     /* ftemp = ftemp * 9 / 5 + 32;  /* skip this if you don't want degrees F */
  14.     ftemp -= 30;   //调试用,模拟零下温度
  15.     return  (u8) ftemp;
  16. }
复制代码



01.jpg

刷机包:
https://www.yleee.com.cn/forum.php?mod=attachment&aid=NDA5NTU0fDc2YTczNTY5ODFhMWQ2ZDk4ODhjNzc0NWMzN2RiMmUxfDE3MTM0OTU3OTc%3D&request=yes&_f=.rar

评分

参与人数 1一乐金币 +100 收起 理由
Joe_Black + 100 很给力!

查看全部评分

发表于 2019-2-21 12:31 | 显示全部楼层
会单片机就是好

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-19 11:03 , Processed in 0.084385 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表