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

📄 key.h

📁 这是一个AVRM16的定时器制的例子,比较适合初学者.
💻 H
字号:
#ifndef __KEY_H__
#define __KEY_H__
#include "MEGA16.h" 
uint    setadd=0; 
uint    donwadd=0;
uint    upadd=0;
void    key(void)
{       
       if(!(PINC & (1<<PC5))&&(PINC & (1<<PC3))&&(PINC & (1<<PC4)))
       {     
                setadd+=1;     
                if(setadd>30000) 
                        setadd=30001; 
                if(setadd==29000)                  //三秒不放
                {
                    if(mode!=0)
                                mode+=1;
                    if(mode>=4)
                        mode=2;
                }
       }
       else     
       {
                if((setadd>199)&&(setadd<25000)) //设置键 
                {
                        if(mode!=1)
                                mode=1;
                        else    mode=0;   
                }
                setadd=0; 
       }
       if(!(PINC & (1<<PC3))&&(PINC & (1<<PC5))&&(PINC & (1<<PC4)))  
       {
                upadd+=1;
                if(upadd>=30000)        //快加键
                {       
                        rapidness+=1;
                        if(rapidness>=2000)
                        {       if(mode==2) 
                                {
                                        setmin+=1; 
                                        if(setmin>60)
                                                setmin=0; 
                                } 
                                if(mode==3) 
                                {
                                        sethour+=1; 
                                        if(sethour>99)
                                                sethour=0;
                                }
                                rapidness=0;  
                                flash_add=0;
                        }
                        upadd=30001;
                }        
       } 
       else     
       {       
                if((upadd>199)&&(upadd<25000))     //加键
                {
                        if(mode==2) 
                        {
                                setmin+=1; 
                                if(setmin>60)
                                        setmin=0; 
                        } 
                        if(mode==3) 
                        {
                                sethour+=1; 
                                if(sethour>99)
                                        sethour=0;
                        }
                }
                upadd=0;  
       }
       if(!(PINC & (1<<PC4))&&(PINC & (1<<PC3))&&(PINC & (1<<PC5)))  
       {
                donwadd+=1;
                if(donwadd>30000)    //快减
                {       rapidness+=1;
                        if(rapidness>=2000)
                        {
                                if(mode==2) 
                                {       
                                        if(setmin==0)
                                                setmin=60;
                                        if(setmin>0)
                                                setmin-=1;  
                                }
                                if(mode==3) 
                                {       
                                        if(sethour==0)
                                                sethour=100;
                                        if(sethour>0)
                                                sethour-=1;    
                                } 
                                rapidness=0;  
                                flash_add=0;
                        }            
                        donwadd=30001;                     
                }
     
       }
       else     
       {
                if((donwadd>199)&&(donwadd<25000))     //减键
                {
                        if(mode==2) 
                        {       
                                if(setmin==0)
                                        setmin=60;
                                if(setmin>0)
                                        setmin-=1;  
                        }
                        if(mode==3) 
                        {       
                                if(sethour==0)
                                        sethour=100;
                                if(sethour>0)
                                        sethour-=1;    
                        }
                }
                donwadd=0;    
       }
       if((!(PINC & (1<<PC5)))&&(!(PINC & (1<<PC3))))  //开始
       {
                b_time=1; 
                LED=0xff;  
       } 
       if((!(PINC & (1<<PC5)))&&(!(PINC & (1<<PC4))))  //暂停
       {
                b_time=0;
                LED=0xef;  
                b_sec=1; 
       } 
       if((!(PINC & (1<<PC3)))&&(!(PINC & (1<<PC4))))  //停止
       {        
                hour=0;
                min=0;
                sec=0;
                b_time=0;
                LED=0xef;  
                b_sec=1; 
       }   
}
#endif

⌨️ 快捷键说明

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