⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 amend1.0.c

📁 电磁炉智能控制(PD7:加热;PD6:报警)
💻 C
字号:
//ICC-AVR application builder : 2008-11-29
// Target : M16
// Crystal: 1.0000Mhz
/***************************Copyright(c)****************************
*****************************File Info******************************
** File name:		amend1.0.c
** Created by:		邵峰sshaofeng@163.com
** Descriptions:	电磁炉智能控制(PD7:加热;PD6:报警)
** Date:            	2008-12-04
*******************************************************************/

#include <iom16v.h>
#include <macros.h>
#include "amend1.0.h"

/********************************************************************
** 函数名称 :beep()
** 函数功能 :状态改变声音提示程序
** 入口参数 :无
** 出口参数 :无
********************************************************************/
void beep(void)
{
PORTD|=0X40;
}

/********************************************************************
** 函数名称 :KEY_Input()
** 函数功能 :输入按键判断子程序(此函数多层使用了switch)
** 入口参数 :无
** 出口参数 :无
********************************************************************/
void KEY_Input(void)
{
    Key_New=PINC;
    switch(Key_Pro)
    {
        
        case 0: //判断是否有键按下
            if(Key_New!=0xC3)     //由于实验板损害,不按键时即为11000011
            {
                Key_val = Key_New;
                Key_Pro = 1;
                Key_time = 0;
            }
            break;
        case 1: //确认按键被按下(确认有效按键)
            if(Key_New == Key_val)
            {
                Key_Pro = 2;
                Key_time=0;
                switch(Key_val)
                {
                    case 0xFE: //在这加入短击处理程序 
                    break;
                    case 0xC2:  //调节键
                    TCCR1B = 0x00; 
                    TCNT1H = 0xC2; //setup
                    TCNT1L = 0xF7;
                    i++;                      
                    PORTD=0;                 
                    k=0;                     
                    if(i>99) i=0;             
                     break;
                    case 0xC1:  //启动键
                    state_bit();
                    break;
                    case 0xFB:  break;
                    case 0xF7:  break;
                    case 0xEF:  break;
                    case 0xDF:  break;
                    case 0x83:  
                    LED1=0;
                    LED=0X40; break;
                    case 0x43:  
                    LED1=0;
                    LED=0X80; break;
                }
                Setup_time = 0;
                TCCR0 = 0x05; //start timer
            }
            else Key_Pro = 0;  
            break;
        case 2: 
            if(Key_New == Key_val)
            {
                if(Key_time>=4)  
                {//2秒后就。。。。。。
                    m=1;
                    Key_time=0;
                    switch(Key_val)
                    {
                        case 0xC2: //调节键
	  					TCCR0 = 0x05; //start timer
						break;
                        case 0xC1: //启动键
                        LED=0X00;
                        LED1=0X02; break;
                        case 0x83: 
                        LED=0X00;
                        LED1=0X40; break;
                        case 0x43: 
                        LED=0X00;
                        LED1=0X80; break;
                        //......
                    }
                } 
            }
            else 
            {
                Key_Pro = 0;//按键松开后就返回
                TCCR0 = 0x00; //▲default:stop timer0
                Key_time=0;
                m=0;
            }
            break;
    } 
    return;
}

void main()
{
    init_devices();
    //insert your functional code here...
    while(1)
    {
     KEY_Input();
     display(i);
          if((k)&(f)) 		
         {
         PORTD&=~0X80;  
         f=0;      
         k=0;       
         }
            if(k)	PORTD|=0X80;
	 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -