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

📄 key.c

📁 倒车雷达源代码
💻 C
字号:
#include <reg51.h>
#include "mtv230m.h"
/*********************************/


 char menu_cr1;//菜单位置1
 char menu_cr2;//菜单位置

//I2c地址
#define bojin_a 0x12//近距离报警区
#define bojin_b 0x15//中距离
#define bojin_c 0x1a//远距离
#define video_1  0x1e//视频切换
#define english_china 0x20//中英切换
#define bright_04 0x22//亮度
#define contrast_04 0x24//对比度
#define color_04 0x26//彩色
#define blue_04 0x28//兰屏ON-OFF
#define power_04 0x2a//电源自动开关
#define color_p_n 0x2c//P/N
#define x_04 0x2e//X旋转
#define y_04 0x30//Y旋转
/***********************************/
extern unsigned int xdata bojina;//近距离报警区
extern unsigned int xdata bojinb;//中距离报警
extern unsigned int xdata bojinc;//远距离
extern  char xdata video;//视频切换ON-OFF
extern unsigned char xdata englishchina;//中英切换
extern unsigned char xdata bright;//亮度
extern unsigned char xdata contrast;//对比度
extern unsigned char xdata color;//彩色
extern unsigned char xdata blue;//兰屏
extern unsigned char xdata power;//电源自动光机
extern  char xdata p_n;//P/N
extern unsigned char xdata x;//x
extern unsigned char xdata y;//y


void key_menu();
bit key1();//+
bit key2();//-
bit key3();//菜单
bit key4();//开关机
bit key5();//上
bit key6();//下
bit key7();//AV1/AV2/AV3/TV
 void wirte_24c02a();
 void wirte_24c02b();
 void wirte_24c02c();
void wirte_24c02d();
void wirte_24c02e();
void wirte_24c02f();
void wirte_24c02g();
void wirte_24c02h();
void wirte_24c02q();
void wirte_24c02w();
void wirte_24c02r();
void wirte_24c02t();
void wirte_24c02u();

extern bit i2c_write(unsigned char address,unsigned char fb);
extern void datey(unsigned int p);
extern void osd_pz();
extern void osd_start();//osd初始化
extern void osd_start1();//OSD初始化
extern void osd_clr();
extern void tuxa_menu(char r);//图像菜单
extern void jintu(char r);//进度条
extern void gonen_menu(char r);//功能菜单
extern void tuxa_su(char r);//图象值
extern void gonen_su(char r);//功能值
extern void osd_window(unsigned char s,unsigned char row_start,unsigned char row_end,
	                            unsigned char column_start,unsigned char column_end,//开始结束
	                               unsigned char color,unsigned char wint,//颜色,亮度,
	                               unsigned char wshd);//打开窗口
void key_menu()
{
menu_cr1=0;//菜单位置1
menu_cr2=0;//菜单位置2
if(key3())//进入1级设置菜单--图象
     {
         osd_start();//osd初始化
         tuxa_menu(0);//打开图象菜单
         tuxa_su(0);
         jintu(0);
        while(1)
            {
               if(key5())//进入上移动键
                    {
                      menu_cr1++;                     
                      if(menu_cr1>2)
                           menu_cr1=0;
                       tuxa_menu(menu_cr1);//打开图象菜单
                       tuxa_su(menu_cr1);
                       jintu(menu_cr1);
                     }
               if(key6())//进入下移动键
                    {
                     menu_cr1--;                    
                     if(menu_cr1<0)
                          menu_cr1=2;
                      tuxa_menu(menu_cr1);//打开图象菜单
                       tuxa_su(menu_cr1);
                       jintu(menu_cr1);
                     }
                 if(key1())//+
                {
                  if(menu_cr1==0)
                    {
                    bright++;
                    if(bright>=253)
                        bright=253;
                    DA0=bright;
                    wirte_24c02f();                   
                    }
                  else if(menu_cr1==1)
                    {
                          contrast++;
                          if(contrast>=253)
                            contrast=253;
                          DA1=contrast;
                          wirte_24c02g();                        
                    }
                  else if(menu_cr1==2)
                    {
                         color++;
                         if(color>=253)
                            color=253;
                         DA2=color;
                         wirte_24c02h();
                    }
                  else ;
                  tuxa_menu(menu_cr1);//打开图象菜单
                   tuxa_su(menu_cr1);
                   jintu(menu_cr1);
                }
               if(key2())//-
                {
                if(menu_cr1==0)
                    {
                    bright--;
                    if(bright<=1)
                        bright=1;
                      DA0=bright;
                    wirte_24c02f();
                    }
                  else if(menu_cr1==1)
                    {
                          contrast--;
                          if(contrast<=1)
                            contrast=1;  
                           DA1=contrast;
                          wirte_24c02g();
                    }
                  else if(menu_cr1==2)
                    {
                         color--;
                         if(color<=1)
                            color=1;
                         DA2=color;
                         wirte_24c02h();
                    }
                  else ;
                  tuxa_menu(menu_cr1);//打开图象菜单
                  tuxa_su(menu_cr1);
                   jintu(menu_cr1);
                
                }
               if(key3())//进入2级设置菜单--功能
                {
                 osd_start();//osd初始化
                 gonen_menu(0);
                 gonen_su(0);
                 while(1)
                    {
                     if(key5())//进入上移动键
                    {
                      menu_cr2++;                     
                      if(menu_cr2>9)
                           menu_cr2=0;
                      gonen_menu(menu_cr2);//图象菜单
                      gonen_su(menu_cr2);
                     }
               if(key6())//进入下移动键
                    {
                     menu_cr2--;                    
                     if(menu_cr2<0)
                          menu_cr2=9;
                      gonen_menu(menu_cr2);//图象菜单
                      gonen_su(menu_cr2);
                     }
                if(key1())//+
                    {
                     switch(menu_cr2)
                        {
                         case 0: if(blue==0)
                                         blue=1;
                                     else blue=0;wirte_24c02q();break;
                         case 1: if(power==0)
                                        power=1;
                                        else power=0;wirte_24c02w();break;
                         case 2: p_n++;
                                     if(p_n>2)p_n=0;wirte_24c02r();break;
                         case 3: video++;
                                      if(video>3)video=0;wirte_24c02e();break;
                         case 4: if(x==0)
                                        x=1;
                                        else x=0;wirte_24c02t();break;
                          case 5: if(y==0)
                                        y=1;
                                        else y=0;wirte_24c02u();break;
                          case 6:  if(englishchina==0)
                                        englishchina=1;
                                        else englishchina=0;wirte_24c02d();break;
                          case 7: bojina=bojina+10;if(bojina>60)bojina=60;wirte_24c02a();break; 
                          case 8: bojinb=bojinb+10;if(bojinb>100)bojinb=100;wirte_24c02b();break;
                          case 9: bojinc=bojinc+10;if(bojinc>200)bojinc=200;wirte_24c02c();break;
                          default:;
                        }
                         gonen_su(menu_cr2);
                    }   
                 if(key2())//-
                    {
                      switch(menu_cr2)
                        {
                         case 0: if(blue==0)
                                      {
                                         blue=1;
                                         osd_window(1, 0, 30, 0, 15,biue, 0, 0);//打开A窗口
                                         }
                                     else blue=0;osd_window(1, 0, 30, 0, 15,0, 0, 0);wirte_24c02q();break;
                         case 1: if(power==0)
                                        power=1;
                                        else power=0;wirte_24c02w();break;
                         case 2: p_n--;
                                     if(p_n<0)p_n=2;wirte_24c02r();break;
                         case 3: video--;
                                      if(video<0)video=3;wirte_24c02e();break;
                         case 4: if(x==0)
                                        x=1;
                                        else x=0;wirte_24c02t();break;
                          case 5: if(y==0)
                                        y=1;
                                        else y=0;wirte_24c02u();break;
                          case 6:  if(englishchina==0)
                                        englishchina=1;
                                        else englishchina=0;wirte_24c02d();break;
                          case 7: bojina=bojina-10;if(bojina<20)bojina=20;wirte_24c02a();break; 
                          case 8: bojinb=bojinb-10;if(bojinb>100)bojinb=100;wirte_24c02b();break;
                          case 9: bojinc=bojinc-10;if(bojinc<150)bojinc=150;wirte_24c02c();break;
                          default:;
                        }
                         gonen_su(menu_cr2);
                    }     
                if(key3()|key7())//退出菜单
                    {
                       osd_clr();
                       osd_start();//osd初始化
                       return;
                    }
                    }

                }
             
         
             if(key3()|key7())//退出菜单
                 {
                 osd_clr();
                 osd_start1();//osd初始化                  
                  return;
                  }
                      
            }
       }

}

