《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 淺析8051模塊化編程技巧
淺析8051模塊化編程技巧
摘要: 程序設計就是用計算機所能接受的語言把解決問題的步驟描述出來,也就是把計算機指令或語句組成一個有序的集合。一個好的應用程序不僅是執行效率高,而且還要結構清晰、便于調試。所以人們都采用結構化程序設計方法來編制應用程序。對于每一個初學者來說更應該養成習慣,從簡單的程序編制開始就采用這種模塊化結構。
Abstract:
Key words :

 程序設計就是用計算機所能接受的語言把解決問題的步驟描述出來,也就是把計算機指令或語句組成一個有序的集合。一個好的應用程序不僅是執行效率高,而且還要結構清晰、便于調試。所以人們都采用結構化程序設計方法來編制應用程序。對于每一個初學者來說更應該養成習慣,從簡單的程序編制開始就采用這種模塊化結構。

目前在8051 單片機應用開發中主要有兩種編程語言:匯編語言和C51 語言。C51 語言是一種結構化的編程語言,采用C51 編寫的應用程序結構清晰、模塊化程度高、可讀性強、并容易移植。但C51 語言也有缺點,就是編譯后生成的目標代碼空間要比匯編的大。

而且目前單片機的教材還是側重于匯編語言。因此學習用單片機匯編語言程序進行結構化設計還是很有必要的。我們知道C51 語言是函數式語言,其程序由函數構成,每一個源程序有且只有一個主函數main() 和若干個函數組成。其中每一個函數都用于完成某一特定任務。也就是說,一個項目若具有幾個功能,實現這些功能就會需要由若干個任務來完成,那么它的源程序中就會有若干個或以上的函數。而在匯編語言中,源程序中只有程序和子程序。那么我們能否以子程序為基本單位,用一個子程序實現一種功能來做到模塊化編程呢?實踐證明是可行的。但在編制程序中不要忘記匯編語言的特點,注意子程序之間對單片機資源的使用,避免不同子程序交叉共用同一資源引起程序的錯誤執行。子程序嵌套調用的級數等。本文以“60秒倒計時電路”為例談一談51 單片機匯編語言模塊化編程的一點技巧。

  一、60秒倒計時電路及編程

1. 功能要求

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

該倒計時電路要求有兩個按鈕。一個是“復位”按鈕,按下按鈕設置倒計時初始值,并把指示燈熄滅;另一個是“開始”按鈕,按下按鈕開始倒計時。并用兩位LED 數碼管顯示當前倒計時值。計時時間到,指示燈點亮。

2. 電路組成

實現上述功能要求的單片機接口電路如圖1 所示。


圖1 單片機接口電路

圖中用按鈕SB1 作為“置初值”按鈕,按鈕SB2 作為“開始”按鈕。按下SB1 按鈕,將顯示值設置為“60”。
按下按鈕SB2,每隔一秒顯示值減“1”,直到值為“0”
停止計數。按鈕和指示燈接在P0 口上,P0.0 為初始按鈕,P0.1 為開始按鈕,P0.7 為指示燈。十位LED 數碼管接P2 口,個位LED 數碼管接P1 口。圖2 為單片機基本系統電路。


圖2 單片機基本系統電路

3. 功能分析

根據60 秒倒計時的功能要求,需要單片機完成以下任務:

⑴ 按鍵掃描。用來判斷有沒有鍵被按下,是哪個鍵被按下?根據不同的鍵,給出相應的鍵值。
⑵ 計時顯示。這里時間值使用的是兩位數,故需要將被顯示的時間值取出個位數和十位數,然后才能進行顯示。
⑶ 被顯示數轉換成7 段碼。由于單片機中的數據都是以二進制形式存放或運算的。而這里輸出顯示使用了兩位LED 數碼管來顯示計時數值的,一個被顯示的數要點亮數碼管的某幾段才能顯示出這個數,不同的數需要點亮數碼管的不同段。因此需要將被顯示的這個數轉換成相應的顯示段碼,才能被正確顯示出來。
⑷ 延時。包括1秒鐘延時和按鍵消抖的10毫秒延時。

⒋ 程序編制

程序按實現功能采用模塊化結構,有一個主程序和若干個子程序組成。每個子程序分別是完成某個任務的獨立模塊,有時會用到調用參數。本實例共有5 個子程序,分別是按鍵掃描子程序、10ms 延時子程序、1s 延時子程序、顯示子程序、取段碼子程序。

⑴ 按鍵掃描子程序

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


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

按照圖3 的流程圖和51 單片機的指令系統編制的子程序如下:
;----------- 按鍵掃描描--------------
; 出口參數鍵值存放在寄存器R3 中,用于識別哪個鍵。
;R3=60H, 說明SB1 被按下;R3=00H, 說明SB2 被按下
key_scan: jnb kb_init, k1check ; SB1 按下轉移
jnb kb_begin, k2check ; SB2 按下轉移
sjmp ksr ;
k1check: acall del10 ; 調用毫秒延時,去抖
jb kb_init, ksr ; 干擾,返回
jnb kb_init,$ ; 等待按鍵釋放
mov r3, #60h; 是SB1,鍵值“60H”送寄存器R3
sjmp ksr ; 是,不進行任何操作返回
k2check: acall del10 ; 調用毫秒延時,去抖
jb kb_begin, ksr ; 干擾,返回
jnb kb_begin,$ ; 等待按鍵釋放
mov r3, #00h; 是SB2,鍵值“00H”送寄存器R3
ksr: ret ; 返回
;---------------------------------
⑵ 顯示子程序
顯示子程序完成從被顯示值中取出十位數將其轉換成顯示斷碼,并送單片機的P2 口;從被顯示值中取出個位數將其轉換成顯示斷碼,并送單片機的P1 口任務。其流程如圖4 所示。該子程序有一個入口參數,即被顯示的值,存放在寄存器R2 中。


圖4 顯示子程序流程圖

按照圖4 的流程圖和51 單片機的指令系統編制的子程序如下:

;------------ 顯示子程序------------
; 入口參數存放在寄存器R2 中
display:mov a, r2 ; 取被顯示值
mov b, #10; 取被顯示值的十位數
div ab;
acall seg7; 調用轉換子程序,取顯示斷碼
mov p2, a ; 十位數段碼送P2 口
mov a, b; 取個位數
acall seg7 ; 調用轉換子程序,取顯示斷碼
mov p1, a ; 個位數段碼送P1 口
ret ; 返回
;---------------------------------

⑶ 取段碼子程序

取段碼子程序完成將被顯示的數轉換成7 段共陽LED 數碼管對應數的段碼的任務。其流程如圖5 所示。


圖5 取段碼子程序流程圖

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

按照圖5 的流程圖和51 單片機的指令系統編制的子程序如下:
;-------------- 取段碼--------------
; 對累計器A 中的值由查表得到顯示斷碼
; 入口和出口參數存放在累計器A 中
seg7: inc a ; 取被顯示數,累加器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
;---------------------------------

⑷ 延時子程序

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


圖6 延時子程序流程圖

按照圖6 的流程圖和51 單片機的指令系統編制的子程序如下:

;----------- 延時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 ;
;---------------------------------
;------------- 延時1s 程序-----------
; 用到寄存器組1 中的R1、R2 和R3 寄存器
del1s: setb psw.3 ; 選用寄存器區1
mov r1 , #46; 立即數46 送寄存器R1
del0: mov r2 , #100; 立即數100 送寄存器R2
del1: mov r3 , #100 ; 立即數100 送寄存器R3
djnz r3 , $ ; 寄存器R3 中的內容減1,不為零轉移到當
前指令
djnz r2 , del1; 寄存器R2 中的內容減1,不為零轉移到
del1
djnz r1 , del0; 寄存器R1 中的內容減1,不為零轉移到
del0
clr psw.3 ; 選用寄存器區0
ret ; 子程序返回
;---------------------------------

⑸ 主程序編制

主程序需要實現的功能是:完成單片機端口定義;初始化任務;調用鍵掃描子程序,根據按鍵狀態實現置初值或進行倒計時,并調用顯示子程序等。其流程如圖7 所示。


圖7 主程序編制流程圖

按照圖7 的流程圖和51 單片機的指令系統、以上編制的各子程序,主程序如下:
;**********************************************************
; 文件名:counter.asm 功能:60 秒倒計時
; 說明:p2 和p1 口分別接一個LED 數碼管, 顯示兩位
十進制數。
; p0.0 和p0.1 口接置初值按鈕和開始倒計時按鈕,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 按鍵轉移
mov r2, #60 ; 初值送寄存器R2
setb p0.7 ; 清指示燈
acall display ; 調顯示子程序
ajmp main ; 轉移
lp1: mov a, r3 ; 取返回值
cjne a, #00h, main ; 非SB2 按鍵轉移
setb p0.7
mov r2, #60
lp2: acall display
acall del1s ; 調用1 秒延時子程序
       dec r2
cjne r2, #00h,lp2
acall display
clr p0.7
mov r3, #0ffh
ajmp main
;=================================

  二、Keil C 中編譯

1. 新建項目

打開“Keil C”軟件,新建一個項目。項目名也不妨為“counter”。

點擊桌面上的圖標 ,進入Keil C51 μVision2集成開發環境。在主界面上點下拉菜單“Project”,選“New Project?”命令。在彈出的對話框中將項目命名為“counter”。點“保存”按鈕,選“Atmel”下的“AT89S52”后返回。

2. 添加源程序

打開已建立的文件“counter.asm”;并將該文件添加到“Source Group 1”中。
在μVision2 主界面上點擊打開文件按鈕 ,在彈出的對話框內找到剛才新建并保存的文件“counter.asm”。點“打開”按鈕打開。
在中間左邊的“項目空間(Project Workspace)”內,點擊“+”展開。再用右鍵點擊“Source Group 1”文件夾,在彈出的菜單命令中選“Add Files to group‘Source Group 1’”。

3. 參數設置

在“Options for Target‘ Target 1’”中的“Output”標簽頁上進行設置。
點下拉菜單“Project”, 選“Options for Target‘Target 1’”。在彈出對話框上的“Target”標簽頁內,把單片機的運行頻率調整為11.0592MHz。在“Output”標簽頁上,點“Create HEX File”前的復選框,使其內出現“√”,這樣編譯后就能生成目標文件了。點“確定”按鈕返回。

4. 程序編譯

點編譯和建立目標文件,得到“counter.hex”文件。
在μVision2 主界面上點重新編譯按鈕,對源程序文件進行編譯,結果如圖8 所示。


圖8

  三、Preteus仿真

ISIS 仿真圖如圖9 所示。設置CPU:89C51 的特性,加載counter.HEX 代碼加載,運行仿真。將光標移至按鈕SB1,使光標變成一只“手”時,點擊鼠標左鍵,使按鈕按下。按鈕釋放后,數碼管顯示值加“60”,如圖9 所示。啟動倒計時。將光標移至按鈕SB2,使光標變成一只“手”時,點擊鼠標左鍵,使按鈕按下。按鈕釋放后倒計時開始。


圖9ISIS 仿真圖

四、基本系統上運行


用單片機基本系統板來驗證程序,首先準備好實驗用器材基本系統板、下載器、電源和萬能板及所需元器件。然后按下面步驟進行操作。

⒈在應用實驗板上按圖1 焊接好電阻、電容、數碼管和接插件、按鈕等。

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


圖10

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

⒋完成上面的操作后,關閉電源,拔下連接電纜,插上跳線J101,接上實驗電路。

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

⒍重復上述步驟直到實現要求的功能。

  五、結束語

