找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 29455|回复: 78
打印 上一主题 下一主题
收起左侧

加湿器 雾化器 香薰机的设计方案(单片机程序+PCB)超声波震荡方式

  [复制链接]
跳转到指定楼层
楼主
计较不错的资料


雾化器库使用说明
本文档为赛元提供的雾化器库的使用说明,雾化器库支持1.7M、2.4M和3M频率的雾化片,库提供了函数接口进行设置。其中1.7M雾化片适用于大功率加湿器(功率在15W以上),2.4M、3M雾化片适用于小功率的香薰机(功率在6-12W)。雾化器库提供了自动追频、功率设置、雾化工作、触控检水功能。库共提供了11个函数接口供用户调用,实现雾化器功能。
一、雾化器库介绍:
雾化器Atomizer文件夹中包含:
SC91F832_C.H             MCU头文件
Atomizer.h                包含雾化器外部调用接口函数
SOC_Atomizer_lib_V1.3.LIB   雾化器库文件
实现雾化器工作需要占用一定的系统资源,雾化器库资源占用:
ROM:1.8K  DATA: 50BYTE   XDATA:60BYTE
定时器:定时器0
PWM: PWM1
ADC:两路ADC
EEPROM: 4byte
Touch Key: 两路

二、雾化器的工作流程

三、雾化器库函数接口和接口说明
雾化器库共提供10个函数接口和3个全局变量:
变量:bit       TrackFreqFlag;               变量说明:追频完成标志0:未完成;1:完成     
变量:bit       AjustPowerFlag;           变量说明:功率调整完成标志0:未完成;1:完成
变量:bit    Water_flag;               变量说明:水位检测输出结果 0:缺水;1:有水

函数:bit   SOCAPI_GetTrackFreqStaus(void);      
函数功能:获取雾化器追频状态,返回1为已追频,0为未追频

函数:void  SOCAPI_SetFreq(void) ;               
函数功能:设置雾化器工作频率,当得到已追踪过频率可以调用该函数设置雾化器的频率

函数:void  SOCAPI_Atomizer_Init(INT8U mode);        
函数说明:雾化器初始化,设置PWM和定时器0;设置mode为0时雾化器的工作频率设置为1.7M;mode为1时为2.4M;mode为2时为3M

函数:void  SOCAPI_TrackFreq_Init(void);            
函数功能:雾化器追频初始化,设置了追频所需的变量,需要在追频前调用

函数:void  SOCAPI_TrackFreq(void);               
函数功能:雾化器追频,该函数需要在SOCAPI_TrackFreq_Init之后在主程序中一直调用,直到TrackFreqFlag变量置1,追频完成后进入功率调整

函数:void  SOCAPI_AtomizerSetPower(INT8U Power);   
函数功能:设置雾化器工作时最大档功率,1.7M:设置范围 15-21W;2.4M、3M:设置范围6-12W

函数:void  SOCAPI_AdjustPower(void);            
函数功能:进行功率调整,将最大档功率调制到设定功率,需要在SOCAPI_AtomizerSetPower之后调用

函数:void  SOCAPI_AtomizerSetGear(INT8U Gear);   
函数功能:设置档位,16档可调,0为低档,16为高档位,用户可以在当中选择任意档位作为目标功率

函数:void  SOCAPI_AtomizerWork(void);            
函数说明:雾化器雾化工作,该函数需要在主函数中无阻塞调用

函数: void  SOCAPI_WaterLevelDetectorInit(INT16U Initial_Diff,int ThresholdTmp,INT8U Speed); 函数说明:水位检测初始化,设置水位检测参数

函数:void  SOCAPI_WaterLevelDetector(void);        
函数功能:水位检测,检测结果由Water_flag输出

四、雾化器库的具体使用
  雾化器库使用准备: 雾化器的检水功能需要使用到Touch Key,赛元提供触控库帮助用户使用赛元的触控功能,具体使用见触控库的使用说明或者联系赛元的工程师,在项目工程中添加触控库;采集TK通道的数据,设置main.h中以下三个参数:
#define  CH_INITIAL_DIFF      668        
参数说明:检测通道与参考通道的初始比例,采样通道无水时RAWdata/参考通道RAWdata*1000
#define  WATERThresholdtmp    1300        
参数说明:检测通道有无水差值*0.6,如完全覆的差值为2166,则设置为1300。
#define  WATERCHECK_SPEED     20        
参数说明:水位检测的确认次数 ,取值范围10-249    ,确认时间为10*Nms
通过函数SOCAPI_WaterLevelDetectorInit()进行设置;

   本软件库适用于赛元的SC91F831和SC91F832芯片,用户使用时需将Atomizer文件夹添加到项目工程中,并在KEIL项目中添加Atomizer文件夹中的SOC_Atomizer_lib_V1.3.LIB,
