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