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

📄 main.c

📁 全数字高清电视数字调谐器
💻 C
字号:
#include <w77e58.h>
#include <stdio.h>
#include <struct.h"


#define DEBUG 1
#define display_con0  0x00f0 
#define display_con1  0x00f1 
#define display_con2  0x00f2 
#define display_con3  0x00f3 
#define display_con4  0x00f4 
#define display_con5  0x00f5 
#define display_con6  0x00f6 
#define display_con7  0x00f7 
#define display_con8  0x00f8 

bit power_k;
extern ch_table code china_ch;
extern void start();
extern bit key4();//开关机
extern bit key2();//-
extern bit key3();//+
extern void key_menu();

extern void tuning_start();//调谐器初始化
extern void tuning_freq(tv ch);//调到频道
extern void tda9886_set(av sou);

extern void osd_start0();
extern void osd_start1();
extern void osd_starta();
extern void delay1(unsigned int i);
extern bit pal_ntsc();
extern void char_w_b(unsigned int address,unsigned int char_p);//单字节工作模式设置
//extern void char_w_a(unsigned int char_p[]);//多字节工作模式设置
//extern unsigned int code start3[9];
sbit power_sw=P1^4;//电源开关
sbit signal= P1^2;//信号检测
void tongxin_rxd();//接收下传命令
extern bit p_n;//P/N标志
extern void write_b(unsigned char slave,unsigned char address,
                            unsigned char fb);
extern void tuning_cun(unsigned char i);//调谐到预定频道                            


 extern unsigned char pos;//当前节目
 extern unsigned char sound;//当前节目声音中频
 extern unsigned char tv_av;//tv/av
 extern unsigned char slep;//静音
 extern unsigned char band;////波段 

 extern unsigned char chanle;
 extern unsigned char chan_le;

main()
{ 
unsigned int kf;
power_sw=1;
power_k=0;
chanle=0;
char_w_b(display_con8, 0x0080);//擦除显示ram 关闭显示 
delay1(30000);//20ms
// char_w_a(start3);//打开放大字符模式 显示 
start();
while(1)
{
while(power_k)
    {
       if(key4()&power_k)
           {
             power_k=0;
             power_sw=1;  
             
           #if(DEBUG)            
            printf("power off\n"); 
            #endif
           }
       key_menu();

      if(key2())
      {
       chanle++;
       if(chanle>chan_le)
       chanle=0;
       tuning_cun(chanle);
      #if(DEBUG)  
      kf=chanle;
     printf("频道 =%u\n",kf);     
      #endif
      }
      if(key3())
      {
        chanle--;
       if(chanle>chan_le)
       chanle=chan_le;
       tuning_cun(chanle); 
        #if(DEBUG)  
     kf=chanle;
     printf("频道 =%u\n",kf);     
      #endif
     }
}
    if(key4()&!power_k)
           {
            power_k=1;
            power_sw=0;
            delay1(8000);        
            if(signal) 
            {            
             pal_ntsc();
             if(p_n)             
             osd_start1();
             else osd_starta();
             }
         else osd_start0();
          tuning_start();//调谐器初始化   
         delay1(50000);         
      #if(DEBUG)  
     printf("power on\n");     
      #endif
          }
   
 }
}



void tongxin_rxd()//接收下传命令
 {
   bit rt;//接收正确标志   
  unsigned char as;
  unsigned char ac;
   unsigned char sup; 
  unsigned long h;
hoop:   REN=1;
   RI=0;
   h=0;
   rt=0;
   while(!rt)
     {
       while(!RI);
           
          sup=SBUF;
          RI=0;
          
       if(sup=='A')
           rt=1;
       }    
   
     while(!RI)
     {
      h++;
      if(h>100000)//超时处理
        {
        REN=0;
        printf("loog daley--please serial input\n");
        printf("\n");
        printf("\n");
        printf("\n");
        goto hoop;
        }
      }     
     as=SBUF;//命令    
     RI=0;
     h=0;    
     while(!RI)
     {
      h++;
      if(h>100000)//超时处理
        {
        REN=0;
        printf("loog daley--please serial input\n");
        printf("\n");
        printf("\n");
        printf("\n");
        goto hoop;
        }
     }   
     ac=SBUF;//命令    
     RI=0;
     h=0;      
   write_b(0x86,as,ac);
      REN=0;
     printf("\n");
     printf("input end\n");     
    
}    


⌨️ 快捷键说明

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