📄 menu.c
字号:
#include "mtv230m.h"
#include "character.h"
#define background_color 0x00
#define biue 0x01
#define green 0x02
#define cyan 0x03
#define red 0x04
#define magenta 0x05
#define yellow 0x06
#define white 0x07
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 tuxa_menu(char r);//图像菜单
void gonen_menu(char r);//功能菜单
void jintu(char r);//进度条
void tuxa_su(char r);//图象值
void gonen_su(char r);//功能值
void vol_char();
extern void osd_char_a(unsigned char row,unsigned char column,//单字符-格式(a)
unsigned int char_rom_address, unsigned char color,
unsigned char background,//字符颜色,背景颜色,是否闪烁
unsigned char blink);//写入显示字符
extern void osd_char_b(unsigned char row,unsigned char column_start,
unsigned char attribute,unsigned int char_p[]) ;
void tuxa_menu(char r)//图像菜单
{
unsigned char as1,as2,as3;
switch(r)
{
case 0: as1=0x56;as2=0x06;as3=0x06;break;
case 1: as1=0x06;as2=0x56;as3=0x06;break;
case 2: as1=0x06;as2=0x06;as3=0x56;break;
default:;
}
if(englishchina!=0)//中文
{
osd_char_b(2,2,0x06,char_sx1);//图象
osd_char_b(4,2,as1,char_sx2);//亮度
osd_char_b(5,2,as2,char_sx3);//对比度
osd_char_b(6,2,as3,char_sx4);//彩色
switch(r)
{
case 0: osd_char_b(9,3,0x06,char_sx5);break;//亮度
case 1: osd_char_b(9,3,0x06,char_sx6);break;//对比度
case 2: osd_char_b(9,3,0x06,char_sx7);break;//彩色
default:;
}
}
else {//英文
osd_char_b(2,2,0x06,char_sx8);//picture
osd_char_b(4,2,as1,char_sx9);//bright
osd_char_b(5,2,as2,char_sx10);//contrast
osd_char_b(6,2,as3,char_sx11);//color
switch(r)
{
case 0: osd_char_b(9,3,0x06,char_sx12);break;//bright
case 1: osd_char_b(9,3,0x06,char_sx13);break;//contrast
case 2: osd_char_b(9,3,0x06,char_sx14);break;//color
default:;
}
}
}
void jintu(char r)//进度条
{
unsigned char i;
osd_char_a(10, 2, 437, 0x06, 0, 0);//-
for(i=0;i<=r/12;i++)
osd_char_a(10,i+2,438,0x06,0,0);
if(r%3==1)
osd_char_a(10,r/12+2,442,0x06,0,0);
else if(r%3==2)
osd_char_a(10,r/12+2,441,0x06,0,0);
else if(r%3==3)
osd_char_a(10,r/12+2,440,0x06,0,0);
else ;
for(i=r/12;i<21;i++)
osd_char_a(10,r/12+2,439,0x06,0,0);
osd_char_a(10,24,436,0x06,0,0);//+
}
void gonen_menu(char r)//功能菜单
{
unsigned char as1,as2,as3,as4,as5,as6,as7,as8,as9,as10;
switch(r)
{
case 0: as1=0x56;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 1: as1=0x06;as2=0x56;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 2: as1=0x06;as2=0x06;as3=0x56;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 3: as1=0x06;as2=0x06;as3=0x06;as4=0x56;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 4: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x56;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 5: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x56;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 6: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x56;as8=0x06;as9=0x06;as10=0x06;break;
case 7: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x56;as9=0x06;as10=0x06;break;
case 8: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x56;as10=0x06;break;
case 9: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x56;break;
default:;
}
if(englishchina!=0)//中文
{
osd_char_b(1,2,0x06,char_sx15);//功能
osd_char_b(3,2,as1,char_sx16);
osd_char_b(4,2,as2,char_sx17);
osd_char_b(5,2,as3,char_sx18);
osd_char_b(6,2,as4,char_sx19);
osd_char_b(7,2,as5,char_sx20);
osd_char_b(8,2,as6,char_sx21);
osd_char_b(9,2,as7,char_sx22);
osd_char_b(10,2,as8,char_sx23);
osd_char_b(11,2,as9,char_sx24);
osd_char_b(12,2,as10,char_sx25);
}
else {//英文
osd_char_b(1,2,0x06,char_sx26);//FUNCTION
osd_char_b(3,2,as1,char_sx27);
osd_char_b(4,2,as2,char_sx28);
osd_char_b(5,2,as3,char_sx29);
osd_char_b(61,2,as4,char_sx30);
osd_char_b(7,2,as5,char_sx31);
osd_char_b(8,2,as6,char_sx32);
osd_char_b(9,2,as7,char_sx33);
osd_char_b(10,2,as8,char_sx34);
osd_char_b(11,2,as9,char_sx35);
osd_char_b(12,2,as10,char_sx36);
}
}
void tuxa_su(char r)//图象值
{
unsigned char us;
unsigned char as1,as2,as3;
switch(r)
{
case 0: as1=0x56;as2=0x06;as3=0x06;break;
case 1: as1=0x06;as2=0x56;as3=0x06;break;
case 2: as1=0x06;as2=0x06;as3=0x56;break;
default:;
}
us=(bright/4)/10;
if(us==0)
{
osd_char_a(4,15,0,0x06,0,0);//亮度值
if(r==0)
osd_char_a(9,20,0,0x06,0,0);//亮度值
}
else
{
osd_char_a(4,15,us,as1,0,0);//亮度值10位
if(r==0)
osd_char_a(9,20,us,0x06,0,0);//亮度值10位
}
us=(bright/4)%10;
osd_char_a(4,16,us,as1,0,0);//亮度值个位
if(r==0)
osd_char_a(9,21,us,0x06,0,0);//亮度值个位
us=(contrast/4)/10;
if(us==0)
{
osd_char_a(5,15,0,0x06,0,0);
if(r==1)
osd_char_a(9,20,0,0x06,0,0);
}
else
{
osd_char_a(5,15,us,as2,0,0);//对比度值10位
if(r==1)
osd_char_a(9,20,us,0x06,0,0);//对比度值10位
}
us=(contrast/4)%10;
osd_char_a(5,16,us,as2,0,0);//对比度值个位
if(r==1)
osd_char_a(9,21,us,0x06,0,0);//对比度值个位
us=(color/4)/10;
if(us==0)
{
osd_char_a(6,15,0,0x06,0,0);
if(r==2)
osd_char_a(9,20,0,0x06,0,0);
}
else
{
osd_char_a(6,15,us,as3,0,0);//彩色值
if(r==2)
osd_char_a(9,20,us,0x06,0,0);//彩色值
}
us=(color/4)%10;
osd_char_a(6,16,us,as3,0,0);//彩色值
if(r==2)
osd_char_a(9,21,us,0x06,0,0);//彩色值
}
void gonen_su(char r)//功能值
{
unsigned char as1,as2,as3,as4,as5,as6,as7,as8,as9,as10;
switch(r)
{
case 0: as1=0x56;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 1: as1=0x06;as2=0x56;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 2: as1=0x06;as2=0x06;as3=0x56;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 3: as1=0x06;as2=0x06;as3=0x06;as4=0x56;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 4: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x56;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 5: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x56;as7=0x06;as8=0x06;as9=0x06;as10=0x06;break;
case 6: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x56;as8=0x06;as9=0x06;as10=0x06;break;
case 7: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x56;as9=0x06;as10=0x06;break;
case 8: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x56;as10=0x06;break;
case 9: as1=0x06;as2=0x06;as3=0x06;as4=0x06;as5=0x06;as6=0x06;as7=0x06;as8=0x06;as9=0x06;as10=0x56;break;
default:;
}
if(englishchina!=0)//中文
{
if(blue==0)
osd_char_a(3,18,362,as1,0,0);//兰屏OFF
else osd_char_a(3,18,393,as1,0,0);//ON
if(power==0)
osd_char_a(4,18,362, as2, 0, 0);//电源OFF
else osd_char_a(4, 18,393,as2, 0, 0);//ON
if(p_n==0)
osd_char_b(5,18,as3,char_sx37);//自动
else if(p_n==1)
osd_char_b(5,18,as3,char_sx38);//PAL
else osd_char_b(5,18,as3,char_sx39);//NTSC
if(video==0)
osd_char_b(6,18,as4,char_sx49);//AV1
else if(video==1)
osd_char_b(6,18,as4,char_sx50);//AV2
else if(video==2)
osd_char_b(6,18,as4,char_sx51);//AV3
else osd_char_b(6,18,as4,char_sx52);//AV4
if(x==0)
osd_char_a(7, 18, 362,as5,0,0);//X-OFF
else osd_char_a(7,18,393,as5,0,0);//ON
if(y==0)
osd_char_a(8,18,362,as6, 0, 0);//Y-OFF
else osd_char_a(8,18,393,as6, 0, 0);//ON
if(englishchina==0)
osd_char_b(9,18,as7,char_sx44);//中英
else osd_char_b(9,18,as7,char_sx45);//中英
osd_char_a(10, 18, bojina/100+1, as8, 0, 0);
osd_char_a(10, 19, 118, as8, 0, 0);
osd_char_a(10, 20, (bojina%100)/10+1,as8, 0, 0);
osd_char_a(10, 21, bojina%10+1,as8, 0, 0);
osd_char_a(11, 18, bojinb/100+1, as9, 0, 0);
osd_char_a(11, 19, 118, as9, 0, 0);
osd_char_a(11, 20, (bojinb%100)/10+1,as9, 0, 0);
osd_char_a(11, 21, bojinb%10+1, as9, 0, 0);
osd_char_a(12, 18, bojinc/100+1, as10, 0, 0);
osd_char_a(12, 19, 118, as10, 0, 0);
osd_char_a(12, 20, (bojinc%100)/10+1, as10, 0, 0);
osd_char_a(12, 21, bojinc%10+1,as10, 0, 0);
}
else
{
if(blue==0)
osd_char_b(3, 18,as1,char_sx46);//兰屏OFF
else osd_char_b(3, 18,as1,char_sx47);//ON
if(power==0)
osd_char_b(4, 18,as2, char_sx46);//电源OFF
else osd_char_b(4, 18, as2, char_sx47);//ON
if(p_n==0)
osd_char_b(5,18,as3,char_sx48);//AUTO
else if(p_n==1)
osd_char_b(5,18,as3,char_sx38);//PAL
else osd_char_b(5,18,as3,char_sx39);//NTSC
if(video==0)
osd_char_b(6,18,as4,char_sx40);//AV1
else if(video==1)
osd_char_b(6,18,as4,char_sx41);//AV2
else if(video==2)
osd_char_b(6,18,as4,char_sx42);//AV3
else osd_char_b(6,18,as4,char_sx43);//AV4
if(x==0)
osd_char_b(7, 18,as5 ,char_sx46);//X-OFF
else osd_char_b(7, 18,as5,char_sx47 );//ON
if(y==0)
osd_char_b(8, 18,as5 ,char_sx46);//Y-OFF
else osd_char_b(8, 18,as5,char_sx47 );//ON
if(englishchina==0)
osd_char_b(9,18,as7,char_sx44);//中英
else osd_char_b(9,18,as7,char_sx45);//中英
osd_char_a(10, 18, bojina/100+1, as8, 0, 0);
osd_char_a(10, 19, 118, as8, 0, 0);
osd_char_a(10, 20, (bojina%100)/10+1,as8, 0, 0);
osd_char_a(10, 21, bojina%10+1,as8, 0, 0);
osd_char_a(11, 18, bojinb/100+1, as9, 0, 0);
osd_char_a(11, 19, 118, as8, 0, 0);
osd_char_a(11, 20, (bojinb%100)/10+1,as9, 0, 0);
osd_char_a(11, 21, bojinb%10+1, as9, 0, 0);
osd_char_a(12, 18, bojinc/100+1, as10, 0, 0);
osd_char_a(12, 19, 118, as10, 0, 0);
osd_char_a(12, 20, (bojinc%100)/10+1, as10, 0, 0);
osd_char_a(12, 21, bojinc%10+1,as10, 0, 0);
}
}
void vol_char()
{
if(englishchina!=0)
osd_char_b(9,5, 0x06, char_sx53);
else osd_char_b(9,5, 0x06, char_sx54);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -