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

標題: 1.5V無線鼠標改造為鋰電池 [打印本頁]

作者: 0o000000    時間: 2016-9-20 20:24
標題: 1.5V無線鼠標改造為鋰電池



鼠標有點老,是用一節(jié)5號電池,10天左右就沒電,所以改造為鋰電池.

//無線鼠標電源管理
//單片機:stc15w204s
//頻率:6M
//單片機工作時管理2.5V穩(wěn)壓輸出,鼠標5分鐘無動作關閉2.5V輸出,單片機進入掉電模式
//單片機工作時電池電壓低于3.6V時,進入掉電模式
//按鼠標左鍵可喚醒單片機
//掉電模式工作電流: <20uA    工作電流: <10mA   鋰電池容量:1300mAH  型號:14500

無線鼠標電源管理-15w204.rar (95.87 KB, 下載次數(shù): 24)

下面是部分程序預覽:
  1. //無線鼠標電源管理
  2. //單片機:stc15w204s
  3. //頻率:6M
  4. //單片機工作時管理2.5V穩(wěn)壓輸出,鼠標5分鐘無動作關閉2.5V輸出,單片機進入掉電模式
  5. //單片機工作時電源電壓低于3.6V時,進入掉電模式
  6. //按鼠標左鍵可喚醒單片機
  7. //掉電模式工作電流: <20uA           工作電流: <10mA                電池容量:1300mAH  型號:14500
  8. #include "stc15w204s.h"
  9. #include <intrins.h>                 
  10. typedef unsigned int u16;  //16位無符號整型數(shù)
  11. typedef unsigned char u8;  //8位無符號整型數(shù)

  12. /*************        本地常量聲明        **************/

  13. //CMPCR1
  14. #define        CMPEN        0x80        //1: 允許比較器, 0: 禁止,關閉比較器電源
  15. //#define        CMPIF        0x40        //比較器中斷標志, 包括上升沿或下降沿中斷, 軟件清0
  16. //#define        PIE                0x20        //1: 比較結果由0變1, 產(chǎn)生上升沿中斷
  17. //#define        NIE                0x10        //1: 比較結果由1變0, 產(chǎn)生下降沿中斷
  18. //#define        PIS                0x08        //輸入正極性選擇, 0: 選擇內部P5.5做正輸入,           1: 由ADCIS[2:0]所選擇的ADC輸入端做正輸入.
  19. //#define        NIS                0x04        //輸入負極性選擇, 0: 選擇內部BandGap電壓BGv做負輸入, 1: 選擇外部P5.4做輸入.
  20. //#define        CMPOE        0x02        //1: 允許比較結果輸出到P1.2, 0: 禁止.
  21. #define        CMPRES        0x01        //比較結果, 1: CMP+電平高于CMP-,  0: CMP+電平低于CMP-,  只讀

  22. //CMPCR2
  23. //#define        INVCMPO        0x80        //1: 比較器輸出取反,  0: 不取反
  24. //#define        DISFLT        0x40        //1: 關閉0.1uF濾波,   0: 允許
  25. //#define        LCDTY        0x00        //0~63, 比較結果變化延時周期數(shù)


  26. #define        Pin0                0x01        //IO引腳 Px.0
  27. #define        Pin1                0x02        //IO引腳 Px.1
  28. #define        Pin2                0x04        //IO引腳 Px.2
  29. #define        Pin3                0x08        //IO引腳 Px.3
  30. #define        Pin4                0x10        //IO引腳 Px.4
  31. #define        Pin5                0x20        //IO引腳 Px.5
  32. #define        Pin6                0x40        //IO引腳 Px.6
  33. #define        Pin7                0x80        //IO引腳 Px.7
  34. //#define        PinAll                0xFF        //IO所有引腳

  35. sbit KongZi = P3^2;
  36. u8  i ;
  37. bit DianYa=0;
  38. void ConfigTimer2(u8 s);

  39. void main()
  40. {       
  41.     //IO口初始化
  42.         P3M1 |= Pin3;       
  43.         P5M1 |= Pin4+Pin5;          //P3.3 P5.4 P5.5設置為高阻輸入
  44.         //比較器初始化
  45.         CMPCR1 = 0;
  46.         CMPCR2 = 5;                //比較結果變化延時周期數(shù), 0~63
  47.         CMPCR1 |= CMPEN;        //允許比較器                ENABLE,DISABLE
  48.     //        CMPCR1 |= PIE;                //允許上升沿中斷        ENABLE,DISABLE
  49.     //        CMPCR1 |= NIE;                //允許下降沿中斷        ENABLE,DISABLE
  50.     //        CMPCR1 |= PIS;                //輸入正極性選擇, 0: 選擇內部P5.5做正輸入,           1: 由ADCIS[2:0]所選擇的ADC輸入端做正輸入.
  51.         //  CMPCR1 |= NIS;                //輸入負極性選擇, 0: 選擇內部BandGap電壓BGv做負輸入, 1: 選擇外部P5.4做輸入
  52.     //        CMPCR1 |= CMPOE;        //允許比較結果輸出到P1.2,   ENABLE,DISABLE
  53.     //        CMPCR2 |= INVCMPO;        //比較器輸出取反,         ENABLE,DISABLE
  54.         //  CMPCR2 |= DISFLT;        //內部0.1uF濾波,          ENABLE,DISABLE


  55.     CLK_DIV=0x07;         //低速模式128分頻
  56.         WDT_CONTR=0x37;             //喂狗  20S
  57.         //IT1=0;                         //設置INT1中斷類型上沿和下沿均可喚醒
  58.         IT1=1;                         //設置INT1中斷類型下沿可喚醒
  59.         EX1=1;                         //使能INT1中斷
  60.         EA=1;
  61.         KongZi=0;
  62.     ConfigTimer2(10);   //配置T2定時 0-16s
  63.     while (1);
  64.    
  65. }

  66. /* 配置并啟動T2,s-T2定時時間 */
  67. void ConfigTimer2(u8 s)
  68. {
  69.     unsigned long tmp;  //臨時變量
  70.    
  71.     tmp = 6000000 / 12 / 128 ;      //定時器計數(shù)頻率
  72.     tmp = tmp * s ;  //計算所需的計數(shù)值
  73.     tmp = 65536 - tmp;        //計算定時器重載值
  74.     T2H = (u8)(tmp>>8);  //定時器重載值拆分為高低字節(jié)
  75.     T2L = (u8)tmp;
  76.           
  77.         AUXR &= 0xEF;  // 啟動T2定時器  方式 :16位重裝模式計數(shù)器
  78.         AUXR |= 0x10;  // 啟動T2定時器
  79.            IE2 &= 0xFB;  // 使能T2中斷
  80.         IE2 |= 0x04;  // 使能T2中斷
  81.           
  82.     //ET2 = 1;        //使能T2中斷
  83.     //T2R = 1;        //啟動T2定時器
  84. }
  85. /* 外部中斷服務函數(shù) , P3.3下降沿觸發(fā)*/
  86. void exint1()interrupt 2
  87. {     CMPCR1 |= CMPEN;  //開啟比較器
  88.           if(DianYa==1)
  89.           {             DianYa=0;
  90.                  if((CMPCR1 & CMPRES) == 0)         //低電壓檢測
  91.                      {        
  92.                             CMPCR1 = 0;         //關閉比較器
  93.                                 DianYa=1;         //掉電記錄
  94.                                 KongZi=1;         //控制端 1:2.5V沒輸出 0:2.5V輸出
  95.                             PCON=0x02;  //進入掉電模式
  96.                                  _nop_();
  97.                                 _nop_();
  98.                                 return;
  99.                      }
  100.           }
  101.           i=0;
  102.           KongZi=0;         //控制端 1:2.5V沒輸出 0:2.5V輸出
  103. }

  104. /* T2中斷服務函數(shù) */
  105. void InterruptTimer2() interrupt 12
  106. {       
  107.     WDT_CONTR=0x37;             //喂狗  20S
  108.         if((CMPCR1 & CMPRES) == 0)        //低電壓檢測
  109.     {        
  110.             CMPCR1 = 0;          //關閉比較器
  111.                 DianYa=1;          //掉電記錄
  112.                 KongZi=1;          //控制端 1:2.5V沒輸出 0:2.5V輸出
  113.             PCON=0x02;   //進入掉電模式
  114.                  _nop_();
  115.                 _nop_();
  116.                 return;
  117.      }

  118.     i++;
  119.     if(i>=30)                 //空閑5分鐘進入掉電模式
  120.         {   i=0        ;
  121.                 CMPCR1 = 0;         //關閉比較器
  122.             KongZi=1;         //控制端 1:2.5V沒輸出 0:2.5V輸出
  123.                 PCON=0x02;  //進入掉電模式
  124.                  _nop_();
  125.                 _nop_();
  126.        
  127.         }       

  128. }
復制代碼



作者: npn    時間: 2016-9-21 07:07
電路圖上有個錯誤,+4.2v和-4.2v之間的電壓是8.4v,而且-4.2v與gnd發(fā)生了短路,2.5v的輸出也一樣。
作者: 0o000000    時間: 2016-9-21 19:20
本帖最后由 0o000000 于 2016-9-21 19:24 編輯
npn 發(fā)表于 2016-9-21 07:07
電路圖上有個錯誤,+4.2v和-4.2v之間的電壓是8.4v,而且-4.2v與gnd發(fā)生了短路,2.5v的輸出也一樣。


標注錯誤而已,修改一下




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久久久久久久久爱 | 一区二区在线 | 免费国产视频 | 国产欧美日韩精品在线观看 | 波多野结衣一区二区 | 羞羞视频网站免费看 | 日韩国产欧美视频 | 国产91在线 | 欧美 | www国产亚洲精品 | 国产午夜精品久久久久免费视高清 | 亚洲精品一区二区三区蜜桃久 | 色综合中文 | 国产精品久久片 | 九九精品在线 | 久国产视频 | 天堂一区 | 播放一级黄色片 | 亚洲免费网站 | 日本黄色短片 | 成人一区二 | 欧美成人手机视频 | 久久99精品久久久久久噜噜 | 日日操网站 | 青草青草久热精品视频在线观看 | 人人干天天干 | 国产精品国产三级国产aⅴ中文 | 午夜欧美 | 国产一级一级国产 | 国产真实精品久久二三区 | 亚洲综合二区 | 黄色国产在线播放 | 日本免费黄色一级片 | 久久综合九色综合欧美狠狠 | 免费视频一区二区三区在线观看 | 麻豆av网站 | 亚洲第一成年免费网站 | 人人干在线视频 | 亚洲精品一区二区三区免 | 久久男人| 伊人二区 | 99精品亚洲国产精品久久不卡 |