找回密码
 立即注册

QQ登录

只需一步,快速开始

帖子
查看: 13476|回复: 30
收起左侧

max7219、ds18B20、ds12c887数码管显示万年历所有资料

  [复制链接]
ID:137190 发表于 2016-9-1 17:46 | 显示全部楼层 |阅读模式
放假啦,在家没事做,就做啦个数码管显示的万年历,用max7219做的数码管驱动,ds18B20温度采集,ds12c887时钟芯片,造价也不贵,板子早就画好啦,但没有条件做,只有手工焊接啦,原理图、PCB都在附件里头,有兴趣可以玩玩,也希望各位提下意见,呵呵。。
数字万年历原理图及pcb.zip (294.91 KB, 下载次数: 309) 数字钟源程序.zip (91.9 KB, 下载次数: 298)

效果图如下
ourdev_662159VD6UWM.jpg

ourdev_662157Y7PIWD.jpg
(原文件名:max7219万年历pcb.jpg)
ourdev_662158MFR35V.jpg
(原文件名:max7219万年历原理图.jpg)



下面是max7219的子程序
  1. #include "main.h"
  2. /*-------------------------------------------------
  3.                 向MAX7219写入字节(8位)
  4. --------------------------------------------------*/
  5. void SendChar (unsigned char ch)
  6.    {
  7.     unsigned char i,temp;
  8.     _nop_();
  9.     for (i=0;i<8;i++)
  10.        {
  11.            temp=ch&0x80;
  12.            ch=ch<<1;
  13.            if(temp)
  14.           {
  15.            dis_DIN=1;
  16.            dis_CLK=0;
  17.            dis_CLK=1;
  18.           }
  19.         else
  20.           {
  21.            dis_DIN=0;
  22.            dis_CLK=0;
  23.            dis_CLK=1;
  24.           }
  25.        }
  26.    }

  27. /*-------------------------------------------------
  28.                向MAX7219写入字(16位)
  29. -------------------------------------------------*/
  30. void WriteWord_3 (unsigned char addr,unsigned char num)
  31.    {
  32.     dis_LOAD=0;
  33.     _nop_();
  34.     SendChar (addr);
  35.     _nop_();
  36.     SendChar (num);
  37.     _nop_();
  38.   SendChar (NoOp);
  39.     _nop_();
  40.     SendChar (0);
  41.     _nop_();
  42. SendChar (NoOp);
  43.     _nop_();
  44.     SendChar (0);
  45.     _nop_();
  46.     dis_LOAD=1;
  47.    }

  48. /*-------------------------------------------------
  49.                向MAX7219写入字(16位)
  50. -------------------------------------------------*/
  51. void WriteWord_2 (unsigned char addr,unsigned char num)//发现与第二及第三块相连的数码管闪烁,与test9相比增加了空操作后就不闪烁了!!
  52.    {
  53.     dis_LOAD=0;
  54.     _nop_();
  55.   SendChar (NoOp);
  56.     _nop_();
  57.     SendChar (0);
  58.    
  59.     _nop_();
  60.     SendChar (addr);
  61.     _nop_();
  62.     SendChar (num);
  63.     _nop_();
  64.   SendChar (NoOp);
  65.     _nop_();
  66.     SendChar (0);
  67.     _nop_();

  68.     dis_LOAD=1;
  69.    }

  70. /*-------------------------------------------------
  71.                向MAX7219写入字(16位)
  72. -------------------------------------------------*/
  73. void WriteWord_1 (unsigned char addr,unsigned char num)//发现与第二及第三块相连的数码管闪烁,与test9相比增加了空操作后就不闪烁了!!
  74.    {
  75.     dis_LOAD=0;
  76.     _nop_();
  77.         SendChar (NoOp);
  78.     _nop_();
  79.     SendChar (0);
  80.     _nop_();
  81.         SendChar (NoOp);
  82.     _nop_();
  83.     SendChar (0);
  84.     _nop_();
  85.     SendChar (addr);
  86.     _nop_();
  87.     SendChar (num);
  88.     _nop_();

  89.    
  90.     dis_LOAD=1;
  91.    }

  92. /*-------------------------------------------------
  93.                  MAX7219初始化
  94. -------------------------------------------------*/
  95. void InitDis (void)
  96.    {
  97.     WriteWord_1 (ScanLimit,ScanDigit);         /*设置扫描界限*/
  98.     WriteWord_1 (DecodeMode,DecodeDigit);      /*设置译码模式*/
  99.     WriteWord_1 (Intensity,IntensityGrade);    /*设置亮度*/
  100.     WriteWord_1 (ShutDown,NormalOperation);    /*设置电源工作模式*/
  101.    
  102.     WriteWord_2 (ScanLimit,ScanDigit);         /*设置扫描界限*/
  103.     WriteWord_2 (DecodeMode,DecodeDigit);      /*设置译码模式*/
  104.     WriteWord_2 (Intensity,IntensityGrade);    /*设置亮度*/
  105.     WriteWord_2 (ShutDown,NormalOperation);    /*设置电源工作模式*/

  106.     WriteWord_3 (ScanLimit,ScanDigit);         /*设置扫描界限*/
  107.     WriteWord_3 (DecodeMode,DecodeDigit);      /*设置译码模式*/
  108.     WriteWord_3 (Intensity,IntensityGrade);    /*设置亮度*/
  109.     WriteWord_3 (ShutDown,NormalOperation);    /*设置电源工作模式*/
  110.    }
复制代码




回复

举报

ID:48711 发表于 2016-9-2 16:06 | 显示全部楼层
学习学习!!!!!!!!!!
回复

举报

ID:135253 发表于 2016-9-4 09:18 | 显示全部楼层
很好,学习学习
回复

举报

ID:138443 发表于 2016-9-4 21:39 | 显示全部楼层
太好了,谢谢
回复

举报

ID:141149 发表于 2016-10-2 22:36 | 显示全部楼层
多谢分享
回复

举报

ID:141149 发表于 2016-10-4 16:54 | 显示全部楼层
为什么仿真后时间不走呢
回复

举报

ID:142054 发表于 2016-10-9 16:02 | 显示全部楼层
不懂,先学习学习
回复

举报

ID:142342 发表于 2016-10-16 12:33 | 显示全部楼层

不懂,先学习学习
回复

举报

ID:114068 发表于 2017-8-9 16:54 来自触屏版 | 显示全部楼层
谢谢楼主咯!学习了!
回复

举报

ID:140489 发表于 2017-9-15 14:59 | 显示全部楼层
仿真时间不走,是怎么回事
回复

举报

ID:140489 发表于 2017-9-20 15:59 | 显示全部楼层
开始仿真时间不走是12C887数据总线没加网络标号AD[0..7],加了后仿真走时正常;但是农历显示农历的数码管乱跳,显示乱码,
回复

举报

ID:237453 发表于 2017-10-6 12:31 | 显示全部楼层
i'm new member i don't have some point for download it...
回复

举报

ID:165276 发表于 2017-11-3 17:24 | 显示全部楼层
最近打算做一个这样的,学习一下。
回复

举报

ID:246166 发表于 2017-11-8 18:33 | 显示全部楼层
楼主太强了,学习学习
回复

举报

ID:243394 发表于 2017-11-21 16:19 | 显示全部楼层
学习学习,最近也在研究这个东东
回复

举报

ID:165276 发表于 2017-12-4 10:42 | 显示全部楼层
感谢楼主的参考程序帮我解决了max7219的问题。
回复

举报

ID:130538 发表于 2017-12-31 12:16 | 显示全部楼层
谢谢楼主咯!学习了!
回复

举报

ID:279667 发表于 2018-2-1 19:17 | 显示全部楼层
楼主强大,我要好好学习了
回复

举报

ID:324366 发表于 2018-5-17 16:17 | 显示全部楼层
为什么仿真出来不正常呢!

为什么仿真出来不正常呢!

为什么仿真出来不正常呢!
回复

举报

ID:371247 发表于 2018-7-14 08:06 | 显示全部楼层
感谢楼主的参考程序
回复

举报

ID:141149 发表于 2018-8-25 22:52 | 显示全部楼层
学习学习
回复

举报

ID:491850 发表于 2019-3-16 15:48 | 显示全部楼层
感谢楼主,帮了我大忙
回复

举报

ID:48140 发表于 2019-11-26 11:32 来自触屏版 | 显示全部楼层
我的也闪烁,学一下这个。
回复

举报

ID:683435 发表于 2020-1-9 17:04 | 显示全部楼层
向楼主学习学习!!!
回复

举报

ID:410680 发表于 2020-2-1 12:54 | 显示全部楼层
下载来修改一下看看效果,谢谢分享
回复

举报

ID:58086 发表于 2020-6-19 11:10 | 显示全部楼层

不懂,先学习学习
回复

举报

ID:517951 发表于 2020-11-15 17:17 | 显示全部楼层
不错,值得学习。51hei有你更精彩!!
回复

举报

ID:217618 发表于 2021-1-14 16:40 | 显示全部楼层
学习一下,第一次用MAX7219
回复

举报

ID:894735 发表于 2021-3-21 19:55 | 显示全部楼层
求教,求解,看看如何解决鬼影问题
回复

举报

ID:1011444 发表于 2022-8-18 11:44 | 显示全部楼层
程序复杂,特别是按键程序很乱,变量含义不清晰,有些地方很难理解,比如hide_min>9,hide_year<6等等
语句无注释,懂英文的人也会看不懂的。电路连好,烧入程序试验,能显示但不正常,调时时,数码管乱闪。我是初学单片机,才疏学浅,找不到原因,望各位大牛给以指导,不胜感激
回复

举报

ID:23303 发表于 2024-3-24 08:25 | 显示全部楼层
下载来修改一下看看效果,谢谢分享
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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