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

📄 saa7120.c

📁 视频编码芯片SAA7120驱动程序模块
💻 C
字号:
#include"reg51.h"
sbit Led1=P1^7;
sbit Led2=P3^5;
sbit Led3=P3^4;
sbit Led4=P3^3;
sbit Led5=P3^2;
sbit Led6=P3^1;

sbit SDA=P1^0;
sbit SCL=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;
sbit key4=P3^7;
sbit A4052=P1^5;
sbit B4052=P1^4;
sbit Set4053=P1^6;

unsigned char code pal[128]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x7D,0xAF,0x23,0x2e,0x2e,
0x00,0x06,0x2F,0xCB,0x8A,0x09,0x2A,0x00,0x00,0x00,0x00,0x20,0x36,0x15,0x80,0x00,
0x80,0xe8,0x10,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x1F,0x40,0x00,0x00,0x00

/*0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x21,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x7D,0xAF,0x23,0x35,0x35,
0x00,0x06,0x2F,0xCB,0x8A,0x09,0x2A,0x00,0x00,0x00,0x00,0x20,0x01,0x30,0xa0,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
*/};

unsigned char code ntsc[128]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x76,0xA5,0x2a,0x2e,0x2e,
0x00,0x15,0x3F,0x1f,0x7c,0xf0,0x21,0x00,0x00,0x00,0x00,0x20,0x26,0x15,0x80,0x00,
0x80,0xe8,0x10,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x1F,0x40,0x00,0x00,0x00};

bit write_reg(unsigned char sla,unsigned char suba,unsigned char c);
bit IRcvStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no);
bit ISendStr(unsigned char sla,unsigned char suba,unsigned char *s,unsigned char no);

//----------5ms-delay-----------*
void delay_5ms()
{
	unsigned int k;
	for(k=0;k<1000;k++)
		;
}

void Dly(unsigned char i)	     					/*延时*/
{
	unsigned char j,k;
	for(k=0;k<i;k++)
	{
	for(j=0;j<200;j++);
	}
}
void main(void)
{

	unsigned char i;unsigned char g;unsigned char *mm;
	bit m=0,n=0,p=0;
	unsigned char status[3];

  
	for(i=0;i<3;i++)
	{
		Led1=0;Led2=1;Led3=1;Led4=1;Led5=1;Led6=1;Dly(2000);
		Led1=1;Led2=0;Led3=1;Led4=1;Led5=1;Led6=1;Dly(2000);
		Led1=1;Led2=1;Led3=0;Led4=1;Led5=1;Led6=1;Dly(2000);
		Led1=1;Led2=1;Led3=1;Led4=0;Led5=1;Led6=1;Dly(2000);
		Led1=1;Led2=1;Led3=1;Led4=1;Led5=0;Led6=1;Dly(2000);
		Led1=1;Led2=1;Led3=1;Led4=1;Led5=1;Led6=0;Dly(2000);
	}

//******************************************************初始设置


Led1=0;//Led2=1;Led3=0;Led4=1;Led5=0;Led6=1;
//A4052=0;B4052=0;Set4053=1;
//	goto PAL;
	IRcvStr(0xa0,0,status,3);Dly(50);

	if(status[2]==0)
		{Set4053=0;Led2=0;p=1;}
		else {Set4053=1;Led2=1;p=0;}
	if(status[1]==0)
		{A4052=1;B4052=0;Led3=1;Led4=0;n=1;}
		else {A4052=0;B4052=0;Led3=0;Led4=1;n=0;}  
	if(status[0]==0)goto NTSC;else goto PAL;

//*****************************************************************
	for(;;)
	{
		key2=1;key3=1;key4=1;

sw:
	
		if(~key4)
		{
			delay_5ms();
			if(~key4)
			{
				while(~key4);		
				//Led1=0;Led2=1;Dly(2000);Led1=1;Led2=0;Dly(2000);Led2=1;
				//RES7121=0;Dly(50);RES7121=1;
				Dly(255);
				
				if(m==1)
				{
PAL:
	write_reg(0xa0,0,1);Dly(50);m=0;Led5=0;Led6=1;


	for(i=0;i<128;i++){write_reg(0x88,i,pal[i]);Dly(10);}


			Dly(1000);

			g=IRcvStr(0x8a,0,mm,1);//if(g==0)Led3=0;
			Dly(200);
			write_reg(0x8a,0x00,0x03);Dly(50);
			write_reg(0x8a,0x01,0xc0);Dly(50);
			write_reg(0x8a,0x02,0x00);Dly(50); //相位

			goto sw;


			
			}

			if(m==0)
			{

NTSC:	write_reg(0xa0,0,0);Dly(50);m=1;Led5=1;Led6=0; 

 	for(i=0;i<128;i++){write_reg(0x88,i,ntsc[i]);Dly(10);}
	
			Dly(1000);
			g=IRcvStr(0x8a,0,mm,1);//if(g==0)Led3=0;
			Dly(200);
			write_reg(0x8a,0x00,0x03);Dly(50);
			write_reg(0x8a,0x01,0x00);Dly(50);
			write_reg(0x8a,0x02,0x1f);Dly(50); //相位


			goto sw;
			}
			}
		}

		if(~key3)
		{
			delay_5ms();
			if(~key3)
			{
				while(~key3);
			if(n==0){A4052=1;B4052=0;Led3=1;Led4=0;n=1;write_reg(0xa0,1,0);Dly(50);goto sw;}
			if(n==1){A4052=0;B4052=0;Led3=0;Led4=1;n=0;write_reg(0xa0,1,1);Dly(50);goto sw;}
			}
		}

		if(~key2)
		{
			delay_5ms();
			if(~key2)
			{
				while(~key2);
			if(p==0){Set4053=0;Led2=0;p=1;write_reg(0xa0,2,0);Dly(50);goto sw;}
			if(p==1){Set4053=1;Led2=1;p=0;write_reg(0xa0,2,1);Dly(50);goto sw;}
			}
		}
	}
}

⌨️ 快捷键说明

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