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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 36584|回復(fù): 83
打印 上一主題 下一主題
收起左側(cè)

加濕器 霧化器 香薰機(jī)的設(shè)計(jì)方案(單片機(jī)程序+PCB)超聲波震蕩方式

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:261562 發(fā)表于 2018-12-11 10:09 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
計(jì)較不錯(cuò)的資料


霧化器庫使用說明
本文檔為賽元提供的霧化器庫的使用說明,霧化器庫支持1.7M、2.4M和3M頻率的霧化片,庫提供了函數(shù)接口進(jìn)行設(shè)置。其中1.7M霧化片適用于大功率加濕器(功率在15W以上),2.4M、3M霧化片適用于小功率的香薰機(jī)(功率在6-12W)。霧化器庫提供了自動追頻、功率設(shè)置、霧化工作、觸控檢水功能。庫共提供了11個(gè)函數(shù)接口供用戶調(diào)用,實(shí)現(xiàn)霧化器功能。
一、霧化器庫介紹:
霧化器Atomizer文件夾中包含:
SC91F832_C.H             MCU頭文件
Atomizer.h                包含霧化器外部調(diào)用接口函數(shù)
SOC_Atomizer_lib_V1.3.LIB   霧化器庫文件
實(shí)現(xiàn)霧化器工作需要占用一定的系統(tǒng)資源,霧化器庫資源占用:
ROM:1.8K  DATA: 50BYTE   XDATA:60BYTE
定時(shí)器:定時(shí)器0
PWM: PWM1
ADC:兩路ADC
EEPROM: 4byte
Touch Key: 兩路

二、霧化器的工作流程

三、霧化器庫函數(shù)接口和接口說明
霧化器庫共提供10個(gè)函數(shù)接口和3個(gè)全局變量:
變量:bit       TrackFreqFlag;               變量說明:追頻完成標(biāo)志0:未完成;1:完成     
變量:bit       AjustPowerFlag;           變量說明:功率調(diào)整完成標(biāo)志0:未完成;1:完成
變量:bit    Water_flag;               變量說明:水位檢測輸出結(jié)果 0:缺水;1:有水

函數(shù):bit   SOCAPI_GetTrackFreqStaus(void);      
函數(shù)功能:獲取霧化器追頻狀態(tài),返回1為已追頻,0為未追頻

函數(shù):void  SOCAPI_SetFreq(void) ;               
函數(shù)功能:設(shè)置霧化器工作頻率,當(dāng)?shù)玫揭炎粉欉^頻率可以調(diào)用該函數(shù)設(shè)置霧化器的頻率

函數(shù):void  SOCAPI_Atomizer_Init(INT8U mode);        
函數(shù)說明:霧化器初始化,設(shè)置PWM和定時(shí)器0;設(shè)置mode為0時(shí)霧化器的工作頻率設(shè)置為1.7M;mode為1時(shí)為2.4M;mode為2時(shí)為3M

函數(shù):void  SOCAPI_TrackFreq_Init(void);            
函數(shù)功能:霧化器追頻初始化,設(shè)置了追頻所需的變量,需要在追頻前調(diào)用

函數(shù):void  SOCAPI_TrackFreq(void);               
函數(shù)功能:霧化器追頻,該函數(shù)需要在SOCAPI_TrackFreq_Init之后在主程序中一直調(diào)用,直到TrackFreqFlag變量置1,追頻完成后進(jìn)入功率調(diào)整

函數(shù):void  SOCAPI_AtomizerSetPower(INT8U Power);   
函數(shù)功能:設(shè)置霧化器工作時(shí)最大檔功率,1.7M:設(shè)置范圍 15-21W;2.4M、3M:設(shè)置范圍6-12W

函數(shù):void  SOCAPI_AdjustPower(void);            
函數(shù)功能:進(jìn)行功率調(diào)整,將最大檔功率調(diào)制到設(shè)定功率,需要在SOCAPI_AtomizerSetPower之后調(diào)用

函數(shù):void  SOCAPI_AtomizerSetGear(INT8U Gear);   
函數(shù)功能:設(shè)置檔位,16檔可調(diào),0為低檔,16為高檔位,用戶可以在當(dāng)中選擇任意檔位作為目標(biāo)功率

函數(shù):void  SOCAPI_AtomizerWork(void);            
函數(shù)說明:霧化器霧化工作,該函數(shù)需要在主函數(shù)中無阻塞調(diào)用

函數(shù): void  SOCAPI_WaterLevelDetectorInit(INT16U Initial_Diff,int ThresholdTmp,INT8U Speed); 函數(shù)說明:水位檢測初始化,設(shè)置水位檢測參數(shù)

函數(shù):void  SOCAPI_WaterLevelDetector(void);        
函數(shù)功能:水位檢測,檢測結(jié)果由Water_flag輸出

四、霧化器庫的具體使用
  霧化器庫使用準(zhǔn)備: 霧化器的檢水功能需要使用到Touch Key,賽元提供觸控庫幫助用戶使用賽元的觸控功能,具體使用見觸控庫的使用說明或者聯(lián)系賽元的工程師,在項(xiàng)目工程中添加觸控庫;采集TK通道的數(shù)據(jù),設(shè)置main.h中以下三個(gè)參數(shù):
#define  CH_INITIAL_DIFF      668        
參數(shù)說明:檢測通道與參考通道的初始比例,采樣通道無水時(shí)RAWdata/參考通道RAWdata*1000
#define  WATERThresholdtmp    1300        
參數(shù)說明:檢測通道有無水差值*0.6,如完全覆的差值為2166,則設(shè)置為1300。
#define  WATERCHECK_SPEED     20        
參數(shù)說明:水位檢測的確認(rèn)次數(shù) ,取值范圍10-249    ,確認(rèn)時(shí)間為10*Nms
通過函數(shù)SOCAPI_WaterLevelDetectorInit()進(jìn)行設(shè)置;

   本軟件庫適用于賽元的SC91F831和SC91F832芯片,用戶使用時(shí)需將Atomizer文件夾添加到項(xiàng)目工程中,并在KEIL項(xiàng)目中添加Atomizer文件夾中的SOC_Atomizer_lib_V1.3.LIB,
1、在工程主文件中調(diào)用霧化器庫文件
#include    "Atomizer\Atomizer.h"               //包含霧化器外部調(diào)用接口函數(shù)

2、清除EEPROM空間
在主文件中加入INT8U   code  EE_Data[4]={0,0,0,0};         //清除EEPROM的空間   
設(shè)置工程配置的BL51 Locate選項(xiàng)卡中的CODE為?CO?MAIN(0X1f00)

3、初始化霧化器工作
根據(jù)使用的霧化片頻率調(diào)用函數(shù)SOCAPI_Atomizer_Init(0); 對霧化器進(jìn)行初始化

4、水位檢測初始化
調(diào)用以下函數(shù)對霧化器進(jìn)行初始化,該函數(shù)需要在水位檢測函數(shù)調(diào)用前進(jìn)行設(shè)置
SOCAPI_WaterLevelDetectorInit(CH_INITIAL_DIFF,WATERThresholdtmp,WATERCHECK_SPEED);

5、查詢是否追頻
調(diào)用函數(shù)SOCAPI_GetTrackFreqStaus,返回是否已追蹤過頻率,若已追頻則調(diào)用函數(shù)SOCAPI_SetFreq設(shè)置霧化器工作的頻率,若未追蹤過頻率則進(jìn)行追頻

6、追蹤頻率
調(diào)用函數(shù)SOCAPI_AtomizerSetPower設(shè)置霧化器工作的最大檔功率,建議加濕器設(shè)置為16-21W,香薰機(jī)設(shè)置為6-12W;設(shè)置霧化器的功率后調(diào)用SOCAPI_TrackFreq_Init()對追頻進(jìn)初始化;在主函數(shù)中無阻塞的調(diào)用函數(shù)SOCAPI_TrackFreq_Init直到TrackFreqFlag變量置1,追頻完成后進(jìn)入功率調(diào)整

7、功率調(diào)整
追頻完成后將ADC切換到檢測電流的ADC口,無阻塞調(diào)用函數(shù) SOCAPI_AdjustPower進(jìn)行功率調(diào)整,將最大檔的功能調(diào)整到設(shè)定值;由于器件差異,調(diào)整后功率誤差在正負(fù)1W左右;

8、霧化器霧化
在主函數(shù)中無阻塞的調(diào)用函數(shù)SOCAPI_AtomizerWork()進(jìn)行霧化工作,切勿在追頻和調(diào)整功率過程調(diào)用該函數(shù)

9、檔位調(diào)整
在霧化器正常霧化過程可以調(diào)用函數(shù)SOCAPI_AtomizerSetGear進(jìn)行設(shè)置檔位,函數(shù)支持16吉檔位設(shè)置,霧化器庫將最大檔均分成16級檔位,用戶可以根據(jù)所需的各檔位功率選擇合適的檔位作為實(shí)際工作的檔位。

10、檢測水位
霧化器庫已經(jīng)在霧化時(shí)調(diào)用了水位檢測函數(shù),檢測結(jié)果由Water_flag輸出,若用戶需要在霧化器不正常霧化下檢水則需要在主函數(shù)中調(diào)用程序段:
if(SOCAPI_TouchKeyStatus&0x80)        // Bit7:一輪按鍵掃描是否完成?
       {            
            SOCAPI_TouchKeyStatus&=0x7f;    // 清掉 Bit7:一輪掃描完成標(biāo)志
            TouchKeyScan();            // 數(shù)據(jù)算法處理后,讀取鍵值   
            SOCAPI_WaterLevelDetector();    // 水位檢測            
            TouchKeyRestart();                // 啟動下一輪掃
       }
