📄 main.lst
字号:
1089 void SoundSystem_Check()
1090 {
1091 if ( (SoundEN&0x1F) == 0x00 )
1092 SoundEN = 0x1F;
1093 }
1094 */
1095 void SoundSystem_Up()
1096 {
1097 1 for(;;)
1098 1 {
1099 2 if (SIF < 4)
1100 2 SIF++;
1101 2 else
1102 2 SIF = 0;
1103 2 if ( (0x1<<SIF) & SoundEN )
1104 2 {
1105 3 if ( (Video_SYS == NTSC || Video_SYS == PALM || Video_SYS == PALN) && SIF == M )
1106 3 return;
1107 3 else if ( Video_SYS == PAL && (SIF == BG || SIF == DK || SIF == I ) )
1108 3 return;
C51 COMPILER V7.50 MAIN 12/14/2006 10:36:36 PAGE 19
1109 3 else if ( Video_SYS == SECAM && (SIF == BG || SIF == DK || SIF == L ) )
1110 3 return;
1111 3 if ( Video_SYS == NTSC443 && SIF == M )
1112 3 return;
1113 3 }
1114 2 }
1115 1 }
1116
1117 void SoundSystem_Down()
1118 {
1119 1 for(;;)
1120 1 {
1121 2 if (SIF != 0)
1122 2 SIF--;
1123 2 else
1124 2 SIF = 4;
1125 2 if ( (0x1<<SIF) & SoundEN )
1126 2 {
1127 3 if ( (Video_SYS == NTSC || Video_SYS == PALM || Video_SYS == PALN ) && SIF == M )
1128 3 return;
1129 3 else if ( Video_SYS == PAL && (SIF == BG || SIF == DK || SIF == I ) )
1130 3 return;
1131 3 else if ( Video_SYS == SECAM && (SIF == BG || SIF == DK || SIF == L ) )
1132 3 return;
1133 3 if ( Video_SYS == NTSC443 && SIF == M )
1134 3 return;
1135 3 }
1136 2 }
1137 1 }
1138 /*
1139 void ColorSystem_Check()
1140 {
1141 switch ( ColorEN )
1142 {
1143 case 0x00 :
1144 ColorEN = 0x02;
1145 case 0x02 :
1146 Video_SYS = PAL;
1147 return;
1148 case 0x01 :
1149 Video_SYS = NTSC;
1150 return;
1151 case 0x04 :
1152 Video_SYS = SECAM;
1153 return;
1154 default :
1155 ColorEN = ColorEN | 0x08;
1156 break;
1157 }
1158 if ( (0x1<<Video_SYS) & ColorEN )
1159 return;
1160
1161 Video_SYS = 3;
1162 return;
1163 }
1164 */
1165 void ColorSystem_Up()
1166 {
1167 1 for(;;)
1168 1 {
1169 2 if (Video_SYS < NTSC443)
1170 2 Video_SYS++;
C51 COMPILER V7.50 MAIN 12/14/2006 10:36:36 PAGE 20
1171 2 else
1172 2 Video_SYS = 0;
1173 2
1174 2 if ( (0x1<<Video_SYS) & ColorEN )
1175 2 return;
1176 2 }
1177 1 }
1178
1179 void ColorSystem_Down()
1180 {
1181 1 for(;;)
1182 1 {
1183 2 if (Video_SYS != 0)
1184 2 Video_SYS--;
1185 2 else
1186 2 {
1187 3 Video_SYS = NTSC443;
1188 3 }
1189 2 if ( (0x1<<Video_SYS) & ColorEN )
1190 2 return;
1191 2 }
1192 1 }
1193
1194 //------------------------------------------------------------------------------
1195 // TV Subroutine
1196 //------------------------------------------------------------------------------
1197
1198 void Channel_Up()
1199 {
1200 1 BYTE chl;
1201 1
1202 1 // ScreenOFF;
1203 1
1204 1 for (chl=(Channel+1)&0x7F;chl!=Channel; chl=(chl+1)&0x7F)
1205 1 {
1206 2 if (chl > 99 )
1207 2 chl = 99;
1208 2 if ( !(TV_Skip[chl/8] & (1<<(chl%8))) )
1209 2 {
1210 3 Channel = chl;
1211 3 break;
1212 3 }
1213 2 if (chl >= 99)
1214 2 chl = 0x7F;
1215 2 }
1216 1
1217 1 if (Source_type == TV_CHL )
1218 1 {
1219 2 Show_Channel();
1220 2 Show_VideoMode();
1221 2 }
1222 1 else
1223 1 {
1224 2 S_Source_type = Source_type = TV_CHL;
1225 2 Set_SourceType();
1226 2 }
1227 1 }
1228
1229 void Channel_Down()
1230 {
1231 1 BYTE chl;
1232 1
C51 COMPILER V7.50 MAIN 12/14/2006 10:36:36 PAGE 21
1233 1 // ScreenOFF;
1234 1
1235 1 for (chl=(Channel-1)&0x7F;chl!=Channel; chl=(chl-1)&0x7F)
1236 1 {
1237 2 if (chl >= 0x7F)
1238 2 chl = 99;
1239 2 if ( !(TV_Skip[chl/8] & (1<<(chl%8))) )
1240 2 {
1241 3 Channel = chl;
1242 3 break;
1243 3 }
1244 2 }
1245 1
1246 1 if (Source_type == TV_CHL )
1247 1 {
1248 2 Show_Channel();
1249 2 Show_VideoMode();
1250 2 }
1251 1 else
1252 1 {
1253 2 S_Source_type = Source_type = TV_CHL;
1254 2 Set_SourceType();
1255 2 }
1256 1 }
1257
1258 void Set_Channel_Skip()
1259 {
1260 1 if (Skip)
1261 1 TV_Skip[Channel/8] = TV_Skip[Channel/8] | (1<<(Channel%8)) ;
1262 1 else
1263 1 TV_Skip[Channel/8] = TV_Skip[Channel/8] & (~(1<<(Channel%8))) ;
1264 1 }
1265
1266 bit Get_Channel_Skip()
1267 {
1268 1 return (TV_Skip[Channel/8] & (1<<(Channel%8)));
1269 1 }
1270
1271 void Save_Channel()
1272 {
1273 1 Save_Channel_Info();
1274 1 Save_Channel_Skip();
1275 1 }
1276
1277 void Save_Channel_Info()
1278 {
1279 1 BYTE channel_data[4];
1280 1
1281 1 channel_data[0]=Fp_Position%256;
1282 1 channel_data[1]=Fp_Position/256;
1283 1 channel_data[2]=Video_SYS|(SIF<<4);
1284 1 channel_data[3]=Fine_Turn;
1285 1
1286 1 /*
1287 1 if(cn>63)
1288 1 {
1289 1 cn-=36;
1290 1 I2C_Write(EEPROM_WRID,cn*4, 0x4, channel_data);
1291 1 }
1292 1 else
1293 1 I2C_Write(EEPROM_WRID|0x2,cn*4, 0x4, channel_data);
1294 1 Delay(2000);
C51 COMPILER V7.50 MAIN 12/14/2006 10:36:36 PAGE 22
1295 1 */
1296 1 if ( Channel <64 )
1297 1 I2C_Write(EEPROM_WRID|0x2, Channel*4, 0x4, channel_data);
1298 1 else if ( Channel <100 )
1299 1 {
1300 2 I2C_Write(EEPROM_WRID, (Channel-36)*4, 0x4, channel_data);
1301 2 }
1302 1 Delay(3000);
1303 1
1304 1 Set_Channel_Skip();
1305 1 }
1306
1307 void Save_Channel_Skip()
1308 {
1309 1 I2C_Write(EEPROM_WRID, 0x20, 0x10, TV_Skip); //Write TV skip info
1310 1 Delay(3000);
1311 1 }
1312
1313 void Load_Channel()
1314 {
1315 1 BYTE channel_data[4];
1316 1
1317 1 if ( Channel <64 )
1318 1 I2C_Read(EEPROM_WRID|0x2, Channel*4, 0x4, channel_data);
1319 1 else if ( Channel <100 )
1320 1 I2C_Read(EEPROM_WRID, (Channel-36)*4, 0x4, channel_data);
1321 1
1322 1 Fp_Position = channel_data[1]*256 + channel_data[0];
1323 1 Video_SYS = channel_data[2]&0xF;
1324 1 SIF = channel_data[2]>>4;
1325 1 Fine_Turn = channel_data[3];
1326 1
1327 1 if ( (Fp_Position < Fp_VL_Start) || (Fp_Position > Fp_UHF_End) )
1328 1 Fp_Position = Fp_VL_Start;
1329 1
1330 1 if ( SIF > L )
1331 1 SIF = BG;
1332 1
1333 1 if ( Video_SYS >= 5 )
1334 1 Video_SYS = NTSC;
1335 1
1336 1 if (Fine_Turn>0x8A || Fine_Turn<0x76)
1337 1 Fine_Turn = 0x80;
1338 1
1339 1 I2C_Read(EEPROM_WRID, 0x20, 0x10, TV_Skip); //Read TV skip info
1340 1 Skip = Get_Channel_Skip();
1341 1 }
1342
1343 void Show_Channel()
1344 {
1345 1 ScreenOFF;
1346 1
1347 1 Mute();
1348 1
1349 1 Delay(4000);
1350 1
1351 1 Load_Channel();
1352 1
1353 1 Set_CS(Video_SYS);
1354 1 Set_SIF(SIF);
1355 1 Set_DEMOD();
1356 1 Set_Fosc(Fp_Position,Fine_Turn);
C51 COMPILER V7.50 MAIN 12/14/2006 10:36:36 PAGE 23
1357 1 Delay(4000);
1358 1 Auto_Detect_T
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -