ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á

QQ怬

Ö»ÐèÒ»²½£¬¿ìËÙ¿ªÊ¼

ËÑË÷
²é¿´: 2677|»Ø¸´: 6
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ
ÊÕÆð×ó²à

µ¥Æ¬»ú1.2´çÊýÂë¹ÜʱÖÓ³ÌÐò ´øÎÂ¶È ¹â¿Ø º¬Ô´Âëµç·ԭÀíͼ

  [¸´ÖÆÁ´½Ó]
Ê×ÏȸÐлÂÛ̳ÖÐÌṩ¡±1´çÊýÂë¹ÜʱÖÓ+12C5A60S2µ¥Æ¬»ú+×Ô¶¯ÁÁ¶È+ʱ¼äζÈÂÖÁ÷ÏÔʾ£¨ÊµÎï+´úÂ룩¡°×÷Õߣ¬
±¾ÈËÔÚÔ­×÷Õß»ù´¡ÉÏ£¬¸ù¾ÝÏÖÓÐÔªÆ÷¼þ£¬³É¹¦ÖÆ×÷ÁË1.2´çÊýÂë¹ÜʱÖÓ£¬ÓÉÓÚÊ×´ÎʹÓüÎÁ¢´´»æÖÆÔ­ÀíͼºÍPCB,
ÓÉÓÚʹÓÃË«Ãæ°åÖÆ×÷PCB

Ïß¾¶½ÏϸºÍ¹ý¿×´¦Àí¼¼Êõ²»ÐиÄΪµ¥Ãæ°åÖÆ×÷£¬ÖÆ×÷ÖÐDS1302²»¼ÆÊ±£¬ºóÔö¼ÓÁËC3ºÍC4
Â˲¨µçÈݽâ¾öÁËÎÊÌâ¡£

ÖÆ×÷³öÀ´µÄʵÎïͼÈçÏ£º


µ¥Æ¬»úÔ´³ÌÐòÈçÏÂ:
  1. /********************************************************************************
  2.            ±¾ÈËÔÚÔ­×÷Õß»ù´¡ÉÏ£¬¸ù¾ÝÏÖÓÐÔªÆ÷¼þ£¬³É¹¦ÖÆ×÷ÁË1.2´çÊýÂë¹ÜʱÖÓ£¬ÓÉÓÚÊ×´ÎʹÓüÎÁ¢´´»æÖÆÔ­ÀíͼºÍPCB,
  3.            Ê¹ÓÃË«Ãæ°åÖÆ×÷PCB,ÓÉÓÚÏß¾¶½ÏϸºÍ¹ý¿×´¦Àí¼¼Êõ²»ÐиÄΪµ¥Ãæ°åÖÆ×÷£¬ÖÆ×÷ÖÐDS1302²»¼ÆÊ±£¬ºóÔö¼ÓÁËC3ºÍC4
  4.            Â˲¨µçÈݽâ¾öÁËÎÊÌâ¡£

  5. ÃèÊö£º 4λ¹²ÑôÊýÂë¹ÜʱÖÓ£¬ÏÔʾ88£º88Ñùʽ£¬Õý³£×ßʱµÄʱºò£¬¡°£º¡±1ÃëÉÁ˸2´Î£»µ÷ʱ¼äµÄµÄʱºòðºÅϨÃð
  6.        µ÷ʱ£º°´KEY1°´¼üµÚ1´ÎСʱλÉÁ˸£¬ÔÙ°´KEY2Ò»´ÎСʱ¼Ó1£¬°´KEY3Ò»´ÎСʱ¼õ1£¬³¤°´Á¬¼ÓÁ¬¼õ£»
  7.                          °´KEY1°´¼üµÚ2´Î·ÖÖÓλÉÁ˸£¬ÔÙ°´KEY2Ò»´Î·ÖÖÓ¼Ó1£¬°´KEY3Ò»´Î·ÖÖÓ¼õ1£¬³¤°´Á¬¼ÓÁ¬¼õ£»
  8.                          °´KEY1°´¼üµÚ3´Î£¬Ãë´ÓÁ㿪ʼÀÛ¼Ó£¬Ê±Öӻص½Õý³£×ßʱ£»
  9.                          УʱµÄʱºòÏȵ÷ºÃʱ¡¢·Ö£¬·ÖÖÓÒª±È²Î¿¼Ê±¼äµÄ·ÖÖÓ¼Ó1·Ö£¬
  10.                          ÔÙ¿´²Î¿¼Ê±¼äµÄÃëÊýµ½ÁË59ÔÙ°´KEY1°´¼üµÄµÚ3´Î£¬ÕâÑù¶Ôʱ¾Í±È½Ï×¼ÁË¡£
  11.                          ¼Ó±¸ÓÃµç³Ø£¬µôµç×ßʱ
  12.                         
  13.                          KEY2¼üµÚ2¹¦ÄÜ£º·Çµ÷ʱ״̬£¬Îª¹â¿Ø¿ª¹Ø£»
  14.                          KEY3¼üµÚ2¹¦ÄÜ£º·Çµ÷ʱ״̬£¬ÎªÏÔʾÇл»¿ª¹Ø£»
  15.                          DS18B20×öζȼì²â£¬ÊµÊ±Ê±ÖÓÓëζÈÂÖÁ÷ÏÔʾ£»
  16.                          ζÈÏÔʾ·¶Î§£º -9.9¡æ~99.9¡æ£»
  17.                          Ôö¼ÓÊýÂë¹Üµ÷ÁÁ¶È¹¦ÄÜ,°´¼ü10¼¶ÁÁ¶ÈP1.0½Ó10Kµç×èÉÏÀ­¡¢¹âÃôµç×èÏÂÀ­·Öѹ£»
  18.                          »·¾³¹âÏßÔ½ÁÁ£¬ÊýÂë¹ÜÔ½ÁÁ£¬·´Ö®ÊýÂë¹ÜÔ½°µ¡£
  19. ʵÎïͨ¹ý.  
  20.                          12MHz¾§Õñ£¬STC15F2K60S2+DS1302ʱÖÓоƬ+DS18B20£¬
  21.                          P0¿Ú½Ó¶Î룬P2^4~P2^7½ÓpnpÈý¼«¹Ü¿ØÖÆ4¸ö¹²Ñô¼«¡£
  22. **********************************************************************************/
  23. //#include <STC12C5A60S2.h>
  24. #include <STC15F2K60S2.h>
  25. #include <intrins.h>
  26. #define uchar unsigned char
  27. #define uint unsigned int


  28. sbit TSCLK = P2^2;//ʱÖÓÏß
  29. sbit TIO   = P2^1;//Êý¾ÝÏß
  30. sbit TRST  = P2^0;//ʹÄܶË

  31. sbit key1 = P3^4;   //ÉèÖüü
  32. sbit key2 = P3^3;   //¼Ó /¹â¿Ø¿ª¹Ø¼ü£¨Ð£Ê±µÄʱºò×ö¼Ó¼ü£¬·´Ö®Îª¹â¿Ø¿ª¹Ø£©
  33. sbit key3 = P3^2;   // ¼õ/ÏÔʾÇл»¼ü
  34. sbit DQ = P2^3;                //DS18B20Êý¾Ý¿Ú

  35. sbit w1 = P2^4;          //ÉèÖÃλÇý¶¯¿Ú
  36. sbit w2 = P2^5;
  37. sbit w3 = P2^6;
  38. sbit w4 = P2^7;
  39. sbit w5 = P3^7;         //´Ëλ²»ÏÔʾ
  40. sbit dd = P1^4;         //·äÃùÆ÷¿ØÖƶˠ       

  41. uchar xs=0; //ÏÔʾÇл»¼ÆÊý±äÁ¿
  42. uchar tian=0;
  43. uchar knum,shan_cont;
  44. char shi,fen,miao;
  45. uchar ba=40;
  46. uint mh,mh_count,count;
  47. bit shan;           //УʱÉÁ˸±ê־λ
  48. uchar s=0;                   //ÏÔʾ¸ººÅ
  49. uint temp;        //ζÈÖµ
  50. bit flag;                  //ÂÖÁ÷ÏÔʾ±ê־λ
  51. bit flag_gk;          //¹â¿Ø±ê־λ
  52. bit flag_js=0;          //×Ô¶¯Ð£Ê±±êÖ¾
  53. bit flag_fm;          //·äÃùÆ÷Æô¶¯±êÖ¾
  54. uchar fm;                //·äÃùÆ÷¼ÆÊ±±äÁ¿
  55. /***************************************¶¨Òåת»»¿ØÖƼĴæÆ÷¿ØÖÆÎ»*****************************************/
  56. #define ADC_POWER                   0X80            //µçÔ´¿ØÖÆÎ»
  57. #define ADC_FLAG                    0X10            //ת»»½áÊø±ê־λ
  58. #define ADC_START                   0X08            //ת»»¿ªÊ¼Î»
  59. /*********************************************¶¨ÒåADת»»ËÙ¶È*********************************************/
  60. #define ADC_SPEEDLL_540         0X00           
  61. #define ADC_SPEEDLL_360                0X20
  62. #define ADC_SPEEDLL_180                0X40
  63. #define ADC_SPEEDLL_90                0X60
  64. /***********дʱ·ÖÃëµØÖ·************/
  65. #define write_shi  0x84
  66. #define write_fen  0x82
  67. #define write_miao 0x80
  68. #define write_ram  0xc0
  69. /***********¶Áʱ·ÖÃëµØÖ·************/
  70. #define read_shi  0x85
  71. #define read_fen  0x83
  72. #define read_miao 0x81
  73. #define read_ram  0xc1
  74. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x46,0xbf};//¹²Ñô¶ÎÂë £¨0--9¡¢ºÚÆÁ¡¢C¡¢-£©


  75. ...............³ÌÐòÒÑÔÚ2Â¥¸üÐÂ...........
¸´ÖÆ´úÂë

ÏÂÔØ: ³ÌÐòºÍPDF¸ñʽԭÀíͼ.7z (96.29 KB, ÏÂÔØ´ÎÊý: 44)

ÆÀ·Ö

²ÎÓëÈËÊý 1ºÚ±Ò +50 ÊÕÆð ÀíÓÉ
admin + 50

²é¿´È«²¿ÆÀ·Ö

·ÖÏíµ½:  QQºÃÓѺÍȺQQºÃÓѺÍȺ QQ¿Õ¼äQQ¿Õ¼ä ÌÚѶ΢²©ÌÚѶ΢²© ÌÚѶÅóÓÑÌÚѶÅóÓÑ
ÊÕ²ØÊÕ²Ø8 ·ÖÏíÌÔÌû ¶¥¶¥ ²È²È
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

ɳ·¢
ID:378402 ·¢±íÓÚ 2023-7-2 18:05 | Ö»¿´¸Ã×÷Õß

RE: 1.2´çÊýÂë¹ÜʱÖÓ_ζÈ_¹â¿Ø_º¬Ô´Âë_Ô­Àíͼ

Ê×ÏȸÐлÂÛ̳ÖÐÌṩ¡±1´çÊýÂë¹ÜʱÖÓ+12C5A60S2µ¥Æ¬»ú+×Ô¶¯ÁÁ¶È+ʱ¼äζÈÂÖÁ÷ÏÔʾ£¨ÊµÎï+´úÂ룩¡°×÷Õߣ¬
           ±¾ÈËÔÚÔ­×÷Õß»ù´¡ÉÏ£¬¸ù¾ÝÏÖÓÐÔªÆ÷¼þ£¬³É¹¦ÖÆ×÷ÁË1.2´çÊýÂë¹ÜʱÖÓ£¬ÓÉÓÚÊ×´ÎʹÓüÎÁ¢´´»æÖÆÔ­ÀíͼºÍPCB,
           ʹÓÃË«Ãæ°åÖÆ×÷PCB,ÓÉÓÚÏß¾¶½ÏϸºÍ¹ý¿×´¦Àí¼¼Êõ²»ÐиÄΪµ¥Ãæ°åÖÆ×÷£¬ÖÆ×÷ÖÐDS1302²»¼ÆÊ±£¬ºóÔö¼ÓÁËC3ºÍC4
           Â˲¨µçÈݽâ¾öÁËÎÊÌâ¡£
  1. /*********************************************************************************
  2. ÃèÊö£º 4λ¹²ÑôÊýÂë¹ÜʱÖÓ£¬ÏÔʾ88£º88Ñùʽ£¬Õý³£×ßʱµÄʱºò£¬¡°£º¡±1ÃëÉÁ˸2´Î£»µ÷ʱ¼äµÄµÄʱºòðºÅϨÃð
  3.        µ÷ʱ£º°´KEY1°´¼üµÚ1´ÎСʱλÉÁ˸£¬ÔÙ°´KEY2Ò»´ÎСʱ¼Ó1£¬°´KEY3Ò»´ÎСʱ¼õ1£¬³¤°´Á¬¼ÓÁ¬¼õ£»
  4.                          °´KEY1°´¼üµÚ2´Î·ÖÖÓλÉÁ˸£¬ÔÙ°´KEY2Ò»´Î·ÖÖÓ¼Ó1£¬°´KEY3Ò»´Î·ÖÖÓ¼õ1£¬³¤°´Á¬¼ÓÁ¬¼õ£»
  5.                          °´KEY1°´¼üµÚ3´Î£¬Ãë´ÓÁ㿪ʼÀÛ¼Ó£¬Ê±Öӻص½Õý³£×ßʱ£»
  6.                          Ð£Ê±µÄʱºòÏȵ÷ºÃʱ¡¢·Ö£¬·ÖÖÓÒª±È²Î¿¼Ê±¼äµÄ·ÖÖÓ¼Ó1·Ö£¬
  7.                          ÔÙ¿´²Î¿¼Ê±¼äµÄÃëÊýµ½ÁË59ÔÙ°´KEY1°´¼üµÄµÚ3´Î£¬ÕâÑù¶Ôʱ¾Í±È½Ï×¼ÁË¡£
  8.                          ¼Ó±¸ÓÃµç³Ø£¬µôµç×ßʱ
  9.                          
  10.                          KEY2¼üµÚ2¹¦ÄÜ£º·Çµ÷ʱ״̬£¬Îª¹â¿Ø¿ª¹Ø£»
  11.                          KEY3¼üµÚ2¹¦ÄÜ£º·Çµ÷ʱ״̬£¬ÎªÏÔʾÇл»¿ª¹Ø£»
  12.                          DS18B20×öζȼì²â£¬ÊµÊ±Ê±ÖÓÓëζÈÂÖÁ÷ÏÔʾ£»
  13.                          Î¶ÈÏÔʾ·¶Î§£º -9.9¡æ~99.9¡æ£»
  14.                          Ôö¼ÓÊýÂë¹Üµ÷ÁÁ¶È¹¦ÄÜ,°´¼ü10¼¶ÁÁ¶ÈP1.0½Ó10Kµç×èÉÏÀ­¡¢¹âÃôµç×èÏÂÀ­·Öѹ£»
  15.                          »·¾³¹âÏßÔ½ÁÁ£¬ÊýÂë¹ÜÔ½ÁÁ£¬·´Ö®ÊýÂë¹ÜÔ½°µ¡£
  16. ʵÎïͨ¹ý.  
  17.                          12MHz¾§Õñ£¬STC15F2K60S2+DS1302ʱÖÓоƬ+DS18B20£¬
  18.                          P0¿Ú½Ó¶Î룬P2^4~P2^7½ÓpnpÈý¼«¹Ü¿ØÖÆ4¸ö¹²Ñô¼«¡£
  19. **********************************************************************************/
  20. //#include <STC12C5A60S2.h>
  21. #include <STC15F2K60S2.h>
  22. #include <intrins.h>
  23. #define uchar unsigned char
  24. #define uint unsigned int


  25. sbit TSCLK = P2^2;//ʱÖÓÏß
  26. sbit TIO   = P2^1;//Êý¾ÝÏß
  27. sbit TRST  = P2^0;//ʹÄܶË

  28. sbit key1 = P3^4;   //ÉèÖüü
  29. sbit key2 = P3^3;   //¼Ó /¹â¿Ø¿ª¹Ø¼ü£¨Ð£Ê±µÄʱºò×ö¼Ó¼ü£¬·´Ö®Îª¹â¿Ø¿ª¹Ø£©
  30. sbit key3 = P3^2;   // ¼õ/ÏÔʾÇл»¼ü
  31. sbit DQ = P2^3;                //DS18B20Êý¾Ý¿Ú

  32. sbit w1 = P2^4;          //ÉèÖÃλÇý¶¯¿Ú
  33. sbit w2 = P2^5;
  34. sbit w3 = P2^6;
  35. sbit w4 = P2^7;
  36. sbit w5 = P3^7;         //´Ëλ²»ÏÔʾ
  37. sbit dd = P1^4;         //·äÃùÆ÷¿ØÖƶˠ      

  38. uchar xs=0; //ÏÔʾÇл»¼ÆÊý±äÁ¿
  39. uchar tian=0;
  40. uchar knum,shan_cont;
  41. char shi,fen,miao;
  42. uchar ba=40;
  43. uint mh,mh_count,count;
  44. bit shan;           //УʱÉÁ˸±ê־λ
  45. uchar s=0;                   //ÏÔʾ¸ººÅ
  46. uint temp;        //ζÈÖµ
  47. bit flag;                  //ÂÖÁ÷ÏÔʾ±ê־λ
  48. bit flag_gk;          //¹â¿Ø±ê־λ
  49. bit flag_js=0;          //×Ô¶¯Ð£Ê±±êÖ¾
  50. bit flag_fm;          //·äÃùÆ÷Æô¶¯±êÖ¾
  51. uchar fm;                //·äÃùÆ÷¼ÆÊ±±äÁ¿
  52. /***************************************¶¨Òåת»»¿ØÖƼĴæÆ÷¿ØÖÆÎ»*****************************************/
  53. #define ADC_POWER                   0X80            //µçÔ´¿ØÖÆÎ»
  54. #define ADC_FLAG                    0X10            //ת»»½áÊø±ê־λ
  55. #define ADC_START                   0X08            //ת»»¿ªÊ¼Î»
  56. /*********************************************¶¨ÒåADת»»ËÙ¶È*********************************************/
  57. #define ADC_SPEEDLL_540         0X00           
  58. #define ADC_SPEEDLL_360                0X20
  59. #define ADC_SPEEDLL_180                0X40
  60. #define ADC_SPEEDLL_90                0X60
  61. /***********дʱ·ÖÃëµØÖ·************/
  62. #define write_shi  0x84
  63. #define write_fen  0x82
  64. #define write_miao 0x80
  65. #define write_ram  0xc0
  66. /***********¶Áʱ·ÖÃëµØÖ·************/
  67. #define read_shi  0x85
  68. #define read_fen  0x83
  69. #define read_miao 0x81
  70. #define read_ram  0xc1
  71. uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x46,0xbf};//¹²Ñô¶ÎÂë £¨0--9¡¢ºÚÆÁ¡¢C¡¢-£©

  72. /*********************************************************************************************************
  73. ** º¯Êý¹¦ÄÜ £ºÑÓʱº¯Êý
  74. ** º¯Êý˵Ã÷ £ºÀûÓÃÈí¼þÑÓʱ£¬Õ¼ÓÃCPU
  75. ** Èë¿Ú²ÎÊý £ºtime:ÐèÒªÑÓʱµÄʱ¼ä£¬
  76. ** ³ö¿Ú²ÎÊý £ºÎÞ
  77. *********************************************************************************************************/
  78. void Delay_ms(uint time)
  79. {
  80.         uint i,j;
  81.         for(i = 0;i < time;i ++)
  82.                 for(j = 0;j < 45;j ++);
  83. }

  84. /*********************************************************************************************************
  85. ** º¯Êý¹¦ÄÜ £ºÑÓʱº¯Êý
  86. ** º¯Êý˵Ã÷ £ºÀûÓÃÈí¼þÑÓʱ£¬Õ¼ÓÃCPU£¬¾­µ÷ÊÔ×îСµ¥Î»´óԼΪ1us
  87. ** Èë¿Ú²ÎÊý £ºtime:ÐèÒªÑÓʱµÄʱ¼ä£¬µ¥Î»us
  88. ** ³ö¿Ú²ÎÊý £ºÎÞ
  89. *********************************************************************************************************/
  90. void delay(uchar n)
  91. {
  92.     while (n--)
  93.     {
  94.         _nop_();
  95.         _nop_();
  96.     }
  97. }

  98. /*****************DS18B20******************/

  99. void Init_Ds18b20(void)     //DS18B20³õʼ»¯send reset and initialization command
  100. {
  101.         DQ = 1;                     //DQ¸´Î»,²»ÒªÒ²¿ÉÐС£
  102.         delay(1);                  //ÉÔ×öÑÓʱ
  103.         DQ = 0;                    //µ¥Æ¬»úÀ­µÍ×ÜÏß
  104.         //delay(250);                //¾«È·ÑÓʱ£¬Î¬³ÖÖÁÉÙ480us
  105.         EA=0;
  106.         delay(170);
  107.         EA=1;
  108.         DQ = 1;
  109.         EA=0;                    //ÊÍ·Å×ÜÏߣ¬¼´À­¸ßÁË×ÜÏß
  110.         delay(170);                //´Ë´¦ÑÓʱÓÐ×ã¹»,È·±£ÄÜÈÃDS18B20·¢³ö´æÔÚÂö³å¡£
  111.         EA=1;
  112. }

  113. uchar Read_One_Byte()       //¶Áȡһ¸ö×Ö½ÚµÄÊý¾Ýread a byte date
  114.                             //¶ÁÊý¾Ýʱ,Êý¾ÝÒÔ×Ö½ÚµÄ×îµÍÓÐЧλÏÈ´Ó×ÜÏßÒÆ³ö
  115. {
  116.         uchar i   = 0;
  117.         uchar dat = 0;
  118.         for(i=8;i>0;i--)
  119.         {
  120.            DQ = 0;                  //½«×ÜÏßÀ­µÍ£¬ÒªÔÚ1usÖ®ºóÊÍ·Å×ÜÏß                       //µ¥Æ¬»úÒªÔÚ´ËϽµÑغóµÄ15usÄÚ¶ÁÊý¾Ý²Å»áÓÐЧ¡£
  121.            delay(1);                //ÖÁÉÙά³ÖÁË1us,±íʾ¶ÁʱÐò¿ªÊ¼
  122.            dat >>= 1;               //ÈôÓ×ÜÏßÉ϶Áµ½µÄλÊý¾Ý£¬ÒÀ´Î´Ó¸ßÎ»ÒÆ¶¯µ½µÍλ¡£
  123.            DQ = 1;                  //ÊÍ·Å×ÜÏߣ¬´ËºóDS18B20»á¿ØÖÆ×ÜÏß,°ÑÊý¾Ý´«Êäµ½×ÜÏßÉÏ
  124.            delay(7);                //ÑÓʱ7us,´Ë´¦²ÎÕÕÍÆ¼öµÄ¶ÁʱÐòͼ£¬¾¡Á¿°Ñ¿ØÖÆÆ÷²ÉÑùʱ¼ä·Åµ½¶ÁʱÐòºóµÄ15usÄÚµÄ×îºó²¿·Ö
  125.            if(DQ)                   //¿ØÖÆÆ÷½øÐвÉÑù
  126.            {
  127.             dat |= 0x80;            //Èô×ÜÏßΪ1,¼´DQΪ1,ÄǾͰÑdatµÄ×î¸ßλÖÃ1;ÈôΪ0,Ôò²»½øÐд¦Àí,±£³ÖΪ0
  128.            }
  129.            EA=0;        
  130.            delay(40);              //´ËÑÓʱ²»ÄÜÉÙ£¬È·±£¶ÁʱÐòµÄ³¤¶È60us¡£
  131.            EA=1;
  132.         }
  133.         return (dat);
  134. }

  135. void Write_One_Byte(uchar dat)
  136. {
  137.         uchar i = 0;
  138.         for(i=8;i>0;i--)
  139.         {
  140.            DQ = 0;                        //À­µÍ×ÜÏß
  141.            delay(1);                       //ÖÁÉÙά³ÖÁË1us,±íʾдʱÐò(°üÀ¨Ð´0ʱÐò»òд1ʱÐò)¿ªÊ¼
  142.            DQ = dat&0x01;                 //´Ó×Ö½ÚµÄ×îµÍλ¿ªÊ¼´«Êä
  143.                                          //Ö¸ÁîdatµÄ×îµÍλ¸³Óè¸ø×ÜÏß,±ØÐëÔÚÀ­µÍ×ÜÏߺóµÄ15usÄÚ,                              //ÒòΪ15usºóDS18B20»á¶Ô×ÜÏß²ÉÑù¡£
  144.            delay(60);                     //±ØÐëÈÃдʱÐò³ÖÐøÖÁÉÙ60us
  145.            DQ = 1;                        //дÍêºó,±ØÐëÊÍ·Å×ÜÏß,
  146.            dat >>= 1;
  147.            delay(1);
  148.         }
  149. }


  150. uint Get_Tmp()                   //»ñȡζÈget the temperature
  151. {
  152.         float tt;
  153.         uchar L,M;
  154. EA=0;
  155.         Init_Ds18b20();                //³õʼ»¯
  156.         Write_One_Byte(0xcc);          //ºöÂÔROMÖ¸Áî
  157.         Write_One_Byte(0x44);          //ζÈת»»Ö¸Áî
  158.         Init_Ds18b20();                 //³õʼ»¯
  159.         Write_One_Byte(0xcc);          //ºöÂÔROMÖ¸Áî
  160.         Write_One_Byte(0xbe);          //¶ÁÔÝ´æÆ÷Ö¸Áî
  161.         L = Read_One_Byte();           //¶ÁÈ¡µ½µÄµÚÒ»¸ö×Ö½ÚΪζÈLSB
  162.         M = Read_One_Byte();           //¶ÁÈ¡µ½µÄµÚÒ»¸ö×Ö½ÚΪζÈMSB
  163.         temp = M;                      //ÏȰѸ߰ËλÓÐЧÊý¾Ý¸³ÓÚtemp
  164.         temp <<= 8;                    //°ÑÒÔÉÏ8λÊý¾Ý´ÓtempµÍ°ËÎ»ÒÆµ½¸ß°Ëλ
  165.         temp = temp|L;                //Á½×ֽںϳÉÒ»¸öÕûÐͱäÁ¿
  166. EA=1;
  167.         if(M >= 0x08)        //ÅжÏÊÇ·ñΪ¸ºÊý
  168.         {
  169.                 temp = ~temp + 1;//¸ºÊýÊÇÒÔ²¹ÂëµÄÐÎʽ´æ·ÅµÄÐèҪȡ·´¼Ó1
  170.                 s = 0xbf;  //ÏÔʾ¸ºÊý·ûºÅ
  171.         }
  172.         else s = 0;           //ΪÕýÊýÔò²»ÏÔʾ¸ºÊý·ûºÅ

  173.         tt = temp*0.0625;              //µÃµ½ÕæÊµÊ®½øÖÆÎ¶ÈÖµ
  174.                                         //ÒòΪDS18B20¿ÉÒÔ¾«È·µ½0.0625¶È
  175.                                         //ËùÒÔ¶Á»ØÊý¾ÝµÄ×îµÍλ´ú±íµÄÊÇ0.0625¶È
  176.         temp = tt*10+0.5;               //·Å´óÊ®±¶
  177.                                         //ÕâÑù×öµÄÄ¿µÄ½«Ð¡ÊýµãºóµÚһλҲת»»Îª¿ÉÏÔʾÊý×Ö
  178.                                //ͬʱ½øÐÐÒ»¸öËÄÉáÎåÈë²Ù×÷¡£
  179.         return temp;
  180. }


  181. /****************ζÈÏÔʾº¯Êý**************/

  182. void Display_tem(uint temp)   //ÏÔʾ³ÌÐò
  183. {
  184.         uchar A1,A2,A3;
  185.         A1 = temp/100;    //°Ùλ
  186.         A2 = temp%100/10;   //ʮλ
  187.         A3 = temp%10;    //¸öλ
  188.        
  189.         if(A1 > 0 && s == 0 )
  190.         {
  191.                 P0 = 0xff;
  192.                 w2 = 1; w3 = 1; w4 = 1;
  193.                 Delay_ms(50-ba);
  194.                 P0 = table[A1];    //ÏÔʾ°Ùλ
  195.                 w1 = 0;
  196.                 Delay_ms(ba);
  197.         }
  198.         else
  199.         {
  200.                 if(A1 == 0 && s == 0)
  201.                 {
  202.                         P0 = 0xff;
  203.                         w2 = 1; w3 = 1; w4 = 1;
  204.                         Delay_ms(50-ba);
  205.                         P0 = table[10];    //°ÙλΪ0²»ÏÔ
  206.                         w1 = 0;
  207.                         Delay_ms(ba);
  208.                 }
  209.                 else
  210.                 if(s != 0)
  211.                 {
  212.                         P0 = 0xff;
  213.                         w2 = 1; w3 = 1; w4 = 1;
  214.                         Delay_ms(50-ba);
  215.                         P0 = s;    //°ÙλΪ¸ºÊýÏÔʾ-
  216.                         w1 = 0;
  217.                         Delay_ms(ba);
  218.                 }
  219.                  
  220.        
  221.         }
  222.        
  223.        
  224.         P0 = 0xff;
  225.         w1 = 1; w3 = 1; w4 = 1;
  226.         Delay_ms(50-ba);
  227.         P0 = table[A2]&0X7F;   //ÏÔʾʮλ,ʹÓõÄÊÇÓÐСÊýµãµÄÊý×é(ÒòΪtempÖµÀ©´óÁË10±¶,ËäÈ»ÊÇʮλ,ʵ¼ÊΪ¸öλ)
  228.         w2 = 0;
  229.         Delay_ms(ba);
  230.        
  231.         P0 = 0xff;
  232.         w1 = 1; w2 = 1;  w4 = 1;
  233.         Delay_ms(50-ba);
  234.         P0 = table[A3];
  235.         w3 = 0;   
  236.         Delay_ms(ba);       
  237.          
  238.         P0 = 0xff;
  239.         w1 = 1; w2 = 1; w3 = 1;
  240.         Delay_ms(50-ba);
  241.         P0 = 0x46;   //ÏÔʾC×ÖÑù
  242.         w4 = 0;
  243.         Delay_ms(ba);
  244.        
  245.         P0 = 0xff;
  246.         w1 = 1; w2 = 1; w3 = 1;
  247.         Delay_ms(50-ba);
  248.         P0 = 0xff;   
  249.         w5 = 0;
  250.         P0 = 0xff;
  251.         Delay_ms(ba);       
  252. }



  253. void display( uchar shi,uchar fen)           //ʱ¼äÏÔʾº¯Êý
  254. {

  255. /*****Õý³£ÏÔʾ******/
  256.         if(knum == 0)
  257.         {
  258.                 if(shi/10 > 0)
  259.                 {
  260.                         w2 = 1; w3 = 1; w4 = 1;
  261.                         Delay_ms(50-ba);
  262.                         P0 = table[shi/10];    //ÏÔʾСʱʮλ
  263.                         w1 = 0;
  264.                         Delay_ms(ba);
  265.                 }
  266.                 else
  267.                 {
  268.                         w2 = 1; w3 = 1; w4 = 1;
  269.                         Delay_ms(50-ba);
  270.                         P0 = table[10];    //СʱʮλΪ0²»ÏÔʾ
  271.                         w1 = 0;
  272.                         Delay_ms(ba);
  273.                
  274.                 }
  275.        
  276.                 P0 = 0xff;
  277.                 w1 = 1; w3 = 1; w4 = 1;
  278.                 Delay_ms(50-ba);
  279.                 if(mh_count>=50)
  280.                 P0 = table[shi%10]&0x7f;    //ÏÔʾСʱ¸öλ
  281.                 else
  282.                 P0 = table[shi%10];
  283.                 w2 = 0;
  284.                 Delay_ms(ba);
  285.                  
  286.                 P0 = 0xff;
  287.                 w1 = 1; w2 = 1; w4 = 1;
  288.                 Delay_ms(50-ba);
  289.                 if(mh_count>=50)
  290.                 P0 = table[fen/10]&0x7f;    //ÏÔʾ·ÖÖÓʮλ
  291.                 else
  292.                 P0 = table[fen/10];
  293.                 w3 = 0;
  294.                 Delay_ms(ba);
  295.        
  296.                 P0 = 0xff;
  297.                 w2 = 1; w3 = 1; w1 = 1;
  298.                 Delay_ms(50-ba);
  299.                 P0 = table[fen%10];    //ÏÔʾ·ÖÖÓ¸öλ
  300.                 w4 = 0;
  301.                 Delay_ms(ba);
  302.        
  303.                 P0 = 0xff;
  304.                 w1 = 1; w2 = 1; w3 = 1;
  305.                 Delay_ms(50-ba);
  306.                 P0 = 0xff;   
  307.                 w5 = 0;                  //ÕâÀïɨÃèÒ»¸ö¿Õ룬ÊýÂë¹Üǰ4λÁÁ¶È¾Í¾ùÔÈÁË£¬µÚ4λÓëǰ3λÁÁ¶ÈÒ»Ö£¬²»È»µÚ4λҪ±Èǰ3λÁÁ
  308.                 P0 = 0xff;
  309.                 Delay_ms(ba);       
  310.         }

  311. /********УʱСʱλÉÁ˸************/

  312.         if(knum==1)
  313.         {
  314.                  if( shan==0 )
  315.                 {
  316.                 w2 = 1; w3 = 1; w4 = 1;
  317.                 Delay_ms(50-ba);
  318.                 P0 = 0xff;    //ÏÔʾСʱʮλ
  319.                 w1 = 0;
  320.                 Delay_ms(ba);

  321.                 P0 = 0xff;
  322.                 w1 = 1; w3 = 1; w4 = 1;
  323.                 Delay_ms(50-ba);
  324.                 P0 = 0xff;;
  325.                 w2 = 0;
  326.                 Delay_ms(ba);
  327.                 }
  328.        

  329.                 else
  330.                 {
  331.                         w2 = 1; w3 = 1; w4 = 1;
  332.                         Delay_ms(50-ba);
  333.                         P0 = table[shi/10];    //ÏÔʾСʱʮλ
  334.                         w1 = 0;
  335.                         Delay_ms(ba);
  336.                  
  337.                         P0 = 0xff;
  338.                         w1 = 1; w3 = 1; w4 = 1;
  339.                         Delay_ms(50-ba);
  340.                         P0 = table[shi%10];
  341.                         w2 = 0;
  342.                         Delay_ms(ba);
  343.                 }         
  344.                 P0 = 0xff;
  345.                 w1 = 1; w2 = 1; w4 = 1;
  346.                 Delay_ms(50-ba);
  347.                 P0 = table[fen/10];
  348.                 w3 = 0;
  349.                 Delay_ms(ba);
  350.        
  351.                 P0 = 0xff;
  352.                 w2 = 1; w3 = 1; w1 = 1;
  353.                 Delay_ms(50-ba);
  354.                 P0 = table[fen%10];    //ÏÔʾ·ÖÖÓ¸öλ
  355.                 w4 = 0;
  356.                 Delay_ms(ba);
  357.        
  358.                 P0 = 0xff;
  359.                 w1 = 1; w2 = 1; w3 = 1;
  360.                 Delay_ms(50-ba);
  361.                 P0 = 0xff;   
  362.                 w5 = 0;                  //ÕâÀïɨÃèÒ»¸ö¿Õ룬ÊýÂë¹Üǰ4λÁÁ¶È¾Í¾ùÔÈÁË£¬µÚ4λÓëǰ3λÁÁ¶ÈÒ»Ö£¬²»È»µÚ4λҪ±Èǰ3λÁÁ
  363.                 P0 = 0xff;
  364.                 Delay_ms(ba);
  365.         }       
  366. /*******Уʱ·ÖÖÓλÉÁ˸*******/

  367.         if(knum==2 )
  368.         {
  369.                 if(shan==0)
  370.                 {
  371.                 w2 = 1; w1 = 1; w4 = 1;
  372.                 Delay_ms(50-ba);
  373.                 P0 = 0xff;    //ÏÔʾСʱʮλ
  374.                 w3 = 0;
  375.                 Delay_ms(ba);

  376.                 P0 = 0xff;
  377.                 w1 = 1; w3 = 1; w2 = 1;
  378.                 Delay_ms(50-ba);
  379.                 P0 = 0xff;;
  380.                 w4 = 0;
  381.                 Delay_ms(ba);
  382.                 }
  383.                 else
  384.                 {
  385.                         w2 = 1; w1 = 1; w4 = 1;
  386.                         Delay_ms(50-ba);
  387.                         P0 = table[fen/10];    //ÏÔʾСʱʮλ
  388.                         w3 = 0;
  389.                         Delay_ms(ba);
  390.                  
  391.                         P0 = 0xff;
  392.                         w1 = 1; w3 = 1; w3 = 1;
  393.                         Delay_ms(50-ba);
  394.                         P0 = table[fen%10];
  395.                         w4 = 0;
  396.                         Delay_ms(ba);
  397.                 }         

  398.                 P0 = 0xff;
  399.                 w3 = 1; w2 = 1; w4 = 1;
  400.                 Delay_ms(50-ba);
  401.                 P0 = table[shi/10];
  402.                 w1 = 0;
  403.                 Delay_ms(ba);
  404.        
  405.                 P0 = 0xff;
  406.                 w4 = 1; w3 = 1; w1 = 1;
  407.                 Delay_ms(50-ba);
  408.                 P0 = table[shi%10];    //ÏÔʾ·ÖÖÓ¸öλ
  409.                 w2 = 0;
  410.                 Delay_ms(ba);


  411.        
  412.                 P0 = 0xff;
  413.                 w1 = 1; w2 = 1; w3 = 1;
  414.                 Delay_ms(50-ba);
  415.                 P0 = 0xff;   
  416.                 w5 = 0;                  //ÕâÀïɨÃèÒ»¸ö¿Õ룬ÊýÂë¹Üǰ4λÁÁ¶È¾Í¾ùÔÈÁË£¬µÚ4λÓëǰ3λÁÁ¶ÈÒ»Ö£¬²»È»µÚ4λҪ±Èǰ3λÁÁ
  417.                 P0 = 0xff;
  418.                 Delay_ms(ba);
  419.         }               
  420.        
  421. }


  422. void t0_init()
  423. {
  424.         TMOD |= 0x01;  //¶¨Ê±Æ÷0,16λģʽ
  425.         TL0 = 0xF0;                //ÉèÖö¨Ê±³õÖµ 10ºÁÃë³õÖµ @12MHz
  426.         TH0 = 0xD8;                //ÉèÖö¨Ê±³õÖµ
  427.         EA=1;
  428.         ET0=1;
  429.         TR0 = 1;
  430. }





  431. /*********************************************************************************************************
  432. ** º¯Êý¹¦ÄÜ £ºÄÚÖÃADCµÄ³õʼ»¯ÅäÖÃ
  433. ** º¯Êý˵Ã÷ £ºÊ¹ÓÃÄÚÖÃADCʱÐèÒªÏÈÅäÖöÔÓ¦µÄP1¿ÚµÄ¹Ü½ÅΪģÄâÊäÈë
  434. ** Èë¿Ú²ÎÊý £ºport£ºÐèÒªÅäÖÃΪģÄâÊäÈëµÄͨµÀ£¬Ê¹ÓûòÔËËã¿ÉÒÔͬʱÅäÖöà¸ö¹Ü½Å
  435. **                          È磺ADC_Init(ADC_PORT0 | ADC_PORT1 | ADC_PORT2)µ÷Óô˺¯Êýºó¿ÉÒÔͬʱÅäÖÃP1^0,P1^1,P1^2ΪģÄâÊäÈë
  436. ** ³ö¿Ú²ÎÊý £ºÎÞ
  437. *********************************************************************************************************/

  438. void ADC_Init()
  439. {
  440.         P1ASF=0x01;//ÉèÖÃADת»»Í¨µÀ P1.0
  441.         ADC_RES=0;//Çå¿Õת»»½á¹û
  442.         ADC_CONTR=ADC_POWER | ADC_SPEEDLL_540;//´ò¿ªADת»¯Æ÷µçÔ´
  443.         _nop_();
  444.         _nop_();
  445.         _nop_();
  446.         _nop_();
  447. }
  448. /*********************************************************************************************************
  449. ** º¯Êý¹¦ÄÜ £º»ñÈ¡ADC¶ÔӦͨµÀµÄÖµ£¬²éѯ·¨
  450. ** º¯Êý˵Ã÷ £ºÃ¿´ÎÖ»ÄÜ»ñȡһ¸öͨµÀµÄÖµ£¬²»Í¬Í¨µÀÐèÒª·Ö±ðµ÷Óøú¯Êý»ñÈ¡
  451. ** Èë¿Ú²ÎÊý £º
  452. ** ³ö¿Ú²ÎÊý £º
  453. *********************************************************************************************************/
  454. uchar GetADCResult()//¶ÁȡͨµÀchµÄµçѹֵ
  455. {
  456.         ADC_CONTR = ADC_POWER | ADC_SPEEDLL_540 | ADC_START;//¿ªÊ¼×ª»»£¬²¢ÉèÖòâÁ¿Í¨µÀΪP1^0
  457.         _nop_();//Ðè¾­¹ýËĸöCPUʱÖÓÑÓʱ£¬ÉÏÊöÖµ²ÅÄܱ£Ö¤±»Éè½øADC_CONTR¿ØÖƼĴæÆ÷
  458.         _nop_();
  459.         _nop_();
  460.         _nop_();
  461.         while(!(ADC_CONTR & ADC_FLAG));//µÈ´ýת»»½áÊø
  462.         ADC_CONTR &= ~ADC_FLAG;//Èí¼þÇå³ýÖжϿØÖÆÎ»
  463.         return         ADC_RES;
  464. }
  465. void timer0() interrupt 1

  466. {

  467.         TL0 = 0xF0;                //֨װ¶¨Ê±³õÖµ 10ºÁÃë³õÖµ @12MHz
  468.         TH0 = 0xD8;                //֨װ¶¨Ê±³õÖµ

  469.        
  470.         mh_count++;                  //ðºÅÉÁ˸±äÁ¿
  471.         if(mh_count==100) //1Ãëʱ¼äµ½
  472.         {
  473.                 mh_count=0;
  474.                 count++;
  475.                 if(count==5)
  476.                 {
  477.                         count=0;
  478.                         flag = !flag;
  479.                 }
  480.         }


  481.         if(knum != 0)  //µ÷ʱ¼äµÄʱºò£¬ÉÁ˸µÄλ±íʾΪµ÷½ÚµÄλ
  482.     {
  483.                 shan_cont++;
  484.         if(shan_cont==30)  //ÉèÖÃʱ£¬300msÉÁ˸ʱ¼ä£¬¿É¸ù¾Ýʵ¼ÊЧ¹ûµ÷Õû
  485.         {
  486.                 shan_cont=0;
  487.                 shan = !shan;
  488.         }
  489.     }

  490.         if(flag_fm)         //Èç¹û·äÃùÆ÷Æô¶¯±ê־Ϊ1
  491.         {
  492.                 dd = 0;           //·äÃùÆ÷Ïì
  493.                 fm++;           //¼ÆÊ±±äÁ¿×Ô¼Ó
  494.                 if(fm == 30) //µ½300ms£¬·äÃùÆ÷Í£
  495.                 {
  496.                         fm = 0;         //¼ÆÊ±±äÁ¿ÇåÁã
  497.                         dd = 1;        // ·äÃùÆ÷Í£
  498.                         flag_fm = 0;//Æô¶¯±êÖ¾ÇåÁã
  499.                 }

  500.         }
  501. }  


  502. //дDS1302Êý¾Ý
  503. void Write_DS1302_DAT(uchar cmd, uchar dat)
  504. {
  505. uchar i;
  506. /****************************************/               
  507.         TSCLK = 1;                         //°Ñ¸´Î»ÏßÄøß
  508.         for(i=0;i<8;i++)
  509.         {                                     //µÍλÔÚǰ
  510.                 TRST = 0;                 //ʱÖÓÏßÄõͿªÊ¼Ð´Êý¾Ý
  511.                 TIO = cmd & 0x01;           
  512.                 cmd >>= 1;                 //°ÑµØÖ·ÓÒÒÆÒ»Î»
  513.                 TRST = 1;                 //ʱÖÓÏßÄøß
  514.         }       
  515.         for(i=0;i<8;i++)
  516.         {
  517.                 TRST = 0;                 //ʱÖÓÏßÄõͿªÊ¼Ð´Êý¾Ý
  518.                 TIO = dat & 0x01;
  519.                 dat >>= 1;                 //°ÑÊý¾ÝÓÒÒÆÒ»Î»
  520.                 TRST = 1;                 //ʱÖÓÏßÄøß
  521.         }
  522.         TSCLK = 0;                         //¸´Î»ÏߺϵÍ
  523.         TRST = 0;
  524.         TIO = 0;
  525. /**************************************/
  526. }
  527. //¶ÁDS1302Êý¾Ý
  528. uchar Read_DS1302_DAT(uchar cmd)
  529. {
  530.         uchar i, dat;
  531. /*************************************************/

  532.         TSCLK = 1; //À­µÍÊý¾Ý×ÜÏß
  533.         for(i = 0; i < 8; i++)//ÿ´Îд1λ£¬Ð´8´Î
  534.         {
  535.                 TRST = 0;                 //À­µÍʱÖÓ×ÜÏß
  536.                 TIO = cmd & 0x01;//д1λÊý¾Ý£¬´Ó×îµÍλ¿ªÊ¼Ð´
  537.                 cmd >>=1;                 //ÓÒÒÆÒ»Î»
  538.                 TRST = 1;                 //À­¸ßʱÖÓ×ÜÏߣ¬²úÉúÉÏÉýÑØÊý¾Ý±»DS1302¶Á×ß

  539.         }
  540.         for(i = 0; i < 8; i++)//ÿ´Î¶Á1룬¶Á8´Î
  541.         {
  542.                 TRST = 0;                  //À­µÍʱÖÓ×ÜÏß,²úÉúϽµÑØ£¬DS1302°ÑÊý¾Ý·Åµ½TIOÉÏ
  543.                 dat >>= 1;                  //ÓÒÒÆÒ»Î»
  544.                 if(TIO==1)        dat |= 0x80;//¶ÁÈ¡Êý¾Ý£¬´Ó×îµÍλ¿ªÊ¼
  545.                 TRST = 1;                        //À­¸ßʱÖÓ×ÜÏߣ¬ÒÔ±¸ÏÂÒ»´Î²úÉúϽµÑØ
  546.         }
  547.         TSCLK=0;
  548.         TRST=0;
  549.         TIO=0;

  550.         return dat;        //·µ»Ø¶Á³öÊý¾Ý

  551. /************************************************/


  552. }


  553. //Êý¾ÝתBCDÂë
  554. uchar Dat_Chg_BCD(uchar dat)
  555. {
  556.         uchar dat1, dat2;
  557.         dat1 = dat / 10;
  558.         dat2 = dat % 10;
  559.         dat2 = dat2 + dat1 * 16;
  560.         return dat2;
  561. }       


  562. //BCDÂëת»»ÎªÊý¾Ý
  563. uchar BCD_Chg_Dat(uchar dat)
  564. {
  565.         uchar dat1, dat2;
  566.         dat1 = dat / 16;
  567.         dat2 = dat % 16;
  568.         dat2 = dat2 + dat1 * 10;
  569.         return dat2;
  570. }


  571. void init_1302()                //³õʼ»¯º¯Êý ÉèÖÃʱ¼ä
  572. {                                                //¼Ó±¸ÓÃµç³Ø£¬µôµç×ßʱ

  573.         if(Read_DS1302_DAT(read_ram) != 0xaa) //Èç¹ûµÚ00¸öRAMλÖò»µÈÓÚ0xaa£¬¾Í³õʼ»¯1302
  574.         {
  575.                 Write_DS1302_DAT(0x8e, 0);//Çå³ýд±£»¤
  576.         Write_DS1302_DAT(write_miao, Dat_Chg_BCD(Read_DS1302_DAT(0x81)));//µ÷ʱÖÓоƬÃ루²¢ÇÒ½øÐÐBCDÂëת»»£©
  577.                 Write_DS1302_DAT(write_fen, Dat_Chg_BCD(Read_DS1302_DAT(0x83)));//µ÷ʱÖÓоƬ·Ö
  578.                 Write_DS1302_DAT(write_shi, Dat_Chg_BCD(Read_DS1302_DAT(0x85)));//µ÷ʱÖÓоƬʱ
  579.                 Write_DS1302_DAT(write_ram,0xaa);//дÈë³õʼ»¯±êÖ¾RAM£¨µÚ00¸öRAMλÖã©
  580.                 Write_DS1302_DAT(0x8e, 0x80);//¿ªÐ´±£»¤
  581.         }
  582. }

  583. void read_sf()
  584. {

  585.         miao = BCD_Chg_Dat(Read_DS1302_DAT(0x81));//¶ÁÃë¼Ä´æÆ÷£¨²¢ÇÒ½øÐÐBCDÂëת»»£©
  586.         fen        = BCD_Chg_Dat(Read_DS1302_DAT(0x83));//¶Á·Ö¼Ä´æÆ÷
  587.         shi = BCD_Chg_Dat(Read_DS1302_DAT(0x85));//¶Áʱ¼Ä´æÆ÷
  588. }

  589. void keysan()
  590. {
  591.     static bit kf1=0, kf3=0,kf2=0;  //×ÔËø±êÖ¾,ÕâÀïÒ»¶¨Òª¼Óstatic£¨»òÕßÓÃÈ«¾Ö±äÁ¿£©£¬·ñÔò°´¼ü²»Áé
  592.     static uint i=0,j=0,k=0,m=0,n=0;        //Ïû¶¶ÑÓʱ±äÁ¿
  593.                
  594.         if(key1==1)                //ÉèÖà        //IOÊÇ¸ßµçÆ½£¬ËµÃ÷°´¼üûÓб»°´Ï£¬ÕâʱҪ¼°Ê±ÇåÁãһЩ±ê־λ
  595.         {       
  596.         i=0;           //°´¼üÏû¶¶¼ÆÊ±±äÁ¿ÇåÁã
  597.         kf1=0;           //°´¼ü×ÔËø±êÖ¾ÇåÁã
  598.         }
  599.         else if(kf1 == 0)        //Óа´¼ü°´Ï£¬ÇÒÊǵÚÒ»´Î±»°´ÏÂ
  600.         {       
  601.         flag_fm = 1;         //Æô¶¯·äÃùÆ÷
  602.                 ++i;
  603.         if(i>10)                   //i>10  ADC²éѯ·½Ê½ÓÃ
  604.         {
  605.             i=0;
  606.             kf1=1;         //×ÔËø°´¼üÖÃλ,±ÜÃâÒ»Ö±´¥·¢
  607.             knum++;
  608.                         if(knum==1)
  609.                         {
  610.                                 Write_DS1302_DAT(0x8e,0x00);                //д±£»¤È¡Ïû
  611.                                 Write_DS1302_DAT(write_miao,0x80); //  Ð´Ãë80£¬Ê±ÖÓÍ£Ö¹×ßʱ;
  612.                        
  613.                         }
  614.             if(knum==3)
  615.                         {
  616.                                  knum = 0;

  617.                                 Write_DS1302_DAT(write_miao,0x00);
  618.                                 Write_DS1302_DAT(0x8e,0x80);                //±£»¤Æô¶¯

  619.                         }
  620.         }        
  621.         }
  622. /************ÏÔʾºÍ¹â¿ØÇл»****************/
  623.         if(knum == 0)
  624.         {
  625.                 if(key3==1)                //ÉèÖà        //IOÊÇ¸ßµçÆ½£¬ËµÃ÷°´¼üûÓб»°´Ï£¬ÕâʱҪ¼°Ê±ÇåÁãһЩ±ê־λ
  626.                 {       
  627.                 m=0;           //°´¼üÏû¶¶¼ÆÊ±±äÁ¿ÇåÁã
  628.                 kf3=0;           //°´¼ü×ÔËø±êÖ¾ÇåÁã
  629.                 }
  630.                 else if(kf3 == 0)        //Óа´¼ü°´Ï£¬ÇÒÊǵÚÒ»´Î±»°´ÏÂ
  631.                 {        flag_fm = 1;         //Æô¶¯·äÃùÆ÷
  632.                 ++m;
  633.                 if(m>10)                   //i>10  ADC²éѯ·½Ê½ÓÃ
  634.                 {
  635.                     m=0;
  636.                     kf3=1;         //×ÔËø°´¼üÖÃλ,±ÜÃâÒ»Ö±´¥·¢
  637.                     xs++;
  638.                    if(xs==3)
  639.                                 {
  640.                                          xs = 0;
  641.        
  642.                                 }
  643.                 }        
  644.                 }

  645.                 if(key2==1)                //ÉèÖà        //IOÊÇ¸ßµçÆ½£¬ËµÃ÷°´¼üûÓб»°´Ï£¬ÕâʱҪ¼°Ê±ÇåÁãһЩ±ê־λ
  646.                 {
  647.                 n=0;           //°´¼üÏû¶¶¼ÆÊ±±äÁ¿ÇåÁã
  648.                 kf2=0;           //°´¼ü×ÔËø±êÖ¾ÇåÁã
  649.                 }
  650.                 else if(kf2 == 0)        //Óа´¼ü°´Ï£¬ÇÒÊǵÚÒ»´Î±»°´ÏÂ
  651.                 {        flag_fm = 1;         //Æô¶¯·äÃùÆ÷
  652.                 ++n;
  653.                 if(n>10)                   //i>10  ADC²éѯ·½Ê½ÓÃ
  654.                 {
  655.                     n=0;
  656.                     kf2=1;         //×ÔËø°´¼üÖÃλ,±ÜÃâÒ»Ö±´¥·¢
  657.                                 flag_gk = !flag_gk;
  658.                 }        
  659.                 }


  660.         }



  661. ///-------¼Ó--------///
  662.         if(knum != 0)
  663.         {
  664.                 if(key2==0)                //¼Ó
  665.             {  
  666.                        
  667.                 j++;
  668.         //        if(j >= 5000)           //³¤°´Á¬¼Ó ADCÖжϷ½Ê½ÓÃ
  669.                 if(j >= 100)           //³¤°´Á¬¼Ó ADC²éѯ·½Ê½ÓÃ
  670.        
  671.                 {   //flag_fm = 0;                                    
  672.                     if(knum==2)
  673.                     {
  674.                                 fen++;
  675.                                 fen=fen/10*16+fen%10;                //תΪ16½øÖÆ
  676.                                 if(fen==0x60)
  677.                                             fen=0x00;
  678.                                         Write_DS1302_DAT(write_fen,fen);
  679.                                 read_sf();                                        //¶Á³öʱ¼ä£¬È»ºóÏÔʾ
  680.                     }
  681.        
  682.                     if(knum==1)
  683.                     {
  684.                                         shi++;
  685.                                         shi=shi/10*16+shi%10;                //תΪ16½øÖÆ
  686.                                         if(shi==0x24)
  687.                                                 shi=0x00;
  688.                                         Write_DS1302_DAT(write_shi,shi);
  689.                                         read_sf();
  690.                     }
  691.        
  692.                     j=90;           //ÕâÀïjµÄÖµ¿ÉÒÔÉèÖÃÁ¬¼ÓµÄ¿ìÂý£¬jµÄÖµÔ½´ó¾ÍÔ½¿ì
  693.                                                         //ÒòΪ³õÖµÔ½´ó£¬¼Óµ½100µÄʱ¼ä¾ÍÔ½¶Ì
  694.                                 flag_fm = 1;  //Æô¶¯·äÃùÆ÷
  695.                         }                           
  696.             }        
  697.        
  698.             else
  699.             {
  700.                 if(j>10 && j<100) //¶Ì°´
  701.                 {
  702.                     flag_fm = 1;         //Æô¶¯·äÃùÆ÷   
  703.                     if(knum==2)
  704.                     {
  705.                                 fen++;
  706.                                 fen=fen/10*16+fen%10;                //תΪ16½øÖÆ
  707.                                 if(fen==0x60)
  708.                                     fen=0x00;
  709.                                         Write_DS1302_DAT(write_fen,fen);
  710.                                 read_sf();                                        //¶Á³öʱ¼ä£¬È»ºóÏÔʾ
  711.                     }
  712.        
  713.                     if(knum==1)
  714.                     {
  715.                                         shi++;
  716.                                         shi=shi/10*16+shi%10;                //תΪ16½øÖÆ
  717.                                         if(shi==0x24)
  718.                                                 shi=0x00;
  719.                                        
  720.                                         Write_DS1302_DAT(write_shi,shi);
  721.                                         read_sf();
  722.                     }
  723.        
  724.                         j=0;
  725.                     }
  726.                 }        
  727.    
  728. //----------¼õ-----------//   
  729.         if(key3==0)                //¼õ
  730.     {           flag_fm = 1;         //Æô¶¯·äÃùÆ÷
  731.             k++;
  732.             if(k >= 100)           //³¤°´
  733.             {
  734.                     if(knum==2)
  735.                     {
  736.                                                 fen--;
  737.                                                 fen=fen/10*16+fen%10;                //תΪ16½øÖÆ
  738.                                                 if(fen==-1)
  739.                                                 fen=0x59;
  740.                                                 Write_DS1302_DAT(write_fen,fen);
  741.                                                 read_sf();
  742.                     }

  743.                     if(knum==1)
  744.                     {
  745.                                                 shi--;
  746.                                                 shi=shi/10*16+shi%10;                //תΪ16½øÖÆ
  747.                                                 if(shi==-1)
  748.                                                 shi=0x23;
  749.                                                 Write_DS1302_DAT(write_shi,shi);
  750.                                                 read_sf();
  751.                     }

  752.                     k=90;
  753.             }
  754.     }        

  755.     else
  756.     {
  757.             if(k>10 && k<100) //¶Ì°´
  758.             {
  759.                     flag_fm = 1;         //Æô¶¯·äÃùÆ÷        
  760.                     if(knum==2)
  761.                     {
  762.                                                 fen--;
  763.                                                 fen=fen/10*16+fen%10;                //תΪ16½øÖÆ
  764.                                                 if(fen==-1)
  765.                                                 fen=0x59;
  766.                                                 Write_DS1302_DAT(write_fen,fen);
  767.                                                 read_sf();
  768.                     }

  769.                     if(knum==1)
  770.                     {
  771.                                                 shi--;
  772.                                                 shi=shi/10*16+shi%10;                //תΪ16½øÖÆ
  773.                                                 if(shi==-1)
  774.                                                 shi=0x23;
  775.                                                 Write_DS1302_DAT(write_shi,shi);
  776.                                                 read_sf();
  777.                     }

  778.             }
  779.             k=0;        //Ïû¶¶±äÁ¿ÇåÁ㣬ΪÏ´ΰ´¼ü×ö×¼±¸        
  780.         }
  781.         }                
  782. }


  783. void main()
  784. {       
  785.         t0_init();
  786.         read_sf();
  787.         init_1302();
  788.         ADC_Init();
  789.         flag_fm = 1;         //Æô¶¯·äÃùÆ÷
  790.         while(1)
  791.         {

  792.            read_sf();
  793.            switch(xs)
  794.            {
  795.                         case 0:if(flag==0 && knum == 0)         //ʱ¼ä¡¢Î¶ÈÂÖÁ÷ÏÔʾ£¬5ÃëÇл»Ò»´Î
  796.                                            {Display_tem(Get_Tmp());}
  797.                                            else       
  798.                                            display( shi,fen);        break;
  799.                         case 1: display( shi,fen);  break;         //ÏÔʾʱ¼ä
  800.                         case 2: Display_tem(Get_Tmp()); break;//ÏÔʾζÈ
  801.                         default: break;
  802.            }
  803.            keysan();
  804.                 if(shi>=5 && shi<=21) ba=20;else ba=1;//5~21 ÁÁ¶È×î´ó,22~4 ÁÁ¶È×îС
  805.                 if(!flag_gk)                //Èç¹û¹â¿Ø±ê־Ϊ0£¬¾ÍΪ×Ô¶¯ÁÁ¶È        ;ĬÈÏΪ×Ô¶¯ÁÁ¶È
  806.                 {
  807.                         if(GetADCResult()>5 && GetADCResult()<25) ba=40;
  808.                         if(GetADCResult()>25 && GetADCResult()<50) ba=39; //10¼¶ÁÁ¶È£¬baÖµÔ½´ó£¬LEDÔ½ÁÁ
  809.                         if(GetADCResult()>50 && GetADCResult()<80) ba=35;
  810.                         if(GetADCResult()>80 && GetADCResult()<100) ba=30;
  811.                         if(GetADCResult()>100 && GetADCResult()<130) ba=25;
  812.                         if(GetADCResult()>130 && GetADCResult()<150) ba=20;
  813.                         if(GetADCResult()>150 && GetADCResult()<180) ba=15;
  814.                         if(GetADCResult()>180 && GetADCResult()<200) ba=10;
  815.                         if(GetADCResult()>200 && GetADCResult()<230) ba=5;
  816.                         if(GetADCResult()>230 && GetADCResult()<250) ba=1;
  817.                 }
  818.                 else ba = 40; // ·ñÔòΪ×î´óÁÁ¶È
  819.                 if((shi>=5 && shi<=21) && fen ==0 && miao == 0) //Õûµã±¨Ê±
  820.                 {
  821.                         flag_fm = 1;
  822.                 }
  823.          
  824.         }
  825. }


  826. char shifen,baifen,ge,result;

  827. void adc_isr() interrupt 5 using 1
  828. {
  829.         unsigned int temp;
  830.         temp=ADC_RES;                         //ADÈ¡8λ½á¹û
  831.         result=temp*0.01953125*1000;   //ad½á¹û»»Ëã³Éµçѹֵ£¬ ½«5V·Ö³É256·Ý£¬Ã¿·Ý5v/256=0.01953125v        £¬ÔÙÀ©´ó1000±¶
  832.         ge=result/1000;
  833.         shifen=result%1000/100;
  834.         baifen=result%100/10;
  835.         
  836.        ADC_CONTR = 0xc8;//¿ªÆôת»»
  837. }
¸´ÖÆ´úÂë



IMG_20230702_1.jpg (1.02 MB, ÏÂÔØ´ÎÊý: 104)

IMG_20230702_1.jpg

IMG_20230702_2.jpg (1.08 MB, ÏÂÔØ´ÎÊý: 112)

IMG_20230702_2.jpg

IMG_20230702_3.jpg (1.21 MB, ÏÂÔØ´ÎÊý: 120)

IMG_20230702_3.jpg

1.2´çÊýÂë¹ÜʱÖÓ_ζÈ_¹â¿Ø_Ë«ÃæÖÆ°æÉÏ´«20230702Ð޸İæ.rar

611.95 KB, ÏÂÔØ´ÎÊý: 23, ÏÂÔØ»ý·Ö: ºÚ±Ò -5

»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

°åµÊ
ID:378402 ·¢±íÓÚ 2023-7-2 18:52 | Ö»¿´¸Ã×÷Õß
³ÌÐòµ÷Õûºó£¬Ô­Àíͼδµ÷Õû£¬Í¼Æ¬·¢²»ÁË£¬Ö»ÄÜÎÄ×ÖÐðÊö¡£USBµÄD+Á¬½Óµ¥Æ¬»úµÄP3.1;USBµÄD-Á¬½Óµ¥Æ¬»úµÄP3.2²»±ä£¬µ÷ÕûSW2Ô­Á¬½ÓP3.1¸ÄΪÁ¬½ÓP3.3£»µ÷ÕûSW1Ô­Á¬½ÓP3.0¸ÄΪÁ¬½ÓP3.4£¬Ö÷Òª½â¾öÏÂÔØ³ÌÐòÎÊÌâ¡£ÁíÒ»´¦ÐèÒªµ÷ÕûµÄÊÇ£ºÊ±ÖÓоƬµÄSCLKÔ­Á¬½ÓP2.0¸ÄΪÁ¬½ÓP2.2£»RSTÔ­Á¬½ÓP2.2¸ÄΪÁ¬½ÓP2.0¡£
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

µØ°å
ID:1131746 ·¢±íÓÚ 2024-12-13 11:33 | Ö»¿´¸Ã×÷Õß
Â¥Ö÷£¬µ¥Æ¬»úÐèÒª¼ÓÉϾ§Õñµç·Âð£¿ÎÒ°´Ô­Àí×ö³öÀ´£¬µçÔ´¼ÓÓÐÂ˲¨£¬Ê±¼ä²»×ßʱ£¬ÕÒ²»µ½ÎÊÌâÁË¡£
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

5#
ID:1048675 ·¢±íÓÚ 2025-3-20 09:22 | Ö»¿´¸Ã×÷Õß
wbc520 ·¢±íÓÚ 2024-12-13 11:33
Â¥Ö÷£¬¥Æ¬»úÐèÒª¼ÓÉϾ§Õñµç·Âð£¿ÎÒ°´Ô­Àí×ö³öÀ´£¬µçÔ´¼ÓÓÐÂ˲¨£¬Ê±¼ä²»×ßʱ£¬ÕÒ²»µ½ÎÊÌâÁË¡£

µ¥Æ¬»úÒ»¶¨Òª¼ÓÉϾ§Õñµç·£¬µ¥Æ¬»úûÓо§Õñµç·µ¥Æ¬»ú²»¹¤×÷µÄ¡£
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