若在使用中有任何的疑問請聯(lián)系賽元的工程師!


B:操作步驟:
1、    輸入電壓:           交流220V\直流24V
2、    最大檔功率:        約20W
3、    指示燈狀態(tài):      缺水:   紅燈亮;
正常工作:綠燈亮
模式選擇:紅綠燈交替閃爍
追頻:    綠燈閃爍
關(guān)機(jī):    紅綠燈滅
4、    功率檔位:        0~16檔可調(diào),每檔功率約為20W/16*檔位,通過旋鈕開關(guān)調(diào)節(jié),逆時(shí)針擰為減小功率,順時(shí)針擰為增加功率。
5、    關(guān)機(jī):逆時(shí)針擰到盡頭
6、    追頻模式:關(guān)機(jī)進(jìn)入開機(jī)狀態(tài)時(shí),紅綠燈交替閃5秒鐘,此為等待是否選擇追頻模式。5秒鐘內(nèi)由最小功率檔位擰到最大功率檔位,再擰到最小功率檔位并停留在最小功率檔位,此時(shí)會進(jìn)入追頻模式,追頻過程中綠燈閃爍約5秒種,閃爍完成后綠燈亮進(jìn)入正常工作模式。
7、    觸控檢水:檢水彈片,檢水彈片塞在水槽中間的圓柱內(nèi),當(dāng)水量過低時(shí),會檢測到缺水狀態(tài)并亮紅燈,需要加水后重新開機(jī)再進(jìn)入正常工作模式。

C:注意事項(xiàng):
1、    更換霧化片后,需要重新追頻;
2、    重新燒錄程序后,需要重新追頻;
3、    觸控檢水的接口接線由于是跳線,拆裝時(shí)容易松動,注意必須要接上并良好接觸,不能隨意更換線;








二、    香薰機(jī)樣機(jī):
A:圖示如下:


B:操作步驟:
1、    輸入電壓:           交流220V\直流24V
2、    最大檔功率:        約10W
3、    指示燈狀態(tài):      缺水:    4個(gè)綠燈全亮;
開機(jī):    最左的綠燈亮
減檔:    第2個(gè)綠燈亮
加檔:    第3個(gè)綠燈亮
關(guān)機(jī):    全滅
追頻:      4個(gè)綠燈全閃;
4、    功率檔位:        0~4檔可調(diào),每檔功率約為10W/4*檔位,開機(jī)狀態(tài)下按下第2個(gè)按鍵為減檔,按下第3個(gè)按鍵為加檔。
5、    開、關(guān)機(jī):按下最左邊第1個(gè)按鍵
6、    追頻模式:同時(shí)按下第2個(gè)和第3個(gè)按鍵,進(jìn)入追頻模式
7、    觸控檢水:檢水彈片,當(dāng)水量過低時(shí),會檢測到缺水狀態(tài)并4個(gè)綠燈全亮,加水后檢測有水狀態(tài)下會進(jìn)入開機(jī)模式,此時(shí)為0檔位

C:注意事項(xiàng):
1、    更換霧化片后,需要重新追頻;
2、    重新燒錄程序后,需要重新追頻;

單片機(jī)源程序如下:
  1. //************************************************************
  2. //  Copyright (c) 深圳市賽元微電子有限公司
  3. //        文件名稱        : Atomizer.c
  4. //        作者                :
  5. //        模塊功能        : 香薰機(jī)
  6. //        局部函數(shù)列表:
  7. //  最后更正日期:
  8. //         版本                :
  9. //         更改記錄        :
  10. //        更改版本        :  V1.0  2015-10-22
  11. //*************************************************************
  12. #include        "h\SC91F832_C.h"
  13. #include        "lib\SensorMethod.h"           //包含touchkey外部調(diào)用接口函數(shù)
  14. #include    "h\data_type.h"
  15. #include    "Atomizer\Atomizer.h"                           //包含霧化器外部調(diào)用接口函數(shù)

  16. //#define          _sif_debug_
  17. #ifdef _sif_debug_
  18. #include "sif\sif_bus.h"
  19. #endif

  20. #define                BS(SFR,NUM)                (SFR|=(1<<NUM))                //清bit位
  21. #define                BC(SFR,NUM)                (SFR&=~(1<<NUM))        //bit位置1
  22. #define                SET(SFR,NUM)        (SFR = NUM)

  23. //******************宏定義**********************//
  24. #define     WAITMODE     0                                  //等待模式
  25. #define     TRACKFREQ    1                                  //自動追頻
  26. #define     STRATMODE    2                                  //工作模式
  27. #define     STOPMODE     3                                  //停機(jī)模式
  28. #define     MAXGEAR      4                                  //調(diào)整功率模式

  29. #define         ON                      1
  30. #define         OFF                    0
  31. #define     KEYCOUNT     5
  32. #define            FAN                 P36                          //風(fēng)扇
  33. #define     LED_COM      P27

  34. #define         LED1             P35
  35. #define         LED2             P34
  36. #define         LED3             P32
  37. #define         LED4             P31                  
  38. #define         LED1SP             (BS(P3CFG1,2),BC(P3CFG1,3))
  39. #define         LED2SP             (BS(P3CFG1,0),BC(P3CFG1,1))
  40. #define         LED3SP             (BS(P3CFG0,4),BC(P3CFG0,5))
  41. #define         LED4SP             (BS(P3CFG0,2),BC(P3CFG0,3))
  42. #define     SET_LED_OUT         LED1SP;LED2SP;LED3SP;LED4SP

  43. #define         KEY1             P35
  44. #define         KEY2             P32
  45. #define         KEY3             P34
  46. #define         KEY1MI             (BC(P3CFG1,2),BC(P3CFG1,3),SET(P35,1))
  47. #define         KEY2MI             (BC(P3CFG0,4),BC(P3CFG0,5),SET(P32,1))
  48. #define         KEY3MI             (BC(P3CFG1,0),BC(P3CFG1,1),SET(P34,1))
  49. #define     SET_KEY_IN         KEY1MI;KEY2MI;KEY3MI

  50. INT8U  code  EE_Data[4]={0,0,0,0};             //清除EEPROM的空間
  51.                                 
  52. INT8U  WorkMode,Power_Gear=0;

  53. //******************水位檢測**************************//

  54. #define  CH_INITIAL_DIFF      888               
  55. #define  WATERThresholdtmp    800                //1300
  56. #define  WATERCHECK_SPEED     10                //水位檢測的速度,確認(rèn)次數(shù) ,取值范圍30-249        ,若10MS掃描一輪則確認(rèn)時(shí)間為500ms

  57. //******************全局變量**************************//
  58. INT8U  timer1msCount=0;
  59. INT8U  timer10msCnt=0;
  60. INT8U  timer100msCnt=0;
  61. INT8U  Key1Cnt=0;
  62. INT8U  Key2Cnt=0;
  63. INT8U  Key3Cnt=0;
  64. INT8U  KeyBuf=0;
  65. bit  LED1Flag=0;
  66. bit  LED2Flag=0;
  67. bit  LED3Flag=0;
  68. bit  LED4Flag=0;

  69. bit  btime100ms=0;
  70. bit  btimer10ms=0;                                                    //10ms標(biāo)志
  71. bit  timer1msFlag=0;
  72. bit  Timer1sFlag=0;                                                   

  73. bit  KeyStaus=0;
  74. bit  openflag=0;
  75. /**************************************************
  76. *函數(shù)名稱:void  StartWork(void)
  77. *函數(shù)功能:啟動模式
  78. *入口參數(shù):void
  79. *出口參數(shù):void
  80. **************************************************/
  81. void StartWork(void)
  82. {                        
  83.         WDTCR |=0x10;                                        // 清狗
  84.         if((Water_flag == 0))
  85.         {
  86.                 WorkMode =        STOPMODE;                                //無水進(jìn)入停機(jī)模式                                                
  87.         }  
  88. }
  89. /**************************************************
  90. *函數(shù)名稱:void  StopWork(void)
  91. *函數(shù)功能:停機(jī)模式
  92. *入口參數(shù):void
  93. *出口參數(shù):void
  94. **************************************************/
  95. void  StopWork(void)
  96. {                                                               
  97.         P13=OFF;
  98.         ENPWM=0;
  99.         LED1Flag=ON;
  100.         LED2Flag=ON;
  101.         LED3Flag=ON;
  102.         LED4Flag=ON;
  103.         FAN=OFF;
  104.         Power_Gear=0;
  105.     SOCAPI_AtomizerSetGear(Power_Gear*4);         
  106.         if((Water_flag == 1))
  107.         {
  108.                 WorkMode =        STRATMODE;                                //無水進(jìn)入停機(jī)模式
  109.                 LED2Flag=OFF;
  110.             LED3Flag=OFF;
  111.             LED4Flag=OFF;
  112.                 FAN=ON;                                                               
  113.         }
  114. }
  115. /**************************************************
  116. *函數(shù)名稱:void KeyScan(void)
  117. *函數(shù)功能:按鍵掃描
  118. *入口參數(shù):void
  119. *出口參數(shù):void
  120. **************************************************/
  121. void KeyScan(void)
  122. {
  123.    LED_COM=OFF;
  124.    SET_KEY_IN;
  125.    if(KEY1==0)
  126.    {
  127.        if(Key1Cnt<250)Key1Cnt++;
  128.            if(Key1Cnt>KEYCOUNT)
  129.            {
  130.               KeyBuf|=0x01;
  131.            }
  132.    }
  133.    else        
  134.    {
  135.       Key1Cnt=0;
  136.           KeyBuf&=(~0x01);
  137.    }

  138.    if(KEY2==0)
  139.    {
  140.        if(Key2Cnt<250)Key2Cnt++;
  141.            if(Key2Cnt>KEYCOUNT)
  142.            {
  143.               KeyBuf|=0X02;
  144.            }
  145.    }
  146.    else        
  147.    {
  148.       Key2Cnt=0;
  149.           KeyBuf&=(~0x02);
  150.    }

  151.    if(KEY3==0)
  152.    {
  153.        if(Key3Cnt<250)Key3Cnt++;
  154.            if(Key3Cnt>KEYCOUNT)
  155.            {
  156.               KeyBuf|=0X04;
  157.            }
  158.    }
  159.    else        
  160.    {
  161.       Key3Cnt=0;
  162.           KeyBuf&=(~0x04);
  163.    }
  164. }
  165. /**************************************************
  166. *函數(shù)名稱:void ChangeKeyValue(void)
  167. *函數(shù)功能:按鍵處理
  168. *入口參數(shù):void
  169. *出口參數(shù):void
  170. **************************************************/
  171. void ChangeKeyValue(void)
  172. {
  173.    switch(KeyBuf)
  174.         {               
  175.                 case 0x01:
  176.                     if(KeyStaus==0)
  177.                         {
  178.                                 KeyStaus=1;                                
  179.                                 if(openflag==0)
  180.                             {                                                            
  181.                                          if(SOCAPI_GetTrackFreqStaus()==1)                                                   //追頻成功標(biāo)志
  182.                                          {
  183.                                                  openflag=1;
  184.                                                  WorkMode =        STRATMODE;
  185.                                                  Power_Gear=1;
  186.                                                  SOCAPI_AtomizerSetGear(Power_Gear*4);
  187.                                                  FAN=1;        
  188.                                          }
  189.                                 }
  190.                                 else
  191.                                 {
  192.                                    openflag=0;
  193.                                    LED2Flag        =0;
  194.                                    LED3Flag        =0;
  195.                                    LED4Flag        =0;
  196.                                    WorkMode =        WAITMODE;                                                                  
  197.                                    FAN=0;                                                        
  198.                                 }
  199.                                 LED1Flag=openflag;               
  200.                         }
  201.                         break;
  202.                 case 0x02:
  203.                         if(KeyStaus==0)
  204.                         {
  205.                                 KeyStaus=1;                                
  206.                                 if((openflag==1)&&(Water_flag == 1))                        //開機(jī)響應(yīng)
  207.                             {
  208.                                   LED2Flag=1;
  209.                                   LED3Flag=0;
  210.                                   if(Power_Gear==0)Power_Gear=1;
  211.                                   Power_Gear--;         
  212.                                   SOCAPI_AtomizerSetGear(Power_Gear*4);                  //設(shè)置檔位                                
  213.                             }
  214.                         }
  215.                         break;        
  216.                                        
  217.                 case 0x04:
  218.                         if(KeyStaus==0)
  219.                         {
  220.                                 KeyStaus=1;                                       
  221.                                 if((openflag==1)&&(Water_flag == 1))                        //開機(jī)響應(yīng)
  222.                             {
  223.                                   LED2Flag=0;
  224.                                   LED3Flag=1;
  225.                                   if(Power_Gear>=4)Power_Gear=3;
  226.                                   Power_Gear++;         
  227.                                   SOCAPI_AtomizerSetGear(Power_Gear*4);                  //設(shè)置檔位                    
  228.                             }
  229.                         }
  230.                         break;
  231.                  case 0x06:                        
  232.                         SOCAPI_AtomizerSetPower(7);
  233.                         SOCAPI_TrackFreq_Init();
  234.                         WorkMode =        TRACKFREQ;
  235.                         break;
  236.                 default:
  237.                         KeyStaus=0;
  238.                         break;                        
  239.         }
  240. }
  241. /**************************************************
  242. *函數(shù)名稱:void LedScan(void)
  243. *函數(shù)功能:LED掃描
  244. *入口參數(shù):void
  245. *出口參數(shù):void
  246. **************************************************/
  247. void LedScan(void)
  248. {        
  249.         SET_LED_OUT;
  250.         LED1= ~LED1Flag;
  251.         LED2= ~LED2Flag;
  252.         LED3= ~LED3Flag;
  253.         LED4= ~LED4Flag;
  254.         LED_COM=ON;
  255. }
  256. /**************************************************
  257. *函數(shù)名稱:void Timer1()interrupt 3
  258. *函數(shù)功能:定時(shí)器中斷服務(wù)函數(shù)
  259. *入口參數(shù):void
  260. *出口參數(shù):void
  261. **************************************************/
  262. void timer1()interrupt 3
  263. {
  264.          TH1   = (65536-4000)/256;                   //400*1/4us=1Ms
  265.         TL1   = (65536-4000)%256;
  266.         timer1msFlag=1;
  267.         timer1msCount++;
  268.         if(timer1msCount>=10)
  269.         {
  270.           timer1msCount=0;
  271.           btimer10ms=1;
  272.           timer10msCnt++;
  273.           if(timer10msCnt>=10)
  274.           {
  275.                    timer10msCnt=0;
  276.                 btime100ms=1;
  277.                 timer100msCnt++;
  278.                 if(timer100msCnt>25)
  279.                 {
  280.                           timer100msCnt=0;
  281.                         Timer1sFlag=1;
  282.                 }
  283.           }
  284.         }
  285. }

  286. /**************************************************
  287. *函數(shù)名稱:void Sys_Init(void)
  288. *函數(shù)功能:系統(tǒng)初始化
  289. *入口參數(shù):void
  290. *出口參數(shù):void
  291. **************************************************/
  292. void Sys_Init(void)
  293. {
  294.         RSTCFG = 0x24;                                        //P1.0切換為IO ,LVR復(fù)位選擇2.45V
  295.         WDTCR =0x90;                                                //啟動看門狗,262MS復(fù)位                                

  296.         //ADC設(shè)置
  297.         ADCCFG = 0x84;                                    //選擇ADD為參考電壓VDD,選擇P12,P17作ADC輸入口.
  298.         ADCCR  = 0x87;                                    //打開ADC電源,ADC CLK=Fosc,選通P17通道
  299.         
  300.     //定時(shí)器1初始化        ,定時(shí)器0給霧化器使用
  301.         TMCON = TMCON|0x02;                                        //選擇時(shí)鐘分頻,Fosc/4=4Mhz;1/4us
  302.         TMOD  = TMOD|0x10;                              //設(shè)置工作方式1
  303.         TH1   = (65536-4000)/256;               //400*1/4us=1Ms
  304.         TL1   = (65536-4000)%256;               
  305.         TR1=0;                                                            //定時(shí)器T1的運(yùn)行控制位。打開timer1前,先清TRO
  306.         ET1=1;                                                            //允許timer1中斷
  307.         TR1=1;                                                            //允許timer1開始計(jì)數(shù)        
  308.                         
  309.         //**************************************************
  310.         SOCAPI_Atomizer_Init(1);                            //初始化霧化器,函數(shù)內(nèi)設(shè)置了PWM,定時(shí)器0
  311.         SOCAPI_WaterLevelDetectorInit(CH_INITIAL_DIFF,WATERThresholdtmp,WATERCHECK_SPEED);
  312.         //**************************************************                        
  313.                                          
  314.         EA=1;                                                                //打開總中斷
  315.         TouchKeyInit();                                                //觸摸按鍵初始化

  316.         #ifdef _sif_debug_
  317.         IPSIF=1;
  318.         Debug_TouchKeyIICInit(0);          //0:TK參數(shù)為程序設(shè)置 1:TK參數(shù)為Touch Key Tool軟件設(shè)置
  319.         #endif         

  320.         P3CFG1=(P3CFG1&0Xcf)|0X10;                                                 //P36 ,強(qiáng)推挽,風(fēng)扇
  321.         P2CFG1=(P2CFG1&0X3F)|0X40;                                           //p27 ,強(qiáng)推挽,com
  322.         
  323. }
  324. /**************************************************
  325. *函數(shù)名稱:void  ModeChoose(void)
  326. *函數(shù)功能:模式選擇
  327. *入口參數(shù):void
  328. *出口參數(shù):void
  329. **************************************************/
  330. void  ModeChoose(void)
  331. {        
  332.         if(SOCAPI_GetTrackFreqStaus()==1)                                                   //追頻成功標(biāo)志
  333.         {                                       
  334.                 SOCAPI_SetFreq();               
  335.                 WorkMode =        WAITMODE;                                                                       //進(jìn)入工作模式
  336.                 TouchKeyInit();                                                                           //觸摸按鍵初始化                                                                                           //正常工作指示燈
  337.         }
  338.         else                                                                                                                   //第一次上電未追頻
  339.         {         
  340.                 WorkMode =        STOPMODE;                                                                       //進(jìn)入停機(jī)模式
  341.                 Power_Gear=0;
  342.         }
  343. }                                                                                                
  344. /**************************************************
  345. *函數(shù)名稱:void main(void)
  346. *函數(shù)功能:主函數(shù)
  347. *入口參數(shù):void
  348. *出口參數(shù):void  
  349. **************************************************/                        
  350. void main()
  351. {               
  352.         P13=OFF;                                             //上電先拉低PWM的輸出
  353.         Sys_Init();                                                                 //系統(tǒng)初始化
  354.         ModeChoose();                                                         //模式選擇                        
  355.         while(1)
  356.         {                                         
  357.                 if(btimer10ms==1)                                    //10ms掃描一輪
  358.                 {
  359.                         btimer10ms=0;                                                         
  360.                         WDTCR |=0x10;                                        // 清狗               
  361.                         if(!((WorkMode==TRACKFREQ)|| (WorkMode==MAXGEAR)))                 //追頻過程不處理按鍵
  362.                         {
  363.                                 KeyScan();
  364.                                 ChangeKeyValue();                                                
  365.                         }
  366.                         LedScan();                                                                    
  367.                 }                                       
  368.                 switch(WorkMode)
  369.                 {                        
  370.                         case  TRACKFREQ:                                                         //自動追頻模式
  371.                                  //**************************************************
  372.                                  SOCAPI_TrackFreq();
  373.                                  if(TrackFreqFlag==1)//追頻完成標(biāo)志置位
  374.                                  {
  375.                                         WorkMode= MAXGEAR;
  376.                                         ADCCFG = ADCCFG|0x01;                          //選擇參考電壓2.4VDD,切換到測量電流
  377.                         ADCCR  = 0x87;                                         //打開ADC電源,選通P17通道
  378.                                         AjustPowerFlag=0;
  379.                                  }
  380.                                  if(btime100ms==1)
  381.                                  {                        
  382.                                          btime100ms=0;
  383.                                          LED1Flag= ~LED1Flag;
  384.                                          LED2Flag= ~LED2Flag;
  385. ……………………

  386. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
霧化器相關(guān)資料V1.3.rar (19.27 MB, 下載次數(shù): 1635)

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏63 分享淘帖 頂5 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:446470 發(fā)表于 2018-12-14 18:32 | 只看該作者
收藏下
回復(fù)

使用道具 舉報(bào)

板凳
ID:453655 發(fā)表于 2018-12-24 17:28 | 只看該作者
MARK一下
回復(fù)

使用道具 舉報(bào)

地板
ID:284462 發(fā)表于 2018-12-29 11:13 | 只看該作者
追頻的原理是什么啊,怎么實(shí)現(xiàn)追頻啊
回復(fù)

使用道具 舉報(bào)

5#
ID:33848 發(fā)表于 2019-2-16 16:19 | 只看該作者
收藏了,謝謝
回復(fù)

使用道具 舉報(bào)

6#
ID:311105 發(fā)表于 2019-2-20 13:06 | 只看該作者
收藏下
回復(fù)

使用道具 舉報(bào)

7#
ID:331985 發(fā)表于 2019-3-14 19:50 來自手機(jī) | 只看該作者
不錯(cuò),學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

8#
ID:412684 發(fā)表于 2019-3-20 17:46 | 只看該作者
很給力
回復(fù)

使用道具 舉報(bào)

9#
ID:74355 發(fā)表于 2019-3-22 20:56 | 只看該作者
MARK一下
回復(fù)

使用道具 舉報(bào)

10#
ID:498656 發(fā)表于 2019-3-26 19:59 | 只看該作者
下來看看
回復(fù)

使用道具 舉報(bào)

11#
ID:140183 發(fā)表于 2019-3-26 21:20 | 只看該作者
謝謝啦!不過這款單片沒有用過.
回復(fù)

使用道具 舉報(bào)

12#
ID:513665 發(fā)表于 2019-4-16 15:09 | 只看該作者
MARK一下
回復(fù)

使用道具 舉報(bào)

13#
ID:318222 發(fā)表于 2019-4-17 09:56 | 只看該作者
剛好需要這些
回復(fù)

使用道具 舉報(bào)

14#
ID:519362 發(fā)表于 2019-4-23 10:35 | 只看該作者
謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

15#
ID:87000 發(fā)表于 2019-4-24 15:45 | 只看該作者
進(jìn)來看看。
回復(fù)

使用道具 舉報(bào)

16#
ID:97678 發(fā)表于 2019-5-1 16:12 | 只看該作者
好東西! 謝謝分享!!!!!!!
回復(fù)

使用道具 舉報(bào)

17#
ID:13282 發(fā)表于 2019-5-2 12:44 | 只看該作者
這款單片機(jī)性價(jià)比怎么樣呢
回復(fù)

使用道具 舉報(bào)

18#
ID:164722 發(fā)表于 2019-5-6 08:52 | 只看該作者

謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

19#
ID:308180 發(fā)表于 2019-5-21 01:01 | 只看該作者
感謝分享,準(zhǔn)備玩下
回復(fù)

使用道具 舉報(bào)

20#
ID:122985 發(fā)表于 2019-5-30 17:56 | 只看該作者
你是怎么實(shí)現(xiàn)pwm輸出的?單片機(jī)只有16m時(shí)鐘輸出的pwm都調(diào)節(jié)不了
回復(fù)

使用道具 舉報(bào)

21#
ID:14325 發(fā)表于 2019-6-21 14:59 | 只看該作者
為什么扣分了,下載不了???
回復(fù)

使用道具 舉報(bào)

22#
ID:102263 發(fā)表于 2019-6-26 13:13 | 只看該作者
謝謝分享~~~~~~~~~~~~
回復(fù)

使用道具 舉報(bào)

23#
ID:369012 發(fā)表于 2019-7-18 15:34 | 只看該作者
樓主有沒有做案子?
回復(fù)

使用道具 舉報(bào)

24#
ID:5564 發(fā)表于 2019-7-25 17:11 | 只看該作者
謝謝兄臺,這過對我來說太重要
回復(fù)

使用道具 舉報(bào)

25#
ID:220296 發(fā)表于 2019-7-29 17:50 | 只看該作者
請問能提供一下原理圖嗎?
回復(fù)

使用道具 舉報(bào)

26#
ID:596140 發(fā)表于 2019-8-6 14:59 | 只看該作者
謝謝,非常需要
回復(fù)

使用道具 舉報(bào)

27#
ID:442397 發(fā)表于 2019-8-7 08:20 | 只看該作者
沒有作品圖片嗎?
回復(fù)

使用道具 舉報(bào)

28#
ID:605401 發(fā)表于 2019-8-30 10:28 | 只看該作者
學(xué)習(xí)了,謝謝大神
回復(fù)

使用道具 舉報(bào)

29#
ID:29032 發(fā)表于 2019-9-3 14:17 | 只看該作者
謝謝分享!!!學(xué)習(xí)了!!
回復(fù)

使用道具 舉報(bào)

30#
ID:71883 發(fā)表于 2019-9-3 15:16 | 只看該作者
謝謝樓主這個(gè)資料好
回復(fù)

使用道具 舉報(bào)

31#
ID:71535 發(fā)表于 2019-9-6 22:42 | 只看該作者

MARK一下
謝謝分享!
回復(fù)

使用道具 舉報(bào)

32#
ID:402597 發(fā)表于 2019-9-29 15:26 | 只看該作者
好東西
回復(fù)

使用道具 舉報(bào)

33#
ID:402597 發(fā)表于 2019-10-8 09:25 | 只看該作者
好資料!
回復(fù)

使用道具 舉報(bào)

34#
ID:538950 發(fā)表于 2019-10-8 11:12 | 只看該作者
謝謝分享,收藏一下!!!!!!!
回復(fù)

使用道具 舉報(bào)

35#
ID:622012 發(fā)表于 2019-10-10 22:43 | 只看該作者
收藏了,謝謝
回復(fù)

使用道具 舉報(bào)

36#
ID:512651 發(fā)表于 2019-10-22 14:22 | 只看該作者

收藏了,謝謝,學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

37#
ID:466505 發(fā)表于 2019-11-14 16:58 | 只看該作者
收藏下,謝付樓主
回復(fù)

使用道具 舉報(bào)

38#
ID:414108 發(fā)表于 2019-11-14 18:32 | 只看該作者
剛需啊!
回復(fù)

使用道具 舉報(bào)

39#
ID:263693 發(fā)表于 2019-11-15 17:24 | 只看該作者
MARK一下
回復(fù)

使用道具 舉報(bào)

40#
ID:85743 發(fā)表于 2019-11-17 11:18 | 只看該作者
正好需要,下載學(xué)習(xí),51黑有你更精彩!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品一区二区三区久久久久 | 精品区一区二区 | 欧美在线一区二区三区 | 亚洲啪啪一区 | 黄色av网站在线观看 | 久久99精品久久久久久琪琪 | 伊人超碰在线 | 热99精品视频 | 国产三级一区二区三区 | 欧美性吧 | 亚洲午夜av久久乱码 | 亚洲一区日韩 | 一区二区三区四区电影 | 午夜网址 | 免费视频中文字幕 | 午夜视频免费网站 | 欧美久久久久久久久中文字幕 | 亚洲欧洲一区二区 | 精品日韩一区二区 | 综合久久久 | 米奇狠狠鲁 | 日韩欧美三级电影 | 在线观看黄色电影 | 亚洲欧美激情四射 | 免费国产黄网站在线观看视频 | 夜夜夜操 | 成人在线播放网站 | 91久久久久久久久 | 欧美videosex性极品hd | 日韩一区二区精品 | 欧美自拍日韩 | 精品视频在线免费观看 | 成人免费在线视频 | 国产成人在线免费 | 97国产精品视频 | 久久久www成人免费无遮挡大片 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 国产一区二区久久久 | 亚洲黄色片免费观看 | 久久r免费视频 | 视频一区二区国产 |