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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 89c51prodlg.cpp

?? 單片機的編程源碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
	CString str,path;
	DWORD dwLength=0;
	int i=0,k=0;
	TCHAR strbuf[32];
	HANDLE hFile;
	strbuf[2]=0;
	DWORD j=0;
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"二進制文件(*.bin)|*.bin",NULL);
	if(IDOK==dlg.DoModal())
	{ 
		 path=dlg.GetPathName();
//AfxMessageBox(path);
		 hFile = CreateFile(                   //建立并打開文件
				   path,           // open MYFILE.TXT 
               GENERIC_READ|GENERIC_WRITE,              // open for reading 
                FILE_SHARE_WRITE,           // share for reading 
                NULL,                      // no security 
                OPEN_EXISTING,             // existing file only 
                FILE_ATTRIBUTE_NORMAL,     // normal file 
                NULL);                     // no attr. template 
 
		if (hFile == INVALID_HANDLE_VALUE) 
		{ 
			AfxMessageBox("Could not open *.jmu.");   // process error 
		} 
		else
		{
			DWORD sizeH;
			DWORD sizeL=GetFileSize(hFile,           // handle to file
			&sizeH  // high-order word of file size
			);
			if(sizeL>4096)
			{
				AfxMessageBox("*.bin文件不能大于4k");
				pdlg->GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
				pdlg->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
				pdlg->GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
				pdlg->GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
				pdlg->GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);
				return 0;
			}
			ReadFile(hFile,pdlg->output, sizeL, &dwLength, NULL) ;
			if(dwLength!=sizeL)
			{
				AfxMessageBox("讀文件出錯!");
				pdlg->GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
				pdlg->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
				pdlg->GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
				pdlg->GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
				pdlg->GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);
				return 0;
			}
			FlashLength=dwLength;
			CloseHandle(pdlg->hFile1);
			pdlg->hFile1=NULL;
			str.Format("89C51PRO\r\n版本號: 1.1\r\n本軟件由桃源村軟件制作\r\n本軟件可免費使用并可任一修改源代碼,但請不要用于商業目的,\r\nE-mail:yds_086@163.com\r\n-------------------------------------------------------------------\r\n\r\n\r\nBIN文件信息:燒錄字節數%d.\r\n燒寫開始地址:0x00\r\n",FlashLength);
			pdlg->SaveCStringToFile(str);
			Sleep(1000);
			pdlg->pss->ResumeThread();
			for(DWORD ADDR=0;ADDR<=FlashLength;ADDR++)
			{
				pdlg->WriteFlash(ADDR,pdlg->output[ADDR]);
				for(i=0;i<5;i++)
				{
					for(k=0;k<3;k++)
					{
						pdlg->input[ADDR]=pdlg->ReadFlash(ADDR);
						if(pdlg->input[ADDR]==pdlg->output[ADDR])
						{
							i=23;
							k=23;
						}
					}
					if(pdlg->input[ADDR]!=pdlg->output[ADDR])
					{
	 					pdlg->WriteFlash(ADDR,pdlg->output[ADDR]);
					}
					if(i==4)
					{
						str.Format("寫地址0x%X失敗,寫數據0x%X,效驗數據0x%X\r\n",ADDR,pdlg->output[ADDR],pdlg->input[ADDR]);
						pdlg->SaveCStringToFile(str);
					}
				}
				str.Format("ADDR=0x%X,DATA=0x%X",ADDR,pdlg->input[ADDR]);
				wnd->SetWindowText(str);
				Sleep(0);
		}
		str.Format("燒錄結束:\r\n");
		pdlg->SaveCStringToFile(str);
		CloseHandle(pdlg->hFile1);
		pdlg->hFile1=NULL;
		}
		wnd->SetWindowText("燒錄結束");
	}
	pdlg->pss->SuspendThread();
	pdlg->GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
	pdlg->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
	pdlg->GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
	pdlg->GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
	pdlg->GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);
	return 0;
}
UINT WriteHEX(LPVOID pParam)//寫89C51線程
{
	CMy89c51ProDlg * pdlg=(CMy89c51ProDlg *)pParam;
	CWnd* wnd=pdlg->GetDlgItem(IDC_STATIC2);
	HEXBIN hex;
	DWORD FlashLength=0;
	CString str,path;
	DWORD dwLength=0;
	int i=0,k=0;
	TCHAR strbuf[32];
	HANDLE hFile;
	strbuf[2]=0;
	DWORD j=0;
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"十六進制文件(*.hex)|*.hex",NULL);
	if(IDOK==dlg.DoModal())
	{ 
		 path=dlg.GetPathName();
//AfxMessageBox(path);
		 UINT succ=hex.LoadHEXFile(path.GetBuffer(path.GetLength()));
		 if(succ==0)
		 {
			 AfxMessageBox("HEX文件格式錯誤");
			 pdlg->GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
		   	 pdlg->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
			 pdlg->GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
			 pdlg->GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
			 pdlg->GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);
			 return 0;
		 }
		if(hex.GetMaxAddr()>4096)
		{
			AfxMessageBox("*.hex文件不能大于4k");
			pdlg->GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
			pdlg->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
			pdlg->GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
			pdlg->GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
			pdlg->GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);
			return 0;
		}
	
		FlashLength=hex.GetMaxAddr();
		Data * pData=hex.GetNextData();
		CloseHandle(pdlg->hFile1);
		pdlg->hFile1=NULL;
		str.Format("89C51PRO\r\n版本號: 1.1\r\n本軟件由桃源村軟件制作\r\n本軟件可免費使用并可任一修改源代碼,但請不要用于商業目的,\r\nE-mail:yds_086@163.com\r\n-------------------------------------------------------------------\r\n\r\n\r\nHEX文件信息: 燒寫數據數目%d.\r\n燒寫開始地址:0x%X\r\n",hex.GetHexDataSize(),pData->address);
		pdlg->SaveCStringToFile(str);
		Sleep(500);
		pdlg->pss->ResumeThread();
		for(DWORD ADDR=pData->address,fag=0;pData->DataEOF==NODEOF||fag==0;hex.GetNextData())
		{
			ADDR=pData->address;
			if(pData->DataEOF==DEOF)
			{
				fag=1;
			}
			pdlg->WriteFlash(ADDR,pData->data);
				for(i=0;i<5;i++)
				{
					for(k=0;k<3;k++)
					{
						pdlg->input[ADDR]=pdlg->ReadFlash(ADDR);
						if(pdlg->input[ADDR]==pData->data)
						{
							i=23;
							k=23;
						}
					}
					if(pdlg->input[ADDR]!=pData->data)
					{
	 					pdlg->WriteFlash(ADDR,pData->data);
					}
					if(i==4)
					{
						str.Format("寫地址0x%X失敗,寫數據0x%X,效驗數據0x%X\r\n",ADDR,pData->data,pdlg->input[ADDR]);
						pdlg->SaveCStringToFile(str);
					}
				}
				str.Format("ADDR=0x%X,DATA=0x%X",ADDR,pdlg->input[ADDR]);
				wnd->SetWindowText(str);
				Sleep(0);
		}
		str.Format("燒錄結束地址0x%X\r\n燒錄結束\r\n",ADDR);
		pdlg->SaveCStringToFile(str);
		CloseHandle(pdlg->hFile1);
		wnd->SetWindowText("燒錄結束");
		pdlg->hFile1=NULL;
		pdlg->pss->SuspendThread();
		pdlg->GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
		pdlg->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
		pdlg->GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
		pdlg->GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
		pdlg->GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);
		return 0;
	}
	else
	{
		pdlg->GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
		pdlg->GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
		pdlg->GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);
		pdlg->GetDlgItem(IDC_BUTTON4)->EnableWindow(TRUE);
		pdlg->GetDlgItem(IDC_BUTTON7)->EnableWindow(TRUE);
		return 0;
	}
}

void CMy89c51ProDlg::OnButton1() 
{
	AfxBeginThread(Read, this , THREAD_PRIORITY_NORMAL);// TODO: Add your control notification handler code here
	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON4)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON7)->EnableWindow(FALSE);
	
}

void CMy89c51ProDlg::OnButton2() 
{
	AfxBeginThread(Write, this , THREAD_PRIORITY_NORMAL);// TODO: Add your control notification handler code here
	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON4)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON7)->EnableWindow(FALSE);
}

void CMy89c51ProDlg::OnButton3() 
{
	CWnd* wnd=GetDlgItem(IDC_STATIC1);
	CWnd* wnd1=GetDlgItem(IDC_STATIC3);
	CString str;
	str.Format("30H=%X,\t31H=%X,\t32H=%X",ReadSigNature(0x30),ReadSigNature(0x31),ReadSigNature(0x32));
	wnd->SetWindowText(str);
	if(ReadSigNature(0x30)==0x1e&&ReadSigNature(0x31)==0x51&&ReadSigNature(0x32)==0xff)
	{
		wnd1->SetWindowText("讀特征字成功");
	}
	else
	{
		wnd1->SetWindowText("讀特征字失敗");
	}

	// TODO: Add your control notification handler code here
	
}

UCHAR CMy89c51ProDlg::ReadSigNature(DWORD ADDR)//讀特征字
{
	UCHAR ADDRL=0,ADDRH=0,Cortrol=0,State=0;
	DWORD DATA0=0,DATA1=1,buf32=0;
	ADDRL=ADDR;
	ADDRH=ADDR>>8;
	SetBit(&ADDRH,6,0);
	SetBit(&ADDRH,7,0);
	buf32=0xff;
	buf32=(buf32<<16)&0xffffff00;
	buf32=buf32|ADDRH;
	buf32=(buf32<<8)&0xffffff00;
	buf32=buf32|ADDRL;
	SetPortVal(ADDR8139+0xd4, buf32, 4);//output address lines
	Sleep(1);
//	SetPortVal(ADDR8139+0xd5, ADDRH, 1); 
//	Sleep(1);
	SetPortVal(EPPADDR, 2, 1);//P2.7=L ALE/PROG =H VPP=H
	Sleep(0);
	for(;DATA0!=DATA1;)
	{
		GetPortVal(ADDR8139+0xd7, &DATA0, 1);
		Sleep(0);
		GetPortVal(ADDR8139+0xd7, &DATA1, 1);
		Sleep(0);
	}

	return (UCHAR)DATA0;
}

int CMy89c51ProDlg::EraseChip()//擦除芯片
{
	SetPortVal(ADDR8139+0xd5, 0x0, 1);//Set p3.6 p3.7 to H;
	Sleep(1);
	SetPortVal(EPPADDR, 6, 1);
	Sleep(1);
	SetPortVal(EPPADDR, 4, 1);//output 1 pulse to PROG
	Sleep(100);
	SetPortVal(EPPADDR, 6, 1);
	Sleep(1);
	SetPortVal(EPPADDR, 2, 1);

	return 0;

}
int HextoDec1(TCHAR * p)
{
int r = 0;
TCHAR *str=p;
while(*str)
{
r = r<<4;
if((*str| 0x20 ) >= 'a' &&
(*str | 0x20) <= 'f')
r += ((*str| 0x20 ) - 'a' 
+ 10 
);
else
if(*str >= '0' &&
*str <= '9')
{
r += ((*str ) - '0');
}
str++;
}
return r;
}
void CMy89c51ProDlg::OnButton4() //擦除芯片
{
	EraseChip();// TODO: Add your control notification handler code here
	
}
void CMy89c51ProDlg::LoadConfinfo()//加載配置信息
{
PCIConfig fig;
if(fig.GetPCIConfig(0x10ec,0x8139)==1)
{
	ADDR8139=(fig.PCIConf.BaseAddressRegister[0])&0xfffffffe;
}
else
{
	ADDR8139=0xffff;
	AfxMessageBox("沒有找到rtl8139");
	
}
TCHAR * p=m_LPT.GetBuffer(m_LPT.GetLength());
this->UpdateData(TRUE);
if(p[3]=='1')
{
	EPPADDR=0x378;
}
if(p[3]=='2')
{
	EPPADDR=0x278;
}

}



void CMy89c51ProDlg::OnButton5() 
{
		pss=AfxBeginThread(DrawState,this,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
	// TODO: Add your control notification handler code here
}

void CMy89c51ProDlg::OnButton6() 
{
	CString path;
	HEXBIN hex;
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"intel十六制文件(*.hex)|*.hex",NULL);
	if(IDOK==dlg.DoModal())
	{ 
		 path=dlg.GetPathName();
		 UINT succ=hex.LoadHEXFile(path.GetBuffer(path.GetLength()));
		 if(succ==0)
		 {
			 AfxMessageBox("HEX文件格式錯誤,文件轉換失敗");
			 return;
		 }
		 // TODO: Add your control notification handler code here
	}
	else
	{
		return;
	}
	CFileDialog dlg1(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"二進制文件(*.bin)|*.bin",NULL);
	if(IDOK==dlg1.DoModal())
	{ 
		 path=dlg1.GetPathName();
		 UINT succ=hex.HEXTOBIN(path.GetBuffer(path.GetLength()));
		 if(succ==0)
		 {
			 AfxMessageBox("文件轉換錯誤");
		 }
		 // TODO: Add your control notification handler code here
	}

}

void CMy89c51ProDlg::OnButton7() 
{
	AfxBeginThread(WriteHEX, this , THREAD_PRIORITY_NORMAL);
	GetDlgItem(IDC_BUTTON1)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON4)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON7)->EnableWindow(FALSE);
}

