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

📄 video_4360.c

📁 4360音频切换
💻 C
📖 第 1 页 / 共 2 页
字号:
            		break;	
        			}
                if(count_mid4>SOUND_COUNT)		//被告
        			{
                    input_state=4;
                    //send_state();
                    count_bg=FG_OUT;					
            		break;	
        			}
                if(count_mid5>SOUND_COUNT)		//嫌疑人
        			{
                    input_state=5;
                    //send_state();
                    count_bg=FG_OUT;					
            		break;	
        			}
                if(count_mid6>SOUND_COUNT)		//证人
        			{
                    input_state=6;
                    //send_state();
                    count_bg=FG_OUT;					
            		break;	
        			}
                if(count_mid7>SOUND_COUNT)		//取证
        			{
                    input_state=7;
                    //send_state();
                    count_bg=FG_OUT;					
            		break;	
        			}
            	break;	
        		}	
            case 3: //JA5_6 	原告
        		{
                if(count_mid3>SOUND_COUNT)
        			{
                    count_bg=FG_OUT;	
        			}
        		else
        			{
                	count_bg--;
                    if(count_bg==0)
        				{
                        input_state=0;	
                    	//send_state();
                		}							
            		}				
            	break;	
            	}				
            case 4: //JA7_8  	被告
        		{
                if(count_mid4>SOUND_COUNT)
        			{
                    count_bg=FG_OUT;	
        			}
        		else
        			{
                	count_bg--;
                    if(count_bg==0)
        				{
                        input_state=0;	
                    	//send_state();
                		}							
            		}				
            	break;	
        		}
            case 5: //JA9  		嫌疑人
        		{
                if(count_mid5>SOUND_COUNT)
        			{
                    count_bg=FG_OUT;	
        			}
        		else
        			{
                	count_bg--;
                    if(count_bg==0)
        				{
                        input_state=0;	
                    	//send_state();
                		}							
            		}				
            	break;	
        		}
            case 6: //JA10  	证人
        		{
                if(count_mid6>SOUND_COUNT)
        			{
                    count_bg=FG_OUT;	
        			}
        		else
        			{
                	count_bg--;
                    if(count_bg==0)
        				{
                        input_state=0;	
                    	//send_state();
                		}							
            		}				
            	break;	
        		}
            case 7: //JA11  	取证
        		{
                if(count_mid7>SOUND_COUNT)
        			{
                    count_bg=FG_OUT;	
        			}
        		else
        			{
                	count_bg--;
                    if(count_bg==0)
        				{
                        input_state=0;	
                    	//send_state();
                		}							
            		}				
            	break;	
        		}
            default:
        		{
            	}					
        	}	
    		
    		
    		
    		
    		
    		
        }		
    }
count_mid1=0;
count_mid2=0;
count_mid3=0;
count_mid4=0;
count_mid5=0;
count_mid6=0;
count_mid7=0;
}

/**********************IIC总线处理程序**********/
/*
void I2C_handle_write(void)
{

	input_state = 0x09;//测试

	i2c_start();	//发送起始位
	IICSendByte(0x02);;//发送从器件地址+W
	//while(i2c_sack());	//应答位检查,正常返回0,不正常返回1
							//做了修改,防止死机处理,程序如下
   	//IICSendByte(input_state);//发送数据:input_state
	if(!i2c_sack())
		{
			IICSendByte(input_state);
			OK_i2cflag=1;
			if(!i2c_sack())
				{
					OK_i2cflag=1;
				}
			else OK_i2cflag=0;
		}
		else OK_i2cflag=0;
	//while(i2c_sack());	//应答位检查,正常返回0,不正常返回1
 	i2c_stop();	//发送停止位


}
*/
void I2C_handle_read(void)
{
	data_i2c = 0;

	i2c_start();	//发送起始位
	IICSendByte(0x03);//发送从器件地址+R
	//while(i2c_sack());	//应答位检查,正常返回0,不正常返回1
							//做了修改,防止死机处理,程序如下
	if(!i2c_sack()) 
	{
	data_i2c = IICReceiveByte();//接收从器件发送的数据
	OK_i2cflag=1;//i2C操作成功标志

	}
	else
	{
		OK_i2cflag=0;
	}
	IICNoAck();	//发送反态应答位
 	i2c_stop();	//发送停止位

}

