📄 mtv230 test.c
字号:
//上下,左右,比例,天线,TFT,SYSTEM,CHANNEL
// 3------->81hz
// 4------->61hz
// 5------->48.8hz
// 6------->40.6hz
// 7------->34.8hz
// RF = 44.35;
// RF = RF + 0.35;
// RF = RF *100;
// V_test = RF ;
#include "reg51.h"
#include "intrins.h"
#include "math.h"
#include "mtv230.h"
//#include "ir_key1.h"
#include "ir_key2.h"
sbit clk=P3^4;
sbit sda=P3^5;
sbit mode_h=P1^7;
sbit mode_l=P1^6;
uchar bdata V_flag_buf;
sbit B_iic_buf_w=V_flag_buf^7;
sbit B_iic_buf_r=V_flag_buf^0;
uchar bdata V_ir_buf;
sbit B_ir_buf=V_ir_buf^7;
uchar bdata V_HVSTUS_buf;
sbit B_HVSTUS_7=V_HVSTUS_buf^7;
sbit B_HVSTUS_2=V_HVSTUS_buf^2;
uchar bdata V_sys_flag0;
sbit B_scan_ad=V_sys_flag0^0;
sbit B_in_key=V_sys_flag0^1;
sbit B_has_key=V_sys_flag0^2;
sbit B_mute=V_sys_flag0^3;
sbit B_dvd2av=V_sys_flag0^4;
sbit B_right2left=V_sys_flag0^5;
sbit B_up2down=V_sys_flag0^6;
sbit B_has_key_s=V_sys_flag0^7;
uchar bdata V_sys_flag1;
sbit B_rtc_1sec=V_sys_flag1^0;
sbit B_timer_dot=V_sys_flag1^1;
sbit B_scan_tv=V_sys_flag1^2;
sbit B_25215=V_sys_flag1^3;
sbit B_ir_start=V_sys_flag1^4;
sbit B_ir_bit=V_sys_flag1^5;
sbit B_ir_key=V_sys_flag1^6;
sbit B_ir_key_s=V_sys_flag1^7;
uchar bdata V_sys_flag2;
sbit B_scan_fm=V_sys_flag2^0;
sbit B_scan_c2f=V_sys_flag2^1;
sbit B_chk_syd=V_sys_flag2^2;
sbit B_channel_100=V_sys_flag2^3;
sbit B_432169=V_sys_flag2^4;
sbit B_search_tv=V_sys_flag2^5;
sbit B_search_fm=V_sys_flag2^6;
sbit B_chk_v=V_sys_flag2^7;
uchar bdata V_sys_flag3;
sbit B_dis_channel=V_sys_flag3^0;
sbit B_p2n_bak=V_sys_flag3^1;
sbit B_iic_err=V_sys_flag3^2;
sbit B_read_sync=V_sys_flag3^3;
uchar bdata V_sys_option;
sbit B_antenna=V_sys_option^0;
sbit B_p2n=V_sys_option^1;
//====
uchar data V_lo1_div1;
uchar data V_lo1_div2;
uchar data V_lo2_div1;
uchar data V_lo2_div2;
uchar data V_lo2_div3;
uchar data V_BW;
unsigned int data V_cnt_fm;
uchar data V_divider1;
uchar data V_divider2;
uchar data V_control;
uchar data V_band;
uchar data V_ch_option0;
uchar data V_ch_option1;
uchar data V_ch_option2;
uchar data V_v_byte3;
uchar data V_v_byte4;
uchar data V_v_byte5;
uchar data V_cnt_channel;
uchar data V_t_dis_channel;
uchar data V_t_dis_menu;
uchar data V_t_dis_volumn;
uchar data V_cnt_channel_num;
uchar data V_cnt_channel_mode;
uchar data V_channel_num_temp;
uchar data V_channel_add;
unsigned int data V_scan_50ms;
uchar data V_aft;
uchar data V_t_key;
uchar data V_t_key_s;
uchar data V_cnt_key;
uchar data V_key_val;
unsigned int data V_osd_h;
uchar data V_osd_l;
uchar data V_vcnt1_l;
uchar data V_vcnt1_h;
uchar data V_cnt_125;
uchar data V_cnt_250;
uchar data V_cnt_aft;
uchar data V_cnt_hand_fine;
uchar data V_cnt_scan_key;
uchar data V_key_temp;
uchar data V_t_ir;
uchar data V_t_ir_s;
uchar data V_ir_val;
uchar data V_ir_val_s;
uchar data V_cnt_ir_bit;
uchar data V_cnt_ir;
uchar data V_ir_buf0;
uchar data V_ir_buf1;
uchar data V_ir_buf2;
uchar data V_ir_buf3;
uchar data V_initial0;
uchar data V_initial1;
uchar data V_initial2;
uchar data V_initial3;
uchar data V_cnt_pp;
uchar data V_total_channel;
uchar data V_total_fm_channel;
uchar data V_dis_channel;
uchar data V_dis_channel_bak;
uchar data V_dis_fm_channel;
uchar data V_dis_fm_channel_bak;
uchar data V_cnt_sys_mute;
uchar idata V_bright;
uchar idata V_color;
uchar idata V_contrast;
uchar idata V_volumn;
uchar idata V_sys_mode;
uchar idata V_cnt_key_2;
uchar idata V_cnt_ir_2;
uchar idata V_read_sync;
uchar idata V_cnt_stu;
uchar idata V_v_stu;
uchar idata V_v_stu_bak;
uchar idata V_t_v;
uchar idata V_cnt_no_signal;
unsigned int idata V_t_cnt_sync;
float idata RF;
uchar idata Eeprom[5];
unsigned int idata V_t_test;
uchar idata V_cnt_dis_scan;
uchar idata V_cnt_scan_fine;
uchar idata V_channel_slave;
uchar idata V_cnt_menu;
uchar idata V_cnt_sub_menu;
uchar idata V_t_sr;
uchar idata V_t_y2k;
uchar idata V_t_dw;
uchar idata V_t_yr;
uchar idata V_t_mo;
uchar idata V_t_dt;
uchar idata V_t_hr_h;
uchar idata V_t_hr_l;
uchar idata V_t_mn_h;
uchar idata V_t_mn_l;
uchar idata V_t_sc;
uchar idata V_cnt_timer;
uchar idata V_temp0;
uchar idata V_temp1;
uchar idata V_temp2;
uchar idata V_temp3;
uchar idata V_temp4;
uchar idata V_read_fm;
uchar idata V_read_aft_0;
uchar idata V_read_aft_1;
unsigned int idata V_test;
#define IF0 38.900 //pure US tuner:45.75, Global tuner:38.90
#define IF1 1220.750
#define RF_start 44.000
#define RF_end 863.250
//#define RF_fm_start 76.000
#define RF_fm_start 87.000
#define RF_fm_end 108.000
//#define RF_start 224.25
#define RF_step1 0.400
#define RF_step2 0.050
#define RF_step3 5.000
#define C_aft 2
#define EEWP Port50
#define HB_v_l Port52 //电压1
#define HB_v_h Port53 //电压2
#define HB_dvd2av Port47 //dvd/av
#define HB_p2n Port46
#define sclk_4137 Port45
#define data_4137 Port44
#define load_4137 Port43
#define HB_25215 Port40
#define C_addr_Col 0x81
#define C_addr_Con 0x83
#define C_addr_Bri 0x8e
#define C_max_tv_channel 125
#define C_min_tv_channel 1
#define C_max_fm_channel 96
#define C_min_fm_channel 1
#define C_t_key 40
#define C_t_key_s 150
#define C_key_auto 0x21
#define C_key_mode 0x11
#define C_key_menu 0x22
#define C_key_ch1 0x12
#define C_key_vol1 0x24
#define C_key_ch0 0x14
#define C_key_vol0 0x28
#define C_key_432169 0x18
#define C_t_aft 300
#define C_tuner_add 0xc0
#define C_start_add 0x01
#define C_tuner_add_s 0x86
#define C_start_add_s 0x00
#define C_pwm_start 0x04
#define C_sys_start 0x09
#define C_sys_add 0x00
#define C_5p006_add 0x07
#define C_ir_t_head_0 80 //头宽度 时间下限
#define C_ir_t_head_1 140 //头宽度 时间上限
#define C_ir_t_bit_0 15 //位宽度 时间界限
#define C_ir_t_heads_0 80 //连续码头宽度 时间下限
#define C_ir_t_heads_1 104 //连续码头宽度 时间上限
#define C_t_ir_s_0 90 //
#define C_t_ir_s_1 135 //
#define C_has_ir_o 150 //V_t_ir 超时时间
#define C_has_ir_s_o 180 //V_t_ir_s 超时时间
//定义颜色
#define BLACK 0x00
#define BLUE 0x01
#define GREEN 0x02
#define CYAN 0x03
#define RED 0x04
#define MAGENTA 0x05
#define YELLOW 0x06
#define WHITE 0x07
#define B_BLACK 0x00
#define B_BLUE 0x10
#define B_GREEN 0x20
#define B_CYAN 0x30
#define B_RED 0x40
#define B_MAGENTA 0x50
#define B_YELLOW 0x60
#define B_WHITE 0x70
#define F_0 0x01
#define F_1 0x02
#define F_2 0x03
#define F_3 0x04
#define F_4 0x05
#define F_5 0x06
#define F_6 0x07
#define F_7 0x08
#define F_8 0x09
#define F_9 0x0a
#define F_A 0x0b
#define F_B 0x0c
#define F_C 0x0d
#define F_D 0x0e
#define F_E 0x0f
#define F_F 0x10
#define F_G 0x11
#define F_H 0x12
#define F_I 0x13
#define F_J 0x14
#define F_K 0x15
#define F_L 0x16
#define F_M 0x17
#define F_N 0x18
#define F_O 0x01
#define F_P 0x19
#define F_Q 0x1a
#define F_R 0x1b
#define F_S 0x1c
#define F_T 0x1d
#define F_U 0x1e
#define F_V 0x1f
#define F_W 0x20
#define F_X 0x21
#define F_Y 0x22
#define F_Z 0x23
#define F_a 0x24
#define F_b 0x25
#define F_c 0x26
#define F_d 0x27
#define F_e 0x28
#define F_f 0x29
#define F_g 0x2a
#define F_h 0x2b
#define F_i 0x2c
#define F_j 0x2d
#define F_k 0x2e
#define F_l 0x2f
#define F_m 0x30
#define F_n 0x31
#define F_o 0x32
#define F_p 0x33
#define F_q 0x34
#define F_r 0x35
#define F_s 0x36
#define F_t 0x37
#define F_u 0x38
#define F_v 0x39
#define F_w 0x3a
#define F_x 0x3b
#define F_y 0x3c
#define F_z 0x3d
#define F_II 0x47
#define C_add_sw 0x20
#define C_add_pic 0x21
#define C_add_col 0x22
#define C_add_phase 0x23
#define C_add_con 0x24
#define C_add_bri 0x25
#define C_add_gama0 0x26
#define C_add_gama2 0x27
#define C_add_out 0x28
#define C_add_rgb 0x29
#define C_add_sr 0x2a
#define C_add_sb 0x2b
#define C_add_com_amp 0x2c
#define C_add_com_blk 0x2d
#define C_add_dac_out 0x2e
#define C_add_tint 0x2f
void Init_230(void)
{
IE=0;
IT1 = 0;
IT0 = 1; //下降沿触发
IE1 = 0;
EX1 = 1;
EX0 = 1; //外部中断0使能
PX0=1;
ET0 = 1;
//ET1 = 1;
OPTION1= 0x82;
PadMode1=0x80;
PadMode2=0xf2;
PadMode3=0x7c;
PadMode4=0xff;
HV_INTEN = 0;
IIC_SLVBADR = 0x80|(0xc6>>1);
IIC_INTEN = 0xe0;
//WDT=0xc1; //2x0.25s
WDT=0x00; //2x0.25s
TMOD=0x12;
//TH1=0xfc;
//TL1=0x18;
TH0=0x83;
TL0=0x83;
//HVCTR0=0Xc0; //compsite sync
HVCTR0=0X80; //vertical sync
//HV_INTEN=0X45;
load_4137=1;
_nop_();
_nop_();
_nop_();
sclk_4137=0;
ADC=0x82;
PCON=0;
TR0=1;
TR1=0;
EA = 1; // enable all interrupt
}
void init_row_ctrl(BYTE V_init_row_temp,BYTE row_val)
{
OSDRA=V_init_row_temp&0x3f;
OSDCA=30;
OSDDT0=row_val;
}
void deal_ir_key_s(void)
{
if(B_ir_key_s)
{
B_ir_key_s=0;
if((V_ir_val_s==C_ir_volumn0||V_ir_val_s==C_ir_volumn1) && V_cnt_menu<4)B_ir_key=1;
if(V_sys_mode==0||V_sys_mode==2)
{
if((V_ir_val_s==C_ir_fine0)||(V_ir_val_s==C_ir_fine1))
{
V_cnt_ir_2+=1;
if(V_cnt_ir_2>=2)
{
V_cnt_ir_2=0;
B_ir_key=1;
}
}
}
}
}
void deal_key_s(void)
{
if(B_has_key_s)
{
B_has_key_s=0;
if((V_key_val==C_key_vol0 || V_key_val==C_key_vol1) && V_cnt_menu<4 )B_has_key=1;
if(V_key_val==C_key_auto)
{
V_cnt_key_2+=1;
if(V_cnt_key_2>10)
{
V_cnt_key_2=0;
V_key_val=0xff;
B_ir_key=1;
V_ir_val=C_ir_auto;
}
}
}
}
void dis_chara_col(BYTE row_add,BYTE col_add,BYTE chara_code_col)
{
OSDRA=row_add|0x40;
OSDCA=col_add;
OSDDT0=chara_code_col;
}
void dis_chara(BYTE row,BYTE col,BYTE chara_code)
{
OSDRA=row&0x3f;
OSDCA=col;
OSDDT0=chara_code;
}
void init_osd0(void)
{
uchar i,j;
OSDCON1=0X06;
OSDCON1=0X98;
OSDCON2=0X0c;
W1ROW=0x0e; //0~14 line
W1COL1=0X00;
W1COL2=0Xf0;
W2COL1=0X00;
W3COL1=0X00;
W4COL1=0X00;
if(B_p2n)VERTD=0X00;
else VERTD=0X00;
HORD=25;
CH=6;
RSPACE=0;
CHSC=0X00;
FSSTP=0X00;
WINSW=0X00;
WINSH=0X00;
WINSC=0X00;
XDEL=0X00;
for(i=0;i<15;i++)
{
init_row_ctrl(i,0x05);
for(j=0;j<31;j++)
{
dis_chara_col(i,j,GREEN);
}
}
}
void init_osd2(void)
{
uchar i,j;
OSDCON1=0X06;
OSDCON1=0X98;
OSDCON2=0X0c;
W1ROW=0x0e; //0~14 line
W1COL1=0X00;
W1COL2=0Xf0;
W2COL1=0X00;
W3COL1=0X00;
W4COL1=0X00;
VERTD=0X00;
HORD=25;
CH=6;
RSPACE=0;
CHSC=0X00;
FSSTP=0X81;
WINSW=0X00;
WINSH=0X00;
WINSC=0X00;
XDEL=0X00;
for(i=0;i<15;i++)
{
init_row_ctrl(i,0x05);
for(j=0;j<31;j++)
{
dis_chara_col(i,j,GREEN);
}
}
}
void dis_chara_h(BYTE row_h,uchar col_h,BYTE chara_code_h)
{
OSDRA=row_h&0x3f;
OSDCA=col_h;
OSDDT1=chara_code_h;
}
void Write_4137_byte(BYTE add_4137,BYTE val_4137)
{
uchar i;
load_4137=0;
_nop_();
_nop_();
_nop_();
_nop_();
V_flag_buf=add_4137;
for(i=0;i<8;i++)
{
sclk_4137=0;
_nop_();
_nop_();
_nop_();
_nop_();
data_4137=B_iic_buf_w;
V_flag_buf=V_flag_buf<<1;
_nop_();
_nop_();
_nop_();
_nop_();
sclk_4137=1;
_nop_();
_nop_();
_nop_();
_nop_();
sclk_4137=0;
}
V_flag_buf=val_4137;
for(i=0;i<8;i++)
{
sclk_4137=0;
_nop_();
_nop_();
_nop_();
_nop_();
data_4137=B_iic_buf_w;
V_flag_buf=V_flag_buf<<1;
_nop_();
_nop_();
_nop_();
_nop_();
sclk_4137=1;
_nop_();
_nop_();
_nop_();
_nop_();
sclk_4137=0;
}
_nop_();
_nop_();
_nop_();
_nop_();
load_4137=1;////////////////////////////////////////
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -