📄 tvmodule.lst
字号:
C51 COMPILER V7.20 TVMODULE 11/18/2004 17:33:50 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE TVMODULE
OBJECT MODULE PLACED IN D:\TEST\TV\TVMODULE.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\TEST\TV\TVMODULE.C DB SB OE
line level source
1 #include <REG52.H>
2 #include <Function.H>
3 #include <constant.h>
4 #include <Extern.h>
5
6 //TV高频头的中频部分设置(制式设置)
7 //MidFreqIC_Addr: 中频IC的IIC地址,如TDA9885T的是0xC0或0xC2
8 //wdata:写入中频的数据,其中wdata[0]是
9 //if success return 0,else return 1;
10 bit SetTV_Module(unsigned char MidFreqIC_Addr,unsigned char *wdata,unsigned char num)
11 {
12 1 unsigned char i;
13 1 bit errorflag=0;
14 1 i=ERRORCOUNT;
15 1
16 1 while(--i)
17 1 {
18 2 IICStart();
19 2 IICSendByte(MidFreqIC_Addr);
20 2 if(IICRecAck())
21 2 continue;
22 2 while(num--)
23 2 {
24 3 IICSendByte(*wdata++);
25 3 if(!IICRecAck())
26 3 continue;
27 3 errorflag=1;
28 3 break;
29 3 }
30 2 if(!errorflag)
31 2 break;
32 2 }
33 1 IICStop();
34 1 Delay(255);
35 1 Delay(255);
36 1 Delay(255);
37 1 Delay(255);
38 1 if(i==0)
39 1 errorflag=1;
40 1 return(errorflag);
41 1 }
42
43 //modeflag= {TV_PAL_DK ,TV_PAL_I,TV_PAL_BG,TV_SECAM_L,TV_SECAM_L1)
44 //
45 //
46
47 bit SetMode_JS6B2121(unsigned char modeflag)
48 {
49 1 switch(modeflag)
50 1 {
51 2 case TV_PAL_DK :
52 2 buf_eeprom[0]=JS121_PAL_DK[0];
53 2 buf_eeprom[1]=JS121_PAL_DK[1];
54 2 buf_eeprom[2]=JS121_PAL_DK[2];
55 2 buf_eeprom[3]=JS121_PAL_DK[3];
C51 COMPILER V7.20 TVMODULE 11/18/2004 17:33:50 PAGE 2
56 2 if(!SetTV_Module(JS6B2121M_WRITE,buf_eeprom,4))
57 2 {
58 3 TV_mode=modeflag;
59 3 return(0);
60 3 }
61 2 break;
62 2 case TV_PAL_I :
63 2 buf_eeprom[0]=JS121_PAL_I[0];
64 2 buf_eeprom[1]=JS121_PAL_I[1];
65 2 buf_eeprom[2]=JS121_PAL_I[2];
66 2 buf_eeprom[3]=JS121_PAL_I[3];
67 2 if(!SetTV_Module(JS6B2121M_WRITE,buf_eeprom,4))
68 2 {
69 3 TV_mode=modeflag;
70 3 return(0);
71 3 }
72 2 break;
73 2 case TV_PAL_BG :
74 2 buf_eeprom[0]=JS121_PAL_BG[0];
75 2 buf_eeprom[1]=JS121_PAL_BG[1];
76 2 buf_eeprom[2]=JS121_PAL_BG[2];
77 2 buf_eeprom[3]=JS121_PAL_BG[3];
78 2 if(!SetTV_Module(JS6B2121M_WRITE,buf_eeprom,4))
79 2 {
80 3 TV_mode=modeflag;
81 3 return(0);
82 3 }
83 2 break;
84 2 case TV_SECAM_L :
85 2 buf_eeprom[0]=JS121_SECAM_L[0];
86 2 buf_eeprom[1]=JS121_SECAM_L[1];
87 2 buf_eeprom[2]=JS121_SECAM_L[2];
88 2 buf_eeprom[3]=JS121_SECAM_L[3];
89 2 if(!SetTV_Module(JS6B2121M_WRITE,buf_eeprom,4))
90 2 {
91 3 TV_mode=modeflag;
92 3 return(0);
93 3 }
94 2 break;
95 2 case TV_SECAM_L1 :
96 2 buf_eeprom[0]=JS121_SECAM_L1[0];
97 2 buf_eeprom[1]=JS121_SECAM_L1[1];
98 2 buf_eeprom[2]=JS121_SECAM_L1[2];
99 2 buf_eeprom[3]=JS121_SECAM_L1[3];
100 2 if(!SetTV_Module(JS6B2121M_WRITE,buf_eeprom,4))
101 2 {
102 3 TV_mode=modeflag;
103 3 return(0);
104 3 }
105 2 break;
106 2 default:break;
107 2 }
108 1 return(1);
109 1 }
110
111
112
113 //要求一表示TV制式的全局变量:TV_mode
114 bit AdjustTV_JS6B2121(unsigned int nVal)
115 {
116 1
117 1 switch(TV_mode)
C51 COMPILER V7.20 TVMODULE 11/18/2004 17:33:50 PAGE 3
118 1 {
119 2 case TV_PAL_DK:
120 2 if(nVal<0x1004)
121 2 buf_eeprom[3]=0x01; //VL
122 2 else if(nVal<0x27C4)
123 2 buf_eeprom[3]=0x02; //VH
124 2 else if(nVal<0x4680)
125 2 buf_eeprom[3]=0x04; //UHF
126 2 else return(1);
127 2 break;
128 2 case TV_PAL_I:
129 2 if(nVal<0x0E72)buf_eeprom[3]=0x01; //VL
130 2 else if(nVal<0x27C2)buf_eeprom[3]=0x02; //VH
131 2 else if(nVal<=0x4662)buf_eeprom[3]=0x04; //UHF
132 2 else return(1);
133 2 break;
134 2 case TV_PAL_BG:
135 2 break;
136 2 case TV_SECAM_L:
137 2 if(nVal<0x07FF) //VL1 L'
138 2 {
139 3 SetMode_JS6B2121(TV_SECAM_L1);
140 3 buf_eeprom[3]=0x01;
141 3 }
142 2 else if(nVal<0x0F10)buf_eeprom[3]=0x01; //VL2
143 2 else if(nVal<=0x2AA8)buf_eeprom[3]=0x02; //UHF
144 2 else if(nVal<=0x46DC)buf_eeprom[3]=0x04; //UHF
145 2 else return(1);
146 2 break;
147 2 case TV_SECAM_L1:
148 2 if(nVal<0x07FF) //VL1 L'
149 2 buf_eeprom[3]=0x01;
150 2 else if(nVal<0x0F10)
151 2 {
152 3 SetMode_JS6B2121(TV_SECAM_L);
153 3 buf_eeprom[3]=0x01;
154 3 }
155 2 else if(nVal<=0x2AA8)
156 2 {
157 3 SetMode_JS6B2121(TV_SECAM_L);
158 3 buf_eeprom[3]=0x02;
159 3 }
160 2 else if(nVal<=0x46DC)
161 2 {
162 3 SetMode_JS6B2121(TV_SECAM_L);
163 3 buf_eeprom[3]=0x04;
164 3 }
165 2 else return(1);
166 2 break;
167 2 default:
168 2 break;
169 2 }
170 1 buf_eeprom[0]=(unsigned char)(nVal>>8);
171 1 buf_eeprom[1]=(unsigned char)(nVal&0x00FF);
172 1 buf_eeprom[2]=0xC8;
173 1 buf_eeprom[4]=0xD8;
174 1 buf_eeprom[5]=0x60;
175 1 return(SetTV_Module(JS6B2121H_WRITE,buf_eeprom,6));
176 1 }
177
178
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -