久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> 8051單片機(jī)模塊化編程技巧

8051單片機(jī)模塊化編程技巧

作者:admin 來源:不詳 發(fā)布時(shí)間:2018-05-08  瀏覽:37

  目前在8051 單片機(jī)應(yīng)用開發(fā)中主要有兩種編程語言:匯編語言和C51 語言。C51 語言是一種結(jié)構(gòu)化的編程語言,采用C51 編寫的應(yīng)用程序結(jié)構(gòu)清晰、模塊化程度高、可讀性強(qiáng)、并容易移植。但C51 語言也有缺點(diǎn),就是編譯后生成的目標(biāo)代碼空間要比匯編的大。

  而且目前單片機(jī)的教材還是側(cè)重于匯編語言。因此學(xué)習(xí)用單片機(jī)匯編語言程序進(jìn)行結(jié)構(gòu)化設(shè)計(jì)還是很有必要的。我們知道C51 語言是函數(shù)式語言,其程序由函數(shù)構(gòu)成,每一個(gè)源程序有且只有一個(gè)主函數(shù)main() 和若干個(gè)函數(shù)組成。其中每一個(gè)函數(shù)都用于完成某一特定任務(wù)。也就是說,一個(gè)項(xiàng)目若具有幾個(gè)功能,實(shí)現(xiàn)這些功能就會(huì)需要由若干個(gè)任務(wù)來完成,那么它的源程序中就會(huì)有若干個(gè)或以上的函數(shù)。而在匯編語言中,源程序中只有程序和子程序。那么我們能否以子程序?yàn)榛締挝唬靡粋(gè)子程序?qū)崿F(xiàn)一種功能來做到模塊化編程呢?實(shí)踐證明是可行的。但在編制程序中不要忘記匯編語言的特點(diǎn),注意子程序之間對(duì)單片機(jī)資源的使用,避免不同子程序交叉共用同一資源引起程序的錯(cuò)誤執(zhí)行。子程序嵌套調(diào)用的級(jí)數(shù)等。本文以“60秒倒計(jì)時(shí)電路”為例談一談51 單片機(jī)匯編語言模塊化編程的一點(diǎn)技巧。

  一、60秒倒計(jì)時(shí)電路及編程

  1. 功能要求

  所謂倒計(jì)時(shí),就是首先給定一個(gè)初始值,然后對(duì)初始值進(jìn)行減“1”操作,直到該值為“0”為止。60 秒倒計(jì)時(shí)就是對(duì)給定的初始值“60”每隔1 秒鐘對(duì)其進(jìn)行減“1”,一直減到該值為“0”為止。

  該倒計(jì)時(shí)電路要求有兩個(gè)按鈕。一個(gè)是“復(fù)位”按鈕,按下按鈕設(shè)置倒計(jì)時(shí)初始值,并把指示燈熄滅;另一個(gè)是“開始”按鈕,按下按鈕開始倒計(jì)時(shí)。并用兩位LED 數(shù)碼管顯示當(dāng)前倒計(jì)時(shí)值。計(jì)時(shí)時(shí)間到,指示燈點(diǎn)亮。

  2. 電路組成

  實(shí)現(xiàn)上述功能要求的單片機(jī)接口電路如圖1 所示。

單片機(jī)接口電路

圖1 單片機(jī)接口電路 

  圖中用按鈕SB1 作為“置初值”按鈕,按鈕SB2 作為“開始”按鈕。按下SB1 按鈕,將顯示值設(shè)置為“60”。

  按下按鈕SB2,每隔一秒顯示值減“1”,直到值為“0”

  停止計(jì)數(shù)。按鈕和指示燈接在P0 口上,P0.0 為初始按鈕,P0.1 為開始按鈕,P0.7 為指示燈。十位LED 數(shù)碼管接P2 口,個(gè)位LED 數(shù)碼管接P1 口。圖2 為單片機(jī)基本系統(tǒng)電路。

單片機(jī)基本系統(tǒng)電路

圖2 單片機(jī)基本系統(tǒng)電路

  3. 功能分析

  根據(jù)60 秒倒計(jì)時(shí)的功能要求,需要單片機(jī)完成以下任務(wù):

  ⑴ 按鍵掃描。用來判斷有沒有鍵被按下,是哪個(gè)鍵被按下?根據(jù)不同的鍵,給出相應(yīng)的鍵值。

  ⑵ 計(jì)時(shí)顯示。這里時(shí)間值使用的是兩位數(shù),故需要將被顯示的時(shí)間值取出個(gè)位數(shù)和十位數(shù),然后才能進(jìn)行顯示。

  ⑶ 被顯示數(shù)轉(zhuǎn)換成7 段碼。由于單片機(jī)中的數(shù)據(jù)都是以二進(jìn)制形式存放或運(yùn)算的。而這里輸出顯示使用了兩位LED 數(shù)碼管來顯示計(jì)時(shí)數(shù)值的,一個(gè)被顯示的數(shù)要點(diǎn)亮數(shù)碼管的某幾段才能顯示出這個(gè)數(shù),不同的數(shù)需要點(diǎn)亮數(shù)碼管的不同段。因此需要將被顯示的這個(gè)數(shù)轉(zhuǎn)換成相應(yīng)的顯示段碼,才能被正確顯示出來。

  ⑷ 延時(shí)。包括1秒鐘延時(shí)和按鍵消抖的10毫秒延時(shí)。

  ⒋ 程序編制

  程序按實(shí)現(xiàn)功能采用模塊化結(jié)構(gòu),有一個(gè)主程序和若干個(gè)子程序組成。每個(gè)子程序分別是完成某個(gè)任務(wù)的獨(dú)立模塊,有時(shí)會(huì)用到調(diào)用參數(shù)。本實(shí)例共有5 個(gè)子程序,分別是按鍵掃描子程序、10ms 延時(shí)子程序、1s 延時(shí)子程序、顯示子程序、取段碼子程序。

  ⑴ 按鍵掃描子程序

  按鍵掃描子程序完成對(duì)按鍵進(jìn)行掃描,確定有沒有鍵被按下,當(dāng)有鍵被按下并抬起后將相關(guān)鍵值返回給主程序的任務(wù)。其流程如圖3 所示。該子程序沒有入口參數(shù),但有一個(gè)出口參數(shù),即按鍵的鍵值,存放在寄存器R3 中。寄存器R3 中的值為“60H”表示SB1 鍵被按下;寄存器R3 中的值為“00H”表示SB2 鍵被按下。

按鍵掃描子程序流程圖

圖3 按鍵掃描子程序流程圖

  按照?qǐng)D3 的流程圖和51 單片機(jī)的指令系統(tǒng)編制的子程序如下:

  ;----------- 按鍵掃描描--------------

  ; 出口參數(shù)鍵值存放在寄存器R3 中,用于識(shí)別哪個(gè)鍵。

  ;R3=60H, 說明SB1 被按下;R3=00H, 說明SB2 被按下

  key_scan: jnb kb_init, k1check ; SB1 按下轉(zhuǎn)移

  jnb kb_begin, k2check ; SB2 按下轉(zhuǎn)移

  sjmp ksr ;

  k1check: acall del10 ; 調(diào)用毫秒延時(shí),去抖

  jb kb_init, ksr ; 干擾,返回

  jnb kb_init,$ ; 等待按鍵釋放

  mov r3, #60h; 是SB1,鍵值“60H”送寄存器R3

  sjmp ksr ; 是,不進(jìn)行任何操作返回

  k2check: acall del10 ; 調(diào)用毫秒延時(shí),去抖

  jb kb_begin, ksr ; 干擾,返回

  jnb kb_begin,$ ; 等待按鍵釋放

  mov r3, #00h; 是SB2,鍵值“00H”送寄存器R3

  ksr: ret ; 返回

  ;---------------------------------

  ⑵ 顯示子程序

  顯示子程序完成從被顯示值中取出十位數(shù)將其轉(zhuǎn)換成顯示斷碼,并送單片機(jī)的P2 口;從被顯示值中取出個(gè)位數(shù)將其轉(zhuǎn)換成顯示斷碼,并送單片機(jī)的P1 口任務(wù)。其流程如圖4 所示。該子程序有一個(gè)入口參數(shù),即被顯示的值,存放在寄存器R2 中。

顯示子程序流程圖

圖4 顯示子程序流程圖

  按照?qǐng)D4 的流程圖和51 單片機(jī)的指令系統(tǒng)編制的子程序如下:

  ;------------ 顯示子程序------------

  ; 入口參數(shù)存放在寄存器R2 中

  display:mov a, r2 ; 取被顯示值

  mov b, #10; 取被顯示值的十位數(shù)

  div ab;

  acall seg7; 調(diào)用轉(zhuǎn)換子程序,取顯示斷碼

  mov p2, a ; 十位數(shù)段碼送P2 口

  mov a, b; 取個(gè)位數(shù)

  acall seg7 ; 調(diào)用轉(zhuǎn)換子程序,取顯示斷碼

  mov p1, a ; 個(gè)位數(shù)段碼送P1 口

  ret ; 返回

  ;---------------------------------

  ⑶ 取段碼子程序

  取段碼子程序完成將被顯示的數(shù)轉(zhuǎn)換成7 段共陽LED 數(shù)碼管對(duì)應(yīng)數(shù)的段碼的任務(wù)。其流程如圖5 所示。

取段碼子程序流程圖

圖5 取段碼子程序流程圖

  該子程序有一個(gè)入口參數(shù)和一個(gè)出口參數(shù)。入口參數(shù)就是被顯示的數(shù),出口參數(shù)就是該數(shù)的段碼(相應(yīng)位=0表示亮),都存放在累加器A 中。

  按照?qǐng)D5 的流程圖和51 單片機(jī)的指令系統(tǒng)編制的子程序如下:

  ;-------------- 取段碼--------------

  ; 對(duì)累計(jì)器A 中的值由查表得到顯示斷碼

  ; 入口和出口參數(shù)存放在累計(jì)器A 中

  seg7: inc a ; 取被顯示數(shù),累加器A 加1

  movc a, @a+pc ; 查表

  ret ; 返回

  db 0c0h,0f9h,0a4h,0b0h;0123

  db 99h,92h,82h,0f8h;4567

  db 80h,90h,88h,83h;89AB

  db 0c6h,0a1h,86h,8eh;cdEF

  ;---------------------------------

  ⑷ 延時(shí)子程序

  延時(shí)子程序完成一定的延時(shí)時(shí)間任務(wù)。這里有兩個(gè)延時(shí)時(shí)間不同的子程序(也可以調(diào)用100 次10mS 做1S 延遲),其流程如圖6 所示。延時(shí)子程序沒有入口和出口參數(shù)。

延時(shí)子程序流程圖

圖6 延時(shí)子程序流程圖

  按照?qǐng)D6 的流程圖和51 單片機(jī)的指令系統(tǒng)編制的子程序如下;

  ;----------- 延時(shí)10ms 程序----------

  ; 用到寄存器組1 中的R6 和R7 寄存器

  del10: setb psw.3 ; 切換至第1 組寄存器

  mov r7, #0bh ;

  dl1: mov r6, #0ffh ;

  dl2: djnz r6, dl2 ;

  djnz r7, dl1;

  clr psw.3 ; 切換至第0 組寄存器

  ret ;

  ;---------------------------------

  ;------------- 延時(shí)1s 程序-----------

  ; 用到寄存器組1 中的R1、R2 和R3 寄存器

  del1s: setb psw.3 ; 選用寄存器區(qū)1

  mov r1 , #46; 立即數(shù)46 送寄存器R1

  del0: mov r2 , #100; 立即數(shù)100 送寄存器R2

  del1: mov r3 , #100 ; 立即數(shù)100 送寄存器R3

  djnz r3 , $ ; 寄存器R3 中的內(nèi)容減1,不為零轉(zhuǎn)移到當(dāng)

  前指令

  djnz r2 , del1; 寄存器R2 中的內(nèi)容減1,不為零轉(zhuǎn)移到

  del1

  djnz r1 , del0; 寄存器R1 中的內(nèi)容減1,不為零轉(zhuǎn)移到

  del0

  clr psw.3 ; 選用寄存器區(qū)0

  ret ; 子程序返回

  ;---------------------------------

  ⑸ 主程序編制

  主程序需要實(shí)現(xiàn)的功能是:完成單片機(jī)端口定義;初始化任務(wù);調(diào)用鍵掃描子程序,根據(jù)按鍵狀態(tài)實(shí)現(xiàn)置初值或進(jìn)行倒計(jì)時(shí),并調(diào)用顯示子程序等。其流程如圖7 所示。

主程序編制流程圖

