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

📄 saa7114.lst

📁 NT68521源代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
 217   4                                               AUDIO_On();
 218   4                                      }
 219   3                                      flag2 &= ~BIT_0;
 220   3                                      flag2 &= ~BIT_1;
 221   3                                      flag2 |= BIT_2;
 222   3                                      SetAV_System();
 223   3                                      Timer3 = 100;
 224   3                              }
 225   2                      }
 226   1                      else if(((value & BIT_6) != 0x00) && ((flag2 & BIT_1) != 0))
 227   1                  { //change to unlocked
 228   2                              AUDIO_MUTE();  //AUDIO MUTE
 229   2                              flag1 &= ~BIT_1;                //Clear force to background
 230   2                              ForceToBackground(1);
 231   2                      }
 232   1      //      }
 233   1      }
 234          
 235          void SetAV_System(void)
 236          {
 237   1              flag1 &= ~BIT_5;
 238   1              CheckColorSystem();
 239   1              SetScalerAV();
 240   1              SetDisplayNormal();
C51 COMPILER V7.50   SAA7114                                                               03/18/2008 22:04:58 PAGE 5   

 241   1      }
 242          
 243          void CheckColorSystem(void)
 244          {
 245   1      unsigned char code tab1[]={
 246   1      //      0x09,0x29,0x01,0x31,0x21,0x11,0x59
 247   1              0x81,0x91,0xa1,0xb1,0xc1,0xd0
 248   1      //      0x01,0x11,0x21,0x31,0x41,0x51
 249   1      };
 250   1      
 251   1      unsigned char code tab2[]={
 252   1      //      0x2e,0x2e,0x2e,0x2e,0x2e,0x2e,0xae
 253   1      //      0x2e,0x2e,0x2e,0x2e,0x2e,0xae
 254   1              0x2a,0x2a,0x2a,0x2a,0x2a,0x80
 255   1      };
 256   1      
 257   1      unsigned char i,value,k;
 258   1              if((flag1 & BIT_5) != 0)
 259   1                      return;
 260   1              i = 0;
 261   1              WriteIIC_HW(SAA7114,0x0e,tab1[i]);
 262   1              WriteIIC_HW(SAA7114,0x0f,tab2[i]);
 263   1              k = 3;
 264   1              while(k != 0){
 265   2                      k--;
 266   2                      value = ReadIIC_HW(SAA7114,0x1f);
 267   2                      if((value & 0x41) != 0x01){
 268   3                              for(i=0; i<6; i++){
 269   4                                      WriteIIC_HW(SAA7114,0x0e,tab1[i]);
 270   4                                      WriteIIC_HW(SAA7114,0x0f,tab2[i]);
 271   4                                      Sleep(100);
 272   4                                      value = ReadIIC_HW(SAA7114,0x1f);
 273   4                                      if((value & 0x41) == 0x01){
 274   5                                              ColorStatus = i;
 275   5                                              break;
 276   5                                      }
 277   4                              }
 278   3                      }
 279   2              }
 280   1              if(i == 0x06){
 281   2                      i = ColorStatus;
 282   2                      WriteIIC_HW(SAA7114,0x0e,tab1[i]);
 283   2                      WriteIIC_HW(SAA7114,0x0f,tab2[i]);
 284   2                      flag1 |= BIT_5;
 285   2                      if((flag3 & BIT_2) != 0x00){
 286   3                              printf("Color system = B/W\r\n");
 287   3                      }
 288   2              }
 289   1              else{
 290   2                      flag1 &= ~BIT_5;
 291   2                      if((flag3 & BIT_2) != 0x00){
 292   3                              printf("Color system = %x\r\n",(unsigned short)i);
 293   3                      }
 294   2              }
 295   1              WriteIIC_HW(SAA7114,0x0e,tab1[i] & ~BIT_7);
 296   1              WriteIIC_HW(SAA7114,0x0e,tab1[i]);
 297   1              i = i * 2;
 298   1              if(((value & BIT_5) == 0) && ((flag2 & 0x06) == 0x04)){
 299   2      //change to 50Hz
 300   2                      flag2 &= ~BIT_2;
 301   2              }
 302   1              if(((value & BIT_5) != 0) && ((flag2 & 0x06) == 0x00)){
C51 COMPILER V7.50   SAA7114                                                               03/18/2008 22:04:58 PAGE 6   

 303   2      //change to 60Hz
 304   2                      flag2 |= BIT_2;
 305   2              }
 306   1              if((flag2 & BIT_2) != 0)
 307   1                      i++;
 308   1              switch(i){
 309   2              case 0:
 310   2              case 3:
 311   2              case 4:
 312   2              case 7:
 313   2      //PAL
 314   2                      value = ReadIIC_HW(SAA7114,0x09);
 315   2                      value &= BIT_7;
 316   2                      value |= BIT_6;
 317   2                      WriteIIC_HW(SAA7114,0x09,value);
 318   2                      value = ReadIIC_HW(SAA7114,0x0e);
 319   2                      value &= ~BIT_3;
 320   2                      WriteIIC_HW(SAA7114,0x0e,value);
 321   2                      WriteIIC_HW(SAA7114,0x0f,0x2a);
 322   2                      WriteIIC_HW(SAA7114,0x10,0x06);
 323   2                      break;
 324   2              case 1:
 325   2              case 2:
 326   2              case 5:
 327   2              case 6:
 328   2              case 9:
 329   2      //NTSC
 330   2                      value = ReadIIC_HW(SAA7114,0x09);
 331   2                      value &= BIT_7;
 332   2                      value |= BIT_6;
 333   2                      WriteIIC_HW(SAA7114,0x09,value);
 334   2                      value = ReadIIC_HW(SAA7114,0x0e);
 335   2                      value |= BIT_3;
 336   2                      WriteIIC_HW(SAA7114,0x0e,value);
 337   2                      WriteIIC_HW(SAA7114,0x0f,0x2a);
 338   2                      WriteIIC_HW(SAA7114,0x10,0x0e);
 339   2                      break;
 340   2              case 10:
 341   2      //SECAM
 342   2                      value = ReadIIC_HW(SAA7114,0x09);
 343   2                      value &= BIT_7;
 344   2                      value |= 0x1b;
 345   2                      WriteIIC_HW(SAA7114,0x09,value);
 346   2                      WriteIIC_HW(SAA7114,0x0f,0x80);
 347   2                      WriteIIC_HW(SAA7114,0x10,0x00);
 348   2                      break;
 349   2              }
 350   1      }
 351          
 352          void WritePageSAA7114(unsigned char addr1,unsigned char addr2)
 353          {
 354   1      unsigned char i,ch;
 355   1      /* start bit */
 356   1      /* transmit device */
 357   1              INTIIC1_FLG = 0xff;
 358   1              IIC1_DATA = SAA7114;
 359   1              IIC1_CLK = 0x20 | IIC_BaudRate;
 360   1              IIC1_CON = 0x00;
 361   1      /* transmit addr */
 362   1              MasterSendByte(addr1);
 363   1              for(i=0; i<16; i++){
 364   2                      ch = NTSC_AV[addr2 + i];
C51 COMPILER V7.50   SAA7114                                                               03/18/2008 22:04:58 PAGE 7   

 365   2                      MasterSendByte(ch);
 366   2              }
 367   1      /* transmit dumy data for stop bit */
 368   1              WaitTx();
 369   1      /* stop bit */
 370   1              IIC1_CLK = 0xA0|IIC_BaudRate;
 371   1      //      IIC1_CON = 0x00;
 372   1              WaitStop();
 373   1      }
 374          
 375          void SetVideoBrightness(void)
 376          {
 377   1      unsigned char value;
 378   1              value = Brightness * 2 + 28;
 379   1              WriteIIC_HW(SAA7114,0x0a,value);
 380   1              if((flag3 & BIT_2) != 0x00){
 381   2                      printf("Brightness of SAA7114 = %x\r\n",(unsigned short)value);
 382   2              }
 383   1      }
 384          void SetVideoContrast(void)
 385          {
 386   1      unsigned char value;
 387   1              value = Contrast + 14;
 388   1              WriteIIC_HW(SAA7114,0x0b,value);
 389   1              if((flag3 & BIT_2) != 0x00){
 390   2                      printf("Contrast of SAA7114 = %x\r\n",(unsigned short)value);
 391   2              }
 392   1      }
 393          void SetVideoSaturation(void)
 394          {
 395   1      unsigned char value;
 396   1              value = Saturation + 14;
 397   1              WriteIIC_HW(SAA7114,0x0c,value);
 398   1              if((flag3 & BIT_2) != 0x00){
 399   2                      printf("Saturation of SAA7114 = %x\r\n",(unsigned short)value);
 400   2              }
 401   1      }
 402          void SetVideoTint(void)
 403          {
 404   1      unsigned char value;
 405   1              value = (((unsigned short)Tint * 255 + 50) / 100) - 128;
 406   1              WriteIIC_HW(SAA7114,0x0d,value);
 407   1              if((flag3 & BIT_2) != 0x00){
 408   2                      printf("Tint of SAA7114 = %x\r\n",(unsigned short)value);
 409   2              }
 410   1      }
 411          void SetVideoSharpness(void)
 412          {
 413   1      code unsigned char SharpnessTab[]={
 414   1      //      0x0f,0x0e,0x0d,0x0c,0x0b,0x0a,0x09,0x08,0x00,0x07,0x06,0x05,0x04,0x03,0x02,0x01
 415   1              0x0b,0x0a,0x09,0x08,0x00,0x06,0x04,0x02
 416   1      };
 417   1      unsigned char value;
 418   1              value = ReadIIC_HW(SAA7114,0x09) & 0xf0;
 419   1              value |= SharpnessTab[Sharpness];
 420   1              WriteIIC_HW(SAA7114,0x09,value);
 421   1              if((flag3 & BIT_2) != 0x00){
 422   2                      printf("Sharpness of SAA7114 = %x\r\n",(unsigned short)value);
 423   2              }
 424   1      }


C51 COMPILER V7.50   SAA7114                                                               03/18/2008 22:04:58 PAGE 8   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1232    ----
   CONSTANT SIZE    =    437    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   IDATA SIZE       =      1    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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