6#
ID:1110477 ·¢±íÓÚ 2025-3-21 04:59 | Ö»¿´¸Ã×÷Õß
Ì©Ð˵ç×Ó ·¢±íÓÚ 2025-3-20 09:22
µ¥Æ¬»úÒ»¶¨Òª¼ÓÉϾ§Õñµç·£¬µ¥Æ¬»úûÓо§Õñµç·µ¥Æ¬»ú²»¹¤×÷µÄ¡£

STC15ϵÁеĵ¥Æ¬»úÄÚ²¿ÓÐRCÕñµ´Æ÷£¬¿ÉÒÔ²»¼Ó¾§Õñ
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

7#
ID:1110477 ·¢±íÓÚ 2025-3-21 05:04 | Ö»¿´¸Ã×÷Õß
¸ÕÒ»¿´»¹ÒÔΪÊýÂë¹Ü°²×°·´ÁË£¬×Ðϸһ¿´È·Êµ·´ÁË£¬ÔÙÒ»×ÁÄ¥£¬°¡Å¶ÊǹÊÒâµÄ
»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | Á¢¼´×¢²á

±¾°æ»ý·Ö¹æÔò

ÊÖ»ú°æ|СºÚÎÝ|51ºÚµç×ÓÂÛ̳ |51ºÚµç×ÓÂÛ̳6Ⱥ QQ ¹ÜÀíÔ±QQ:125739409;¼¼Êõ½»Á÷QQȺ281945664

Powered by µ¥Æ¬»ú½Ì³ÌÍø

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí