標題: stm8s單片機菜板殺菌儀,原理圖,源代碼,說明書 [打印本頁]
作者: 13432610100 時間: 2019-9-15 23:00
標題: stm8s單片機菜板殺菌儀,原理圖,源代碼,說明書
菜板殺菌儀功能描述:
一:產品一共有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;
- }
- }
-
- }
復制代碼
-
-
上傳資料.rar
2019-9-15 22:57 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
2.55 MB, 下載次數: 28, 下載積分: 黑幣 -5
原理圖,代碼,說明書
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |