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

📄 key.h~

📁 这是一个用AVRM16控制HTM68131,可以跟据这个例子自已做液晶.
💻 H~
📖 第 1 页 / 共 2 页
字号:
#ifndef __KEY_H__
#define __KEY_H__
#include "MEGA16.h"  
#define  PA6    6
#define  PA7    7

#define  PB0    0
#define  PB1    1
#define  PB2    2
#define  PB3    3
#define  PB4    4
#define  PB5    5
#define  PB6    6
#define  PB7    7
#define  up_down_reg        30000       //升降延时 
#define  key_delay          250         //安键延时 
#define  add_reg            30         //编码器延时  
#define  cw_add_reg         14

uchar    cw_add=cw_add_reg;       //正转
uchar    wc_add=cw_add_reg;       //反转
uchar    swadd00=0; 
uchar    swadd10=0; 
uchar    swadd11=0;  
uchar    swadd01=0; 
uchar    cw=0;
uint    dlay_add=0; 
uchar   b_d=1; //个位十位
uchar   cw_reg=0;
uint    upadd=0;
uint    downadd=0; 
uchar   secadd=0; 
bit     b_sec_flash=0; 
uchar   pauseadd=0;
uchar   runadd=0;
uchar   preadd=0;
uchar   stopadd=0; 
uint    inqadd=0; 
uint    setadd=0;
uint    mode_seav=0;

uchar   temp_sec_add=0;
uchar   rpm_sec_add=0;

bit     b_temp_timer=0;
bit     b_rpm_timer=0;
bit     b_up_h=0; 
//**************************减************************************
void    minus(void)
{         
        
        timer_clr_cw=0;                        
        if((set_state==1)&&(mode==3))
                {b_temp_on_of=1;up_sign=0x03;} 
        if((set_state==2)&&(mode==3))
        {           
                if(set_temperature_data==0)             //跳正温
                        set_temperature_data=32768;        
                if(set_temperature_data>=32768)         //正温加 
                {
                        set_temperature_data+=b_d;
                        if(set_temperature_data>36268)
                                set_temperature_data=36268;         
                }
                if((set_temperature_data!=0)&&(set_temperature_data<=200)&&(set_temperature_data>=b_d)) //负温减
                        set_temperature_data-=b_d;                                                                                     
        }                                          
        if((set_state==3)&&(mode==3))
        {                
                if(set_temp_timer_data<5999-b_d)
                        set_temp_timer_data+=b_d;                                                                                                          
        }                                                                                                                                                          
        if((set_state==4)&&(mode==3))
        {       
                b_rpm_on_of=1;
                down_sign|=0x02;
                down_sign&=0xfb;  
        } 
        if((set_state==5)&&(mode==3)&&(set_rpm_data<2000))
        {                                               
                set_rpm_data+=b_d;
                if(set_rpm_data>2000)
                        set_rpm_data=2000; 
        }
        if((mode==2)&&(set_rpm_data<2000))
        {
                set_rpm_data+=b_d;
                if(set_rpm_data>2000)
                        set_rpm_data=2000; 
                b_set_run_rpm=1;
                b_sec_flash=1;
                b_sec_flash_reg=0; 
                timer_3s_add=0;                             
        } 
        if((set_state==6)&&(mode==3))
        {                   
                if(set_rpm_timer_data<5999-b_d)
                        set_rpm_timer_data+=b_d;                                                                                                 
        }                                                                                                           
        if((set_state==7)&&(mode==3))
        {       
                b_up_down_on_of=1;
                down_sign|=0x40;
                down_sign&=0x7f;  
        }                                                                                                                                                                       
}
//**************************加************************************
void    adding(void)
{    
         timer_clr_cw=0;

        if((set_state==1)&&(mode==3))
                {b_temp_on_of=0;up_sign=0x05;}   
        if((set_state==2)&&(mode==3))
        {
                if(set_temperature_data>=32768+b_d) //正温减
                        set_temperature_data-=b_d;                                                  
                if(set_temperature_data<=200-b_d)//负温加
                        set_temperature_data+=b_d; 
                if(set_temperature_data==32768)//跳负温
                        set_temperature_data=0;                         
                if((set_temperature_data<32768)&&(set_temperature_data>200))
                        set_temperature_data=200;                                                                                                                       
        } 
        if((set_state==3)&&(mode==3))
        {                
                if(set_temp_timer_data>=b_d)
                        set_temp_timer_data-=b_d;                                                                                  
        }                                                                                                                                                                                                                                                                
        if((set_state==4)&&(mode==3))
        {
                b_rpm_on_of=0; 
                down_sign|=0x04;
                down_sign&=0xfd;                                                                                                               
        }                                          
        if((set_state==5)&&(mode==3)&&(set_rpm_data>0))
        {          
                set_rpm_data-=b_d;
                if((set_rpm_data<=0)||(set_rpm_data>2000))
                        set_rpm_data=0;
        }
        if((mode==2)&&(set_rpm_data>0))
        {
                if(set_rpm_data<10)
                        b_d=1;
                set_rpm_data-=b_d;
                if((set_rpm_data<=0)||(set_rpm_data>2000))
                        set_rpm_data=0;  
                b_set_run_rpm=1;
                b_sec_flash=1;
                b_sec_flash_reg=0; 
                timer_3s_add=0;                                
        } 
        if((set_state==6)&&(mode==3))
        {        
                if(set_rpm_timer_data>=b_d)
                        set_rpm_timer_data-=b_d;                                                                  
        }                                                                                                                                                                                                                                                               
                                                                                                                                                          
        if((set_state==7)&&(mode==3))
        {       
                b_up_down_on_of=0;
                down_sign|=0x80;
                down_sign&=0xbf;  
        }                                                                                                                                                                                                                                                                                                                                                                  
}
//***************************************************************
void    key(void)
{         uchar   i;      
//*************************旋扭编码器***************************
        if((PIND & (1<<PD2))&&!(PIND & (1<<PD3)))   //10加
       {     
                swadd10+=1;     
                if(swadd10>add_reg) 
                        swadd10=add_reg+1; 
                if(swadd10==add_reg-1)              
                      cw_reg=0x10;   
       }
       else     
                swadd10=0; 
       if(!(PIND & (1<<PD2))&&(PIND & (1<<PD3)))   //01减
       {     
                swadd01+=1;     
                if(swadd01>add_reg) 
                        swadd01=add_reg+1; 
                if(swadd01==add_reg-1)      
                    cw_reg=0x01;                                               
       }
       else     
                swadd01=0; 
       if(!(PIND & (1<<PD2))&&!(PIND & (1<<PD3)))   //00
       {     
                swadd00+=1;     
                if(swadd00>add_reg) 
                        swadd00=add_reg+1;
                if(swadd00==add_reg-1)
                {       
                        if(dlay_add>20)//个位处理    慢
                                b_d=1;
                        else     //十位处理
                                b_d=10;              //快  
                        dlay_add=0; 
                        
                                                      
                        if(cw_reg==0x10)
                        {       cw_add+=1;
                                wc_add=0;
                                if(cw_add>=cw_add_reg)
                                {
                                        adding();
                                        cw_add=cw_add_reg+1;
                                }
                        }
                        else
                        {
                                wc_add+=1;
                                cw_add=0;
                                if(wc_add>=cw_add_reg)
                                {       wc_add=cw_add_reg+1; 
                                        minus();
                                } 
                        }                      
                } 
       }
       else     
                swadd00=0;                                                  
       if((PIND & (1<<PD2))&&(PIND & (1<<PD3)))  //11
       {                        
                swadd11+=1;     
                if(swadd11>add_reg) 
                        swadd11=add_reg+1;                 
                if(swadd11==add_reg-1)  
                {          
                        if(dlay_add>20)//个位处理    慢
                                b_d=1;
                        else     //十位处理
                                b_d=10;              //快  
                        dlay_add=0; 
                                                                                                                     
                        if(cw_reg==0x01)
                        {       cw_add+=1;
                                wc_add=0;
                                if(cw_add>=cw_add_reg)
                                {
                                        adding();
                                        cw_add=cw_add_reg+1;
                                }
                        }
                        else
                        {
                                wc_add+=1;
                                cw_add=0;
                                if(wc_add>=cw_add_reg)
                                {       wc_add=cw_add_reg+1; 
                                        minus();
                                } 
                        }                                                                                                                                                                                                                                                                                        
                }
       }
       else     
                swadd11=0;                       
//**************************上升下降*************************    
       if(!(PINB & (1<<PB7))&&(PINB & (1<<PB6))&&(PINA & (1<<PA7)))    //下降
       {     
                downadd+=1;     
                if(downadd>up_down_reg) 
                        downadd=up_down_reg+1;                       
                if(downadd==up_down_reg-1)                  
                {       

⌨️ 快捷键说明

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