📄 menu.c
字号:
#include "char_rom.h"
#define black 0x00
#define red 0x01
#define green 0x02
#define yellow 0x03
#define blue 0x04
#define magenta 0x05
#define cyan 0x06
#define white 0x07
unsigned char pos;//当前节目
unsigned char sound;//当前节目声音中频
unsigned char tv_av;//tv/av
unsigned char slep;//静音
unsigned char band;////波段
extern void char_w_c(unsigned int row,unsigned int color,
unsigned int char_p[]);//每行字符设置
//显示行位置,纵位置,字符串,颜色,
extern void char_w_e(unsigned int address,unsigned int color,
unsigned int char_p[]);//不定字符 不定地址 不定个数显示
extern void char_w_f(unsigned int row,unsigned int content,
unsigned int color,unsigned int char_p);//单字符设置
void menu_main(char r);
void av_menu(char r);//tv/av1/av2/av3
void vol_main(char r);
void vol_av(char r);
void jintu(unsigned int r,unsigned int l,
unsigned int h, unsigned int op);//进度条
void menu_main(char r)
{
unsigned char as1,as2,as3,as4,as5;
switch(r)
{
case 0: as1=red;as2=green;as3=green;as4=green;as5=green;break;
case 1: as1=green;as2=red;as3=green;as4=green;as5=green;break;
case 2: as1=green;as2=green;as3=red;as4=green;as5=green;break;
case 3: as1=green;as2=green;as3=green;as4=red;as5=green;break;
case 4: as1=green;as2=green;as3=green;as4=green;as5=red;break;
default:;
}
char_w_c(0,magenta,char_sx1);//菜单1
char_w_c(2,as1,char_sx2);//节目
char_w_c(3,as2,char_sx27);//波段 band
char_w_c(4,as3,char_sx3);//自动选台
char_w_c(5,as4,char_sx4);//手动选台/
char_w_c(6,as5,char_sx5);//微调/fine
}
void av_menu(char r)//tv/av1/av2/av3
{
unsigned char as1,as2,as3;
switch(r)
{
case 0: as1=red;as2=green;as3=green;break;
case 1: as1=green;as2=red;as3=green;break;
case 2: as1=green;as2=green;as3=red;break;
default:;
}
char_w_c(0,magenta,char_sx6);//菜单2
char_w_c(2,as1,char_sx7);//声音中频/sound-sys
char_w_c(3,as2,char_sx8);//TV/AV
char_w_c(4,as3,char_sx9);////静音
}
void vol_main(char r)//
{
unsigned char u;
bit h;
unsigned char as1,as2,as3,as4,as5;
switch(r)
{
case 0: as1=red;as2=green;as3=green;as4=green;as5=green;break;
case 1: as1=green;as2=red;as3=green;as4=green;as5=green;break;
case 2: as1=green;as2=green;as3=red;as4=green;as5=green;break;
case 3: as1=green;as2=green;as3=green;as4=red;as5=green;break;
case 4: as1=green;as2=green;as3=green;as4=green;as5=red;break;
default:;
}
u=pos/100;//节目百位
if(u==0)
{
char_w_f(2,20,0,0x00ff);
h=1;
}
else {char_w_f(2,20,as1,u+0x20);h=0;}
u=(pos%100)/10;//节目十位
if((u==0)&h)
char_w_f(2,21,0,0x00ff);
else char_w_f(2,21,as1,u+0x20);
u=pos%10;//节目个位
char_w_f(2,22,as1,u+0x20);
if(band==0)
char_w_e(3*24+20,as2,char_sx24);//v-l波段
else if(band==1)
char_w_e(3*24+20,as2,char_sx25);//v-h波段
else char_w_e(3*24+20,as2,char_sx26);//uhf波段
switch(r)//指示行
{
case 0: char_w_f(2,1,red,char_ga);break;
case 1: char_w_f(3,1,red,char_ga);break;
case 2: char_w_f(4,1,red,char_ga);break;
case 3: char_w_f(5,1,red,char_ga);break;
case 4: char_w_f(6,1,red,char_ga);break;
default:;
}
}
void vol_av(char r)
{
unsigned char as1,as2,as3;
switch(r)
{
case 0: as1=red;as2=green;as3=green;break;
case 1: as1=green;as2=red;as3=green;break;
case 2: as1=green;as2=green;as3=red;break;
default:;
}
if(sound==0)
char_w_e(2*24+20,as1,char_sx15);//6.5m
else if(sound==1)
char_w_e(2*24+20,as1,char_sx16);//6.0m
else if(sound==2)
char_w_e(2*24+20,as1,char_sx17);//5.5m
else char_w_e(2*24+20,as1,char_sx18);///4.5m
if(tv_av==0)
char_w_e(3*24+20,as2,char_sx12);//tv
else if(tv_av==1)
char_w_e(3*24+20,as2,char_sx13);//av1
else char_w_e(3*24+20,as2,char_sx14);//av2
if(slep==0)
char_w_e(4*24+20,as3,char_sx10);//on
else
char_w_e(4*24+20,as3,char_sx11);//off
switch(r)//指示行
{
case 0: char_w_f(2,1,red,char_ga);break;
case 1: char_w_f(3,1,red,char_ga);break;
case 2: char_w_f(4,1,red,char_ga);break;
}
}
void jintu(unsigned int r,unsigned int l,
unsigned int h, unsigned int op)//调台进度条
//r 调节值,l 预定低频段,H预定高频段,全频段频道数
{
unsigned char i;
unsigned char u;
unsigned char f;
char_w_e(9*24,red,char_sx23);//-
if(r<=l)//vl
{
u=((r*40)/l)/2;
f=((r*40)/l)%2;
for(i=0;i<u;i++)
char_w_f(9,i+2,red,0x73);
if(f==0)
{
for(i=u;i<20;i++)
char_w_f(9,i+2,red,0x70);
}
else if(f==1)
{
char_w_f(9,u+2,red,0x72);
for(i=u+1;i<20;i++)
char_w_f(9,i+2,red,0x70);
}
char_w_e(8*24+16,red,char_sx24);//v-l
}
else if(r<=h)//vH
{
u=(((r-l)*40)/(h-l))/2;
f=(((r-l)*40)/(h-l))%2;
for(i=0;i<u;i++)
char_w_f(9,i+2,red,0x73);
if(f==0)
{
for(i=u;i<20;i++)
char_w_f(9,i+2,red,0x70);
}
else if(f==1)
{
char_w_f(9,u+2,red,0x72);
for(i=u+1;i<20;i++)
char_w_f(9,i+2,red,0x70);
}
char_w_e(8*24+16,red,char_sx25);//v-h
}
else
{
u=(((r-h)*40)/(op-h))/2;
f=(((r-h)*40)/(op-h))%2;
for(i=0;i<u;i++)
char_w_f(9,i+2,red,0x73);
if(f==0)
{
for(i=u;i<20;i++)
char_w_f(9,i+2,red,0x70);
}
else if(f==1)
{
char_w_f(9,u+2,red,0x72);
for(i=u+1;i<20;i++)
char_w_f(9,i+2,red,0x70);
}
char_w_e(8*24+16,red,char_sx26);//uhf
}
char_w_e(9*24+22,red,char_sx22);//+
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -