找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6160|回复: 17
收起左侧

抛砖之六“自娱自乐--指针式数字钟”

  [复制链接]
ID:67370 发表于 2017-3-30 21:24 | 显示全部楼层 |阅读模式
突发奇想,用贴片三色LED设计了一台数字钟,不废话了,直接上菜。
DSC02453.JPG DSC02444.JPG DSC02338.JPG
  1. /*********************************************************************/
  2. /*  DS1302                                          */
  3. /*********************************************************************/
  4. #include <reg52.h>
  5. #include <intrins.h>

  6. /*********************************************************************/
  7. /*                函数宏定义定义                                     */
  8. /*********************************************************************/
  9. #define INT8U unsigned char
  10. #define INT16U unsigned int

  11. /*********************************************************************/
  12. /*                DS1302引脚定义                                     */
  13. /*********************************************************************/
  14. sbit SCLK = P1^5;     //控制数据时钟
  15. sbit IO =   P1^6;     //数据口
  16. sbit RST =  P1^7;     //使能端、复位端

  17. /*********************************************************************/
  18. /*                 按键引脚定义                                      */
  19. /*********************************************************************/
  20. sbit KEY_set  = P2^4;         //按键 选择
  21. sbit KEY_dec  = P2^5;         //按键 减
  22. sbit KEY_add  = P2^6;         //按键 加
  23. sbit KEY4     = P2^7;         //备用
  24. sbit KEY_int0 = P3^2;         //INT0

  25. /*********************************************************************/
  26. /*                红蓝绿三色引脚定义                                 */
  27. /*********************************************************************/
  28. sbit B_LED = P3^5;                          //蓝色使能
  29. sbit G_LED = P3^6;                          //绿色使能
  30. sbit R_LED = P3^7;                          //红色使能

  31. /*********************************************************************/
  32. /*                74HC164引脚定义                                    */
  33. /*********************************************************************/
  34. sbit DATA=P1^0;
  35. sbit CLK=P1^1;

  36. #define BLED_ON() B_LED=1;G_LED=0;R_LED=0
  37. #define GLED_ON() B_LED=0;G_LED=1;R_LED=0
  38. #define RLED_ON() B_LED=0;G_LED=0;R_LED=1

  39. /*********************************************************************/
  40. /*                蜂鸣器引脚定义                                     */
  41. /*********************************************************************/
  42. sbit BUZZER = P2^0;

  43. INT8U LED_array[] = //
  44. {
  45.     0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
  46.     0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01  //
  47. };

  48. INT8U BRGLED_array[] = //
  49. {
  50.     0xE0, 0xC0, 0xA0, 0x80, 0x60, 0x40, 0x20, 0xE0, 0xC0, 0xA0, 0x80, 0x60, 0x40, 0x20, 0x00, 0x00  //
  51. };

  52. /*********************************************************************/
  53. /*                写时分秒地址                                       */
  54. /*********************************************************************/
  55. #define write_miao 0x80
  56. #define write_fen  0x82
  57. #define write_shi  0x84

  58. /*********************************************************************/
  59. /*                读时分秒地址                                       */
  60. /*********************************************************************/
  61. #define read_miao 0x81
  62. #define read_fen  0x83
  63. #define read_shi  0x85

  64. //bit miao_flag;
  65. INT8U  flag, NUM=15, n;//
  66. INT8U s, knum=0, snum, fnum, mnum, g;
  67. INT16U t;
  68. //INT8U miao_num;
  69. //INT8U Dmiao;
  70. char shi, fen, miao;  //读出DS1302时分秒数据存储变量

  71. /*********************************************************************/
  72. /*                毫秒级延时函数                                     */
  73. /*********************************************************************/
  74. void delay_ms(INT16U ms)
  75. {                        
  76.         INT16U x, y;
  77.         for(x=0; x<ms; x++)
  78.                 for(y=0; y<110; y++);
  79. }

  80. /*********************************************************************/
  81. /*                  74HC164函数                                      */
  82. /*********************************************************************/
  83. void HC164(INT8U dat)
  84. {
  85.     INT8U i;
  86.     for(i = 0; i < 8; i ++)
  87.     {
  88.         if(dat & 0x80)
  89.             DATA = 1;
  90.         else
  91.             DATA = 0;
  92.         dat <<= 1;
  93.         CLK  = 1;
  94.         CLK  = 0;
  95.     }
  96. }

  97. /*********************************************************************/
  98. /*                无源蜂鸣器函数                                     */
  99. /*********************************************************************/
  100. void FMQ(INT8U g, INT16U t)          //可以选择鸣响次数和时间
  101. {
  102.         INT8U h,j;
  103.         INT16U i ;
  104.         for(h=0; h<g; h++)
  105.         {
  106.                 for(i=0; i<t; i++)
  107.                 {
  108.                         BUZZER =~ BUZZER;              //BUZZER取反
  109.                         for(j=0 ;j<90 ;j++);   //需要产生方波,调节音频
  110.                 }
  111.                 delay_ms(100);                         //间隔时间
  112.         }
  113.         BUZZER = 1;                      //PNP-0;NPN-1关闭蜂鸣器
  114. }

  115. /*********************************************************************/
  116. /*                定时器0初始化函数                                  */
  117. /*********************************************************************/
  118. /*void TIMER0_init(void)  
  119. {
  120.         TMOD = 0x01;
  121.         TH0  = (65536-50000)/256;        //定时50ms一个中断
  122.         TL0  = (65536-50000)%256;
  123.         EA   = 1;
  124.         ET0  = 1;
  125.         TR0  = 1;
  126. } */

  127. /*********************************************************************/
  128. /*                DS1302读函数                                       */
  129. /*********************************************************************/
  130. INT8U read_1302(INT8U add) //
  131. {
  132.         INT8U i, date;
  133.         RST = 0;   //禁止读写数据
  134.         for(i=0; i<8; i++)
  135.         {
  136.                 RST  = 1;
  137.                 SCLK = 0;
  138.                 IO   = add&0x01;
  139.                 add  >>= 1;
  140.                 SCLK = 1;
  141.         }
  142.         for(i=0; i<8; i++)
  143.         {
  144.                 if(IO)
  145.                         date = date|0x80;
  146.                 else
  147.                         date = date|0x00;
  148.                 SCLK = 1;
  149.                 date >>=1;
  150.                 SCLK = 0;
  151.         }
  152.         RST = 0;
  153.         date = date/16*10 + date%16;//进制转换 16转10进制
  154.         IO  = 0;     //数据读完后,IO口必须为0,不然小时一直显示85
  155.         return date;
  156. }

  157. /*********************************************************************/
  158. /*                DS1302写函数                                       */
  159. /*********************************************************************/
  160. void write_1302(INT8U add, INT8U dat)  //
  161. {
  162.         INT8U i;
  163.         RST  = 0;     //禁止读写数据
  164.         SCLK = 0;   
  165.         for(i=0; i<8; i++)    //写地址
  166.         {
  167.                 RST  = 1;     //允许读写数据
  168.                 SCLK = 0;
  169.                 IO   = add&0x01;  
  170.                 add  >>= 1;
  171.                 SCLK = 1;
  172.         }
  173.         for(i=0; i<8; i++)    //写数据
  174.         {
  175.                 RST  = 1;    //允许读写数据
  176.                 SCLK = 0;
  177.                 IO   = dat&0x01;
  178.                 dat  >>= 1;
  179.                 SCLK = 1;
  180.         }
  181.         RST = 0;
  182. }

  183. /*********************************************************************/
  184. /*             DS1302初始化函数(设置初始时间时使用)                  */
  185. /*********************************************************************/
  186. /*void DS1302_init(void)
  187. {
  188.         flag = read_1302(0x81);
  189.         if(flag&0x80)
  190.         write_1302(0x8E,       0x00);   //保护取消,可以进行读写操作
  191.         write_1302(write_miao, 0x00);   // 设置时间
  192.         write_1302(write_fen,  0x03);
  193.         write_1302(write_shi,  0x04);
  194.         write_1302(0x90,       0xA5);
  195.         write_1302(0xC0,       0xF0);   //判断是否初始化一次标识写入
  196.         write_1302(0x8E,       0x80);   //保护启动,不能进行读写操作
  197. } */

  198. /*********************************************************************/
  199. /*                 显示时间函数                                      */
  200. /*********************************************************************/
  201. void display(INT8U shi, INT8U fen, INT8U miao)   //
  202. {
  203.         for(n=0; n<30; n++)
  204.         {
  205.             if(miao/8==0)
  206.                 {
  207.                         GLED_ON();
  208.             HC164(0x00);
  209.             HC164(0x00);
  210.             HC164(0x00);
  211.             HC164(0x00);
  212.             HC164(0x00);
  213.             HC164(0x00);
  214.             HC164(0x00);
  215.             HC164(LED_array[miao]);
  216.                         delay_ms(NUM);
  217.                 }
  218.             else if(miao/8==1)
  219.                 {
  220.                         GLED_ON();
  221.             HC164(0x00);
  222.             HC164(0x00);
  223.             HC164(0x00);
  224.             HC164(0x00);
  225.             HC164(0x00);
  226.             HC164(0x00);
  227.             HC164(LED_array[miao-8]);
  228.             HC164(0x00);
  229.                         delay_ms(NUM);
  230.                 }
  231.             else if(miao/8==2)
  232.                 {
  233.                         GLED_ON();
  234.             HC164(0x00);
  235.             HC164(0x00);
  236.             HC164(0x00);
  237.             HC164(0x00);
  238.             HC164(0x00);
  239.             HC164(LED_array[miao-16]);
  240.             HC164(0x00);
  241.             HC164(0x00);
  242.                         delay_ms(NUM);
  243.                 }
  244.             else if(miao/8==3)
  245.                 {
  246.                         GLED_ON();
  247.             HC164(0x00);
  248.             HC164(0x00);
  249.             HC164(0x00);
  250.             HC164(0x00);
  251.             HC164(LED_array[miao-24]);
  252.             HC164(0x00);
  253.             HC164(0x00);
  254.             HC164(0x00);
  255.                         delay_ms(NUM);
  256.                 }
  257.             else if(miao/8==4)
  258.                 {
  259.                         GLED_ON();
  260.             HC164(0x00);
  261.             HC164(0x00);
  262.             HC164(0x00);
  263.             HC164(LED_array[miao-32]);
  264.             HC164(0x00);
  265.             HC164(0x00);
  266.             HC164(0x00);
  267.             HC164(0x00);
  268.                         delay_ms(NUM);
  269.                 }
  270.             else if(miao/8==5)
  271.                 {
  272.                         GLED_ON();
  273.             HC164(0x00);
  274.             HC164(0x00);
  275.             HC164(LED_array[miao-40]);
  276.             HC164(0x00);
  277.             HC164(0x00);
  278.             HC164(0x00);
  279.             HC164(0x00);
  280.             HC164(0x00);
  281.                         delay_ms(NUM);
  282.                 }
  283.             else if(miao/8==6)
  284.                 {
  285.                         GLED_ON();
  286.             HC164(0x00);
  287.             HC164(LED_array[miao-48]);
  288.             HC164(0x00);
  289.             HC164(0x00);
  290.             HC164(0x00);
  291.             HC164(0x00);
  292.             HC164(0x00);
  293.             HC164(0x00);
  294.                         delay_ms(NUM);
  295.                 }
  296.             else if(miao/8==7)
  297.                 {
  298.                         GLED_ON();
  299.             HC164(LED_array[miao-56]);
  300.             HC164(0x00);
  301.             HC164(0x00);
  302.             HC164(0x00);
  303.             HC164(0x00);
  304.             HC164(0x00);
  305.             HC164(0x00);
  306.             HC164(0x00);
  307.                         delay_ms(NUM);
  308.                 }  
  309. /////////////////////////////////////////////////////////////////////////////////////////////////////
  310.             if(fen/8==0)
  311.                 {
  312.                         BLED_ON();
  313.             HC164(0x00);
  314.             HC164(0x00);
  315.             HC164(0x00);
  316.             HC164(0x00);
  317.             HC164(0x00);
  318.             HC164(0x00);
  319.             HC164(0x00);
  320.             HC164(LED_array[fen]);
  321.                         delay_ms(NUM);
  322.                 }
  323.             else if(fen/8==1)
  324.                 {
  325.                         BLED_ON();
  326.             HC164(0x00);
  327.             HC164(0x00);
  328.             HC164(0x00);
  329.             HC164(0x00);
  330.             HC164(0x00);
  331.             HC164(0x00);
  332.             HC164(LED_array[fen-8]);
  333.             HC164(0x00);
  334.                         delay_ms(NUM);
  335.                 }
  336.             else if(fen/8==2)
  337.                 {
  338.                         BLED_ON();
  339.             HC164(0x00);
  340.             HC164(0x00);
  341.             HC164(0x00);
  342.             HC164(0x00);
  343.             HC164(0x00);
  344.             HC164(LED_array[fen-16]);
  345.             HC164(0x00);
  346.             HC164(0x00);
  347.                         delay_ms(NUM);
  348.                 }
  349.             else if(fen/8==3)
  350.                 {
  351.                         BLED_ON();
  352.             HC164(0x00);
  353.             HC164(0x00);
  354.             HC164(0x00);
  355.             HC164(0x00);
  356.             HC164(LED_array[fen-24]);
  357.             HC164(0x00);
  358.             HC164(0x00);
  359.             HC164(0x00);
  360.                         delay_ms(NUM);
  361.                 }
  362.             else if(fen/8==4)
  363.                 {
  364.                         BLED_ON();
  365.             HC164(0x00);
  366.             HC164(0x00);
  367.             HC164(0x00);
  368.             HC164(LED_array[fen-32]);
  369.             HC164(0x00);
  370.             HC164(0x00);
  371.             HC164(0x00);
  372.             HC164(0x00);
  373.                         delay_ms(NUM);
  374.                 }
  375.             else if(fen/8==5)
  376.                 {
  377.                         BLED_ON();
  378.             HC164(0x00);
  379.             HC164(0x00);
  380.             HC164(LED_array[fen-40]);
  381.             HC164(0x00);
  382.             HC164(0x00);
  383.             HC164(0x00);
  384.             HC164(0x00);
  385.             HC164(0x00);
  386.                         delay_ms(NUM);
  387.                 }
  388.             else if(fen/8==6)
  389.                 {
  390.                         BLED_ON();
  391.             HC164(0x00);
  392.             HC164(LED_array[fen-48]);
  393.             HC164(0x00);
  394.             HC164(0x00);
  395.             HC164(0x00);
  396.             HC164(0x00);
  397.             HC164(0x00);
  398.             HC164(0x00);
  399.                         delay_ms(NUM);
  400.                 }
  401.             else if(fen/8==7)
  402.                 {
  403.                         BLED_ON();
  404.             HC164(LED_array[fen-56]);
  405.             HC164(0x00);
  406.             HC164(0x00);
  407.             HC164(0x00);
  408.             HC164(0x00);
  409.             HC164(0x00);
  410.             HC164(0x00);
  411.             HC164(0x00);
  412.                         delay_ms(NUM);
  413.                 }
  414. /////////////////////////////////////////////////////////////////////////////////////////////////////
  415.             if((shi*5)/8==0)
  416.                 {
  417.                         RLED_ON();
  418.             HC164(0x00);
  419.             HC164(0x00);
  420.             HC164(0x00);
  421.             HC164(0x00);
  422.             HC164(0x00);
  423.             HC164(0x00);
  424.             HC164(0x00);
  425.             HC164(LED_array[(shi*5)]);
  426.                         delay_ms(NUM);
  427.                 }
  428.             else if((shi*5)/8==1)
  429.                 {
  430.                         RLED_ON();
  431.             HC164(0x00);
  432.             HC164(0x00);
  433.             HC164(0x00);
  434.             HC164(0x00);
  435.             HC164(0x00);
  436.             HC164(0x00);
  437.             HC164(LED_array[(shi*5)-8]);
  438.             HC164(0x00);
  439.                         delay_ms(NUM);
  440.                 }
  441.             else if((shi*5)/8==2)
  442.                 {
  443.                         RLED_ON();
  444.             HC164(0x00);
  445.             HC164(0x00);
  446.             HC164(0x00);
  447.             HC164(0x00);
  448.             HC164(0x00);
  449.             HC164(LED_array[(shi*5)-16]);
  450.             HC164(0x00);
  451.             HC164(0x00);
  452.                         delay_ms(NUM);
  453.                 }
  454.             else if((shi*5)/8==3)
  455.                 {
  456.                         RLED_ON();
  457.             HC164(0x00);
  458.             HC164(0x00);
  459.             HC164(0x00);
  460.             HC164(0x00);
  461.             HC164(LED_array[(shi*5)-24]);
  462.             HC164(0x00);
  463.             HC164(0x00);
  464.             HC164(0x00);
  465.                         delay_ms(NUM);
  466.                 }
  467.             else if((shi*5)/8==4)
  468.                 {
  469.                         RLED_ON();
  470.             HC164(0x00);
  471.             HC164(0x00);
  472.             HC164(0x00);
  473.             HC164(LED_array[(shi*5)-32]);
  474.             HC164(0x00);
  475.             HC164(0x00);
  476.             HC164(0x00);
  477.             HC164(0x00);
  478.                         delay_ms(NUM);
  479.                 }
  480.             else if((shi*5)/8==5)
  481.                 {
  482.                         RLED_ON();
  483.             HC164(0x00);
  484.             HC164(0x00);
  485.             HC164(LED_array[(shi*5)-40]);
  486.             HC164(0x00);
  487.             HC164(0x00);
  488.             HC164(0x00);
  489.             HC164(0x00);
  490.             HC164(0x00);
  491.                         delay_ms(NUM);
  492.                 }
  493.             else if((shi*5)/8==6)
  494.                 {
  495.                         RLED_ON();
  496.             HC164(0x00);
  497.             HC164(LED_array[(shi*5)-48]);
  498.             HC164(0x00);
  499.             HC164(0x00);
  500.             HC164(0x00);
  501.             HC164(0x00);
  502.             HC164(0x00);
  503.             HC164(0x00);
  504.                         delay_ms(NUM);
  505.                 }
  506.             else if((shi*5)/8==7)
  507.                 {
  508.                         RLED_ON();
  509.             HC164(LED_array[(shi*5)-56]);
  510.             HC164(0x00);
  511.             HC164(0x00);
  512.             HC164(0x00);
  513.             HC164(0x00);
  514.             HC164(0x00);
  515.             HC164(0x00);
  516.             HC164(0x00);
  517.                         delay_ms(NUM);
  518.                 }
  519.         }
  520. }

  521. /*********************************************************************/
  522. /*                读出DS1302时分秒且显示函数                         */
  523. /*********************************************************************/
  524. void read_sfm(void)
  525. {
  526.         miao = read_1302(read_miao);
  527.         fen  = read_1302(read_fen);
  528.         shi  = read_1302(read_shi);
  529.         display(shi, fen, miao);
  530. }

  531. /*********************************************************************/
  532. /*                       按键扫描函数                                */
  533. /*********************************************************************/
  534. void keyscan(void)           //
  535. {            
  536.         if(KEY_set==0)           //选择按键按下
  537.         {
  538.                 delay_ms(10);
  539.                 if(KEY_set==0)
  540.                 FMQ(1, 100);
  541.                 {
  542.                         while(!KEY_set)
  543.                         display(shi, fen, miao); //加上这句,按键按下就不会闪
  544.                         knum ++;
  545.                         if(knum==1)        //分闪烁
  546.                         {
  547.                                 write_1302(0x8E,       0x00);  //保护取消
  548.                                 write_1302(write_miao, 0x80);
  549.                         }
  550.                         if(knum==3)         //时钟启动
  551.                         {
  552.                                 knum=0;
  553.                                 write_1302(write_miao, 0x00);
  554.                                 write_1302(0x8E,       0x80);  //保护启动
  555.                         }
  556.                 }
  557.         }
  558.         if(knum==1)        //分钟调节
  559.         {
  560.                 if(KEY_add==0)       //加
  561.                 {
  562.                         delay_ms(10);
  563.                         if(KEY_add==0)
  564.                         FMQ(1, 100);
  565.                         {
  566.                                 while(!KEY_add)
  567.                                 display(shi, fen, miao); //加上这句,按键按下就不会闪
  568.                                 fen ++;
  569.                                 if(fen==60)
  570.                                         fen = 0;
  571.                                 write_1302(write_fen,fen/10*16 + fen%10); //写入1302
  572.                                 read_sfm();     //读出时间,然后显示
  573.                         }
  574.                 }
  575.                 if(KEY_dec==0)
  576.                 {
  577.                         delay_ms(10);
  578.                         if(KEY_dec==0)
  579.                         FMQ(1, 100);
  580.                         {
  581.                                 while(!KEY_dec)
  582.                                 display(shi, fen, miao); //加上这句,按键按下就不会闪
  583.                                 fen --;
  584.                                 if(fen==-1)
  585.                                 fen = 59;
  586.                                 write_1302(write_fen,fen/10*16 + fen%10);
  587.                                 read_sfm();
  588.                         }
  589.                 }
  590.         }
  591.         if(knum==2)
  592.         {
  593.                 if(KEY_set==0)
  594.                 {
  595.                         delay_ms(10);
  596.                         if(KEY_set==0)
  597.                         FMQ(1, 100);
  598.                         {
  599.                                 while(!KEY_set)
  600.                                 display(shi, fen, miao); //加上这句,按键按下就不会闪
  601.                                 shi ++;
  602.                                 if(shi==12)
  603.                                 shi = 0;
  604.                                 write_1302(write_shi,shi/10*16 + shi%10);
  605.                                 read_sfm();
  606.                         }
  607.                 }
  608.                 if(KEY_dec==0)
  609.                 {
  610.                         delay_ms(10);
  611.                         if(KEY_dec==0)
  612.                         FMQ(1, 100);
  613.                         {
  614.                                 while(!KEY_dec)
  615.                                 display(shi, fen, miao); //加上这句,按键按下就不会闪
  616.                                 shi --;
  617.                                 if(shi==-1)
  618.                                 shi = 11;
  619.                                 write_1302(write_shi,shi/10*16+shi%10);
  620.                                 read_sfm();
  621.                         }
  622.                 }
  623.         }
  624. }

  625. /*********************************************************************/
  626. /*                 主程序                                            */
  627. /*********************************************************************/                        
  628. void main(void)
  629. {
  630. //        DS1302_init();
  631. //        TIMER0_init();
  632.         FMQ(1, 120);
  633.         while(1)
  634.         {
  635. /*                if(miao_num<10)                 //秒点闪烁
  636.                 led = 0;
  637.                 if(miao_num>=10)
  638.                 led = 1;         */
  639.                 read_sfm();
  640.                 keyscan();
  641.         }
  642. }

  643. /*********************************************************************/
  644. /*                   TIMER0(1秒)定时中断函数                         */
  645. /*********************************************************************/
  646. /*
  647. void TIMER0() interrupt 1
  648. {
  649.         TMOD = 0x01;
  650.         TH0  = (65536-50000)/256;        
  651.         TL0  = (65536-50000)%256;
  652.         miao_num ++;
  653.         if(miao_num>=20)
  654.         {
  655.                 miao_num = 0;
  656.                 miao_flag = 1;
  657.         }
  658. }
  659. */
