加热台一键控制:基于ATMEGA8进行控制

简 介: 本文记录了对于加热台的一键控制模块的制作。 给出了相应的设计文件的主要记载。 便于将来的维修。

关键词 加热台控制MEGA8

加热台控制
目 录
Contents
电路设计
控制程序
总 结
  • 利用光耦充当按钮开关

AD\Test\2025\January\ThemoplatecontrolMEGA8.SchDoc

D:\zhuoqing\window\Atmel\test\2025\January\ThermoplateControlMEGA8\main.c

 

01 热台控制


  计加热台的控制按钮, 能够实现一键开启以及一键关闭。

一、电路设计

  利用MEGA8对于外部控制按键进行响应。 其中包括有:

  (1) 220V功率继电器。 使用12V进行驱动;
  (2) 使用TLP521 控制原来的机械按钮;
  (3) 能够控制, 打开加热台的电源之后, 启动按钮, 三秒钟。

加热台一键控制:基于ATMEGA8进行控制_第1张图片

▲ 图1.1.1 控制原理图

加热台一键控制:基于ATMEGA8进行控制_第2张图片

▲ 图1.1.2 铺设的PCB

▲ 图1.1.3 PCB目标板

二、控制程序

/*
**==============================================================================
** main.c :             -- by Dr. ZhuoQing, 2007-3-31
**
**   This project is designed for the PumpCnt
**
**==============================================================================
*/

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

//------------------------------------------------------------------------------
void C_task main(void) {
    unsigned int nCount;
    unsigned char ucChar;        
    unsigned int nBeepCount;
    
    //--------------------------------------------------------------------------
    Mega8Init();
    ControlInit();    
    //--------------------------------------------------------------------------
    
    OFF(BEEP);
    WaitTime(200);
    ON(BEEP);

    //--------------------------------------------------------------------------
    nCount = 0;
    for(;;) {
        //----------------------------------------------------------------------
        if(g_nStatus == 0) {
            if(++nCount & 0x100) LED_ON;
            else LED_OFF;
            
            ON(BEEP);
            
        } else {
            if(++nCount & 0x40) LED_ON;
            else LED_OFF;
            
            if(++ nBeepCount >= BEEP_PEPRIOD) {
                nBeepCount = 0;
            }
            
            if(nBeepCount > BEEP_PEPRIOD - 25) {
                OFF(BEEP);
            } else ON(BEEP);
        }
                
        //----------------------------------------------------------------------
        
        WaitTime(1);
            
        //----------------------------------------------------------------------
        if(g_nOnCount > 0) {
            g_nOnCount --;
            OFF(KEY);
        } else ON(KEY);
            
        //----------------------------------------------------------------------
        if(VAL(INP) == 0) {
            WaitTime(10);
            if(VAL(INP) == 0) {
                OFF(BEEP);
                for(; VAL(INP) == 0;);
                
                WaitTime(200);
                
                if(g_nStatus == 0) {
                    g_nStatus = 1;
                    ON(RELAY);
                    g_nOnCount = KEY_PEPRIOD;
                } else {
                    g_nStatus = 0;
                    g_nOnCount = 0;
                    OFF(RELAY);
                }

            }
        } 
        
        //----------------------------------------------------------------------
        
    }
}

//==============================================================================
//             END OF THE FILE : main.c
//------------------------------------------------------------------------------
/*
**==============================================================================
** CONTROL.H:             -- by Dr. ZhuoQing, 2013-2-13
**
**  Description:
**
**==============================================================================
*/
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------

//==============================================================================
//				INTERFACTION FUNCTIONS
//------------------------------------------------------------------------------
void ControlInit(void);

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

CONTROL_EXT unsigned int g_nStatus, g_nOnCount;

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

//------------------------------------------------------------------------------
void ProcCommand(void);

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

//==============================================================================
//             END OF THE FILE : CONTROL.H
//------------------------------------------------------------------------------
/*
**==============================================================================
** CONTROL.C:             -- by Dr. ZhuoQing, 2013-2-13
**
**==============================================================================
*/

//==============================================================================
//                    INTERFACE FUNCTIONS
//------------------------------------------------------------------------------
void ControlInit(void) {
    ON(LED);
    OUT(LED);
    //--------------------------------------------------------------------------
    
    OUT(BEEP);
    ON(BEEP);
    
    OFF(RELAY);
    OUT(RELAY);
    
    ON(KEY);
    OUT(KEY);
    
    IN(INP);
    ON(INP);
    
    //--------------------------------------------------------------------------
    
    g_nStatus = 0;
    g_nOnCount = 0;
}

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

//------------------------------------------------------------------------------
//             THE OF THE FILE : CONTROL.C

 

  结 ※


  文记录了对于加热台的一键控制模块的制作。 给出了相应的设计文件的主要记载。 便于将来的维修。


■ 相关文献链接:

  • 利用光耦充当按钮开关-CSDN博客

● 相关图表链接:

  • 图1.1.1 控制原理图
  • 图1.1.2 铺设的PCB
  • 图1.1.3 PCB目标板

你可能感兴趣的:(科学-技术-探究,单片机,mongodb)