久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4458|回復: 3
打印 上一主題 下一主題
收起左側

實時時鐘(DS1302)LCD1602顯示和串口顯示

[復制鏈接]
跳轉到指定樓層
樓主
   下面是我寫的,不對啊(讀不出),如果哪位有通過DS1302,將時間顯示在1602LCD上的代碼,貼出來感激不盡。
問題已解決,代碼在2樓,感謝51黑電子論壇

  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit wela=P1^4;
  5. sbit dula=P3^6;
  6. sbit lcdrs=P1^7;
  7. sbit lcdrw=P1^6;
  8. sbit lcden=P1^5;
  9. sbit ds_sclk=P3^0;
  10. sbit ds_io=P3^1;
  11. sbit ds_rst=P3^2;
  12. sbit ACC0=ACC^0;
  13. sbit ACC7=ACC^7;
  14. //sbit s1=P3^3;
  15. //sbit s2=P3^4;
  16. uchar a[7]={0x05,0x00,0x06,0x11,0x02,0x06,0x06};
  17. uchar b[7]={0x01,0x01,0x01,0x00,0x01,0x01,0x01};
  18. uchar code table[]=" 2013-12-31 0";
  19. uchar code table1[]="    23:59:54";
  20. uint num;//tt,shi,fen,miao,year,mon,day,week,s1num,monnum,daynum;
  21. void delay(uchar z)       //延遲1ms
  22. {
  23.     uchar x,y;
  24.     for(x=0;x<z;x++)
  25.         for(y=124;y>0;y--);
  26. }
  27. void write_comment(uchar com)         //液晶寫地址
  28. {
  29.     lcdrs=0;
  30.     delay(5);
  31.     P2=com;
  32.     lcden=1;
  33.     delay(5);
  34.     lcden=0;
  35. }
  36. void write_date(uchar date)        //液晶寫數據
  37. {
  38.     lcdrs=1;
  39.     delay(5);
  40.     P2=date;
  41.     lcden=1;
  42.     delay(5);
  43.     lcden=0;
  44. }
  45. void T_year(uchar pos,uint date)      //年份轉化寫入液晶
  46. {
  47.     uchar m,n,p,q;
  48.     m=date/1000;
  49.     n=(date%1000)/100;
  50.     p=((date%1000)%100)/10;
  51.     q=((date%1000)%100)%10;
  52.     write_comment(0x80+pos);
  53.     write_date(0x30+m);
  54.     write_date(0x30+n);
  55.     write_date(0x30+p);
  56.     write_date(0x30+q);
  57. }
  58. void T_mon(uchar pos,uchar date)      //月份轉化寫入液晶
  59. {
  60.     uchar m,n;
  61.     m=date/10;
  62.     n=date%10;
  63.     write_comment(0x80+pos);
  64.     write_date(0x30+m);
  65.     write_date(0x30+n);
  66. }
  67. void T_week(uchar date)                      //星期轉化寫入液晶      
  68. {
  69.     write_comment(0x80+12);
  70.     write_date(date);
  71. }
  72. void T_day(uchar pos,uchar date)        //日期轉化寫入液晶
  73. {
  74.     uchar m,n;
  75.     m=date/10;
  76.     n=date%10;
  77.     write_comment(0x80+pos);
  78.     write_date(0x30+m);
  79.     write_date(0x30+n);
  80. }
  81. void T_sfm(uchar pos,uchar date)            //時分秒轉化寫入液晶
  82. {
  83.     uchar m,n;
  84.     m=date/10;
  85.     n=date%10;
  86.     write_comment(0x80+0x40+pos);
  87.     write_date(0x30+m);
  88.     write_date(0x30+n);
  89. }
  90. void inputbyte(uchar ds_date)         //按位寫入
  91. {
  92.     uchar i;
  93.     ACC=ds_date;
  94.     for(i=0;i<8;i++)
  95.     {
  96.         ds_io=ACC0;
  97.         ds_sclk=1;
  98.         ds_sclk=0;
  99.         ACC=ACC>>1;
  100.     }
  101. }
  102. uchar outputbyte()               //按位讀出
  103. {
  104.     uchar i;
  105.     for(i=0;i<8;i++)
  106.     {
  107.         ACC=ACC>>1;
  108.         ACC7=ds_io;
  109.         ds_sclk=1;
  110.         ds_sclk=0;
  111.     }
  112.     return ACC;
  113. }
  114. void w1302(uchar ds_pos,uchar ds_date)          //寫時鐘
  115. {
  116.     ds_rst=0;
  117.     ds_sclk=0;
  118.     ds_rst=1;
  119.     inputbyte(ds_pos);
  120.     inputbyte(ds_date);
  121.     ds_sclk=1;
  122.     ds_rst=0;
  123. }
  124. uchar r1302(uchar ds_pos)       //讀時鐘
  125. {
  126.     uchar ds_date;
  127.     ds_rst=0;
  128.     ds_sclk=0;
  129.     ds_rst=1;
  130.     inputbyte(ds_pos);
  131.     ds_date=outputbyte();
  132.     ds_sclk=1;
  133.     ds_rst=0;
  134.                   
  135.     return ds_date;
  136. }
  137. void init()            //初始化寫液晶
  138. {
  139.     wela=0;
  140.     dula=0;
  141.     lcdrw=0;
  142.     lcden=0;
  143.     write_comment(0x38);
  144.     write_comment(0x01);
  145.     write_comment(0x06);
  146.     write_comment(0x0c);
  147.     for(num=0;num<13;num++)
  148.     {
  149.         write_date(table[num]);
  150.         delay(5);
  151.     }
  152.     write_comment(0x80+0x40);
  153.     for(num=0;num<12;num++)
  154.     {
  155.         write_date(table1[num]);
  156.         delay(5);
  157.     }

  158. }
  159. void main()
  160. {
  161.     uchar i;
  162.     uchar address1,address2;
  163.     init();   
  164.   address1=0x80;            
  165.     w1302(0x8e,0x00);
  166.     for(i=0;i<7;i++)             //寫入時鐘
  167.     {
  168.         w1302(address1,a[i]);
  169.         address1+=2;
  170.     }
  171.     w1302(0x8e,0x80);
  172.     while(1)
  173.     {
  174.         address2=0x81;
  175.         for(i=0;i<7;i++)          //讀時鐘
  176.         {
  177.             b[i]=r1302(address2);           
  178.             address2+=2;
  179.             T_sfm(10,b[0]);
  180.             delay(1);
  181.         }
  182.        for(i=0;i<25;i++)//寫入液晶
  183.         {
  184.             T_sfm(10,b[0]);
  185.             delay(1);
  186.             T_sfm(7,b[1]);
  187.             delay(1);
  188.             T_sfm(4,b[2]);
  189.             delay(1);
  190.             T_week(b[5]);
  191.             delay(1);
  192.             T_day(9,b[3]);
  193.             delay(1);
  194.             T_mon(6,b[4]);
  195.             delay(1);
  196.             T_year(1,b[6]);
  197.             delay(1);
  198.         }      
  199.     }
  200. }   
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

來自 4#
ID:184392 發表于 2017-3-29 11:22 | 只看該作者


DS1302-LCD1602仿真成功源碼.zip (428.72 KB, 下載次數: 33)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

沙發
ID:52608 發表于 2013-8-3 15:20 | 只看該作者
我正在做12864顯示的。
回復

使用道具 舉報

板凳
ID:33596 發表于 2013-8-3 16:46 | 只看該作者
在百度文庫里搜一下,多的很,我在里面搜了一個,還不錯!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91热爆在线观看 | 久久6视频 | 激情六月丁香 | 美女毛片免费看 | 中文字幕第三页 | 亚洲成人免费 | 伊人精品 | 久久精品国产清自在天天线 | 日韩一区二区三区av | 亚洲狠狠爱 | 99在线资源 | 国产精品视频网站 | 国产我和子的乱视频网站 | 玖玖综合在线 | 免费一区二区 | 中文字幕免费 | av黄色国产| 免费在线日韩 | 国产色片在线 | 久久久久久国产精品久久 | 成人精品 | 午夜专区 | 亚洲九九色 | 国产一区三区在线 | 国产精品久久久久久久久免费樱桃 | 亚洲国产一区二区三区在线观看 | 久久久久国产成人精品亚洲午夜 | 精品国产久 | 99久久99| 国产精品免费观看 | 日韩1区| 午夜在线小视频 | 国产一区二区三区免费观看在线 | 国产激情一区二区三区 | 99视频在线免费观看 | 国产精品久久久久久一区二区三区 | av手机在线| 五月婷婷婷| 欧美成人精品 | 龙珠z国语版在线观看 | 成人一区av|