复制代码


评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:82765 发表于 2017-3-30 21:41 | 显示全部楼层
很有创意,可以提高初学者的兴趣
回复

使用道具 举报

ID:67370 发表于 2017-3-31 13:28 | 显示全部楼层
谢admin送分。
回复

使用道具 举报

ID:67370 发表于 2017-3-31 19:22 | 显示全部楼层
原理图无法上传?

回复

使用道具 举报

ID:1 发表于 2017-3-31 21:58 | 显示全部楼层
tianxing 发表于 2017-3-31 19:22
原理图无法上传?

楼主的原理图是图片还是pdf 如果是图片的话最好不要超过2兆 容易导致失败,最好用qq截图来弄,这样成功率是100%,pdf直接上传
回复

使用道具 举报

ID:67370 发表于 2017-4-1 10:10 | 显示全部楼层
谢了。
回复

使用道具 举报

ID:139165 发表于 2017-4-1 14:18 | 显示全部楼层
说得好啊
回复

使用道具 举报

ID:99130 发表于 2017-4-10 13:59 | 显示全部楼层
牛 但是你这个怎么看呢 绿色是时还是分
回复

使用道具 举报

ID:99130 发表于 2017-4-10 14:14 | 显示全部楼层
共享一下原理图吧楼主
回复

使用道具 举报

ID:67370 发表于 2017-4-12 11:01 | 显示全部楼层
红蓝绿分别对应时分秒,图只能发包了。

DS1302_164_60BRG.rar

17.92 KB, 下载次数: 24, 下载积分: 黑币 -5

回复

使用道具 举报

ID:67370 发表于 2017-4-12 11:19 | 显示全部楼层
红蓝绿分别对应时分秒。

原理图

原理图
回复

使用道具 举报

ID:380389 发表于 2018-8-1 14:08 来自手机 | 显示全部楼层
好东西,收藏学习学习
回复

使用道具 举报

ID:102963 发表于 2018-8-1 21:56 | 显示全部楼层
这菜不错,很香!找空我也做下。
回复

使用道具 举报

ID:66287 发表于 2018-8-8 09:19 | 显示全部楼层
高!楼主牛人也!
回复

使用道具 举报

ID:124627 发表于 2018-8-8 17:42 | 显示全部楼层
        date = date/16*10 + date%16;//进制转换 16转10进制   这里应该错了
回复

使用道具 举报

ID:363686 发表于 2018-8-12 12:31 | 显示全部楼层
学习贴收藏了,谢谢分享
回复

使用道具 举报

ID:384558 发表于 2018-8-14 12:14 | 显示全部楼层
学习支持
回复

使用道具 举报

ID:384558 发表于 2018-8-17 12:42 | 显示全部楼层
好东西,收藏
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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