亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? m8hv04_pwm_hf.c

?? AVR MEGA8 伺服電機(jī)脈沖發(fā)生器程序,用PWM方式發(fā)出連續(xù)變頻的脈沖,可控制啟動(dòng)速度,加減速度,最高速度等參數(shù),還有回零功能.SPI控制接口.帶仿真PROTEUS文件
?? C
字號(hào):
#define TestSteps 8000
#define SPIendMark 1
//使用FASTPWM輸出脈沖,脈沖寬度由T1PulseWidth決定
//脈沖寬度=T1PulseWidth * 0.125 us
#define T1PulseWidth 100
//HomeSpeed 定義HOME動(dòng)作時(shí)的轉(zhuǎn)速,>80
#define HomeSpeed 100
//Msteps_home_SP 定義HOME動(dòng)作最大運(yùn)動(dòng)步數(shù),比每圈脈沖數(shù)相等
#define Msteps_home_SP 1000
#include <iom8v.h>
#include <macros.h>
//ISARM pro
#define OUTQN0OFF PORTC|=0x01       //for 
#define OUTQN0ON PORTC&=~0x01
#define OUTQN1OFF PORTC|=0x02       //For 
#define OUTQN1ON PORTC&=~0x02
#define OUTQN1Pulse PORTC^=0x02

#define OUTQN2OFF PORTC|=0x04      //For 
#define OUTQN2ON PORTC&=~0x04
#define OUTQN2Pulse PORTC^=0x04
#define OUTQN3OFF PORTC|=0x08      //For 
#define OUTQN3ON PORTC&=~0x08
#define OUTQN3Pulse PORTC^=0x08

// motor 方向
#define OUTmotorDirCW PORTB&=~0x01
//順時(shí)針
#define OUTmotorDirCCW PORTB|=0x01
#define OUTmotorDirPU PORTB^=0x01

// made pulse
#define OUTmotorPulse PORTB^=0x02
#define OUTmotorPulseON PORTB&=~0x02
#define OUTmotorPulseOFF PORTB|=0x02

//INPUT Define
//Home PD2
#define INhomeSen 0x02

#define DInput00 (PIND&0x02)
#define DriverRDY (PIND&0x04)
#define DInput02 (PIND&0x08)
#define DInput03 (PIND&0x10)

#define MCaddress 91
#define Com_MoveDF 81
#define Com_HomeDF 71
#define Com_StopDF 85
//////////////////////////////

unsigned int Timer1Set[200];	

unsigned int T1cSet;

///SPI
unsigned char RecTemp=0;
unsigned char SenTemp=5;
unsigned char SPI_Work=0;//spi staus
unsigned char SPI_Index=0;
unsigned char SPI_Index_Max=7;
unsigned char SPI_RecvBuf[8];
unsigned char SPI_TranBuf[8]={91,0,0,0,0,0,0,0};

unsigned char MCC_RecvBuf[8]; //馬達(dá)控制器接收緩沖區(qū)
unsigned char MCC_TranBuf[9]={91,0,0,0,0,0,0,0};//馬達(dá)控制器發(fā)送緩沖區(qū)


//MC control
unsigned char MC_Command=0;
unsigned int Target_POS=0;
unsigned int Old_POS=0;
unsigned int Now_POS=0;
unsigned int Move_Speed;
unsigned int PPsteps=0;

unsigned char MV_Step=0;
unsigned char MC_RDY=0;
unsigned char STATUS;
unsigned char HomeOK;   //1:已找到HOME位
unsigned int TC1V0;   //T1的值
unsigned int PosNow=0;//當(dāng)前位置
	
	
	//unsigned int T1cSet;        //計(jì)數(shù)初值	
	unsigned int Home_TC1V0_SP=300; //Home計(jì)數(shù)初值setpoint	
	unsigned int Msteps_Total;//總運(yùn)動(dòng)步數(shù)setpoint
	unsigned int AccSteps;  //變速需要的步數(shù)
	unsigned char AccSL=10;  //變速持續(xù)步數(shù)
	unsigned char AccTmax;  //變速次數(shù)
	unsigned char AccTC;         //變速計(jì)數(shù)器
	unsigned int Nmin=200; //最低轉(zhuǎn)速
	unsigned int Nmax=2000; //最高轉(zhuǎn)速
    unsigned char AccN=20; //變轉(zhuǎn)速
unsigned int AccStepEnd;  //加速結(jié)束時(shí)步數(shù)
unsigned int DccStepStart; //減速結(jié)束時(shí)步數(shù)	
	





void watchdog_init(void)
     {
	   WDR();
	   WDTCR=0x0F ;
	 }
	 
void Delay_1ms(void)
	{
	unsigned int i;

	for (i = 1; i<1140; i++)
		
			;
	}

void delayXms(unsigned int n)
     {
	   unsigned int i=0;
	   while(i<n)
	     {
		  Delay_1ms();
		  i++;
		 }
	 }
	 
	 
void port_init(void)
     {
	 // PORTA=0xF0;    //PA set to 1
	 // DDRA=0xF0;     //PA0-PA3:ADC PA4-PA6:KL0-KL2(OUT)
	                 //PA7:LCD-E  (OUTPUT)
					 
	  PORTB=0xff;    //PB set to 1
	  DDRB=0x13;     //PB0:DIR PB1:PULSE
	                 //PB2:SS PB3:MOSI PB4:MISO PB5:SCK
					 
	  PORTC=0xFF;    //PC set to 1
	  DDRC=0x0F;     //PC0-PC3:Q0-Q3
	      
	  PORTD=0xFF;    //PD set to 1
	  DDRD=0x00;     //PD0:RXD PD1:TXD PD2:DI0 PD3:DI1
	                 //PD4:DI2  PD5:DI3 
	  //OUTDEON;
	  
	SFIOR&=~(1<<PUD);  //OPEN UP LINK
	//MCUCR|=(1<<ISC11); //Down edge int1
	//GICR=(1<<INT1); //enable INT1
	  
	  delayXms(10); //delay 1s
	 }
	
void SPI_slaveInit(void)
     {
	  SPI_TranBuf[0]=MCaddress;
	  SPI_TranBuf[7]=SPIendMark;
	  SPDR=SPI_TranBuf[0];
	  SPCR=0xC1;
	 }
///////////////Timer init	 
void timer_init(void)
     {
	 /////timer0
	//TCCR0=0x00;    //stop T1	TCCR0=3; 1/64 TCNT0=125
	//TCNT0=125;
	//TIMSK|=(1<<TOIE0);   //enable T1 INT	 
    ////Timer1
	TCCR1B=0x00;    //stop T1	
	OCR1AH=0x00;    // no A match
	OCR1A=T1PulseWidth;
	//OCR1BH=0x00;    // no B match
	OCR1BL=0x00;
	TCCR1A=0x00;	
	//TCCR1A|=(1<<COM1A0);
	TCCR1A|=((1<<COM1A1)|(1<<WGM11));
	TCCR1B|=((1<<WGM12)|(1<<WGM13));
	TIMSK|=(1<<TOIE1);   //enable T1 INT	
	 }	 	 
	
#pragma interrupt_handler SPI_stc_isr:11
  void SPI_stc_isr(void)
     {
	  unsigned char i,summ;
	  unsigned int eev;
	   SPI_RecvBuf[SPI_Index]=SPDR;	   
	   SPDR=SPI_TranBuf[SPI_Index+1];
	   if(SPI_RecvBuf[0]==MCaddress)
	     {
	      SPI_Index++;
		  SPI_Work=1;  //spi is working
		  }
	   else
	     {
	      SPI_Index=0;
		  SPI_Work=0;  //spi stop
		  
		 } 
	   if(SPI_Index>SPI_Index_Max)
	     {
		  SPI_Index=0;
		  SPI_Work=0; //spi stop
		  SPDR=SPI_TranBuf[0];  //ready for recive
		  if(SPI_RecvBuf[1]>70 && MC_RDY==1 &&SPI_RecvBuf[7]==SPIendMark) 
		    {
			  summ=0;
		     for(i=1;i<6;i++)
			   {
			    summ=summ+SPI_RecvBuf[i];
			   }
			  if(summ==SPI_RecvBuf[6])
			   {
			    //OUTQN1ON;
			    SPI_TranBuf[3]=SPI_RecvBuf[2];
			    SPI_TranBuf[4]=SPI_RecvBuf[3];
			    Old_POS=Target_POS;
			    eev=SPI_RecvBuf[2];
	            eev=(eev<<8)+SPI_RecvBuf[3];
			    Target_POS=eev;
			    //Target_POS=100;
			    eev=SPI_RecvBuf[4];
	            eev=(eev<<8)+SPI_RecvBuf[5];
			    Move_Speed=eev;
			    MC_Command=SPI_RecvBuf[1];
			    SPI_RecvBuf[1]=0;
			    //SPDR=SPI_TranBuf[0];  //ready for recive
			   }
			 
			}//if(SPI_RecvBuf[1]>70  ) && MC_RDY==1
		 }
	 }//void SPI_stc_isr(void)
	
unsigned char HomeStop=1;
unsigned char KeepCR=0;
#pragma interrupt_handler timer1_ovf_isr:9
  void timer1_ovf_isr(void)
    {	
	   
	  
	  ICR1=T1cSet;	  //ICR1不能過(guò)小	  
	   PPsteps++;	 
	   OUTQN3Pulse;	   
	  
	   if(PPsteps==Msteps_Total)	
	    {		 
		 TCCR1B&=0xF8;     //Stop T1
		 MC_RDY=1;
		 PPsteps=0;
		 HomeStop=1;
		}//if(PPsteps==Msteps_Total)
	  KeepCR++;
	  if(!HomeOK)
	    {
		  if(!(PIND & INhomeSen))
		   {
		     TCCR1B&=0xF8;     //Stop T1
			 HomeStop=1;
		   }//if(!(PIND & INhomeSen))
		}
}//void timer1_ovf_isr(void)

void move_control(void)
 {
   if(PPsteps<AccStepEnd)
   //if(PPsteps<126)
     {
	  if(KeepCR>AccSL)
	    {
		 KeepCR=0;
		 AccTC++;
		 T1cSet=Timer1Set[AccTC];
		 
		}
	 }//if(PPsteps<AccStepEnd)
   else
     {
	 OUTQN2ON;
	  
	  if(PPsteps>DccStepStart)
	// if(PPsteps>875)
	    {
		 OUTQN2OFF;
		 
		 
		 if(KeepCR>AccSL)
	    {
		if(AccTC>0)
		 AccTC--;
		T1cSet=Timer1Set[AccTC];
		 KeepCR=0;
		 
		 
		}//if(KeepCR>AccSL)
		}//if(PPsteps>DccStepStart)
	 }//else
 }//void move_control(void)


void SPI_AnswerPOS(unsigned int aPOS)
     {
	  unsigned int eev;
	  unsigned char edh;
	  unsigned char edl;
	  edh=(aPOS>>8);
      edl=aPOS;
	  SPI_TranBuf[3]=edh;
	  SPI_TranBuf[4]=edl;
	 }
void MotorStart_Init(void)
   {
         
         MC_RDY=0;
		 SPI_TranBuf[2]=MC_RDY;
	     MC_Command=0;				     
		 PPsteps=0;
		 SPI_AnswerPOS(Old_POS);
   }//void MotorStart_Init(void)
   

 
unsigned int CalcT1cSet(unsigned int NSP)
 {
  return (480000/NSP-1);  //1.8度
  
  
 }  