1、在工程主文件中调用雾化器库文件
#include    "Atomizer\Atomizer.h"               //包含雾化器外部调用接口函数

2、清除EEPROM空间
在主文件中加入INT8U   code  EE_Data[4]={0,0,0,0};         //清除EEPROM的空间   
设置工程配置的BL51 Locate选项卡中的CODE为?CO?MAIN(0X1f00)

3、初始化雾化器工作
根据使用的雾化片频率调用函数SOCAPI_Atomizer_Init(0); 对雾化器进行初始化

4、水位检测初始化
调用以下函数对雾化器进行初始化,该函数需要在水位检测函数调用前进行设置
SOCAPI_WaterLevelDetectorInit(CH_INITIAL_DIFF,WATERThresholdtmp,WATERCHECK_SPEED);

5、查询是否追频
调用函数SOCAPI_GetTrackFreqStaus,返回是否已追踪过频率,若已追频则调用函数SOCAPI_SetFreq设置雾化器工作的频率,若未追踪过频率则进行追频

6、追踪频率
调用函数SOCAPI_AtomizerSetPower设置雾化器工作的最大档功率,建议加湿器设置为16-21W,香薰机设置为6-12W;设置雾化器的功率后调用SOCAPI_TrackFreq_Init()对追频进初始化;在主函数中无阻塞的调用函数SOCAPI_TrackFreq_Init直到TrackFreqFlag变量置1,追频完成后进入功率调整

7、功率调整
追频完成后将ADC切换到检测电流的ADC口,无阻塞调用函数 SOCAPI_AdjustPower进行功率调整,将最大档的功能调整到设定值;由于器件差异,调整后功率误差在正负1W左右;

8、雾化器雾化
在主函数中无阻塞的调用函数SOCAPI_AtomizerWork()进行雾化工作,切勿在追频和调整功率过程调用该函数

9、档位调整
在雾化器正常雾化过程可以调用函数SOCAPI_AtomizerSetGear进行设置档位,函数支持16吉档位设置,雾化器库将最大档均分成16级档位,用户可以根据所需的各档位功率选择合适的档位作为实际工作的档位。

10、检测水位
雾化器库已经在雾化时调用了水位检测函数,检测结果由Water_flag输出,若用户需要在雾化器不正常雾化下检水则需要在主函数中调用程序段:
if(SOCAPI_TouchKeyStatus&0x80)        // Bit7:一轮按键扫描是否完成?
       {            
            SOCAPI_TouchKeyStatus&=0x7f;    // 清掉 Bit7:一轮扫描完成标志
            TouchKeyScan();            // 数据算法处理后,读取键值   
            SOCAPI_WaterLevelDetector();    // 水位检测            
            TouchKeyRestart();                // 启动下一轮扫
       }
若在使用中有任何的疑问请联系赛元的工程师!


B:操作步骤:
1、    输入电压:           交流220V\直流24V
2、    最大档功率:        约20W
3、    指示灯状态:      缺水:   红灯亮;
正常工作:绿灯亮
模式选择:红绿灯交替闪烁
追频:    绿灯闪烁
关机:    红绿灯灭
4、    功率档位:        0~16档可调,每档功率约为20W/16*档位,通过旋钮开关调节,逆时针拧为减小功率,顺时针拧为增加功率。
5、    关机:逆时针拧到尽头
6、    追频模式:关机进入开机状态时,红绿灯交替闪5秒钟,此为等待是否选择追频模式。5秒钟内由最小功率档位拧到最大功率档位,再拧到最小功率档位并停留在最小功率档位,此时会进入追频模式,追频过程中绿灯闪烁约5秒种,闪烁完成后绿灯亮进入正常工作模式。
7、    触控检水:检水弹片,检水弹片塞在水槽中间的圆柱内,当水量过低时,会检测到缺水状态并亮红灯,需要加水后重新开机再进入正常工作模式。

C:注意事项:
1、    更换雾化片后,需要重新追频;
2、    重新烧录程序后,需要重新追频;
3、    触控检水的接口接线由于是跳线,拆装时容易松动,注意必须要接上并良好接触,不能随意更换线;








二、    香薰机样机:
A:图示如下:


B:操作步骤:
1、    输入电压:           交流220V\直流24V
2、    最大档功率:        约10W
3、    指示灯状态:      缺水:    4个绿灯全亮;
开机:    最左的绿灯亮
减档:    第2个绿灯亮
加档:    第3个绿灯亮
关机:    全灭
追频:      4个绿灯全闪;
4、    功率档位:        0~4档可调,每档功率约为10W/4*档位,开机状态下按下第2个按键为减档,按下第3个按键为加档。
5、    开、关机:按下最左边第1个按键
6、    追频模式:同时按下第2个和第3个按键,进入追频模式
7、    触控检水:检水弹片,当水量过低时,会检测到缺水状态并4个绿灯全亮,加水后检测有水状态下会进入开机模式,此时为0档位

C:注意事项:
1、    更换雾化片后,需要重新追频;
2、    重新烧录程序后,需要重新追频;

单片机源程序如下:
  1. //************************************************************
  2. //  Copyright (c) 深圳市赛元微电子有限公司
  3. //        文件名称        : Atomizer.c
  4. //        作者                :
  5. //        模块功能        : 香薰机
  6. //        局部函数列表:
  7. //  最后更正日期:
  8. //         版本                :
  9. //         更改记录        :
  10. //        更改版本        :  V1.0  2015-10-22
  11. //*************************************************************
  12. #include        "h\SC91F832_C.h"
  13. #include        "lib\SensorMethod.h"           //包含touchkey外部调用接口函数
  14. #include    "h\data_type.h"
  15. #include    "Atomizer\Atomizer.h"                           //包含雾化器外部调用接口函数

  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                                  //停机模式
  28. #define     MAXGEAR      4                                  //调整功率模式

  29. #define         ON                      1
  30. #define         OFF                    0
  31. #define     KEYCOUNT     5
  32. #define            FAN                 P36                          //风扇
  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                //水位检测的速度,确认次数 ,取值范围30-249        ,若10MS扫描一轮则确认时间为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标志
  71. bit  timer1msFlag=0;
  72. bit  Timer1sFlag=0;                                                   

  73. bit  KeyStaus=0;
  74. bit  openflag=0;
  75. /**************************************************
  76. *函数名称:void  StartWork(void)
  77. *函数功能:启动模式
  78. *入口参数:void
  79. *出口参数:void
  80. **************************************************/
  81. void StartWork(void)
  82. {                        
  83.         WDTCR |=0x10;                                        // 清狗
  84.         if((Water_flag == 0))
  85.         {
  86.                 WorkMode =        STOPMODE;                                //无水进入停机模式                                                
  87.         }  
  88. }
  89. /**************************************************
  90. *函数名称:void  StopWork(void)
  91. *函数功能:停机模式
  92. *入口参数:void
  93. *出口参数: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;                                //无水进入停机模式
  109.                 LED2Flag=OFF;
  110.             LED3Flag=OFF;
  111.             LED4Flag=OFF;
  112.                 FAN=ON;                                                               
  113.         }
  114. }
  115. /**************************************************
  116. *函数名称:void KeyScan(void)
  117. *函数功能:按键扫描
  118. *入口参数:void
  119. *出口参数: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. *函数名称:void ChangeKeyValue(void)
  167. *函数功能:按键处理
  168. *入口参数:void
  169. *出口参数: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)                                                   //追频成功标志
  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))                        //开机响应
  207.                             {
  208.                                   LED2Flag=1;
  209.                                   LED3Flag=0;
  210.                                   if(Power_Gear==0)Power_Gear=1;
  211.                                   Power_Gear--;         
  212.                                   SOCAPI_AtomizerSetGear(Power_Gear*4);                  //设置档位                                
  213.                             }
  214.                         }
  215.                         break;        
  216.                                        
  217.                 case 0x04:
  218.                         if(KeyStaus==0)
  219.                         {
  220.                                 KeyStaus=1;                                       
  221.                                 if((openflag==1)&&(Water_flag == 1))                        //开机响应
  222.                             {
  223.                                   LED2Flag=0;
  224.                                   LED3Flag=1;
  225.                                   if(Power_Gear>=4)Power_Gear=3;
  226.                                   Power_Gear++;         
  227.                                   SOCAPI_AtomizerSetGear(Power_Gear*4);                  //设置档位                    
  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. *函数名称:void LedScan(void)
  243. *函数功能:LED扫描
  244. *入口参数:void
  245. *出口参数: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. *函数名称:void Timer1()interrupt 3
  258. *函数功能:定时器中断服务函数
  259. *入口参数:void
  260. *出口参数: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. *函数名称:void Sys_Init(void)
  288. *函数功能:系统初始化
  289. *入口参数:void
  290. *出口参数:void
  291. **************************************************/
  292. void Sys_Init(void)
  293. {
  294.         RSTCFG = 0x24;                                        //P1.0切换为IO ,LVR复位选择2.45V
  295.         WDTCR =0x90;                                                //启动看门狗,262MS复位                                

  296.         //ADC设置
  297.         ADCCFG = 0x84;                                    //选择ADD为参考电压VDD,选择P12,P17作ADC输入口.
  298.         ADCCR  = 0x87;                                    //打开ADC电源,ADC CLK=Fosc,选通P17通道
  299.         
  300.     //定时器1初始化        ,定时器0给雾化器使用
  301.         TMCON = TMCON|0x02;                                        //选择时钟分频,Fosc/4=4Mhz;1/4us
  302.         TMOD  = TMOD|0x10;                              //设置工作方式1
  303.         TH1   = (65536-4000)/256;               //400*1/4us=1Ms
  304.         TL1   = (65536-4000)%256;               
  305.         TR1=0;                                                            //定时器T1的运行控制位。打开timer1前,先清TRO
  306.         ET1=1;                                                            //允许timer1中断
  307.         TR1=1;                                                            //允许timer1开始计数        
  308.                         
  309.         //**************************************************
  310.         SOCAPI_Atomizer_Init(1);                            //初始化雾化器,函数内设置了PWM,定时器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参数为程序设置 1:TK参数为Touch Key Tool软件设置
  319.         #endif         

  320.         P3CFG1=(P3CFG1&0Xcf)|0X10;                                                 //P36 ,强推挽,风扇
  321.         P2CFG1=(P2CFG1&0X3F)|0X40;                                           //p27 ,强推挽,com
  322.         
  323. }
  324. /**************************************************
  325. *函数名称:void  ModeChoose(void)
  326. *函数功能:模式选择
  327. *入口参数:void
  328. *出口参数:void
  329. **************************************************/
  330. void  ModeChoose(void)
  331. {        
  332.         if(SOCAPI_GetTrackFreqStaus()==1)                                                   //追频成功标志
  333.         {                                       
  334.                 SOCAPI_SetFreq();               
  335.                 WorkMode =        WAITMODE;                                                                       //进入工作模式
  336.                 TouchKeyInit();                                                                           //触摸按键初始化                                                                                           //正常工作指示灯
  337.         }
  338.         else                                                                                                                   //第一次上电未追频
  339.         {         
  340.                 WorkMode =        STOPMODE;                                                                       //进入停机模式
  341.                 Power_Gear=0;
  342.         }
  343. }                                                                                                
  344. /**************************************************
  345. *函数名称:void main(void)
  346. *函数功能:主函数
  347. *入口参数:void
  348. *出口参数:void  
  349. **************************************************/                        
  350. void main()
  351. {               
  352.         P13=OFF;                                             //上电先拉低PWM的输出
  353.         Sys_Init();                                                                 //系统初始化
  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)//追频完成标志置位
  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黑下载附件…………