void CMy89c51ProDlg::OnButton8() 
{
	this->LoadConfinfo();
	CWnd* wnd=GetDlgItem(IDC_STATIC9);
	CString str;
	str.Format("rtl8139 I/O基地址:\t0x%X\nEPP 并口地址:\t\t0x%X",ADDR8139,EPPADDR);
	wnd->SetWindowText(str);// TODO: Add your control notification handler code here
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服.丝袜.亚洲.中文.综合| 欧美韩国日本一区| 91精品国产综合久久精品性色| 在线播放亚洲一区| 欧美mv日韩mv| 国产精品久久久久精k8| 亚洲在线成人精品| 久久精品国产精品青草| 91玉足脚交白嫩脚丫在线播放| 欧美色区777第一页| 久久这里都是精品| 亚洲自拍与偷拍| 国产精品99久久久久久久vr| 欧美在线观看视频一区二区 | 日本高清无吗v一区| 日韩一区二区三区四区五区六区| 欧美国产1区2区| 丝袜诱惑亚洲看片| 波多野结衣中文一区| 欧美一区二区三级| 亚洲精品乱码久久久久久久久 | 日韩欧美中文一区| 亚洲综合丝袜美腿| 免费看精品久久片| 色偷偷久久人人79超碰人人澡 | 欧美日韩国产综合一区二区| 日韩欧美中文字幕精品| 国产亚洲一区二区在线观看| 午夜精品一区在线观看| www.久久精品| 国产午夜精品一区二区三区嫩草 | 久久久不卡网国产精品二区| 一区二区三区**美女毛片| 国内精品免费**视频| 欧美人与禽zozo性伦| 亚洲欧美日韩国产综合| 福利一区二区在线| 日韩一二三四区| 午夜精品免费在线观看| 欧美视频日韩视频| 伊人婷婷欧美激情| 色偷偷久久一区二区三区| 国产精品人妖ts系列视频| 国产成人在线观看免费网站| 欧美电影免费观看高清完整版 | 日韩欧美激情一区| 日日夜夜一区二区| 日本高清无吗v一区| 亚洲黄网站在线观看| 色婷婷久久久综合中文字幕| 亚洲一区二区五区| 高清shemale亚洲人妖| 91精品国产高清一区二区三区蜜臀| 亚洲图片欧美综合| 欧美精选一区二区| 日韩电影免费在线| 日韩精品一区二区三区在线| 美女尤物国产一区| 久久久久国色av免费看影院| 无吗不卡中文字幕| 精品视频在线视频| 亚洲午夜私人影院| 3d成人动漫网站| 麻豆精品在线播放| 久久久久久久久久久久久女国产乱| 黑人精品欧美一区二区蜜桃| 国产婷婷色一区二区三区| 国产成人av在线影院| 国产精品乱人伦一区二区| 99国产精品99久久久久久| 亚洲一区二区五区| 日韩一区二区三区四区| 国产风韵犹存在线视精品| 国产精品区一区二区三| 在线观看亚洲一区| 亚洲精品国产无天堂网2021 | 国产成人精品综合在线观看| 国产精品高清亚洲| 欧美日韩一区二区三区四区五区| 日本成人在线电影网| 欧美精品一区二区三区四区 | 精品一区二区在线免费观看| 亚洲国产高清在线| 在线看不卡av| 激情五月播播久久久精品| 中文字幕一区二区三中文字幕| 欧美在线视频不卡| 国内一区二区在线| 1区2区3区精品视频| 欧美一区二区三区在线看| 国产999精品久久| 亚洲妇女屁股眼交7| 国产日韩综合av| 欧美日韩1234| 精品亚洲成av人在线观看| 亚洲精品国产精品乱码不99| 日韩欧美成人一区二区| 91丨九色丨蝌蚪丨老版| 麻豆精品视频在线观看视频| 亚洲婷婷综合色高清在线| 欧美优质美女网站| 另类中文字幕网| 亚洲成人av电影在线| 中文字幕一区二区三区四区不卡 | 国产精品一二三区| 亚洲在线观看免费| 国产精品入口麻豆原神| 精品第一国产综合精品aⅴ| 欧美影院一区二区三区| 蜜臀av在线播放一区二区三区| 国产精品天天看| 欧美xxxx老人做受| 欧美日韩中文精品| 色狠狠桃花综合| 精品亚洲成a人| 免费成人结看片| 视频一区视频二区中文| 欧美一区二区人人喊爽| 国产黄人亚洲片| 国产黄人亚洲片| 国产传媒久久文化传媒| 国产91精品欧美| 不卡一区二区中文字幕| heyzo一本久久综合| jlzzjlzz欧美大全| 91成人免费在线| 欧美日韩美女一区二区| 欧美日韩成人在线| 精品女同一区二区| 久久精品一区二区三区四区| 欧美经典一区二区| 亚洲免费观看高清完整版在线观看 | 久久久久久综合| 亚洲国产精品成人综合| 亚洲人成电影网站色mp4| 亚洲精品一二三| 亚洲动漫第一页| 蜜桃av一区二区在线观看| 国内外成人在线| 成人一道本在线| 色88888久久久久久影院按摩| 欧美亚洲丝袜传媒另类| 欧美成人精品3d动漫h| 欧美激情一区二区三区不卡 | 中文在线资源观看网站视频免费不卡| 中文字幕一区二区三区精华液| 亚洲激情男女视频| 蜜臀国产一区二区三区在线播放| 国产一区二区三区av电影| 波多野结衣中文一区| 欧美三级日本三级少妇99| 日韩美一区二区三区| 欧美国产欧美综合| 亚洲电影一区二区三区| 韩国一区二区三区| 91麻豆免费看| 日韩一区二区免费在线观看| 国产日本亚洲高清| 亚洲国产日日夜夜| 国产真实乱子伦精品视频| 一本色道亚洲精品aⅴ| 日韩欧美成人激情| 亚洲青青青在线视频| 久久99精品久久久| 欧美亚洲精品一区| 久久久久久久电影| 午夜精品久久久久久久久久久| 国产乱国产乱300精品| 欧美午夜精品久久久久久孕妇| 久久综合九色综合久久久精品综合 | 日本人妖一区二区| 成人av在线资源网站| 日韩久久免费av| 夜夜亚洲天天久久| 成人午夜大片免费观看| 日韩一卡二卡三卡| 亚洲一级片在线观看| 成人中文字幕合集| 精品卡一卡二卡三卡四在线| 亚洲一区二区三区视频在线| 成人av电影观看| 国产亚洲成av人在线观看导航 | 亚洲曰韩产成在线| 成人av电影观看| 中文字幕乱码日本亚洲一区二区| 免费观看91视频大全| 欧美日韩一级片网站| 亚洲黄色av一区| 91在线无精精品入口| 国产日韩欧美电影| 国产一区二区三区四区五区美女 | 91精品国产综合久久久久久 | 3751色影院一区二区三区| 亚洲一二三级电影| 91麻豆国产香蕉久久精品| 国产精品福利电影一区二区三区四区 | 日产欧产美韩系列久久99| 欧美日韩国产123区| 亚洲成在线观看| 欧美美女激情18p|