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

📄 menu.c

📁 全数字高清电视数字调谐器
💻 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 + -