bit key1()
{  unsigned int i;
     i=0;
      ADC_write=0x82;
      datey(300);
      if(ADC_read<=3)
        {
        do{
        datey(300);
        i++;
        if(i>8000)
            return(1);
            }
         while(ADC_read<=3);                     
	    return(1);  
        }
       else  return(0); 
}


bit key2()
{   unsigned int i;
     i=0; 
     ADC_write=0x82;
      datey(300);
      if((ADC_read<=14)&(ADC_read>=9))
        {         
           do{
        datey(300);
        i++;
        if(i>8000)
            return(1);
            }       
         while((ADC_read<=14)&(ADC_read>=9));         
	      return(1);  
        }
       else return(0);        
}


bit key3()
{ ADC_write=0x82;
      datey(300);
      if((ADC_read<=45)&(ADC_read>=40))
        {             
         datey(300);        
         while((ADC_read<=45)&(ADC_read>=40));      
	     return(1);  
        }
       else  return(0);     
    
}


bit key4()
{    ADC_write=0x82;
      datey(300);
      if((ADC_read<=52)&(ADC_read>=46))
        {        
         datey(300);         
         while((ADC_read<=52)&(ADC_read>=46));        
	      return(1);  
        }
       else  return(0);    
   
}


bit key5()
{ unsigned int i;
     i=0;
     ADC_write=0x82;
      datey(300);
        if((ADC_read<=33)&(ADC_read>=28))
        {            
         do{
        datey(300);
        i++;
        if(i>8000)
            return(1);
            }      
         while((ADC_read<=33)&(ADC_read>=28));         
	      return(1);  
        }
       else  return(0);         
    
}
bit key6()
{   unsigned int i;
     i=0;
     ADC_write=0x81;
      datey(300);
      if(ADC_read<=3)
        {        
         do{
        datey(300);
        i++;
        if(i>8000)
            return(1);
            }       
         while(ADC_read<=3);        
	      return(1);  
        }
       else  return(0);    
   
}
bit key7()
{    ADC_write=0x81;
      datey(300);
      if((ADC_read<=20)&(ADC_read>=15))
        {        
         datey(300);         
         while((ADC_read<=20)&(ADC_read>=15));        
	      return(1);  
        }
       else  return(0);    
   
}

 void wirte_24c02a()
{
unsigned char i;  
   for(i=0;i<4;i++)
    {
  if(i2c_write(bojin_a,bojina))   
   return;      
    }
} 

 void wirte_24c02b()
{
unsigned char i;     
for(i=0;i<4;i++)
{
  if(i2c_write(bojin_b,bojinb))   
   return;   
}
} 

  void wirte_24c02c()
{
 unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(bojin_c,bojinc))    
   return;   
    }
 }

    void wirte_24c02d()
{
 unsigned char i;  
 for (i=0;i<4;i++)
    {
  if(i2c_write(english_china,englishchina))   
   return;  
    }
} 

 void wirte_24c02e()
{
 unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(video_1,video))    
   return;
    }
} 
 void wirte_24c02f()
{
 unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(bright_04,bright))    
   return;
    }
} 
 void wirte_24c02g()
{
 unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(contrast_04,contrast))    
   return;
    }
} 
  void wirte_24c02h()
{
 unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(color_04,color))    
   return;
    }
} 
 void wirte_24c02q()
    {
unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(blue_04,blue))    
   return;
    }

    }
void wirte_24c02w()
{
unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(power_04,power))    
   return;
    }

}
void wirte_24c02r()
{
unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(color_p_n,p_n))    
   return;
    }

}
void wirte_24c02t()
{
unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(x_04,x))    
   return;
    }

}
void wirte_24c02u()
{
unsigned char i;  
  for(i=0;i<4;i++)
    {
  if(i2c_write(y_04,y))    
   return;
    }

}

⌨️ 快捷键说明

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