📄 key.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 + -