找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2464|回复: 2
打印 上一主题 下一主题
收起左侧

ds12c887 时间不更新

[复制链接]
跳转到指定楼层
楼主
  1. #include<reg52.h>
  2. sbit lcden=P3^4;
  3. sbit lcdrs=P3^5;
  4. sbit dscs=P1^4;
  5. sbit dsas=P1^5;
  6. sbit dsrw=P1^6;
  7. sbit dsds=P1^7;
  8. char filine[14]="2015-10-18 MON";
  9. char seline[10]=" 00:00:00 ";
  10. char sec,min,hor;
  11. int m,n;
  12. int num;
  13. void delay(int m)
  14. {
  15.         int n;
  16.         for(;m>=0;m--)
  17.         for(n=110;n>=0;n--);
  18. }

  19. void write_command(char com)
  20. {//液晶命令
  21.         lcdrs=0;
  22.         lcden=0;
  23.         P0=com;
  24.         delay(5);
  25.         lcden=1;
  26.         delay(5);
  27.         lcden=0;
  28. }
  29. void write_date(char date)
  30. {//液晶数据
  31.         lcdrs=1;
  32.         lcden=0;
  33.         P0=date;
  34.         delay(5);
  35.         lcden=1;
  36.         delay(5);
  37.         lcden=0;
  38. }
  39. /*void write_ds(char address,char date)
  40. {
  41.         dscs=0;
  42.         dsas=1;
  43.         dsds=1;
  44.         dsrw=0;
  45.         P0=address;
  46.         dsas=0;
  47.         dsrw=0;
  48.         P0=date;
  49.         dsrw=1;
  50.         dsas=1;
  51.         dscs=1;
  52.        
  53. }*/
  54. char read_ds(char address)
  55. {
  56.         char ds_date;
  57.         dsas=1;
  58.         dsds=1;
  59.         dsrw=1;
  60.         dscs=0;
  61.         P0=address;
  62.         dsas=0;
  63.         dsds=0;
  64.         P0=0xff;
  65.         ds_date=P0;
  66.         dsds=1;
  67.         dsas=1;
  68.         dscs=1;
  69.         return ds_date;       
  70. }

  71. void init()
  72. {
  73.         write_command(0x38);
  74.         write_command(0x0c);
  75.         write_command(0x06);
  76.         write_command(0x01);
  77.         write_command(0x80);

  78.         for(m=0;m<14;m++)
  79.         write_date(filine[m]);
  80.         write_command(0x80+0x40);
  81.         for(m=0;m<10;m++)
  82.         write_date(seline[m]);
  83. }
  84. void display_number(char address,char number)
  85. {
  86.         char ge,shi;
  87.         shi=number/10;
  88.         ge=number%10;
  89.         write_command(0x80+0x40+address);
  90.         write_date(0x30+shi);
  91.         write_date(0x30+ge);
  92. }


  93. void main()
  94. {
  95.         num=0;
  96.         init();
  97.         delay(50);
  98.         while(1)
  99.         {
  100.                 sec=read_ds(0);
  101.                 display_number(7,sec);
  102.                
  103.                        
  104.         }
  105. }
复制代码
郭天祥的板子。秒针不更新一直显示/0,配套的代码却可以更新,谁给分析分析,谢谢。

QQ截图20151102113448.jpg (507.92 KB, 下载次数: 107)

QQ截图20151102113448.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:61876 发表于 2015-11-2 20:46 | 只看该作者
应该是程序有问题。
回复

使用道具 举报

板凳
ID:96682 发表于 2015-11-22 15:52 | 只看该作者
确定这个程序与DS12C877木有半毛钱关系,只会纹丝不动的显示液晶屏上的那些信息。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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