用匯編語言編制應用程序時雖然要考慮單片機的硬件資源的分配,且實現相同功能時的語句可能比C51 編程更多,匯編的模塊按結構化編程,同樣也能編制出結構清晰、功能明確、可讀性強、的應用程序。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美在线观看网站| 狠狠色综合网站久久久久久久| 欧美日韩一级大片网址| 91久久精品国产| 亚洲精品免费电影| 一区二区三区精品视频在线观看| 欧美国产高潮xxxx1819| 亚洲精品欧洲| 久久亚洲精品一区| 99视频热这里只有精品免费| 国产欧美一区二区三区另类精品| 亚洲视频一区在线| 欧美无砖砖区免费| 亚洲国产一区二区视频| 嫩草伊人久久精品少妇av杨幂| 亚洲福利一区| 亚洲欧洲午夜| 欧美午夜无遮挡| 六月天综合网| 欧美日韩国产麻豆| 能在线观看的日韩av| 国产精品毛片| 免费在线视频一区| 性欧美videos另类喷潮| 亚洲国产激情| 国产精品一区三区| 欧美剧在线观看| 国产精品日韩高清| av成人毛片| 国产深夜精品福利| 欧美日韩不卡合集视频| 新片速递亚洲合集欧美合集| 一区二区三区导航| 欧美韩国日本一区| 国产在线国偷精品产拍免费yy| 亚洲黄色有码视频| 亚洲国产精品成人综合色在线婷婷| 欧美日韩调教| 亚洲欧美电影在线观看| 国产综合精品一区| 亚洲一区在线免费| 久久裸体艺术| 国产精品亚洲网站| 国产在线精品二区| 久久久伊人欧美| 亚洲美女在线视频| 国产九区一区在线| 亚洲精品人人| 韩日精品在线| 国产精品一区二区三区观看| 欧美阿v一级看视频| 亚洲免费电影在线观看| 国产一区视频在线看| 男女激情视频一区| 亚洲欧美日韩在线一区| 国产欧美三级| 欧美国产精品中文字幕| 欧美午夜精品久久久久免费视| 蜜桃精品久久久久久久免费影院| 性伦欧美刺激片在线观看| 亚洲女人天堂av| 亚洲欧美日韩区| 国产精品欧美久久久久无广告| 日韩亚洲视频在线| 亚洲黄色在线视频| 久久精品人人做人人爽电影蜜月| 国产精品亚洲综合色区韩国| 久久精品国产99国产精品澳门| 亚洲国内自拍| 国产精品久久国产三级国电话系列| 国产精品久久二区二区| 国产一区二区中文| 亚洲女性喷水在线观看一区| 午夜久久99| 国产精品一级在线| 美女性感视频久久久| 国语对白精品一区二区| 亚洲综合视频在线| 国产欧美一区二区三区视频| 国产日韩精品一区二区| 国产日韩亚洲欧美综合| 激情懂色av一区av二区av| 亚洲国产成人高清精品| 欧美日韩国产麻豆| 国产精品久久激情| 亚洲国语精品自产拍在线观看| 欧美chengren| 国产精品大全| 韩国三级在线一区| 一本色道久久88亚洲综合88| 欧美影院久久久| 亚洲国产成人高清精品| 永久免费视频成人| 欧美一区二区三区成人| 欧美伊人久久| 极品尤物av久久免费看| 亚洲淫片在线视频| 欧美成人午夜剧场免费观看| 一区二区三区鲁丝不卡| 亚洲欧美春色| 国产日韩精品一区二区浪潮av| 欧美成人福利视频| 欧美一区2区视频在线观看| 狂野欧美激情性xxxx欧美| 欧美成人精品h版在线观看| 欧美大成色www永久网站婷| 久久精品一区| 欧美日韩视频一区二区三区| 一区二区三区**美女毛片| 1000部国产精品成人观看| 亚洲免费观看在线观看| 欧美一区激情视频在线观看| 欧美天堂在线观看| 欧美午夜一区二区| 国产一区二区欧美| 国产女主播在线一区二区| 欧美jizzhd精品欧美巨大免费| 国产视频久久网| 欧美1区2区| 美玉足脚交一区二区三区图片| 久久aⅴ乱码一区二区三区| 亚洲激情电影中文字幕| 国产精品国产三级国产普通话蜜臀| 亚洲国产高清高潮精品美女| 欧美激情乱人伦| 欧美精品二区| 亚洲国产精品一区二区第四页av| 欧美一区三区二区在线观看| 国产精品日韩欧美大师| 亚洲电影第1页| 欧美午夜宅男影院| 你懂的国产精品| 国产精品日韩专区| 在线观看视频免费一区二区三区| 欧美日韩在线一区二区| 国产欧美日韩精品在线| 亚洲美女在线国产| 亚洲国产精品久久久久秋霞不卡| 欧美久久一区| 牛人盗摄一区二区三区视频| 欧美日韩dvd在线观看| 黄色影院成人| 亚洲国产精品一区二区www在线| 在线视频你懂得一区| 久久精品一区二区| 一本色道久久精品| 国产欧美91| 一区二区激情| 亚洲国产小视频| 国精产品99永久一区一区| 久久久久久久尹人综合网亚洲| 国产精品腿扒开做爽爽爽挤奶网站| 欧美午夜精品理论片a级按摩| 欧美精品观看| 午夜影院日韩| 欧美日韩在线亚洲一区蜜芽| 国产一区白浆| 午夜久久影院| 久久综合伊人77777| 国产精品亚洲不卡a| 欧美日韩另类在线| 国产手机视频精品| 国产日韩欧美麻豆| 91久久国产综合久久91精品网站| 国产日韩欧美在线播放| 一本色道久久综合亚洲精品不| 欧美国产综合| 一区二区三区.www| 美国三级日本三级久久99| 麻豆国产精品va在线观看不卡| 国产目拍亚洲精品99久久精品| 久久久精品欧美丰满| 国内精品一区二区| 国产自产在线视频一区| 午夜在线电影亚洲一区| 午夜欧美大尺度福利影院在线看| 亚洲国产一区二区三区在线播| 国产精品电影网站| 国产一区二区久久精品| 欧美激情一区二区| 欧美调教vk| 美女福利精品视频| 国产欧美日韩免费看aⅴ视频| 欧美顶级少妇做爰| 国产亚洲欧美一区二区三区| 亚洲电影天堂av| 欧美精品久久久久久久| 欧美一区二区成人6969| 国产精品户外野外| 性欧美长视频| 亚洲国产精品第一区二区| 狠狠色丁香婷婷综合| 亚洲狠狠丁香婷婷综合久久久| 欧美在线网站| 国产欧美三级| 欧美日韩在线看| 中日韩午夜理伦电影免费| 国产欧美在线视频| 在线观看视频亚洲| 欧美日韩国产综合一区二区| 亚洲一区二区三区中文字幕在线| 欧美高清视频在线观看| 亚洲欧美日韩国产成人精品影院| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产欧美一区二区精品仙草咪| 亚洲午夜精品17c| 国产在线麻豆精品观看| 国产精品v一区二区三区| 久久蜜桃av一区精品变态类天堂| 亚洲影视中文字幕| 国产精品欧美经典| 国产自产高清不卡| 国产精品视频yy9299一区| 欧美激情国产日韩精品一区18| 国产日产欧美一区| 欧美 日韩 国产在线| 在线观看91久久久久久| 影音先锋亚洲一区| 在线看不卡av| 久久国产精品第一页| 亚洲欧美制服另类日韩| 国产欧美日本一区二区三区| 亚洲精品久久久久久一区二区| 国语自产精品视频在线看一大j8| 国产欧美日韩在线| 蜜桃av一区二区在线观看| 亚洲一区二区在线视频| 老司机一区二区三区| 亚洲欧美伊人| 免费欧美日韩| 欧美日韩成人一区二区| 亚洲激情亚洲| 午夜精品久久99蜜桃的功能介绍| 国产一区二区三区在线观看网站| 一区二区三区四区五区在线| 欧美深夜福利| 亚洲欧美日韩精品久久久| 性欧美超级视频| 国产一区二区三区无遮挡| 欧美视频在线观看一区| 久久精品国产久精国产思思| 国产精品久久久久久久久久三级| 欧美本精品男人aⅴ天堂| 99一区二区| 亚洲电影网站| 在线播放视频一区| 好看的av在线不卡观看| 国产精品二区在线观看| 在线观看一区二区视频| 国产欧美一区二区三区沐欲| 久久精品二区| 欧美午夜免费| 欧美日韩精品伦理作品在线免费观看| 麻豆freexxxx性91精品| 久久久久**毛片大全| 美女图片一区二区| 欧美日本韩国| 久久精品欧美日韩精品| 国产女主播一区二区| 国产精品www色诱视频| 国产欧美一区二区精品性色| 久久久久网址| 亚洲在线一区二区| 国内精品视频在线播放| 亚洲精品视频一区二区三区| 欧美va天堂在线| 国内久久视频| 午夜精品免费视频| 国产色爱av资源综合区| 久久综合久久88| 尹人成人综合网| 免费欧美在线| 红桃视频国产精品| 国产视频一区在线| 国产欧美va欧美不卡在线| 欧美freesex8一10精品| 国产精品大片| 欧美精品福利在线| 欧美日韩123| 国产伦一区二区三区色一情| 日韩一二在线观看| 亚洲精品日韩在线观看| 欧美专区中文字幕| 午夜视频一区在线观看| 国产亚洲va综合人人澡精品| 国内外成人免费激情在线视频网站| 亚洲清纯自拍| 国产精品久久久久av| 欧美天天影院| 亚洲伊人一本大道中文字幕| 一区二区三区黄色| 亚洲一区影院| 欧美va日韩va| 国产精品毛片一区二区三区| 午夜日韩在线| 欧美日韩一区二区视频在线观看| 国产精品chinese| 精品动漫一区二区| 在线亚洲激情| 99热这里只有成人精品国产| 一区二区三区毛片| 国产日产欧美a一级在线| 这里只有精品丝袜| 欧美精品在线一区二区三区| 亚洲无亚洲人成网站77777| 欧美日韩一区二区在线观看视频| 免费观看在线综合色| 一区二区三区四区国产精品| 国产精品理论片在线观看| 久久综合色婷婷| 91久久精品美女高潮| 国产精品精品视频| 国产目拍亚洲精品99久久精品| 国内揄拍国内精品久久| 欧美在线观看视频一区二区| 美女亚洲精品| 欧美日韩国产va另类| 国产一区视频观看| 午夜视黄欧洲亚洲| 亚洲欧美久久久久一区二区三区| 国产一区二区三区在线观看精品| 黄色成人在线网站| 国产精品国产三级国产普通话99| 国内精品国产成人| 狠狠网亚洲精品| 国产日韩精品一区二区三区在线| 欧美日韩国产色站一区二区三区| 猫咪成人在线观看|