一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 3223|回复: 6
收起左侧

[STM8/STM32] 10段定時器 使用飛利浦黑晶爐改裝

[复制链接]
发表于 2014-9-19 20:16 | 显示全部楼层 |阅读模式
吹電扇睡覺又怕一直吹受不了,所以來一個 10段 每段可以ON 10~99分 OFF 10~99分 輸出有三個可以選擇其一 若是把10算都設定完成之後就會寫入 STM8的 EEPROM內 斷電後啟動就自動載入

黑晶爐的電路兩片 一片控制 一片驅動

DSC08025.JPG


DSC08026.JPG


DSC08027.JPG


DSC08028.JPG


設定0~9段程式
DSC08030.JPG


ON60分
DSC08031.JPG


OFF 10分
DSC08032.JPG


輸出 1
DSC08033.JPG


DSC08034.JPG


進行步驟0 St0
DSC08035.JPG


暫停 SP0
DSC08036.JPG


左一 步驟選擇 左二/三 時間加減10分 右一 START 右二 STOP
4個LED都沒作用,因為功力不足
黑晶600.png



程式:
/*
20140918修改設定值並存入 EEPROM內以防止斷電後需要重新輸入
應用 FLASH_Unlock(FLASH_MEMTYPE_DATA)
     FLASH_ProgramByte(addr,Data)
         FLASH_ReadByte(addr)
         FLASH_EraseByte(addr)
         FLASH_GetFlagStatus(FLASH_FLAG_EOP)

*/

#include "stm8s.h"
#include "stm8s_flash.h"
#include "stm8s_tim1.h"
#include "stm8s_tim5.h"
#include "stm8s_tim6.h"
#include "stm8s_adc1.h"
#include "stm8s_delay.h"
#include "stm8s_alARM_work.h"
#include "global_defined.h"

#define S 10
#define T 11
#define P 12
#define D 13
#define O 14
#define F 15
#define BUZZER GPIO_PIN_0
//---------20140815-----------------
#define Out0PORT GPIOB
#define Out1PORT GPIOB
#define Out2PORT GPIOA
#define Out3PORT GPIOF
#define Out0 GPIO_PIN_6  //小TRIAC
#define Out1 GPIO_PIN_7  //大TRIAC
#define Out2 GPIO_PIN_2  //大TRIAC
#define Out3 GPIO_PIN_4  //繼電器

u16 addr=0x4100;
u8 OperationStatus;
u8 pcdis[]={0xd6,0x14,0xcc,0x5c,0x1e,0x5a,0xda,0x14,0xde,0x5e,0x52,0xca,0x8e,0x08,0xd8,0x8a};//定義pc port 顯示的值
u8 pedis[]={0x01,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01,0x00,0x00,0x01};//定義pe port 顯示的值對應于7段顯示
// 增加了stpdop等字段
/*
u8 Hundreds,Tens,Units;//顯示百位十位個位
u16 Display_Data;//
u8 count6;//timer 6
u8 display_time;//interrupt for display
u8 Menu=0;//菜單選擇按鍵
u8 One_Sec_Flag;
u8 One_Tenth_Count;//1/10 second
u8 One_Sec_Count;
u8 One_Minute_Count;
u8 One_Tenth_Flag;
u8 One_Minute_Flag;
u8 One_Hour_Flag;
u8 Step_count;//record lamp on/off 次數
u8 rec_Step_On_Time[10];
u8 rec_Step_Off_Time[10];
u8 rec_Out_MOS[10];
u8 Step_On_Time;//current step of on time
u8 Step_Off_Time;//current off time
u8 Out_MOS;//out put port define
u8 Start_Run_Flag;//start stop clear
u8 Step_On_Time_finish;//flag
u8 Step_Off_Time_finish;//flag
u8 Stop_Run_count=0;//for clear
u8 Running_Flag=0;//正在倒數
u8 Display_Change_Flag;//變換顯示步驟與時間
u8 Display_Change_count;
u8 Load_Data_flag;//first load data
u8 Alarm_flag;//alarm use
u8 Sec_alarm_flag;//alarm use
u8 Alarm_Time_count=0;//1 minutes
u8 Finish_flag=0;
*/

/*
//void delay(unsigned int time);
void GPIOinit(void);
void tim1init(void);//匯總 TIM1
void tim1svc(void);//中斷服務程式 閃爍10倍
void KeyScan(void);
void delay(unsigned int time);
void Display(void);
void GPIOinit(void);
void tim1init(void);
void tim1svc(void);
void tim6init(void);
void tim6svc(void);
void Display_Step (u8 Step_count);//display and load data
void Display_Kyin_On_Step (void);
void Display_Kyin_Off_Step (void);
void Display_Out_MOS (void);
void Claer_All_rec(void);
void RUNning (void);
void Run_Display(void);
void Set_All_rec(void);
void Display_Step_0 (u8 Step_count);//display only
void Out_Control (void);
void Load_Data(void);
void tim5init(void);//BUZZER        only 2KHZ
void tim5svc(void);
void Alarm_Work(void);//計時結束執行alarm動作
void EEPROM_Write_StepData();//----------------------------20140917
*/


@far @interrupt void TIM1_OVF_IRQ(void);
@far @interrupt void TIM5_OVF_IRQ(void);
@far @interrupt void TIM6_OVF_IRQ(void);


void EEPROM_Write_StepData(void)
{
        u8 EPROM_count;
        FLASH_Unlock(FLASH_MEMTYPE_DATA);

for (EPROM_count=0;EPROM_count<10;EPROM_count++)
{
        FLASH_ProgramByte((addr+EPROM_count),rec_Step_On_Time[EPROM_count]);
        FLASH_ProgramByte((addr+EPROM_count+0x10),rec_Step_Off_Time[EPROM_count]);
        FLASH_ProgramByte((addr+EPROM_count+0x20),rec_Out_MOS[EPROM_count]);
}
       
}

void EEPROM_Read_StepData(void)
{
        u8 EPROM_count;

for (EPROM_count=0;EPROM_count<10;EPROM_count++)
{
        rec_Step_On_Time[EPROM_count]=FLASH_ReadByte(addr+EPROM_count);
        rec_Step_Off_Time[EPROM_count]=FLASH_ReadByte(addr+EPROM_count+0x10);
        rec_Out_MOS[EPROM_count]=FLASH_ReadByte(addr+EPROM_count+0x20);
}       
}


void Claer_All_rec(void)
{
        u8 k;
        for (k=0;k<10;k++)
        {
        rec_Step_On_Time[k]=0;
        rec_Step_Off_Time[k]=0;
        rec_Out_MOS[k]=0;
        }
}


void KeyScan(void)
{
        GPIO_WriteLow(GPIOD,GPIO_PIN_2);
        GPIO_WriteLow(GPIOD,GPIO_PIN_3);
        GPIO_WriteLow(GPIOD,GPIO_PIN_4);
        GPIO_WriteLow(GPIOD,GPIO_PIN_5);       
        GPIO_Init(GPIOC,(GPIO_PIN_6|GPIO_PIN_7),GPIO_MODE_IN_PU_NO_IT);//變更 sw4 sw5 成為 input

        if(GPIO_ReadInputPin(GPIOB,GPIO_PIN_3)==0)//sw3 for step
        {
        delay(50);
        if(GPIO_ReadInputPin(GPIOB,GPIO_PIN_3)==0)
        {
                while(GPIO_ReadInputPin(GPIOB,GPIO_PIN_3)==0);
                Menu ++;
                if (Menu > 4)
                {
                Menu=1;//------------20140826--------- 0>>1
                Step_count+=1;
                if(Step_count > 9)//0812 10data set
                Step_count=0;       
    /*add EEPROM write routine  */               
          EEPROM_Write_StepData();
          }
  }
}       
        if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_1)==0)
        {
        delay(50);
        if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_1)==0)//sw1 for START KEY ----20140826----
        {
                while(GPIO_ReadInputPin(GPIOA,GPIO_PIN_1)==0);       
        {
                Menu=0;//display to this page ----20140826----
                Start_Run_Flag=1;
                Stop_Run_count=0;
        //         Alarm_flag = 1;//----------------------alarm on
        }               
        }
}
        if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_3)==0)//sw2 for STOP KEY ----20140826----
        {
        delay(50);
        if(GPIO_ReadInputPin(GPIOA,GPIO_PIN_3)==0)
         {
                while(GPIO_ReadInputPin(GPIOA,GPIO_PIN_3)==0);
        {
                Menu=0;//display to this page ----20140826----
                Start_Run_Flag=0;
                Stop_Run_count++;
                 Alarm_flag =0;//----------------------alarm on
                if(Stop_Run_count==2)
                {
                                Start_Run_Flag=0;////for reload program data----0827
                                Step_count=0;//
                                Step_On_Time=rec_Step_On_Time[Step_count];//-----------
                                Step_Off_Time=rec_Step_Off_Time[Step_count];//---------
                                Out_MOS=rec_Out_MOS[Step_count];//--------0827       
                        {
                        Alarm_Time_count =0;
                        Alarm_flag=0;
                        Finish_flag=0;//*************************************************************-------------------------
                        }

                }
                if(Stop_Run_count==3)
                {
                        Claer_All_rec();
                }
        }                                       
        }
  }
//PC7 press sw4
        if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7)==0)
        {
        delay(50);
        if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7)==0)
        {
                while(GPIO_ReadInputPin(GPIOC,GPIO_PIN_7)==0);
if(Menu==1)//----20140826----
                {               
                Step_count-=1;
                if(Step_count ==255)//0812 10data set
                Step_count=0;
                }               
               
               
                if(Menu==2)
                {
                //        Step_On_Time=Step_On_Time[Step_count];
                Step_On_Time -=10;
                if(Step_On_Time > 200)//0803
                Step_On_Time=0;
                rec_Step_On_Time[Step_count] = Step_On_Time;
                }
                if(Menu==3)
                {
                //        Step_On_Time=Step_On_Time[Step_count];
                Step_Off_Time -=10;
                if(Step_Off_Time > 200)//0803
                Step_Off_Time=0;
                rec_Step_Off_Time[Step_count] = Step_Off_Time;
                }
                if(Menu==4)
                {
                //        Step_On_Time=Step_On_Time[Step_count];
                Out_MOS --;
                if(Out_MOS > 3)//0803
                Out_MOS=3;
                rec_Out_MOS[Step_count] = Out_MOS;
                }
        }       
  }       
//PC6 press sw5
        if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_6)==0)
        {
        delay(50);
        if(GPIO_ReadInputPin(GPIOC,GPIO_PIN_6)==0)
        {
                while(GPIO_ReadInputPin(GPIOC,GPIO_PIN_6)==0);
  if(Menu==1)//----20140826----
                {
                Step_count+=1;
                if(Step_count > 9)//0812 10data set
                Step_count=0;
                }               
               
               
                if(Menu==2)
                {
                //        Step_On_Time=Step_On_Time[Step_count];
                Step_On_Time +=10;
                if(Step_On_Time > 99)//0803
                Step_On_Time=99;
                rec_Step_On_Time[Step_count] = Step_On_Time;
                }
                if(Menu==3)
                {
                //        Step_On_Time=Step_On_Time[Step_count];
                Step_Off_Time +=10;
                if(Step_Off_Time > 99)//0803
                Step_Off_Time=99;
                rec_Step_Off_Time[Step_count] = Step_Off_Time;
                }
                        if(Menu==4)
                {
                //        Step_On_Time=Step_On_Time[Step_count];
                Out_MOS ++;
                if(Out_MOS > 3)//0803
                Out_MOS=0;
                rec_Out_MOS[Step_count] = Out_MOS;
                }
        }       
  }
}

/*
void delay(unsigned int time)
{
        while(time--);
}
*/


void Display(void)
{       
        GPIO_Init(GPIOC,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY 7SEGMENT
        GPIO_WriteLow(GPIOE,GPIO_PIN_5);
        if(Hundreds>0)
        {
                GPIO_Write(GPIOC,pcdis[Hundreds]);
                        if(pedis[Hundreds])
                                GPIO_WriteHigh(GPIOE,GPIO_PIN_5);
                                else
                                GPIO_WriteLow(GPIOE,GPIO_PIN_5);
                        }
                else
                {
                GPIO_Write(GPIOC,0x00);//百位消零
                GPIO_WriteLow(GPIOE,GPIO_PIN_5);//去除A節
    }
                        GPIO_Write(GPIOD,0x10);//趨動百位數
//  if(Menu==0)//電流加上小數點
//            GPIO_WriteHigh(GPIOC,GPIO_PIN_5);//加上小數點
                        delay(500);               
                        GPIO_WriteLow(GPIOC,GPIO_PIN_ALL);
                        delay(5);

        GPIO_Write(GPIOC,pcdis[Tens]);
        if(pedis[Tens])
        GPIO_WriteHigh(GPIOE,GPIO_PIN_5);
        else
         GPIO_WriteLow(GPIOE,GPIO_PIN_5);
                        GPIO_Write(GPIOD,0x08);//趨動十位數
//  if((Menu==1)||(Menu==2))//溫度加上小數點
//            GPIO_WriteHigh(GPIOC,GPIO_PIN_5);//加上小數點
                        delay(500);
                        GPIO_WriteLow(GPIOC,GPIO_PIN_ALL);
                        delay(5);       

        GPIO_Write(GPIOC,pcdis[Units]);
        if(pedis[Units])//消除a節問題
        GPIO_WriteHigh(GPIOE,GPIO_PIN_5);
        else
         GPIO_WriteLow(GPIOE,GPIO_PIN_5);
                        GPIO_Write(GPIOD,0x04);//趨動個位數
                        delay(500);
                        GPIO_WriteLow(GPIOC,GPIO_PIN_ALL);//消除殘影
                        delay(5);       
}


void GPIOinit(void)
{
        GPIO_Init(GPIOC,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY 7SEGMENT
        GPIO_Init(GPIOD,GPIO_PIN_ALL,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY 3DIGIT
        GPIO_Init(GPIOE,GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY SEGMENT A
        GPIO_WriteLow(GPIOE,GPIO_PIN_5);
        GPIO_Init(GPIOA,GPIO_PIN_1|GPIO_PIN_3,GPIO_MODE_IN_PU_NO_IT);//INPUT +/- TIME SW1 SW2
        GPIO_Init(GPIOB,GPIO_PIN_3,GPIO_MODE_IN_PU_NO_IT);//INPUT + FIRE POWER SW3
        GPIO_Init(Out0PORT,Out0,GPIO_MODE_OUT_PP_HIGH_FAST);//小TRIAC
        GPIO_Init(Out1PORT,Out1,GPIO_MODE_OUT_PP_HIGH_FAST);//大TRIAC
        GPIO_Init(Out2PORT,Out2,GPIO_MODE_OUT_PP_HIGH_FAST);//大TRIAC
        GPIO_Init(Out3PORT,Out3,GPIO_MODE_OUT_PP_HIGH_FAST);//繼電器
       
        GPIO_Init(GPIOD,BUZZER,GPIO_MODE_OUT_PP_HIGH_FAST);//DISPLAY 7SEGMENT
        }


void tim1init(void)//1秒1計數
{
TIM1_TimeBaseInit(19,TIM1_COUNTERMODE_UP,10000,0);//2M/20=100khz 除10000次=10hz
TIM1_ITConfig(TIM1_IT_UPDATE,ENABLE);
TIM1_GenerateEvent(TIM1_EVENTSOURCE_UPDATE);
TIM1_Cmd(ENABLE);
}

void tim1svc(void)//1/10秒1計數
{
        //-------1/10 秒 作一次的工作 One_Tenth_Flag --> AD轉換
  //-------1秒 作一次的工作 One_Sec_Flag --> 計秒 PWM 開關
        //-------1分鐘作一次的工作 One_Minute_Flag --> 倒數計時關 斷MOS_OUTPUT        檢查日落
        //-------1小時作一次的工作 One_Hour_Flag  --> 計時
One_Tenth_Flag=1;
One_Tenth_Count++;
if(One_Tenth_Count == 10)
{
         One_Sec_Flag=1;
         Sec_alarm_flag=1;
         One_Tenth_Count=0;
         One_Sec_Count++;
         if(One_Sec_Count<3)
                {
                        Display_Change_Flag=1;
                }
         else
                {
                        Display_Change_Flag=0;         
                }
         if(One_Sec_Count == 60)//----------------60
         {
                 One_Sec_Count=0;
               
                 One_Minute_Flag=1;
                 One_Minute_Count++;
                 if(One_Minute_Count==60)
                 {
                         One_Minute_Count=0;
                         One_Hour_Flag=1;
                 }
         }
}
        TIM1_ClearFlag(TIM1_FLAG_UPDATE);
}

void tim5init(void)//BUZZER        only 2KHZ
{
TIM5_TimeBaseInit(TIM5_PRESCALER_32,250);//2M/32 count30
TIM5_SetCounter(250);
TIM5_ITConfig(TIM5_IT_UPDATE,ENABLE);
TIM5_Cmd(ENABLE);
}

void tim5svc(void)
{

        TIM5_ClearITPendingBit(TIM6_IT_UPDATE);
}


void tim6init(void)
{
        TIM6_TimeBaseInit(TIM6_PRESCALER_32,250);//TIM6_PRESCALER_8 TIM6_TimeBaseInit
        TIM6_SetCounter(250);
        TIM6_ITConfig(TIM6_IT_UPDATE,ENABLE);//2Mhz/8/250
        TIM6_Cmd(ENABLE);
}

void tim6svc(void)
{
display_time++;
if(display_time==3)
{
        if((Menu==0)&&(Running_Flag==0))
        {
        Hundreds=S;
        if(Start_Run_Flag==1)
        {
        Tens=T;
                                                GPIO_WriteHigh(Out3PORT,Out3);//RELAY OFF        ----0830---
  }
        else
        {
                Tens=P;
                                                        GPIO_WriteLow(Out3PORT,Out3);//RELAY OFF        ----0830---
        }
        Units= Step_count;
        Display();        
        }
        else
        {
        Display();
  }
  display_time=0;
  }         
count6++;
if (count6==50)//250>>25
{
KeyScan();
count6=0;
}
        TIM6_ClearITPendingBit(TIM6_IT_UPDATE);
}


void Display_Step_0 (u8 Step_count)
{
        Hundreds=S;
        if(Running_Flag==1)//-----------0826-------------
        Tens=T;
        else
        Tens=P;       
        Units= Step_count;
}
void Display_Step (u8 Step_count)
{
        Hundreds=S;
        Tens=D;
        Units= Step_count;
        Step_On_Time=rec_Step_On_Time[Step_count];
        Step_Off_Time=rec_Step_Off_Time[Step_count];
        Out_MOS=rec_Out_MOS[Step_count];
}
void Display_Kyin_On_Step (void)
{
        Hundreds= O;
        Display_Data=Step_On_Time;
        Tens=(Display_Data%100)/10;
        Units=Display_Data%10;
}

void Display_Kyin_Off_Step (void)
{
        Hundreds= F;
        Display_Data=Step_Off_Time;
        Tens=(Display_Data%100)/10;
        Units=Display_Data%10;
}
void Display_Out_MOS (void)
{
        Hundreds=O;
        Tens=D;
        Units= Out_MOS;
}


void RUNning (void)
{
                if(Start_Run_Flag==1)
        {
        if(One_Sec_Flag==1)
        {
        if(Step_On_Time!=0)
                {
                 Running_Flag=1;//---------------------
                 One_Sec_Flag=0;
                if(One_Minute_Flag==1)
                 {
                 One_Minute_Flag=0;
                 Step_On_Time--;       
           }
                                Display_Change_count++;
                                if(Display_Change_count>4)
                                Display_Change_count=0;       
                                if(        Display_Change_count<3)
                                        Display_Kyin_On_Step();
                                else                               
                                        Display_Step_0 (Step_count);       
                }
        else if(Step_Off_Time!=0)//Step_On_Time=0
                {
                        One_Sec_Flag=0;       
                        Out_MOS=0;//output off
                if(One_Minute_Flag==1)
                  {
                   One_Minute_Flag=0;
                   Step_Off_Time--;       
            }                               
                        Display_Change_count++;
                 if(Display_Change_count>4)
                          Display_Change_count=0;       
                 if(Display_Change_count<3)
                   Display_Kyin_Off_Step();
                 else
                                {
                                        Display_Step_0 (Step_count);
                                }                               
                }
        else//(Step_Off_Time & Step_On_Time)==0
                                {       
                                Step_count++;
                                Display_Step (Step_count);//--------------------------------
                                if(Step_count >9)
                                {
                                Start_Run_Flag=0;
                                Step_count=0;
                                Step_On_Time=rec_Step_On_Time[Step_count];//-----------
                                Step_Off_Time=rec_Step_Off_Time[Step_count];//---------
                                Out_MOS=rec_Out_MOS[Step_count];//--------0827       
                                        GPIO_WriteLow(Out3PORT,Out3);//RELAY OFF        ----0830---                       
                                Finish_flag=1;//**********************************************************--------------------------
                                }
                                else
                                {
                                Step_On_Time=rec_Step_On_Time[Step_count];
                                Step_Off_Time=rec_Step_Off_Time[Step_count];
                                Out_MOS=rec_Out_MOS[Step_count];        //
                                }
                          }
                }
        }
}


void Run_Display(void)
{
        if(Start_Run_Flag ==1)
        {
        Hundreds=S;
        Tens=T;
        Units= Step_count;
  }
        else
        {
        Hundreds=S;
        Tens=P;
        Units= Step_count;
        }
}

void Set_All_rec(void)
{
        u8 k;
        for (k=0;k<10;k++)
        {
        rec_Step_On_Time[k]=30;
        rec_Step_Off_Time[k]=10;
        rec_Out_MOS[k]=0;
        }
}

void Out_Control (void)
{
        switch(Out_MOS)
        {
                case 0: GPIO_WriteLow(Out0PORT,Out0);
                                                GPIO_WriteLow(Out1PORT,Out1);
                                                GPIO_WriteLow(Out2PORT,Out2);
                                          GPIO_WriteLow(Out3PORT,Out3);//RELAY OFF
                                                break;
                case 1: GPIO_WriteHigh(Out0PORT,Out0);
                                                GPIO_WriteLow(Out1PORT,Out1);
                                                GPIO_WriteLow(Out2PORT,Out2);
                                    GPIO_WriteHigh(Out3PORT,Out3);
                                                break;
                case 2: GPIO_WriteLow(Out0PORT,Out0);
                                                GPIO_WriteHigh(Out1PORT,Out1);
                                                GPIO_WriteLow(Out2PORT,Out2);
                                          GPIO_WriteHigh(Out3PORT,Out3);
                                                break;
                case 3: GPIO_WriteLow(Out0PORT,Out0);
                                                GPIO_WriteLow(Out1PORT,Out1);
                                                GPIO_WriteHigh(Out2PORT,Out2);
                                          GPIO_WriteHigh(Out3PORT,Out3);
                                                break;
                default: break;
        }
}

void Load_Data(void)
{
//        u8 z;
//        for(z=0;z<10;Z++)
        {
                Step_count=0;
                                Step_On_Time=rec_Step_On_Time[Step_count];
                                Step_Off_Time=rec_Step_Off_Time[Step_count];
                                Out_MOS=rec_Out_MOS[Step_count];        //
        }
       
}

//-------------------------------------------------------------EPROM 0916-----------

//--------------------------------------------------------------------------

@far @interrupt void TIM1_OVF_IRQ(void)
{
        tim1svc();
}

@far @interrupt void TIM5_OVF_IRQ(void)
{
        tim5svc();
}



@far @interrupt void TIM6_OVF_IRQ(void)
{
        tim6svc();
}


void main(void)
{
        GPIOinit();//顯示用
        tim1init();       
        tim5init();       
  tim6init();
        rim();       
        Start_Run_Flag=0;
//  Set_All_rec();//  0918----
EEPROM_Read_StepData(); //--0918----


        while(1)
        {
        switch(Menu)//顯示用
        {
                case 0: if(Start_Run_Flag==1) // Run_Display();//running mode display and start stop                                                       
                                                {
                                                if(Load_Data_flag==0)
                                                {
                                                        Load_Data_flag=1;
                                                        Load_Data();
                                                }
                                                RUNning ();
                                                }
                                        else
                                                {
                                                Run_Display();//--------0827                                               
                                                }
                                                break;       
                case 1: Display_Step (Step_count);//Display_Data = Step_count;//display count number
                                                break;
                case 2:        Display_Kyin_On_Step ();//Display_Data = Step_On_Time[Step_count];
                                          break;       
                case 3:        Display_Kyin_Off_Step ();//Display_Data = Step_Off_Time[Step_count];
                                                break;
                case 4: Display_Out_MOS ();//Display_Data = Lamp_intensity_AD;//display CDS A/D value
                                          break;

                default:break;               
        }
        Out_Control ();
        Alarm_Work();
}
}





#ifdef USE_FULL_ASSERT

/**
  * @brief  Reports the name of the source file and the source line number
  *   where the assert_param error has occurred.
  * @param file: pointer to the source file name
  * @param line: assert_param error line source number
  * @retval : None
  */
void assert_failed(u8* file, u32 line)
{
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  /* Infinite loop */
  while (1)
  {
  }
}
#endif

/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/



DSC08029.JPG

评分

参与人数 4一乐金币 +90 收起 理由
gw168sh + 20 很给力!
huchuan987 + 10 赞一个!
Joe_Black + 20 支持分享...(雖然我不懂用STM)
benli + 40 赞一个!

查看全部评分

发表于 2014-9-19 20:22 | 显示全部楼层
STM问世好几年了,总算见到一个STM8开源DIY作品
发表于 2014-9-19 20:57 | 显示全部楼层
又见高手开源DIY作品,支持!赞~!
发表于 2014-9-19 21:22 | 显示全部楼层
支持楼主开源的高尚精神,支持支持!
发表于 2014-9-20 08:14 | 显示全部楼层
楼主这板是电磁炉改的吧
 楼主| 发表于 2014-9-21 12:48 | 显示全部楼层
benli 发表于 2014-9-19 20:22
STM问世好几年了,总算见到一个STM8开源DIY作品

野人獻曝 非正規軍!! 程式有點亂!!
 楼主| 发表于 2014-9-21 12:49 | 显示全部楼层
gw168sh 发表于 2014-9-20 08:14
楼主这板是电磁炉改的吧

資源回收廠的 飛利浦 黑晶爐(鹵素燈)控制器!!

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-11 16:03 , Processed in 0.082945 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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