圖7 主程序編制流程圖

  按照?qǐng)D7 的流程圖和51 單片機(jī)的指令系統(tǒng)、以上編制的各子程序,主程序如下:

  ;**********************************************************

  ; 文件名:counter.asm 功能:60 秒倒計(jì)時(shí)

  ; 說明:p2 和p1 口分別接一個(gè)LED 數(shù)碼管, 顯示兩位

  十進(jìn)制數(shù)。

  ; p0.0 和p0.1 口接置初值按鈕和開始倒計(jì)時(shí)按鈕,p0.7

  接提示LED。

  ; 晶振頻率11.0592MHz.

  ;**********************************************************

  ;------------ 端口定義--------------

  kb_init bit p0.0 ; 置初值按鈕定義

  kb_begin bit p0.1 ; 開始按鈕定義

  warn bit p0.7 ; 提示

  ;---------------------------------

  org 0000h

  ajmp begin

  ;============ 主程序===============

  org 00b0h

  begin:

  mov sp, #50h ; 初始化

  mov p0, #0ffh

  mov p1, #0ffh

  mov p2, #0ffh

  mov r2, #60

  mov r3, #0ffh

  main:

  lcall key_scan ; 按掃描鍵

  mov a, r3 ; 取返回值

  cjne a, #60h, lp1 ; 非SB1 按鍵轉(zhuǎn)移

  mov r2, #60 ; 初值送寄存器R2

  setb p0.7 ; 清指示燈

  acall display ; 調(diào)顯示子程序

  ajmp main ; 轉(zhuǎn)移

  lp1: mov a, r3 ; 取返回值

  cjne a, #00h, main ; 非SB2 按鍵轉(zhuǎn)移

  setb p0.7

  mov r2, #60

  lp2: acall display

  acall del1s ; 調(diào)用1 秒延時(shí)子程序

  dec r2

  cjne r2, #00h,lp2

  acall display

  clr p0.7

  mov r3, #0ffh

  ajmp main

  ;=================================

  二、Keil C 中編譯

  1. 新建項(xiàng)目

  打開“Keil C”軟件,新建一個(gè)項(xiàng)目。項(xiàng)目名也不妨為“counter”。

  點(diǎn)擊桌面上的圖標(biāo) ,進(jìn)入Keil C51 μVision2集成開發(fā)環(huán)境。在主界面上點(diǎn)下拉菜單“Project”,選“New Project?”命令。在彈出的對(duì)話框中將項(xiàng)目命名為“counter”。點(diǎn)“保存”按鈕,選“Atmel”下的“AT89S52”后返回。

  2. 添加源程序

  打開已建立的文件“counter.asm”;并將該文件添加到“Source Group 1”中。

  在μVision2 主界面上點(diǎn)擊打開文件按鈕 ,在彈出的對(duì)話框內(nèi)找到剛才新建并保存的文件“counter.asm”。點(diǎn)“打開”按鈕打開。

  在中間左邊的“項(xiàng)目空間(Project Workspace)”內(nèi),點(diǎn)擊“+”展開。再用右鍵點(diǎn)擊“Source Group 1”文件夾,在彈出的菜單命令中選“Add Files to group‘Source Group 1’”。

  3. 參數(shù)設(shè)置

  在“Options for Target‘ Target 1’”中的“Output”標(biāo)簽頁上進(jìn)行設(shè)置。

  點(diǎn)下拉菜單“Project”, 選“Options for Target‘Target 1’”。在彈出對(duì)話框上的“Target”標(biāo)簽頁內(nèi),把單片機(jī)的運(yùn)行頻率調(diào)整為11.0592MHz。在“Output”標(biāo)簽頁上,點(diǎn)“Create HEX File”前的復(fù)選框,使其內(nèi)出現(xiàn)“√”,這樣編譯后就能生成目標(biāo)文件了。點(diǎn)“確定”按鈕返回。

  4. 程序編譯

  點(diǎn)編譯和建立目標(biāo)文件,得到“counter.hex”文件。

  在μVision2 主界面上點(diǎn)重新編譯按鈕,對(duì)源程序文件進(jìn)行編譯,結(jié)果如圖8 所示。

圖8

圖8

  三、Preteus仿真

  ISIS 仿真圖如圖9 所示。設(shè)置CPU:89C51 的特性,加載counter.HEX 代碼加載,運(yùn)行仿真。將光標(biāo)移至按鈕SB1,使光標(biāo)變成一只“手”時(shí),點(diǎn)擊鼠標(biāo)左鍵,使按鈕按下。按鈕釋放后,數(shù)碼管顯示值加“60”,如圖9 所示。啟動(dòng)倒計(jì)時(shí)。將光標(biāo)移至按鈕SB2,使光標(biāo)變成一只“手”時(shí),點(diǎn)擊鼠標(biāo)左鍵,使按鈕按下。按鈕釋放后倒計(jì)時(shí)開始。原文來自www.dqjsw.com.cn圖9ISIS 仿真圖

圖9ISIS 仿真圖

  四、基本系統(tǒng)上運(yùn)行

  用單片機(jī)基本系統(tǒng)板來驗(yàn)證程序,首先準(zhǔn)備好實(shí)驗(yàn)用器材基本系統(tǒng)板、下載器、電源和萬能板及所需元器件。然后按下面步驟進(jìn)行操作。

  ⒈在應(yīng)用實(shí)驗(yàn)板上按圖1 焊接好電阻、電容、數(shù)碼管和接插件、按鈕等。

  ⒉拔去最小系統(tǒng)板上的跳線J101、J102、J103,插上AT89S52 芯片。將下載線的接口板插入電腦的并口上,連接電纜把最小系統(tǒng)與接口板連好,再在最小系統(tǒng)上接上電源。如圖10 所示。

圖10

圖10

  ⒊打開下載軟件,并設(shè)置好有關(guān)參數(shù);加載待寫文件“counter.hex”;點(diǎn)“編程”按鈕下載程序。必要時(shí)須先對(duì)芯片進(jìn)行“擦寫”( 若該芯片中曾燒錄過程序)。

  ⒋完成上面的操作后,關(guān)閉電源,拔下連接電纜,插上跳線J101,接上實(shí)驗(yàn)電路。

  ⒌上電驗(yàn)證程序,按下按鍵SB1 置初值,按下按鍵SB2 開始倒計(jì)時(shí)。若不符合要求則進(jìn)行修改(可以先在μVision2 進(jìn)行調(diào)試或Proteus 中仿真)。

  ⒍重復(fù)上述步驟直到實(shí)現(xiàn)要求的功能。

  五、結(jié)束語

  用匯編語言編制應(yīng)用程序時(shí)雖然要考慮單片機(jī)的硬件資源的分配,且實(shí)現(xiàn)相同功能時(shí)的語句可能比C51 編程更多,匯編的模塊按結(jié)構(gòu)化編程,同樣也能編制出結(jié)構(gòu)清晰、功能明確、可讀性強(qiáng)、的應(yīng)用程序。

編輯:admin  最后修改時(shí)間:2018-05-08

聯(lián)系方式

0755-82591179

郵箱:ivy@yingtexin.net

地址:深圳市南山區(qū)桃源街道平山社區(qū)平山一路2號(hào)南山云谷創(chuàng)業(yè)園二期11棟410-411

Copyright © 2014-2026 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