void ACC_calc(void) 
{
 unsigned char i=0;
 unsigned int Nnowc;
  unsigned int HalfSteps;
 Move_Speed=6000;
 if(Move_Speed>Nmax)
    Move_Speed=Nmax;
 AccTmax=(Move_Speed-Nmin)/AccN;  //計(jì)算變速次數(shù)
 ////設(shè)置TIMER1的植
 //for( i=0;i<45;i++)
     //Timer1Set[i]=5000;
 
 Nnowc=Nmin;
 for(i=0;i<(AccTmax+1);i++)
    {	 
	 Timer1Set[i]=CalcT1cSet(Nnowc);
	 //CalcT1cSet(Nnowc);
	 //Timer1Set[i]=TSS;
	 Nnowc=Nnowc+AccN;
	}// for(i=0 to AccTmax)
//計(jì)算變速所需的步數(shù)

 HalfSteps=Msteps_Total/2;
 AccStepEnd=(AccTmax+1) * AccSL  ; 
 if(AccStepEnd>HalfSteps)  //總步數(shù)太小
   {
    
	DccStepStart=HalfSteps+AccSL;
	
    if(Msteps_Total<AccSL*3)
	  {	   
	   DccStepStart=Msteps_Total;   
	  }//if(Msteps_Total<AccSL*3)
	AccStepEnd=Msteps_Total-DccStepStart;
	}//if(AccSteps>Msteps_Total)
 else  //步數(shù)足夠多
   {    
    DccStepStart=Msteps_Total-AccStepEnd-AccSL;
   }//else
 T1cSet=Timer1Set[0];
}//void ACC_calc(void)   

 
void MoveFun(void)
{
    unsigned int TarposStep;
	//STEPcode=10+PosID;
	  TarposStep=Target_POS;
	if(TarposStep != Old_POS)
	 {  
	  if(TarposStep>Old_POS)
	    {
		 Msteps_Total=TarposStep-Old_POS;//總運(yùn)動(dòng)步數(shù)
		 OUTmotorDirCCW;        //正向
		}//if Tar
	  else
	    {
		 Msteps_Total=Old_POS-TarposStep;//總運(yùn)動(dòng)步數(shù)
		 OUTmotorDirCW;
		}
	  	Delay_1ms();	   
	  ACC_calc();	 
	  //TCNT1=T1cSet;         //第一脈沖	在ACC_calc()中付初值
	  ICR1=T1cSet;
	  AccTC=0;             //Timer1Set[]下標(biāo)計(jì)數(shù)器,move_control()中用
	  //TCCR1B=0x01;     //start T1, 8M  0.125us
	  TCCR1B|=0x1;     //start T1, 8M  0.125us		
	}//IF
	else
		 MC_RDY=1;   
}	// void MoveFun(void)
  
 
  
 unsigned int DelayCR=0; 
 
void main()
	{
	//delayXms(500); 
	port_init(); //IO初始化	
	
	timer_init();
	T1cSet=1000;
	TCNT1=T1cSet; 	
	SPI_slaveInit();
	SEI();	
	delayXms(100); 
	MV_Step=15;
	//MC_Command=81;
	Move_Speed=0;
	Target_POS=0;
	MC_RDY=1;
	//SPI_TranBuf[1]=MCaddress;
	SPI_TranBuf[2]=MC_RDY;
	
	///////
	Old_POS=0;
	Target_POS=TestSteps;
while(1)
  {
   switch(MV_Step)
    {
     case 10:  //home
   	  if(MC_Command==Com_HomeDF)//HOME
	    {
		 OUTQN0ON;
		 HomeOK=0;
		 MotorStart_Init();  //redy for start move	
		 T1cSet=CalcT1cSet(HomeSpeed);
		 ICR1=T1cSet;
		 Msteps_Total=Msteps_home_SP;
		 MV_Step=60;
		 HomeStop=0;
		 TCCR1B|=0x1;     //start T1, 8M/8  1us
	    }//if(MC_Command==Com_HomeDF)
	  break;
	  case 60:  //home
	     if(MC_RDY==1)
		   {
		    MV_Step=10;   //Home finish not OK!
			OUTQN0OFF;    //關(guān)閉驅(qū)動(dòng)器
			HomeStop=0;
			break;
		   }//if(MC_RDY==1)
	     if(HomeStop==1)
		   {
		     
			 delayXms(10);
			 if(!(PIND & INhomeSen))
		      {		       
			   Target_POS=0;	
		       MC_RDY=1;
		       PPsteps=0;
			   HomeOK=1;
			   MV_Step=15;   //Home finish OK
		      }//if(!(PIND & INhomeSen))
			 else //research
			  {
			    HomeStop=0;
			    TCCR1B|=0x1;
			  }
		   }//  if(!(PIND & INhomeSen))
		 
	  break;
	  case 15:
   	  //if(MC_Command==Com_MoveDF && HomeOK==1)
	    {
		 //OUTQN2ON;
		 HomeOK=1;///////////
		 MotorStart_Init();  //redy for start move
		 OUTQN0ON;           //Enable motor driver
		 MoveFun();		
		 MV_Step=20;
		// TCCR1B=0x02;     //start T1, 8M/8  1us
	    }
	  break;
	
	case 20:	   
	   
		 //OUTQN2Pulse;
		 move_control();
	    
	   if(MC_RDY==1)
	     {
		  SPI_AnswerPOS(Target_POS);
	      //MV_Step=15;
		  MV_Step=50;
		  DelayCR=0;
		 // OUTQN3ON;
		 }
	break;
	case 50://測(cè)試程序
	     Delay_1ms();	 
	     DelayCR++;
		 if(DelayCR>5000)
		   {
		    if(Old_POS>0)
			  {
		       Old_POS=0;
	           Target_POS=TestSteps;
		       }//if(Old_POS>0)
			else
			  {
			    Old_POS=TestSteps;
	           Target_POS=0;
			  }//else
			 MV_Step=15;
		   }//if(DelayCR>10000)
	break;
   }//switch(MV_Step)
   //緊急停止命令,將關(guān)閉驅(qū)動(dòng)器
   if(MC_Command==Com_StopDF)
     {
	  OUTQN0OFF;    //關(guān)閉驅(qū)動(dòng)器
	  HomeOK=0;
	  MV_Step=10;
	 }
   //HOME OK 后收到HOME命令
   if(MC_Command==Com_HomeDF)// HOME
	 {
	  MV_Step=10;
	 }
	//刷新發(fā)送緩沖區(qū)的數(shù)據(jù)
    SPI_TranBuf[2]=MC_RDY;
	SPI_TranBuf[6]=PIND;   //Get INPUT status
  
   }//while
   
}//main

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣中文字幕一区| 制服丝袜亚洲播放| 高清在线不卡av| 国产美女视频一区| 久久精品国产亚洲高清剧情介绍| 亚洲国产精品一区二区www | 中文字幕在线不卡一区二区三区| 精品国产精品一区二区夜夜嗨| 欧美挠脚心视频网站| 欧美色爱综合网| 欧美日韩中文精品| 欧美理论片在线| 欧美三级三级三级| 欧美精品一卡二卡| 这里只有精品电影| 日韩欧美专区在线| 欧美精品一区二区三区久久久 | 免费观看成人鲁鲁鲁鲁鲁视频| 婷婷久久综合九色综合伊人色| 午夜a成v人精品| 免费日韩伦理电影| 国产精品小仙女| 不卡的av中国片| 91久久精品网| 在线不卡a资源高清| 日韩视频免费直播| 久久久噜噜噜久噜久久综合| 国产婷婷色一区二区三区四区| 国产精品久久久久影院| 亚洲免费资源在线播放| 亚洲一区二区精品3399| 日韩影院精彩在线| 欧美日韩在线播放| 日韩一区二区三区免费看 | 老司机精品视频一区二区三区| 极品少妇一区二区三区精品视频| 国产成人自拍网| aaa亚洲精品| 欧美精品色一区二区三区| 日韩欧美三级在线| 国产三级一区二区| 一区二区三区精品在线| 日本中文字幕一区二区视频| 国产一区二区视频在线| 99国产欧美另类久久久精品| 欧美视频在线一区| 久久夜色精品国产欧美乱极品| 中文字幕一区二区三区精华液| 亚洲午夜电影在线| 久久99精品久久久久久国产越南| gogogo免费视频观看亚洲一| 欧美精品一卡两卡| 国产精品久线在线观看| 日韩高清中文字幕一区| 国产成人在线视频播放| 欧美亚洲动漫精品| 久久久久久97三级| 亚洲自拍偷拍av| 国产自产v一区二区三区c| 色综合中文字幕国产| 欧美日韩精品一区二区在线播放| 久久久国产午夜精品| 亚洲制服丝袜av| 国产精品一区二区不卡| 欧美剧情片在线观看| 国产精品你懂的在线欣赏| 青青国产91久久久久久 | 精品国产精品一区二区夜夜嗨| 亚洲人成人一区二区在线观看| 韩国欧美国产1区| 欧美日韩不卡视频| 亚洲手机成人高清视频| 国产乱码字幕精品高清av| 欧美亚洲禁片免费| 中文字幕亚洲一区二区av在线 | 一区二区三区欧美视频| 国产一区美女在线| 欧美男人的天堂一二区| 中文字幕一区二区三区视频| 激情综合色播五月| 51精品国自产在线| 亚洲一区二区三区视频在线播放 | 国产精品丝袜在线| 老司机精品视频导航| 欧美午夜片在线看| 亚洲欧美在线观看| 国产成人在线视频网站| 精品欧美久久久| 日韩电影在线免费看| 91成人在线观看喷潮| 国产精品久99| 国产69精品久久久久777| 日韩免费视频一区二区| 日韩精品高清不卡| 欧美日韩一卡二卡三卡| 一区二区三区 在线观看视频| 99国产欧美另类久久久精品| 国产精品青草综合久久久久99| 国产一区二区三区香蕉| 精品少妇一区二区三区在线播放| 性欧美大战久久久久久久久| 欧美三级三级三级| 亚洲国产欧美一区二区三区丁香婷| 99久久综合狠狠综合久久| 国产精品女主播av| 成人av资源在线观看| 国产精品女同互慰在线看| 成人精品在线视频观看| 欧美激情综合五月色丁香| 国产精品系列在线播放| 国产亚洲精品福利| 成人视屏免费看| 国产欧美日韩综合| 成人精品国产一区二区4080| 国产精品美女久久久久久久| 成人国产电影网| 亚洲欧美日韩国产一区二区三区 | 91精品国产综合久久久蜜臀粉嫩| 天天免费综合色| 欧美一级国产精品| 激情六月婷婷久久| 国产日韩精品视频一区| 波多野结衣欧美| 亚洲精品免费在线| 欧美日韩国产美| 久久99精品国产.久久久久久| 欧美精品一区二区三区在线 | 欧美手机在线视频| 欧美综合欧美视频| 日韩不卡一区二区| 久久久无码精品亚洲日韩按摩| 成人激情小说网站| 亚洲成a人v欧美综合天堂下载 | jlzzjlzz亚洲日本少妇| 一区二区三区在线高清| 欧美一区二区三区在线观看视频| 蜜臀91精品一区二区三区| 国产亚洲综合性久久久影院| k8久久久一区二区三区 | 99精品国产99久久久久久白柏 | 91在线porny国产在线看| 亚洲一本大道在线| 日韩三级中文字幕| 波多野洁衣一区| 天天色综合成人网| 国产亚洲综合在线| 91电影在线观看| 国产一区二区三区四区五区入口| 中文字幕一区二区三区在线观看| 欧美日本一道本| 国产精品88av| 亚洲国产美女搞黄色| 国产无一区二区| 欧美日韩一区久久| 国产a精品视频| 亚洲综合成人在线视频| 精品噜噜噜噜久久久久久久久试看| 成人毛片老司机大片| 日韩和欧美一区二区三区| 国产成人在线观看| 一区二区三区.www| 精品久久久久香蕉网| 91玉足脚交白嫩脚丫在线播放| 蜜桃av一区二区在线观看| 亚洲欧美日韩在线不卡| 精品99一区二区| 欧美天堂亚洲电影院在线播放 | 精品美女在线播放| 91精品福利在线| 国产成人啪午夜精品网站男同| 午夜日韩在线电影| 国产精品欧美一区喷水| 日韩色在线观看| 欧美午夜一区二区三区免费大片| 粉嫩13p一区二区三区| 美女看a上一区| 亚洲一级二级在线| 国产精品久久久一本精品| 精品国产一区久久| 欧美日韩色一区| 色乱码一区二区三区88| 国产成人av电影在线播放| 免费观看30秒视频久久| 亚洲香肠在线观看| 亚洲欧美日韩电影| 国产精品国产精品国产专区不片| 精品国产免费一区二区三区香蕉| 欧美日韩精品系列| 在线观看亚洲专区| 99免费精品在线观看| 粉嫩一区二区三区性色av| 国产露脸91国语对白| 麻豆一区二区三| 欧美高清视频不卡网| 在线观看日韩av先锋影音电影院| 99久久精品情趣| 成人免费观看av| 懂色av中文字幕一区二区三区| 国产乱码精品一品二品| 加勒比av一区二区|