void I2C_cmd_4460(void)
{
	if(data_i2c&0x80)  //命令接收正确,且发生更新
	 {
				data_i2c_bak= data_i2c;//更新备用数据

			if(data_i2c&0x40) //手动
				{
					//监控频道 D2D1D0(data_i2c)
					data_i2c_test = data_i2c&0x07;
					set_4460_A(data_i2c_test);//打开A0,A1对应输出
				

					//录像频道 D5D4D3(data_i2c)
				
					data_i2c_test = (data_i2c>>3)&0x07;//连接Vin?
					set_4460_B(data_i2c_test);//打开A0,A1对应输出
			}
			else				//自动
				{
						//监控频道 D2D1D0(data_i2c)
						data_i2c_test = ((data_i2c&0x07)<<4)&0x70;//连接Vin?
					set_4460_A(data_i2c_test);//打开A0,A1对应输出
					//录像频道 靠音频
				}
	 }
}

void I2C_data_handle(void)
{

if(OK_i2cflag) //I2C 操作正确
      {
			if(data_i2c != data_i2c_bak)//数据发生更新
				{
					I2C_cmd_4460();
				}	
	  }

}

/*
void I2C_data_handle_new(void)
{

if(OK_i2cflag) //I2C 操作正确
      {
		if(data_i2c&0x80)  //命令接收正确,数据发生更新
	 	  {

			if(data_i2c&0x40) //手动
				{
					//监控频道 D2D1D0(data_i2c)
					VA0=0;
					VA1=0;//定址00
					//cmd_4460(0xd0); //全关
					test_4460();
					cmd_4460(0xB0); //关闭A0,A1对应输出
					cmd_4460(((data_i2c&0x07)<<4)&0x70); //连接Vin?
					cmd_4460(0xC0); //打开A0,A1对应输出
					delay(10);
					//录像频道 D5D4D3(data_i2c)
					VA0=1;
					VA1=0;//定址01
					cmd_4460(0xB0); //关闭A0,A1对应输出
					cmd_4460(((data_i2c&0x38)<<1)&0x70); //连接Vin?
					cmd_4460(0xC0); //打开A0,A1对应输出
						delay(10);
				}
			else				//自动
				{
						//监控频道 D2D1D0(data_i2c)
					VA0=0;
					VA1=0;//定址00
					cmd_4460(0xB0); //关闭A0,A1对应输出
					cmd_4460(((data_i2c&0x07)<<4)&0x70); //连接Vin?
					cmd_4460(0xC0); //打开A0,A1对应输出
					//录像频道 靠音频
				}
	 	  }
	  }

}
*/

void I2C_handle(void)
{	

	//I2C_handle_write();
	I2C_handle_read();
    ///data_i2c = 0xC4;//ADDED CODE, FOR DEBUG
	//data_i2c = 0xDC;//ADDED CODE, FOR DEBUG
	I2C_data_handle();
	//I2C_data_handle_new();

}

void ISR_time1(void) interrupt 3 
{
	
	TR1=0;
	TH1=0xD8;
	TL1=0xF0;
	if(count_i2c < I2C_COUNTSUM) 
		count_i2c++;
	else
	{

		EA=0;
		count_i2c = 0;
		I2C_handle();//IIC总线处理程序
		//delay();
	 	EA=1;
		
	}

	TR1=1;

}



void init_io(void)
{
WDTCN=0xDE;
WDTCN=0xAD;	//关看门狗
OSCICN=0x06;	//用片内时钟,8M Hz

PRT0CF=0x0F0;
PRT1CF=0x0E0;
PRT2CF=0x0F0;	//P2低4位推挽输出。

IT0=1;
EX0=1;
PX0=1;

TMOD=0x01;
TH0=-(CHECK_TIME*FOSC/12)/256;
TL0=-(CHECK_TIME*FOSC/12)%256;
ET0=0;
TR0=0;		//配置TIME0

TMOD=TMOD|0x10;
TH1=0xD8;
TL1=0xF0;
ET1=1;
TR1=1;		//配置TIME1


}
void main(void)
{
	init_io();
	init_4460();
	
	EA=1;
	cmd_4460(0xd0); //全关

	//test_4460();
	//set_4460_A(3);
	//set_4460_B(4);


	while(1);

/*
while(1)
	{
	if(!MID1)
		{
		if(count_mid1!=0xff)count_mid1++;
		}
	if(!MID2)
		{
		if(count_mid2!=0xff)count_mid2++;
		}
	if(!MID3)
		{
		if(count_mid3!=0xff)count_mid3++;
		}
	if(!MID4)	
		{
		if(count_mid4!=0xff)count_mid4++;
		}
	if(!MID5)
		{
		if(count_mid5!=0xff)count_mid5++;
		}
	if(!MID6)
		{
		if(count_mid6!=0xff)count_mid6++;
		}
	if(!MID7)
		{
		if(count_mid7!=0xff)count_mid7++;
		}
//	 for(i=0;i<254;i++);
	}

*/

}

⌨️ 快捷键说明

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