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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2989|回復(fù): 0
收起左側(cè)

ds1302使用 單片機(jī)加八位數(shù)碼管顯示

[復(fù)制鏈接]
ID:202579 發(fā)表于 2017-5-22 20:53 | 顯示全部樓層 |閱讀模式
QQ截圖20170522204918.png QQ截圖20170522204933.png QQ截圖20170522204849.png QQ截圖20170522204823.png

  1. //主函數(shù)
  2. #include <ds1302.h>
  3. u8 code smg[10]=
  4. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  5. u8 dat2[8];
  6. void delay(u16 aaa)
  7. {
  8.          while(aaa--);
  9. }
  10. void dat2fp();
  11. void xs();
  12. void main()
  13. {        
  14.          writetime();
  15.          while(1)
  16.          { readtime();
  17.            delay(50);
  18.            dat2fp();
  19.            xs();
  20.          }
  21. }
  22. void dat2fp()
  23. {
  24.          
  25.          dat2[0]=smg[time[2]/16];
  26.          dat2[1]=smg[time[2]&0x0f];
  27.          dat2[2]=0x40;
  28.          dat2[3]=smg[time[1]/16];
  29.          dat2[4]=smg[time[1]&0x0f];
  30.          dat2[5]=0x40;
  31.          dat2[6]=smg[time[0]/16];
  32.          dat2[7]=smg[time[0]&0x0f];
  33. }
  34. void xs()
  35. {
  36.         u8 ii;
  37.         for(ii=0;ii<8;ii++)
  38.         {
  39.                 P0=dat2[ii];
  40.                 P1=ii;
  41.                 delay(100);
  42.                 P0=0x00;
  43.         }
  44. }

  45. //ds1302.h
  46. #ifndef _DS1302_H_
  47. #define _DS1302_H_

  48. #include<reg52.h>
  49. #include<intrins.h>

  50. #ifndef u8
  51. #define u8 unsigned char
  52. #endif

  53. #ifndef u16
  54. #define u16 unsigned int
  55. #endif
  56. sbit sclk=P3^6;
  57. sbit dsio=P3^4;
  58. sbit ce=P3^5;

  59. void readtime();
  60. void writetime();
  61. u8 read(u8 dzz);
  62. void write(u8 dz,u8 sj);

  63. extern u8 time[7];
  64. #endif
  65. //ds1302.c
  66. #include<ds1302.h>

  67. u8 code writedz[7]=
  68. {0x80,0x82,0x84,0x86,0x88,0x8a,0x8c};                                        //秒 分 時(shí) 日 月 星期 年

  69. u8 code readdz[7]=
  70. {0x81,0x83,0x85,0x87,0x89,0x8b,0x8d};
  71. u8 time[7]=
  72. {0x50,0x59,0x92,0x07,0x05,0x05,0x17};                                  //秒 分 時(shí) 日 月 星期 年
  73. void write(u8 dz,u8 sj)
  74. {
  75.          u8 a;
  76.          ce=0;
  77.          _nop_();                          //
  78.          sclk=0;
  79.          _nop_();
  80.          ce=1;
  81.          _nop_();
  82.          for(a=0;a<8;a++)
  83.          {
  84.                    dsio=dz&0x01;           //放入最低位
  85.                   dz>>=1;
  86.                   sclk=1;
  87.                   _nop_();
  88.                   sclk=0;
  89.                   _nop_();

  90.          }
  91.           for(a=0;a<8;a++)
  92.          {
  93.                    dsio=sj&0x01;           //放入最低位
  94.                   sj>>=1;
  95.                   sclk=1;
  96.                   _nop_();
  97.                   sclk=0;
  98.                   _nop_();

  99.          }
  100.          ce=0;
  101.          _nop_();
  102. }

  103. u8 read(u8 dzz)
  104. {
  105.          u8  aa,dd,dat1;
  106.          ce=0;
  107.          _nop_();                   //
  108.          sclk=0;
  109.          _nop_();
  110.          ce=1;
  111.          _nop_();
  112.          for(aa=0;aa<8;aa++)
  113.          {
  114.                    dsio=dzz&0x01;           //放入最低位
  115.                   dzz>>=1;
  116.                   sclk=1;
  117.                   _nop_();
  118.                   sclk=0;                          //ds1302輸出數(shù)據(jù)
  119.                   _nop_();

  120.          }
  121.          _nop_();
  122.          for(aa=0;aa<8;aa++)
  123.          {
  124.                    dd=dsio;
  125.                   dat1>>=1;
  126.                   dat1|=dd<<7;
  127.                   sclk=1;
  128.                   _nop_();
  129.                   sclk=0;
  130.                   _nop_();  
  131.          }
  132.         
  133.          ce=1;
  134.          _nop_();
  135.          sclk=1;
  136.          _nop_();
  137.          dsio=0;
  138.          _nop_();
  139.          dsio=1;
  140.          _nop_();
  141.          return dat1;
  142. }

  143. void writetime()
  144. {
  145.         u8 i;
  146.         write(0x8e,0x00);                 //                關(guān)閉寫保護(hù)
  147.         for(i=0;i<7;i++)
  148.         {
  149.                 write(writedz[i],time[i]);
  150.         }
  151.         write(0x8e,0x80);
  152. }

  153. void readtime()
  154. {
  155.         u8 g,aa;
  156.         for(g=0;g<7;g++)
  157.         {
  158.                 time[g]=read(readdz[g]);
  159.         }
  160.                 aa=time[2]<<3;
  161.                 time[2]=aa>>3;
  162. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 情侣酒店偷拍一区二区在线播放 | 久久av一区二区 | 国产精品一区二区免费看 | 国产高清免费视频 | 日韩国产精品一区二区三区 | 日本黄色高清视频 | 99久久久无码国产精品 | 精品视频 免费 | 99热这里 | 亚洲91视频 | 最新av中文字幕 | 在线播放国产一区二区三区 | av天天操 | 亚洲激情综合 | 日韩成人在线播放 | 看一级毛片视频 | 四虎影院在线观看av | 免费啪啪| 国产99热| 超级乱淫av片免费播放 | 一级日韩| 久草中文在线 | 成人精品免费视频 | 国产高清在线观看 | 国产精品日产欧美久久久久 | 久久久久亚洲 | 91精品久久久久久久久中文字幕 | 天天夜碰日日摸日日澡 | 久久久精品久久 | 四季久久免费一区二区三区四区 | 一区免费 | 国产伦精品一区二区三区高清 | 日韩av成人| 久草视频网站 | 日韩综合在线视频 | 国产精品视频一 | 色呦呦在线 | 欧美精品乱码99久久影院 | 欧美久久视频 | aa级毛片毛片免费观看久 | 欧美一级免费看 |