菜板杀菌仪功能描述: 一:产品一共有2个按键:KEY1电源键(左,红色LED), KEY2启动键(右,绿色LED)。 二:先按电源键之后,再按启动键,UV灯同时亮起,发热片会加热,风扇会转起来,达到UV杀菌风扇烘干的一个效果。 三:工作1.5个小时之后它会自动停止,暂停5个小时后自动开启工作,一直循环工作。 4:电源键-左边电源键轻按就是待机状态,红色LDE亮起,长按电源键就会关机,红色LED关闭。 5:启动键-右边键轻按就是启动工作,蓝色LED亮起,启动后右边启动按键从新按时从新计算半个小时。工作结束后蓝色LED会关闭。只有工作时才会亮起蓝色的LED,红色LED. 6:重点: 1,只要电源开启,左右两侧的UV灯要同时亮起。 2,发热片温度达到70°就要自动断电。(目前使用70°的温度感应SENSOR) 3,AC 220V(85Vac- 255Vac) FREE VOLTAGE,只要更换电源线在任何一个国家都通用 7:LED与蜂鸣器: 1:电源启动:红色LED亮起/蜂鸣器滴滴声音响起。 2:电源关闭:红色LDE关闭/蜂鸣器滴滴声音响起。 3: 启动开始: 蓝色,红色LED亮起/蜂鸣器短叮咚响起。 4: 启动结束蓝色LED关闭/蜂鸣器无声. 5: 待机状态红色LED亮起 6: 循环工作启动时蓝色LED亮起/短叮咚响起。- #include "stm8s_gpio.h"
- #include "led.h"
- #include "stm8s.h"
- #include "key.h"
- #include "stm8s_it.h"
- #include "beep.h"
- #include "stm8s_flash.h"
- u8 flags_ll = 0;
- void CLK_Configre(u8 clk)
- {
- switch(clk)
- {
- case 2:CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV8);break;//2M
- case 4:CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV4);break;
- case 8:CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);break;
- case 16:CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);break;//16M
- }
- }
- /*void delay_us(void)
- {
- asm("nop"); //一个asm("nop")函数经过示波器测试代表100ns
- asm("nop");
- asm("nop");
- asm("nop");
- }
- void delay_ms(unsigned int time)
- {
- unsigned int i;
- while(time--)
- for(i=900;i>0;i--)
- delay_us();
- }*/
- void main(void)
- {
- u8 step = 0;
- u8 key11 = 0,key22 = 0;
- u16 i = 0;
-
- CLK_Configre(2);
- GPIO_init();
- Key_Init();
- //TIM1_init();
- Timer4_Init();
- TIM2_init();
- PWM_init();
- enableInterrupts();
-
- GPIO_WriteHigh(GPIOD,GPIO_PIN_5);
- GPIO_WriteHigh(GPIOD,GPIO_PIN_2);
-
- GPIO_WriteLow(GPIOC,GPIO_PIN_6);
- GPIO_WriteLow(GPIOC,GPIO_PIN_5);
- GPIO_WriteLow(GPIOC,GPIO_PIN_4);
- while (1)
- {
-
- if(flags_1ms)
- {
- key11 = Key1_Scan();
- key22 = Key2_Scan();
- if(flags_ll == 2)
- {
- i++;
- if(i>=500)
- {
- i = 0;
- flags_ll=1;
- TIM4_Cmd(ENABLE); //开启定时器4
- }
- }
- if(alarm >0)
- {
- //alarm = 1;
- Beep_alarm();
- }
- flags_1ms = 0;
- }
-
- switch(step)
- {
- case 0:
- {
- if(key11 == 1) //启动键按下,进入待机模式
- {
- step = 1;
- key11 = 0;
- key22 = 0;
- alarm = 1;
- step1 = 0;
-
- GPIO_WriteLow(GPIOD,GPIO_PIN_5); //打开红色指示灯
-
- GPIO_WriteLow(GPIOC,GPIO_PIN_6); //关闭发热丝
- GPIO_WriteLow(GPIOC,GPIO_PIN_5); //关闭风扇
- GPIO_WriteLow(GPIOC,GPIO_PIN_4); //关闭紫外线灯管
- }
- }break;
- case 1:
- {
- if(key22 == 1) //自动键被按下,进入自动杀毒模式
- {
- step = 2;
- key22 = 0;
- alarm = 3;
- step1 = 0; //清空各个标志位
-
- cont_min = 0;
- cont_h = 0; //清空时间指示,重新计时
- count_5m = 0;
-
- GPIO_WriteLow(GPIOD,GPIO_PIN_2); //打开蓝灯,指示进入自动模式
- flags_ll = 2; //此标志位设置为2,则表示开启紫外线灯管
- GPIO_WriteHigh(GPIOC,GPIO_PIN_6); //打开发热丝
- GPIO_WriteHigh(GPIOC,GPIO_PIN_5); //开启风扇
- //GPIO_WriteHigh(GPIOC,GPIO_PIN_4);
- }
- if(key11 == 1)
- {
- TIM4_Cmd(DISABLE); //系统被关闭 关闭定时器4
- flags_ll = 0; //关闭 紫外线灯管开启标志位
- step = 0;
- key11 = 0;
- alarm = 2;
- step1 = 0; //复位各个标志位
-
- GPIO_WriteHigh(GPIOD,GPIO_PIN_5); //关闭红色指示灯
-
- GPIO_WriteLow(GPIOC,GPIO_PIN_6); //关闭发热丝
- GPIO_WriteLow(GPIOC,GPIO_PIN_5); //关闭风扇
- GPIO_WriteLow(GPIOC,GPIO_PIN_4); //关闭紫外线灯管
- }
- }break;
- case 2:
- {
- if(key11 == 1) //自动模式下下,开关机键被按下
- {
- TIM4_Cmd(DISABLE); //关闭定时器4
- flags_ll = 0; //紫外线灯管开启的标志位被清空
- step = 0;
- key11 = 0;
- alarm = 2;
- step1 = 0; //复位各个标志位
-
- GPIO_WriteHigh(GPIOD,GPIO_PIN_2); //关闭蓝灯
- GPIO_WriteHigh(GPIOD,GPIO_PIN_5); //关闭红灯
-
- GPIO_WriteLow(GPIOC,GPIO_PIN_6); //关闭发热丝
- GPIO_WriteLow(GPIOC,GPIO_PIN_5); //风扇关闭
- GPIO_WriteLow(GPIOC,GPIO_PIN_4); //关闭紫外线灯管
- }
-
- if(key22 == 1) //自动键在自动模式被按下,则则响起 “叮咚”声
- {
- // step = 2;
- key22 = 0;
- alarm = 3;
- step1 = 0;
- }
- if(count_5m == 5) //自动模式25分钟到了 关闭发热丝
- {
- GPIO_WriteLow(GPIOC,GPIO_PIN_6);
- }
- if(count_5m == 6) //自动模式30分钟到了 打开发热丝
- {
- GPIO_WriteHigh(GPIOC,GPIO_PIN_6);
- }
- if(count_5m == 11) //自动模式30分钟到了 关闭发热丝
- {
- GPIO_WriteLow(GPIOC,GPIO_PIN_6);
- }
- if(count_5m == 12) //自动模式60分钟到了 打开发热丝 关闭UV
- {
- GPIO_WriteHigh(GPIOC,GPIO_PIN_6);
- GPIO_WriteLow(GPIOC,GPIO_PIN_4);
- }
- if(count_5m == 17) //自动模式85分钟到了 关闭发热丝
- {
- GPIO_WriteLow(GPIOC,GPIO_PIN_6);
- }
- if(count_5m == 18) //自动模式85分钟到了 关闭发热丝
- {
- GPIO_WriteLow(GPIOC,GPIO_PIN_5);
- GPIO_WriteHigh(GPIOD,GPIO_PIN_2);
- }
- if(count_5m == 78) //自动模式85分钟到了 关闭发热丝
- {
- count_5m = 0;
-
- GPIO_WriteLow(GPIOD,GPIO_PIN_2); //打开蓝灯,指示进入自动模式
- flags_ll = 2; //此标志位设置为2,则表示开启紫外线灯管
- GPIO_WriteHigh(GPIOC,GPIO_PIN_6); //打开发热丝
- GPIO_WriteHigh(GPIOC,GPIO_PIN_5); //开启风扇
- //GPIO_WriteHigh(GPIOC,GPIO_PIN_4);
- }
-
- }break;
- default:break;
- }
- }
-
- }
复制代码
|