久久精品99久久_亚洲一区二区综合_狠狠色伊人亚洲综合成人_亚洲综合爱爱久久网
91人人澡人人爽人人精品| 一个色综合久久| 日本a在线天堂| 97超碰人人爱| 亚洲天堂网站在线| 婷婷中文字幕在线观看| 中文字幕视频三区| 国产九九九视频| 喜爱夜蒲2在线| 国产资源第一页| 污污污污污污www网站免费| 国产一级片91| 成年人观看网站| av免费网站观看| 三级在线视频观看| 在线a免费观看| 人人妻人人澡人人爽欧美一区| 国产av不卡一区二区| 欧美日韩dvd| 国产精品69页| 一级做a爱视频| 无码av天堂一区二区三区| 国产亚洲综合视频| 亚洲欧美国产中文| 国产一区 在线播放| 国产亚洲欧美在线视频| 中文字幕免费高清在线| 99久久久精品视频| 无限资源日本好片| 2022中文字幕| 中文字幕第17页| 欧美国产视频一区| 一级黄色特级片| 国产96在线 | 亚洲| 一个色综合久久| 18禁免费观看网站| 亚洲一区二区福利视频| 日韩av一二三四区| 男女裸体影院高潮| 久久99爱视频| 91传媒久久久| 丁香色欲久久久久久综合网| 欧美婷婷精品激情| 欧美狂野激情性xxxx在线观| 日本高清一区二区视频| 人妻有码中文字幕| 日韩精品一区二区免费| 亚洲五月激情网| 三级在线视频观看| 亚洲成熟丰满熟妇高潮xxxxx| 97精品国产97久久久久久粉红| 九九热在线免费| 97超碰青青草| 女人和拘做爰正片视频| 米仓穗香在线观看| 日韩av一卡二卡三卡| 一区二区三区国产免费| av天堂永久资源网| 播放灌醉水嫩大学生国内精品| www.av91| 日韩欧美猛交xxxxx无码| 佐佐木明希av| 成人黄色片免费| av在线网站免费观看| 欧美激情第一区| 国产美女18xxxx免费视频| 蜜桃免费在线视频| 91香蕉视频导航| 国内自拍第二页| 国产高清av片| 欧美性受黑人性爽| 又大又硬又爽免费视频| 日韩一区二区高清视频| 性高湖久久久久久久久aaaaa| 日韩欧美猛交xxxxx无码| 欧美这里只有精品| 久久久999免费视频| 国产午夜伦鲁鲁| 国模私拍视频在线观看| 四虎成人在线播放| 久操手机在线视频| 亚洲精品无码久久久久久| 欧美一级裸体视频| 中文字幕国产高清| 久久久99精品视频| 99热自拍偷拍| 国产精品一区二区小说| 国产高清av片| www.玖玖玖| 色黄视频免费看| 五月丁香综合缴情六月小说| 不要播放器的av网站| wwwwwxxxx日本| 91九色丨porny丨国产jk| 午夜视频在线瓜伦| 2025韩国大尺度电影| 国自产拍偷拍精品啪啪一区二区| 五月婷婷之综合激情| 久久久成人精品一区二区三区| a级黄色一级片| www.国产视频.com| 欧美综合在线播放| 深爱五月综合网| 精品国产成人av在线免| 成人手机视频在线| 91视频免费版污| 久久久99精品视频| 日韩av片免费观看| 青青在线视频免费| 丁香六月激情网| 99亚洲精品视频| 中文字幕成人免费视频| 国产在线青青草| 日韩视频 中文字幕| 亚洲 国产 图片| 蜜臀av免费观看| 少妇性饥渴无码a区免费| 日韩视频 中文字幕| av在线免费看片| 97超碰成人在线| 午夜宅男在线视频| 国产成人精品视频ⅴa片软件竹菊| 可以看毛片的网址| 最近中文字幕免费mv| 中文字幕日韩综合| 在线观看岛国av| 欧美成人乱码一二三四区免费| 欧美日韩第二页| 中文久久久久久| 欧美亚洲日本在线观看| 日韩a在线播放| 爱情岛论坛成人| 好男人www社区| av网站在线不卡| 性欧美videossex精品| 天堂社区在线视频| 中文字幕有码av| 中文字幕av久久| 国产精品免费看久久久无码| 青青草原网站在线观看| 大地资源网在线观看免费官网| 大地资源网在线观看免费官网| 97精品国产97久久久久久粉红| 国产成人一区二区三区别| 日韩国产成人无码av毛片| 青青青免费在线| 色哟哟精品视频| 1314成人网| 青青草成人免费在线视频| 人妻少妇被粗大爽9797pw| 自拍偷拍 国产| 国产女人18毛片| 91视频最新入口| 亚洲涩涩在线观看| 国产一区二区三区播放| 自拍日韩亚洲一区在线| 中国黄色片免费看| 国产免费内射又粗又爽密桃视频| 国产一级爱c视频| 潘金莲激情呻吟欲求不满视频| 手机在线视频你懂的| 国产精品无码av在线播放| 亚洲欧洲日本精品| 欧美一级免费播放| 男女视频在线看| 日韩精品在线观看av| 亚洲 激情 在线| 日本韩国欧美在线观看| 亚洲一区二区福利视频| 国产中文字幕视频在线观看| 五月天激情视频在线观看| 国产xxxx振车| 午夜国产福利在线观看| 色综合久久久久无码专区| 亚洲一区二区图片| 无码少妇一区二区三区芒果| 日韩 欧美 视频| 男女视频在线观看网站| 青青在线视频免费| 国产精品无码av在线播放| 国产精品一区在线免费观看| 蜜臀久久99精品久久久酒店新书 | 免费日韩视频在线观看| 麻豆md0077饥渴少妇| 免费看污污网站| 国产成人精品视频免费看| 中文字幕の友人北条麻妃| 中文字幕 欧美日韩| 一区二区三区 日韩| 丁香婷婷激情网| 国产成人久久777777| 男人日女人bb视频| 美女日批免费视频| 黄色成人在线看| 天天夜碰日日摸日日澡性色av| 做爰高潮hd色即是空| 日韩中文在线字幕| 国产精品啪啪啪视频| 欧美 日韩 国产精品| 99久热在线精品视频|