复制代码

所有资料51hei提供下载:
雾化器相关资料V1.3.rar (19.27 MB, 下载次数: 1549)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏57 分享淘帖 顶4 踩
回复

使用道具 举报

沙发
ID:446470 发表于 2018-12-14 18:32 | 只看该作者
收藏下
回复

使用道具 举报

板凳
ID:453655 发表于 2018-12-24 17:28 | 只看该作者
MARK一下
回复

使用道具 举报

地板
ID:284462 发表于 2018-12-29 11:13 | 只看该作者
追频的原理是什么啊,怎么实现追频啊
回复

使用道具 举报

5#
ID:33848 发表于 2019-2-16 16:19 | 只看该作者
收藏了,谢谢
回复

使用道具 举报

6#
ID:311105 发表于 2019-2-20 13:06 | 只看该作者
收藏下
回复

使用道具 举报

7#
ID:331985 发表于 2019-3-14 19:50 来自手机 | 只看该作者
不错,学习了
回复

使用道具 举报

8#
ID:412684 发表于 2019-3-20 17:46 | 只看该作者
很给力
回复

使用道具 举报

9#
ID:74355 发表于 2019-3-22 20:56 | 只看该作者
MARK一下
回复

使用道具 举报

10#
ID:498656 发表于 2019-3-26 19:59 | 只看该作者
下来看看
回复

使用道具 举报

11#
ID:140183 发表于 2019-3-26 21:20 | 只看该作者
谢谢啦!不过这款单片没有用过.
回复

使用道具 举报

12#
ID:513665 发表于 2019-4-16 15:09 | 只看该作者
MARK一下
回复

使用道具 举报

13#
ID:318222 发表于 2019-4-17 09:56 | 只看该作者
刚好需要这些
回复

使用道具 举报

14#
ID:519362 发表于 2019-4-23 10:35 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

15#
ID:87000 发表于 2019-4-24 15:45 | 只看该作者
进来看看。
回复

使用道具 举报

16#
ID:97678 发表于 2019-5-1 16:12 | 只看该作者
好东西! 谢谢分享!!!!!!!
回复

使用道具 举报

17#
ID:13282 发表于 2019-5-2 12:44 | 只看该作者
这款单片机性价比怎么样呢
回复

使用道具 举报

18#
ID:164722 发表于 2019-5-6 08:52 | 只看该作者

谢谢楼主分享
回复

使用道具 举报

19#
ID:308180 发表于 2019-5-21 01:01 | 只看该作者
感谢分享,准备玩下
回复

使用道具 举报

20#
ID:122985 发表于 2019-5-30 17:56 | 只看该作者
你是怎么实现pwm输出的?单片机只有16m时钟输出的pwm都调节不了
回复

使用道具 举报

21#
ID:14325 发表于 2019-6-21 14:59 | 只看该作者
为什么扣分了,下载不了???
回复

使用道具 举报

22#
ID:102263 发表于 2019-6-26 13:13 | 只看该作者
谢谢分享~~~~~~~~~~~~
回复

使用道具 举报

23#
ID:369012 发表于 2019-7-18 15:34 | 只看该作者
楼主有没有做案子?
回复

使用道具 举报

24#
ID:5564 发表于 2019-7-25 17:11 | 只看该作者
谢谢兄台,这过对我来说太重要
回复

使用道具 举报

25#
ID:220296 发表于 2019-7-29 17:50 | 只看该作者
请问能提供一下原理图吗?
回复

使用道具 举报

26#
ID:596140 发表于 2019-8-6 14:59 | 只看该作者
谢谢,非常需要
回复

使用道具 举报

27#
ID:442397 发表于 2019-8-7 08:20 | 只看该作者
没有作品图片吗?
回复

使用道具 举报

28#
ID:605401 发表于 2019-8-30 10:28 | 只看该作者
学习了,谢谢大神
回复

使用道具 举报

29#
ID:29032 发表于 2019-9-3 14:17 | 只看该作者
谢谢分享!!!学习了!!
回复

使用道具 举报

30#
ID:71883 发表于 2019-9-3 15:16 | 只看该作者
谢谢楼主这个资料好
回复

使用道具 举报

31#
ID:71535 发表于 2019-9-6 22:42 | 只看该作者

MARK一下
谢谢分享!
回复

使用道具 举报

32#
ID:402597 发表于 2019-9-29 15:26 | 只看该作者
好东西
回复

使用道具 举报

33#
ID:402597 发表于 2019-10-8 09:25 | 只看该作者
好资料!
回复

使用道具 举报

34#
ID:538950 发表于 2019-10-8 11:12 | 只看该作者
谢谢分享,收藏一下!!!!!!!
回复

使用道具 举报

35#
ID:622012 发表于 2019-10-10 22:43 | 只看该作者
收藏了,谢谢
回复

使用道具 举报

36#
ID:512651 发表于 2019-10-22 14:22 | 只看该作者

收藏了,谢谢,学习一下
回复

使用道具 举报

37#
ID:466505 发表于 2019-11-14 16:58 | 只看该作者
收藏下,谢付楼主
回复

使用道具 举报

38#
ID:414108 发表于 2019-11-14 18:32 | 只看该作者
刚需啊!
回复

使用道具 举报

39#
ID:263693 发表于 2019-11-15 17:24 | 只看该作者
MARK一下
回复

使用道具 举报

40#
ID:85743 发表于 2019-11-17 11:18 | 只看该作者
正好需要,下载学习,51黑有你更精彩!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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