标题: DS12C887做21位数码管万年历仿真 [打印本页]

作者: lids    时间: 2017-9-26 13:28
标题: DS12C887做21位数码管万年历仿真
本帖最后由 lids 于 2017-9-26 14:16 编辑

DS12C887做21位数码管万年历仿真,3片MAX7219级联做数码管驱动,程序是论坛里的,但是原来的程序有误,我都修改好了的。完整源程序和仿真文件见附件。需要的就去下载。图片上是调到27日的
  1. #include "main.h"
  2. #include "max7219.h"
  3. #include "ds18b20.h"
  4. #include "ds12c887.h"
  5. #include "display.h"
  6. #include "yinli.h"
  7. #include "key.h"

  8. uchar time_year,time_month,time_day,time_week,time_hour,time_min,time_sec;

  9. uchar c_moon,year_moon,month_moon,day_moon;
  10. uchar year_h,year_l,week,month_h,month_l,day_h,day_l,hour_h,hour_l,min_h,min_l,sec_h,sec_l;
  11. uchar month_lunar_h ,month_lunar_l ,date_lunar_l,date_lunar_h;
  12. uchar hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year;
  13. uchar temp_value;
  14. uchar TempBuffer[2];
  15. bit   flag;
  16. uchar count;
  17. bit   up_flag;
  18. bit   down_flag;
  19. uchar temp_1;

  20. void main()         
  21. {
  22. DS12C887_init();
  23. DS12C887_Settime();  
  24. InitDis ();
  25. Init_DS18B20();
  26. //WDT_CONTR = 0X37;
  27. while(1)
  28. {
  29.    
  30. while(flag)
  31.   {
  32.   
  33.   timedone();
  34.   }
  35.   while(!flag)
  36. {
  37. ReadTemp();
  38. temp_to_str();
  39. display();
  40. scankey();
  41. //WDT_CONTR =0X37;
  42. }
  43.   
  44. }
  45. }
复制代码


万年历.jpg (69.64 KB, 下载次数: 238)

万年历.jpg

DS12C887数码管万年历仿真1.rar

156.3 KB, 下载次数: 296, 下载积分: 黑币 -5


作者: dragoars    时间: 2017-11-23 19:25
真的很喜欢这个,等我把你搞定
作者: Jerry0925    时间: 2017-12-29 09:58
最近对这个很感兴趣,下载看看
作者: chiangky    时间: 2017-12-31 12:05

最近对这个很感兴趣,下载看看
作者: 草棚    时间: 2018-5-18 08:30
谢谢分享
作者: aaasym    时间: 2019-10-31 06:21
下载后试过的兄弟出来评论一下---
作者: liendong1977    时间: 2020-1-4 10:35
谢谢分享
作者: srs977664313    时间: 2020-6-23 11:09
最近对这个很感兴趣,下载看看
作者: 灰太狼2020    时间: 2021-12-2 18:53
我想请教个问题  这个用的是共阳的数码管还是共阴的数码管啊
作者: kz0018    时间: 2022-4-30 20:36
初学单片机,请教hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year 定义?不知hide年月日代表什么。望予指教
作者: dj3365191    时间: 2022-5-1 18:45
这个再加上闹钟就更好了

作者: shenqiwei    时间: 2022-5-4 03:48
用LCD12864做会更好
作者: kz0018    时间: 2022-5-17 15:19
如果有电路原理图,就更完美了。论坛里原来发的资料很齐全,但正如楼主所说,程序有误,所定义的接口有的对不上号,还希望楼主给指点一下,十分感谢!
作者: eminem12    时间: 2022-5-19 14:43
我感觉这个做的很好
作者: eminem12    时间: 2022-5-19 14:45
草棚 发表于 2018-5-18 08:30
谢谢分享

我也谢谢
作者: kz0018    时间: 2022-5-22 21:00
万年历根据楼主提供的程序制作,显示正常,但按键不能调整时间日期,设置键有效而加键减键不起作用,请教是哪里出了问题?
作者: kz0018    时间: 2022-5-27 22:52
ds12c887如何设置BCD数据模式?看了几个例程,都是二进制模式,7219用的是译码模式,数码管只能显示数字和几个符号,比如温度单位符号C,就显示不了。如何解决这一问题?可将887设置BCD数据模式,7219采用不译码模式,不知是否可行,请楼主和诸位高手给以指点
作者: kz0018    时间: 2022-7-25 00:50
按照楼主提供的程序,经过进一步修改,本着充分利用三片7219的驱动功能,用了24位数码管来显示年月日星期农历温度,温度显示为两位整数一位小数一位符号,7219由全译码改为不译码。程序有多处修改,公历转换农历只计算2000年到2099年(因为没必要计算2000年以前的农历日期),减少代码冗余,也就减少了内存占用。因为数码管都是高亮的,晚上看时间是刺眼的,没来得及加上光控,所以还的改造才能投入使用。现显示效果如下G:/编程相关/VID20220724234329.mp4


请多提宝贵意见!

作者: tplin    时间: 2022-11-29 16:23
设计不错,可惜我的ds12c887内置电池没电了
作者: 人嘛快乐就好    时间: 2023-1-28 22:21
kz0018 发表于 2022-7-25 00:50
按照楼主提供的程序,经过进一步修改,本着充分利用三片7219的驱动功能,用了24位数码管来显示年月日星期农 ...

星期怎么是8的

作者: gxjhgxjh    时间: 2023-1-30 14:42
tplin 发表于 2022-11-29 16:23
设计不错,可惜我的ds12c887内置电池没电了

可以换电池,网上有教程。
作者: chencu    时间: 2023-12-14 08:22
kz0018 发表于 2022-7-25 00:50
按照楼主提供的程序,经过进一步修改,本着充分利用三片7219的驱动功能,用了24位数码管来显示年月日星期农 ...

可以分享一下吗?
作者: kz0018    时间: 2024-4-4 16:36
hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year.上面此类定义参数含义不清楚是什么意思,英文hide是隐藏或皮毛,外包装物等意思,加上年月日意思不太明白,似乎此变量是控制时间日期待调整位字符闪烁的,但是如何控制的,没分析出来,请教大家了
作者: dsbk123    时间: 2024-12-25 19:53
楼主老师您好,附件程序仿真运行发现以下几个问题,我这初学者看半天也解决不了,还请楼主或坛里高手帮忙指点。谢谢!
问题汇总:
1、所有月份不管是设置时还是运行时最大都是31天,包括2月份;
2、出现星期8。





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1