99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

51單片機貪食蛇游戲機課設(shè):LED點陣驅(qū)動與狀態(tài)機完整實現(xiàn)

51單片機貪食蛇游戲機課設(shè):LED點陣驅(qū)動與狀態(tài)機完整實現(xiàn) 簡介一份基于89C52單片機的貪食蛇游戲機完整設(shè)計面向51單片機入門與進階學(xué)習(xí)者以及需要課程設(shè)計或?qū)嵱?xùn)參考的電子類學(xué)生。方案依托清翔MCS51開發(fā)板包含驅(qū)動代碼、上位機軟件與演示視頻鏈接實現(xiàn)八乘八點陣LED主屏幕、LCD1602液晶狀態(tài)顯示并打通按鍵、紅外遙控、上位機三種操控方式同時利用EEPROM保存最高分記錄。壓縮包約36.95MB平臺未提供明確的文件總數(shù)與類型明細從資源描述看內(nèi)容以C語言工程源碼、上位機程序及相關(guān)說明為主便于對照移植到其他51開發(fā)板。已有1559人學(xué)習(xí)下載適合希望快速上手外設(shè)驅(qū)動、中斷掃描與多模式交互設(shè)計的開發(fā)者可作為完整參考項目直接研讀并二次開發(fā)。視頻中的運行效果可幫助理解整體交互邏輯與顯示刷新方式。1. 一個 rar 里裝的不是游戲是 51 的完整人機交互課設(shè)“51貪食蛇游戲機.rar”這個包名第一眼會讓人覺得里面就是一個貪食蛇游戲拿來編譯燒錄就能玩。實際動手做過的人都知道這個工程的價值遠不止“能玩”——它把 LED 點陣驅(qū)動、定時器中斷、按鍵消抖、狀態(tài)機、串口燒錄這幾條線串成了一個能完整跑起來的人機交互系統(tǒng)。對正在做課程設(shè)計、或者第一次想從“流水燈”往“完整作品”跳的讀者來說這個項目比電子鐘更合適作為過渡載體。它能讓你在幾天之內(nèi)把“硬件接線 → 寫驅(qū)動 → 跑游戲邏輯 → 調(diào)體驗”這條路完整走一遍后面再做任何單片機小系統(tǒng)都會順手得多。2. 硬件怎么搭點陣、按鍵、最小系統(tǒng)的選型與連接2.1 從點陣到屏幕三種顯示方案的取舍貪食蛇的顯示方案基本就三條路8x8 單色點陣、16x16 單色點陣、LCD/OLED 屏。很多人第一反應(yīng)是“用 OLED 多高級”真正做出來才發(fā)現(xiàn)OLED 刷新整屏需要幾十毫秒像素點要反復(fù)翻寫畫像素類游戲非常別扭而且 128x64 的屏做 16x16 的蛇大量面積閑著觀感并不好。LCD1602 同理更適合做菜單和分數(shù)顯示不適合做游戲畫面。方案游戲分辨率引腳占用驅(qū)動難度適合人群8x8 單色點陣8x8蛇最大 64 格約 16 個 IO低直推即可第一次接觸點陣16x16 單色點陣16x16畫面舒服約 8 個 IOHC595 擴展中數(shù)據(jù)串行化課程設(shè)計、正經(jīng)作品LCD1602/OLED不適合作游戲畫面2~4 個 IO中但動畫刷新拉胯只做菜單分數(shù)我的建議很直接如果只是想跑通流程8x8 點陣就夠了P0 送列數(shù)據(jù)、P1 送行選通邏輯最簡單半天能搞定。但如果你想拿這個作品去答辯或者放進作品集直接上 16x16。四個 8x8 點陣拼成 16x16 之后蛇的長度、轉(zhuǎn)彎半徑、視覺反饋都明顯更像一個“游戲機”而不是一個演示板。16x16 需要 32 根驅(qū)動線51 的 IO 口總共才 32 個加上按鍵和蜂鳴器根本不夠分。常見做法是用兩片 74HC595 級聯(lián)把 16 位列數(shù)據(jù)串行發(fā)出去行選通用 P2 口的低四位經(jīng) 74HC154 譯碼器擴展。這樣單片機的 IO 占用被壓縮到2 根時鐘線 1 根數(shù)據(jù)線 4 根行選擇線總共 7 個引腳資源一下子就寬裕了。2.2 按鍵電路獨立按鍵上拉與矩陣擴展貪食蛇需要 4 個方向鍵加 1 個開始/暫停鍵一共 5 個按鍵用獨立按鍵就是最省事的接法。按鍵一端接地另一端接 P1 口的低四位和 P1.4讀取時按鍵按下對應(yīng)引腳讀到低電平。51 的 P1 口內(nèi)部有上拉電阻直接用內(nèi)部上拉就行讀取低四位后按位判斷即可不需要額外的鎖存器。有人會問要不要外接上拉。內(nèi)部上拉阻值通常在幾十千歐級別對數(shù)字信號來說完全夠用。如果現(xiàn)場電磁環(huán)境差、線又長按鍵信號出現(xiàn)抖動導(dǎo)致誤觸發(fā)再在按鍵兩端并一個 0.1μF 電容、或者外接 10kΩ 上拉電阻加強一下。實際踩坑經(jīng)驗是軟件消抖做到位之后外接上拉多數(shù)時候是多余的反而增加焊接量。矩陣鍵盤在這個項目里沒有意義因為按鍵一共才 5 個矩陣是為了在按鍵數(shù)量超過 8 個時省 IO 口用的。硬上矩陣除了讓讀鍵代碼復(fù)雜化沒有任何收益。真正需要矩陣的場景是數(shù)字鍵盤、密碼鎖那一類。貪食蛇用獨立按鍵P1 的低四位正好四個方向代碼里讀一次端口就能拿到全部鍵值簡潔可靠。2.3 最小系統(tǒng)的 3 個必查點晶振、復(fù)位、電源51 的最小系統(tǒng)看著簡單但很多新手焊完板子跑不起來問題幾乎都出在晶振、復(fù)位、電源這三處。晶振我強烈建議直接用 11.0592MHz而不是 12MHz。原因是 12MHz 雖然讓定時器初值更好算但串口波特率會帶誤差燒錄和調(diào)試時經(jīng)常出現(xiàn)“連不上”的玄學(xué)問題。11.0592MHz 分頻出來的 9600、115200 波特率都是整數(shù)分頻USB 轉(zhuǎn) TTL 模塊在這種速率下通信非常穩(wěn)定。如果你的工程代碼里的延時函數(shù)是按 12MHz 校準的那就保持一致別混用否則新做的板子一律 11.0592MHz。復(fù)位電路用經(jīng)典的 10μF 電解電容加 10kΩ 電阻到地。上電瞬間電容充電RST 引腳保持高電平十幾毫秒讓單片機完成復(fù)位。這里有個新手容易翻車的點電解電容極性接反會導(dǎo)致復(fù)位時序不對板子表現(xiàn)為反復(fù)重啟或者干脆不啟動檢查時先看電容方向再查別的。用示波器量 RST 引腳正常上電應(yīng)該是一段高電平然后跌到低電平要是波形不對多半是電容容值或者電阻阻值用錯了。電源是這三項里最容易讓“游戲機”出問題的。16x16 點陣一行同時點亮 16 個 LED按每個 5mA 算就是 80mA 的瞬時電流雖然行掃描是分時點亮但電源瞬時響應(yīng)跟不上就會導(dǎo)致電壓跌落。單片機 VCC 腳必須就近放一個 104 去耦電容點陣的電源線單獨走不要和單片機共用一根細跳線。最靠譜的做法是點陣的電源直接從 USB 的 5V 出來后先過一個大電容再分別給單片機和點陣供電避免點陣拉低電壓把單片機拉復(fù)位。3. 軟件怎么跑貪食蛇狀態(tài)機與 32ms 時間片刷新3.1 游戲邏輯拆成狀態(tài)移動、進食、判定貪食蛇的核心數(shù)據(jù)結(jié)構(gòu)不是鏈表而是一個數(shù)組加兩個索引。51 的內(nèi)存就 128 字節(jié)鏈表節(jié)點需要額外的指針開銷兩三個節(jié)點還好蛇長 30 格之后內(nèi)存直接爆炸。用數(shù)組存蛇身的 x、y 坐標再用 head_idx 標記當前蛇頭在數(shù)組里的下標。移動的時候蛇頭往前走一步蛇尾丟掉一個格子整個蛇身就“跟隨”了。這個做法在數(shù)據(jù)結(jié)構(gòu)里叫環(huán)形隊列思路是單片機貪食蛇最省內(nèi)存的實現(xiàn)。#define SNAKE_MAX_LEN 64 unsigned char snake_x[SNAKE_MAX_LEN]; // 蛇身所有格子的 x 坐標 unsigned char snake_y[SNAKE_MAX_LEN]; // 蛇身所有格子的 y 坐標 unsigned char snake_len; // 當前蛇長 unsigned char head_idx; // 蛇頭在數(shù)組中的下標隊尾 signed char dir; // 0上 1下 2左 3右 // 方向增量表上、下、左、右 const signed char dir_step[4][2] { {0, -1}, {0, 1}, {-1, 0}, {1, 0} };邏輯上每次移動就是“頭往前加一格尾往后減一格”。如果吃到食物尾就不減蛇長度加 1。這里說的“頭往前”是指把新頭坐標寫進數(shù)組里原頭位置的下一個下標然后更新 head_idx 指向它。數(shù)組里的蛇身順序可能是從頭到尾巴連續(xù)排列的也可能是繞了一圈之后首尾相鄰的但因為我們只需要通過索引找到頭和尾順序并不影響邏輯正確性。移動和判定寫在一個函數(shù)里每 100ms 調(diào)用一次這是游戲的主心跳void Game_Update(void) { unsigned char i; unsigned char new_idx; unsigned char new_x, new_y; // 新頭坐標 蛇頭當前坐標 方向增量 new_idx (head_idx 1) % SNAKE_MAX_LEN; new_x snake_x[head_idx] dir_step[dir][0]; new_y snake_y[head_idx] dir_step[dir][1]; // 撞墻判定坐標越界直接結(jié)束 if (new_x 15 || new_y 15) { Game_Over(); return; } // 撞自己判定尾巴這一格馬上要讓出來所以只檢查蛇身長度-1格 for (i 0; i snake_len - 1; i) { if (snake_x[i] new_x snake_y[i] new_y) { Game_Over(); return; } } // 寫入新蛇頭 snake_x[new_idx] new_x; snake_y[new_idx] new_y; head_idx new_idx; // 吃到食物長度加 1尾巴不動否則尾巴丟掉一格 if (new_x food_x new_y food_y) { snake_len; Food_Generate(); } else { // 沒吃到食物時蛇尾那一格在下一次覆蓋前就是廢位置 // 實際邏輯里通過 head_idx 和 snake_len 計算尾下標這里省略 } }這段代碼的邏輯說明new_idx是蛇頭要去的新位置寫成數(shù)組下標后head_idx更新。撞自身檢查時只遍歷snake_len - 1格是因為蛇尾那一格在移動后會被讓出來如果把它也算進去蛇在追自己尾巴時會誤判死亡。這個細節(jié)是很多實現(xiàn)翻車的根源之一細節(jié)定生死。食物的生成必須避開蛇身這是最容易寫錯的點。正確做法是用 do-while 循環(huán)隨機生成坐標后遍歷蛇身數(shù)組檢查沖突有沖突就重新生成void Food_Generate(void) { unsigned char i, x, y, ok; do { x rand() % 16; y rand() % 16; ok 1; for (i 0; i snake_len; i) { if (snake_x[i] x snake_y[i] y) { ok 0; break; } } } while (!ok); food_x x; food_y y; }食物坐標存成全局變量顯示刷新時會用到。rand()的種子建議在按鍵響應(yīng)時隨手取一下當前計數(shù)值做種子能避免每次上電食物位置完全一樣。3.2 16x16 點陣的行掃描刷新代碼16x16 點陣的刷新必須用行掃描每一時刻只點亮一行靠人眼的視覺暫留讓人感覺整屏同時亮。以一幀 16 行為例如果 32ms 掃完一整屏幀率約 31fps動態(tài)畫面基本流暢。行掃描的典型實現(xiàn)是“先送列數(shù)據(jù)再選通當前行”把這一行的 16 個點一次性點亮保持 2ms 左右然后換下一行。關(guān)鍵在于送數(shù)據(jù)和選行的順序不能反否則會出現(xiàn)殘影和花屏。下面是我基于兩片 74HC595 級聯(lián)的串行驅(qū)動代碼。兩片 595 級聯(lián)數(shù)據(jù)先發(fā)高位那片也就是第 0~7 列一個字節(jié)然后發(fā)第 8~15 列一個字節(jié)// HC595_DS 數(shù)據(jù)腳, HC595_SHCP 移位時鐘, HC595_STCP 鎖存時鐘 sbit HC595_DS P2^0; sbit HC595_SHCP P2^1; sbit HC595_STCP P2^2; void HC595_SendData(unsigned int dat) { unsigned char i; for (i 0; i 16; i) { HC595_SHCP 0; HC595_DS (dat 0x8000) ? 1 : 0; // 先發(fā)最高位 HC595_SHCP 1; // 上升沿把數(shù)據(jù)移入 dat 1; } HC595_STCP 0; HC595_STCP 1; // 鎖存并行輸出到點陣列腳 }邏輯說明595 是串入并出移位寄存器16 位數(shù)據(jù)在 16 個時鐘上升沿逐位移入最后用鎖存腳的上升沿一次性輸出。dat 0x8000取出當前最高位數(shù)據(jù)判斷成 1 或 0 送到 DS 腳。兩片級聯(lián)時先發(fā)送的 8 位會停在較遠的那片 595 上剛好對應(yīng)點陣的左半邊。顯示刷新函數(shù)里每一幀從頭掃到尾逐行點亮// screen[row][0] 是第 row 行的左 8 列, screen[row][1] 是右 8 列 unsigned char screen[16][2]; void Disp_Refresh(void) { static unsigned char row 0; unsigned int dat; // 組合成 16 位列數(shù)據(jù)高字節(jié)對應(yīng)左半邊 dat ((unsigned int)screen[row][0] 8) | screen[row][1]; HC595_SendData(dat); // 選行之前先關(guān)閉所有行避免上一行的余暉殘留 ROW_PORT 0xF0; ROW_PORT | row; // P2 低四位輸出當前行號 row; if (row 16) row 0; }邏輯說明screen是顯存數(shù)組游戲邏輯只往數(shù)組里寫點顯示刷新只管把數(shù)組內(nèi)容搬上屏幕。ROW_PORT 0xF0先讓 74HC154 所有輸出無效等列數(shù)據(jù)穩(wěn)定后再把新行號輸出這樣能杜絕行切換瞬間的“鬼影”。這個坑我在第 5 章會展開說——很多人殘影怎么消都消不掉就是少了這一句。3.3 定時器中斷與主循環(huán)的職責劃分時間基準用定時器 0 的 16 位模式1ms 中斷一次。晶振 11.0592MHz、12T 模式下機器周期約 1.085μs1ms 需要 922 個計數(shù)初值就是 65536 - 922 0xFC66void Timer0_Init(void) { TMOD 0x01; // 定時器 016 位不自動重裝 TH0 0xFC; // 1ms 初值高 8 位 TL0 0x66; // 1ms 初值低 8 位 ET0 1; // 開定時器 0 中斷 TR0 1; // 啟動定時器 EA 1; // 開總中斷 }定時器中斷里只做一件事置flag_1ms 1其余全部放到主循環(huán)處理。這是我從這個項目里學(xué)到的最重要原則——中斷里只做最輕量的事。很多人把顯示刷新和游戲邏輯都塞進中斷結(jié)果按鍵一按蛇飛出去好幾格本質(zhì)是中斷占用了過多 CPU 時間主循環(huán)根本沒機會處理按鍵。主循環(huán)的骨架如下void main(void) { unsigned int tick_cnt 0; Timer0_Init(); Game_Init(); while (1) { if (flag_1ms) { flag_1ms 0; tick_cnt; // 每 2ms 刷新一行點陣16 行約 32ms 掃完一幀 if (tick_cnt % 2 0) { Disp_Refresh(); } // 每 10ms 采樣一次按鍵消抖依賴這個間隔 if (tick_cnt % 10 0) { Key_Scan(); } // 每 100ms 蛇走一步也就是游戲速度 if (tick_cnt % 100 0) { Game_Update(); } } } }邏輯說明tick_cnt只加不減時間片通過取余切開。2ms 掃一行對應(yīng)幀率約 31fps基本流暢10ms 采樣一次按鍵配合狀態(tài)機完成消抖100ms 走一步是默認速度想加速改成 80ms 甚至 60ms 就行變量抽出來做成全局調(diào)節(jié)會更方便。所有任務(wù)都在主循環(huán)里做中斷只負責打拍子這保證了系統(tǒng)的實時性和可調(diào)試性。4. 拿到工程包先做四件事打開、改配置、編譯、燒錄4.1 工程里通常有哪些文件各自干嘛你從網(wǎng)上下到的 51 貪食蛇工程包打開 rar 之后大概率會看到這幾類東西Keil 工程文件后綴是 .uvproj 或 .uvprojx、若干個 .c 源文件、對應(yīng)頭文件 .h可能還有原理圖 PDF 或者 Proteus 仿真文件。先別急著點編譯按順序認識一下它們。main.c 是游戲主邏輯所在包含初始化、主循環(huán)、游戲狀態(tài)更新。顯示驅(qū)動的代碼可能單獨放在 disp.c 里按鍵掃描在 key.c 里。這種拆分在老式課設(shè)代碼里不常見很多課設(shè)就是一個 main.c 寫完所有東西但你拿到手之后不要抱怨結(jié)構(gòu)亂——恰恰因為它是單文件你更容易順著從上往下讀一遍把每個函數(shù)的作用搞明白。原理圖文件比源碼更值得先看。PCB 圖也好、仿真圖也好先確認點陣的接線方式和代碼里的引腳定義一致。最常見的問題就是代碼里寫sbit HC595_SHCP P2^1;而你的原理圖把 SHCP 接到了 P2.2這種不一致會讓屏幕怎么點都不亮。我拿到任何板子工程的習(xí)慣是先畫一張引腳對照表原理圖一個引腳代碼一個引腳核對完再編譯。燒錄相關(guān)的文件一般不會在包里需要自己準備 USB 轉(zhuǎn) TTL 模塊和燒錄軟件。這部分我在 4.3 節(jié)詳細說。4.2 編譯前要改的三個地方Keil 打開工程之后不要直接按編譯鍵。先打開 Options for Target檢查三個設(shè)置這三處不對編譯能過、跑起來也是錯的。第一處是芯片型號。很多工程默認按 AT89C51 建的但實際用的是帶 ISP 功能的國產(chǎn) 51 芯片比如 STC89C52。芯片型號選錯一般不影響編譯但影響燒錄——燒錄軟件讀不到芯片 ID或者說“芯片型號不匹配”。在 Target 標簽頁的 Device 欄重新選擇實際芯片型號。第二處是晶振頻率。Options for Target → Target → Xtal(MHz) 這個值是給 Keil 做串口仿真和延時分析用的。工程如果默認 24MHz而你板子上是 11.0592MHz仿真時的時間基準全錯delay 函數(shù)實際延時長了一倍。第三處是 Memory Model。默認 Small 模式就行51 的片內(nèi) RAM 只有 128/256 字節(jié)這個項目的變量也小不需要改 Large。如果代碼量很大導(dǎo)致 data 段溢出編譯時會報DATA SEGMENT TOO LARGE再改成 Large 也不遲。改完之后重新編譯確保 0 Error 0 Warning 再往下走。// 一個常見的坑代碼里沒有包含 reg52.h // 如果 main.c 里直接用了 P0、P1、TMOD 這些寄存器名 // 記得在頭部加上 #include reg52.h邏輯說明reg52.h 是 Keil 自帶的寄存器定義頭文件里面定義了 P0、P1、TMOD、TH0 這些 SFR 的地址。有些工程會自己寫一個頭文件原理一樣。如果編譯報undefined identifier P199% 是頭文件沒包含或者目標芯片選成了非 51 內(nèi)核的型號。4.3 燒錄失敗時先查電平與串口參數(shù)燒錄是新手翻車重災(zāi)區(qū)最常見的現(xiàn)象是燒錄軟件一直顯示“正在檢測單片機...”然后超時。先做排除法。查接線USB 轉(zhuǎn) TTL 模塊的 TXD 接單片機 RXDRXD 接單片機 TXD交叉連接共地。很多人第一次燒錄把 TXD 接 TXD、RXD 接 RXD完全對不上。還要確認模塊是 3.3V/5V 兼容的如果模塊輸出 3.3V 而單片機需要 5V 供電務(wù)必用外部 5V 給板子供電模塊只負責信號。查上電時序STC 系列單片機的下載方式是“冷啟動”。操作順序是先點燒錄軟件的“下載/編程”按鈕再給板子重新上電。很多人習(xí)慣先上電再點下載結(jié)果永遠等不到握手信號。這個流程反直覺但用一次就記住了。查波特率9600 和 115200 是燒錄軟件默認的高兼容性波特率。如果電腦的 USB 轉(zhuǎn) TTL 模塊是舊的主控芯片115200 可能不穩(wěn)定降到 9600 通常能解決。還有一個小技巧燒錄軟件里勾選“每次下載前重新裝入文件”和“編程后執(zhí)行”可以少一些手動步驟。最后查驅(qū)動。USB 轉(zhuǎn) TTL 模塊插上電腦后設(shè)備管理器里要能看到對應(yīng)的 COM 口看不到就裝驅(qū)動。這一步是純環(huán)境問題和工程代碼無關(guān)但很多人卡在這里誤以為是代碼寫錯了。5. 避坑點陣鬼影、按鍵失靈、復(fù)位反復(fù)的排查記錄5.1 現(xiàn)象點陣出現(xiàn)殘影、拖尾整屏像蒙了一層灰點陣在顯示運動畫面時蛇尾巴拖著一串“虛影”或者整屏亮度不均勻有幾行明顯發(fā)暗。這個現(xiàn)象幾乎是 16x16 點陣新手必踩的坑。原因是行切換時上一行的列數(shù)據(jù)還留在 595 的輸出鎖存里而新的行選通已經(jīng)打開了導(dǎo)致上一行的數(shù)據(jù)在新行上閃了一下。人的視覺對這一閃很敏感看起來就成了殘影。解決的辦法就是在選新行之前先關(guān)閉所有行。上文的Disp_Refresh里ROW_PORT 0xF0這一句就是干這個的。先把輸出全部關(guān)掉再更新行號最后新行才亮起來。順序不能變“先送列數(shù)據(jù) → 關(guān)所有行 → 選新行”。另外還要檢查行掃描周期是否太慢如果每行停留超過 5ms整屏 16 行掃完要 80ms幀率只有 12fps那殘影就不不是行切換的問題了而是視覺暫留不夠需要把刷新調(diào)快。5.2 現(xiàn)象按鍵按下去偶爾沒反應(yīng)或者一次跳兩步按鍵問題的表現(xiàn)分兩種一是快速連按時丟失按鍵二是按一下方向鍵蛇走了兩格。這兩種現(xiàn)象對應(yīng)兩個不同的原因。丟失按鍵是因為沒消抖。機械按鍵在按下和釋放的瞬間都有幾毫秒的抖動如果主循環(huán)在抖動期間讀到一次高、一次低就把它當成兩次按鍵邏輯就亂了。一次跳兩步的原因更隱蔽有些實現(xiàn)里把方向修改直接放在了定時器中斷里中斷每次進來都讀按鍵而游戲移動在主循環(huán)里。按鍵按下期間中斷觸發(fā)了多次方向標志被重復(fù)改寫蛇自然就連續(xù)轉(zhuǎn)向。我使用的方案是 10ms 采樣一次 狀態(tài)機消抖。每次采樣到的電平如果和上一次穩(wěn)定值不同就計數(shù)連續(xù)兩次相同才認為電平真正變了。按下瞬間產(chǎn)生一次事件之后按住不動不會重復(fù)觸發(fā)。方向鍵事件在主循環(huán)里只做一次方向更新不直接操作蛇的位置。這樣按一下就是一下永遠不會有跳兩步的問題。5.3 現(xiàn)象上電后反復(fù)復(fù)位跑幾秒就白屏板子剛上電時正常玩不了幾秒就重啟或者 LED 點陣亮度明顯不均勻、單片機像在“呼吸”。這是典型的電源問題。原因有兩類一是 USB 供電線太細太長壓降過大點陣瞬時電流一拉單片機 VCC 跌到復(fù)位閾值以下二是電源濾波電容不足點陣行掃描的電流波動直接耦合到單片機電源腳。解決的辦法先把點陣電源和單片機電源分開走線在板子入口放置一個大容量的電解電容100μF 起步有條件上 470μF再用一個 104 陶瓷電容緊貼單片機 VCC 腳。如果還不行降低整體亮度——把點陣列的限流電阻從 470Ω 換成 1kΩ或者用軟件把點亮的占空比從 1/16 降到 1/20犧牲一點亮度換穩(wěn)定性。另外檢查一下是不是 74HC154 的電源腳忘記加去耦電容這種數(shù)字芯片的電源抖動同樣會影響輸出波形。5.4 現(xiàn)象蛇往右走按一下方向鍵卻直接掉頭撞墻這個現(xiàn)象發(fā)生時你會覺得方向“串”了。蛇頭明明朝右按下鍵蛇卻往上或者往下走了有時候甚至直接反向 180 度回頭撞上自己的身體瞬間死亡。原因有兩個一是消抖狀態(tài)機里沒有處理“兩個按鍵同時按下”或者“按鍵切換瞬間”。如果上一次穩(wěn)定值是“無按鍵”這次讀到“上鍵按下”但讀取時另一路抖動干擾導(dǎo)致鍵值錯誤映射。二是方向更新沒有做禁止反向的判斷。方向鍵允許蛇在朝右時直接改成朝左這是一種非常反直覺但新手常犯的放縱設(shè)計游戲體驗極差。解決方法是雙管齊下。按鍵映射函數(shù)里只接受 0x01、0x02、0x04、0x08 這四個單鍵值其余都按無效處理。方向更新時加一個判斷// new_dir 來自按鍵映射dir 是當前實際移動方向 if (new_dir 0 ((new_dir 2) % 4 ! dir)) { dir new_dir; }邏輯說明方向編號 0上、1下、2左、3右任意兩個相差 2 的方向互為反方向。(new_dir 2) % 4得到的就是 new_dir 的反方向如果它和當前方向相同就說明這次按鍵會導(dǎo)致 180 度掉頭直接丟棄。這樣蛇永遠只能做左轉(zhuǎn)或右轉(zhuǎn)想回頭只能先轉(zhuǎn) 90 度再等下一次按鍵這是貪食蛇的基礎(chǔ)手感。5.5 現(xiàn)象食物生成后看不見或者直接消失食物偶爾刷不出來開局就找不到食物或者玩到一半食物突然“消失”。出現(xiàn)這種情況定位起來最容易但也最容易犯。原因是食物生成時只規(guī)避了蛇頭坐標沒有規(guī)避整條蛇身。如果蛇身很長食物落在蛇身某個身體的格子上顯示層把蛇身畫上去食物就被覆蓋了看起來像消失。還有一種情況是隨機數(shù)只取了坐標范圍但沒檢查這個坐標是否已經(jīng)存在——同樣的位置反復(fù)生成兩次視覺效果更奇怪。解決方式在 3.1 節(jié)的Food_Generate里已經(jīng)寫了do-while 循環(huán)里遍歷snake_x數(shù)組、snake_y數(shù)組只要新坐標和任何一節(jié)蛇身重疊就重新隨機。這里注意邊界條件當蛇長接近 64 格時整個場地幾乎沒有空位這個函數(shù)會變成死循環(huán)。實際游戲里要在蛇長達到一定值后宣布通關(guān)或者提前結(jié)束游戲避免掉進這個死循環(huán)里。6. 從 8x8 到 16x16 再到雙緩沖把顯示刷新這條路走到底6.1 數(shù)據(jù)都映射成二維數(shù)組后換分辨率其實是改一張表如果你已經(jīng)用screen[16][2]這種顯存數(shù)組把游戲邏輯和顯示驅(qū)動分開那換硬件分辨率會比你想象中輕松。游戲邏輯只往screen里寫坐標點顯示驅(qū)動只負責把screen搬上點陣。換成 8x8 時把screen改成screen[8][1]行列數(shù)宏改一下繪制函數(shù)里的邊界判斷同樣跟著宏走其余代碼基本不用動。這里有個值得養(yǎng)成的習(xí)慣不要直接在游戲邏輯里寫硬件引腳操作所有畫面輸出都走SetPixel(x, y, on)這一層抽象。我見過不少工程顯示代碼和游戲邏輯耦合在一起換一次屏就得重寫半個游戲就是因為沒做這層隔離。你的下一個作品可能從點陣換成 LCD、從 LCD 換成 TFT顯存抽象能幫你省掉大把重構(gòu)時間。6.2 終極驗證用一幀空閑時間去斷言每一幀的用時游戲跑起來之后不要只靠眼睛判斷流暢度。用一個最樸素的辦法實測幀時間在Disp_Refresh()函數(shù)開頭翻轉(zhuǎn)一個閑置的 IO 口結(jié)尾再翻轉(zhuǎn)回來用示波器或者邏輯分析儀量這個方波的高電平寬度。如果每行刷新耗時超過 2ms一幀 16 行就會超過 32ms肉眼能感覺到卡頓。另一個更實用的技巧是把游戲邏輯幀率和顯示刷新率分開算賬。顯示刷新靠時間片每 2ms 一次游戲移動靠計數(shù)每 100ms 一次。兩者互不阻塞你可以在調(diào)試時把移動間隔調(diào)到 50ms 看蛇飛跑再調(diào)回 100ms 感受正常速度這時候你會明顯察覺到“游戲卡不卡”和“點陣閃不閃”是兩個獨立問題。能區(qū)分這兩種現(xiàn)象說明你對這套時間片架構(gòu)的理解已經(jīng)到位了。我在這個項目上踩過的最后一個坑是為了追求“畫面更順”把游戲更新也搬進了中斷結(jié)果主循環(huán)沒事可干按鍵響應(yīng)全亂。后來才明白中斷就適合做節(jié)拍發(fā)生器任務(wù)調(diào)度留在主循環(huán)里51 這種資源有限的芯片反而能跑出穩(wěn)定的效果。這個原則后來做其他小系統(tǒng)也一直沒變過。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩AV中文在线观看| 99热这里有精品| 丁香五月区| 超碰在线成人| 丁香五月六月婷婷怡红院| 韩国19 主播内部福利vip免费播放| 亚洲综合在线视频| 能看的av网站| 婷婷丁香人妻久久在线观看| 天天搽天天射| 婷婷色丁香五月| 中国无码av| 婷婷五月天六月| 精品成人在线观看| 五月天天丁香婷婷| 五月综合激情网| 丁香五月婷中字幕| a久久| 婷婷色情五月| 五月婷婷免费| 丁香六月天婷婷色| 欧美美女国产日韩一区二区久| 成人无码中文| 精国产品一区二区三区A片| 婷婷综合五月天| 五月丁香综合啪啪対白| www久久99com| 99色啊| 五月天自拍视频| 五月停停丁香| 第四色婷婷日本| 99九九99九九九视频精品| 丁香九月婷| 色色色色色色色色色色色色色色,网站| 日韩影院三级| 激情四射网| 中字幕视频在线永久在线观看免费| 婷婷操婷婷干婷婷射| 天干干夜夜操| 婷婷5月天激情综合| 国产精品久久..4399| 丁香9月婷婷| 国产激情久久久| 丁香五月人妻| 色五月激情五月开心五月| 欧美天天性| 91在线日| 中文AV在线播放| 天天爽曰日爽| 久久A热| 亚洲色色在线| 婷婷激情五月天在线视频| 色碰干| 亚洲第一影院高清无码网站| 亚洲免费电影2| 欧美婷婷色| 九九AV| 五月婷婷大香蕉| 大香蕉99热| 淑女丝袜bi操逼123| 思思热在线免费视频| 99精品视频在线| 深爱五月综合网| 丁香五月天在线视频| 综合玖玖偷拍| 色五月激情综合网| 免费看欧美成人A片无码| 开心五月深爱五月| 亚洲亚洲人成综合网络| 色综合激情图区| 日本熟妇乱妇熟色A片蜜桃| 婷婷五月天av| 九九九九精品精| 刘玥av在线| 精国产品一区二区三区A片| 色色丁香| 亚洲中文AV| 亚洲中文AV| 色久一| 丁香花狠狠婷婷亚洲中文字幕| 婷婷五月天,影院| 婷婷久久性爱| 五月婷婷久久综合| 性爱在线播放av| 丁香五月婷婷成人色区| www夜夜操| 7超碰自拍| 国产五月婷| 色的色综合| 成人AV在线网站| 五月色丁香婷婷中文字幕| 丁香婷婷人妻综合网| 天天拍夜夜爽日日| 久久99热这里只频精品6学生| 国产精品VA在线| 九九热最新地址| 91日视频| 人妻丰满精品一区二区A片| 成人午夜天| 五月天sesese| 色婷婷久久综合| 天天色综合色色色色色。| 天天撸夜夜爽| 超碰日日操| 777色色色| 免费看欧美成人A片无码| 久久久久久婷| 看婷婷五月天网| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 深爱激情小说五月婷婷| 97久久综合网| 综合网色| 99热在这里只有精品| 国产成人av在线播放| 人人操人人爰人人一天天碰夜夜拍夜夜爽-中国A级毛片天天看天天谢… | 久婷久婷| 中文字幕1区2区。| 久久狼人天堂| 午夜激情五月天| 另类综合激情| 色婷婷第四色| 色综合久久天天综合网| 五月婷色色| 五月婷婷色欲| 91操碰| 天天射夜夜骑| 丁香六月婷婷久久综合| 伊人色综合影院视频| 夜夜操夜夜爽| 久热无码| 啪啪丁香五月| 五月天狠狠| 亚洲精品视频在线播放| 五月丁香 啪啪| 26uuu激情五月天| 色久综合| a毛片二逼wwwwwwwwww| 五月天日日操夜夜操| 伊人久久五月天综合| 五月丁香婷婷综合网| 欧美五月停| 玖玖综合网| 国产色五月| 婷婷五月天开心网| 久久婷婷综合基地| 亚洲AV中文在线| 任你爽在线视频| 九月激情网| 在线播放 精品| 久久网日本| 少妇人妻综合色6699| 99久久婷| www色婷婷| 五月丁香六月激情欧美综合| 婷婷丁香18| 五月激情婷婷图片基地| 99免费| 欧美日韩成人在线网站| 婷婷之玖玖| 五月婷婷天天| 国产乱轮一区二区三区| 色六月天| 激情九月婷婷| 五月丁香亚洲校园欧美| 激情五月天影院| 91无码视频| 老司机日日夜夜青草| 九九九九九999999| 99日这里只有精品| 九一牛视频探花| 99视频一区| 激情五月婷婷| 久久九九99亚洲国产久精综合| 丁香六月婷| 亚洲婷婷基地| 色综合激情| 99九九玖玖| 婷婷色导航| 超碰在线播放免费观看| 成人网在线视频| 碰碰碰97免费精彩视频| 久久综合五月| 99热99久久| 五月婷婷九九热| 天天爱天天做天天操| 久久五月天丁香花| 五月丁香久久| 亚洲超碰在线| 四LLL少妇BBBB槡BBBB| 综合亚洲色色| 国产欧美精品AAAAAA片| 26uuu精品国产| 婷婷五月精品中文| 91精品无码| 五月丁香综合激情| 国产精品日本一区二区在线播放 | 99热这里只有在线| 色婷婷久久视屏| 五月丁香综合激情网| 欧美亚洲成人在线| www.俺去也com| 日本不卡高字幕在线2019| 亭亭五月天黑人2014| 在线日韩av| www.婷婷| 欧美激情五月| 任你艹| 大香蕉久久青青| 婷婷五月综合色中文字幕| 国产精品色| 色碰碰| 五月天成人小说| 久久婷婷五月草视频在线播放| 性生生活大片又黄又| 狠狠插狠狠| wwww.9免费视频| 99人人操人人摸| 婷婷五月六月丁香| 天天色宗合| 99超在线| 停停综合色色| 婷婷激情五月| www.99热| 狠狠狠狠狠狠草| 国产精品国产成人国产三级| 日日综合网| 欧美啪啪9| www婷婷| 日日爽天天| 碰碰操91| 婷婷亚洲激情在线观看视频| 婷婷五月综合中文字幕| 亚洲激情综合| 99视频在线精品| 丁香婷婷大香蕉| 日韩AV中文在线观看| 久久久噜噜噜久久人妻| 欧洲亚洲免费视频区| 99精品在线观看视频| 丁香五月停停av| 天天日夜夜| 色五月之第四色| 99热欲| 超碰九九热| 亚洲综合五月天综合| 六月丁香婷婷大香蕉| jiZZdr| 天天干com| 丁香香蕉婷婷| 亚洲精品白浆高清久久久久久| 夜夜爱网站| 丁香婷婷六月激情文学 | 色色婷| 色婷婷婷婷五月天| w婷婷五月婷婷w| 成人中文字幕在线| 亚洲精品白浆高清久久久久久| 日本色综合| 情欲综合网| 性视频久久| 免费在线观看av网站| 五月天激情久久| 思思w99| 久/久精品99看9| 日本在线观看aaa 99| 色婷婷综合网站| 天天综合五月天| 五月丁香婷婷伊人| 久热无码| 日良久久| 亚洲在线综合| 欧美va欧美va差| 色婷婷激情| 热思思| 再綫Av免费視品| 97色天堂| www.com任你艹| 超碰免费观看| 六月婷综合| 五月丁香| 国产精产国品一二三在观看| 色99在线| 操操碰| 久久xxxx| 大香蕉啪啪啪| 丁香五月电影| 99免费| 无码啪啪| 丁香婷婷深情五月亚洲| 天天色视频| 亚洲不卡| 夜夜干夜夜操| 久热这里| ..真实国产乱子伦对白在线_欧| 天天射影院| 婷婷亚洲天堂| 99这里都是精品6| 激情丁香九九五月综合网| 天天爽,夜夜爽| 色激情五月| 天天色激情| 5月丁香六月婷婷| 精品无码av丁香五月激情| 91Chinese在线| 色停停香蕉视频| 99色免费| 综合网色| 思思久久精品视频| 激情宗合网激情五月天| 五月婷婷丁香色吧网| 久久婷婷操| 丁香五月激情视频在线| 夜夜夜夜夜骑撸| 五月丁香中文| 色五月综合在线| 五月天婷婷在线观看| 五月伊人婷婷| 激情五月婷婷丁香| www.91九色| 婷婷综合五月天| 插逼综合网| 综合色五月天| 啪啪啪啪五月天| 深爱五月天天| 亚洲精品99| 亚洲AV网址| 色色无码| 婷婷五月综合激情| 亚洲传媒在线观看| 欧美激情综合色综合啪啪五月| 99热老司机| 天天色月| 五月天激情无码专区| se影音资源在线观看| www.婷婷六月天| 中文字幕在线播放视频| 97在线观视频免费观看| 99re8热精品免费视频| 九热av| 天堂爱啪啪| 亚洲黄色影视| 亚洲激情精品| 亚洲第一综合| 婷婷成人基地| 欧美日韩国产一区| 丁香开心深爱| 99在线热视频| 国产精品激情AV久久久青桔| 另类视屏| 婷五月丁香| 26uuu亚洲精品国产| 天天综合五月| 9色91视频| 六月婷婷AV| 综合婷婷| 开心五月网| 欧美日韩99| 国产露脸150部国语对白| 91碰九色| 狠狠CAO日日穞夜夜穞AV| 亚洲无码猫咪| 中文久久久人妻| 色噜噜狠狠插综合| www.激情| 九九婷婷综合| 亚洲天码视频www蛋播视频| 丁香色六月婷婷| 亚洲电影在线观看| 新97人人上人人| 五月天激情在线视频| 99热6这里之有精品| 丰满熟女人妻一区二区三| 天天日天天爽夜夜爽| www.夜夜爱.com| 九九综合九九| 免费视频无码| 免费观看高清无码| 五月丁香天天| 精品久久人妻| 亚洲欧美国产A片免费观看| 色欲婷婷夜夜| 久久综合九九| 婷婷丁香亚洲色综合91| 天天做天天爱天天综合| 江苏少妇性BBB搡BBB爽爽爽| 91久久色| 五月天激情国产综合婷婷| 五月婷婷丁香五月| 99热都是精品| 天天色99| 岛国操B不卡在线| 丁香五月宝贝激情网| 五夜婷婷| 久久资源网五月婷| 天天日天天插| av第一二区| 久久这有这里精品| 丁香婷婷色五月激情综合| 天天插天天射天天干| 黄色热99| 婷婷五月天激情偷拍| 国产成人在线精品| 色婷天天| 另类激情五月| 97丁香五月| www.久热| 久久一品区| 国产精品日韩十五区| 日日干日日| 99热成人永久免费| 六月婷婷色综合| 少妇高潮一区二区三区99欧美| 综合网啪| 亚洲婷婷五月| 亚洲av成人在线| 欧美啪啪9| 婷婷五月天丁香社区| 久久婷婷激情四射五月天| 极品五月天| 亚洲成人无码专区| 六月丁香婷婷在线波多 | 久热久re| 99精品综合| 激情五月天第四色| 激情五月婷黄版| 五月丁香亭亭AV女优| 色久天| 日本少妇AA一级特黄大片| 99福利视频| 99re欧美精品| 婷婷五月丁香基地| www.射伊蕉婷婷| 人妻激情在线| 欧美性二区| 日本婷婷五月天| 美女五月激情| 潘金莲AAAAAAAAAA| 五月综合无码| 欧美婷婷日本| 人妻乱码久久久| 99性爱| 九九成人精品| 婷婷五月色花丁香社区| 猫咪伊人久久| 五月天婷婷一起草| 男女啪啪视频久 9| www.五月丁香| 中文AⅤ大全| 色综合天天综合成人网| 九色婷婷| 无码91中文字幕| 天天综合社区| 日韩在线视频中文字幕| 色色热| 五月婷婷开心亚州在线| 涩涩婷婷五月| 久久久人妻| 丁香婷五月| 五月丁香婷婷老司机| 天天干天天干天天干| 五月天婷婷久久| 99这里只有精品| 噜噜噜噜噜色| 91热99| 日本欧美成人片AAAA| 天天色官网| 久久的爱大香蕉| 婷婷婷婷婷婷婷五月丁香| 婷婷五六日| 操丝袜视频影院导航| 九九精品网站| 五月天婷婷在线视频| 99re在线精品视频| 99欧州偷拍视频| 五月激情四射网站| 在线亚洲综合网| 91无码一起草| 无码一级片| 中文字幕婷婷在线| 五月丁香黄色视频| 亚洲区在线| 深爱激情综合网| 日夜操B| 亚洲精品性色| 五月天色婷婷基地| www色综合| 深爱五月日韩| 天天干天天爽| 亚洲日日日| 欧美操人| 亚洲精品无码久久| 另类丁香五月天区图| 激情综合视频| 久久精品噜噜噜成人A∨色欲| 婷婷狠狠狠爱| 亚洲在线资源| 91色婷婷综合久久中文字幕二区| 天天综合网、天天综合色 | 五月婷婷性爱| 天天人人天天爽| caopeng97日韩| 深爱五月日韩| 色久九| 激情五月天色色网| 色播激情| 99免费综合网| 丁香婷婷六月在线资源观看| 停婷丁五月在线| 婷婷九月丁香| 色啦啦视频| 伊人五月天97| 久久久久亚洲A∨成人乱码电影| 一區四區歐美日韓| 五月天成人免费视频| 九九激情网| 97在线观视频免费观看| 香蕉视频91| 婷婷激情五月天网站| 天天五月情| 久热黄色| 九热网站| 久热69| 五月婷在线| 日韩三十六页| WWW,激情五月天,COM| 麻豆五月丁香婷婷| 热99这就是精品视频| 色五月丁香com| 欧美激情中文字幕| 色色亚卅| 天天爱天天做天天操| 色九九中文字幕| 婷婷丁香五另类网站| 六月丁香婷婷色69| 日韩人妻无码专区| 91人操| 亚洲中文无码成人| 9l视频自拍9l九色9l成人| 国产精品扒开腿做爽爽爽A片唱戏 青青草国产亚洲精品久久 | 久草五月婷婷| 91怕怕网| 另类激情五月| 蜜臀AV在线观看| 久青操| 激情com| 欧美日韩成人高清在线| 丁香五月婷婷国产av| 久久久久久久五月婷婷六月丁香综合,开心激情综合网 | 色五月婷婷综合| 操操操91| 天天爽天天透天天爱| 色一情一乱一乱一区91Av| BlACKEDRAW视频一区二区| 久久五月六月| 久热伊人| 日韩影院三级| 人妻aV在线| 麻豆AV一区二区三区| 五月天激情综合网俺也去| 欧美黄色韩日网| 亚洲丁香花色| 婷婷五月综合色中文字幕| 另类激情五月在线视频欧美| 日逼免费视频| 538在线精品| 日木狠狠干| 九九大香视频| 9l视频自拍九色9l视频在线观看| 婷婷色正月| 五月天啪啪网| 久热这里只有精品99re| 丁香五月色激情| 内射丰满人妻| 亚洲深喉AV| 人妻在线中文字幕久久| 亚洲成av人影院| 最新午夜理论片| 日本色色色| 99天堂网| 九九热精品| 色欲婷婷夜夜| 无码少妇高潮喷水A片免费| 五月婷视频在线| 激情五月婷婷网| 超爽内射| 荷兰av一级| 丁香五月天.com| 国产.亚洲.欧洲视频在线| 丁香激情五月少妇| 中文字幕,综合,91| 精品久久婷婷| 91久久婷婷| 久久综合激情五月天| 亚洲九区| 青草热视频这里只有精品| 婷婷五月丁香基| 99热只有精| 日本英国美国欧美亚洲国产精亚洲日韩精品在线观看 | 亚洲精品无人区| 99热只有精品在线观看| 日本在线wwww| 91欧美日韩综合| 天天色·欧美| 亚洲第一综合| 色婷婷丁香五月综合| 国产综合丁香五月天| 久热这里只有精品在线| 久久九精品| 久久激情视频| 思思99re这里只有| 91人久| 欧美成人色婷婷| 激情九九九九| 99色免费观看全部| 996er在线观看| 狠狠干最新地址| 五月婷婷五月丁香| 婷婷丁香色五月亚洲| 风流少妇A片一区二区蜜桃 | 亚洲色在线观看| 激情五月综合ì香亚洲| 婷婷在线中文字幕| 五月婷婷与六月丁香图片激情| 五月婷婷高清| 国产超碰av| 色婷婷狠狠爱| 婷婷五月天成人基地| 伊人9在线| 亚洲人人操| 色噜噜五月天| 岛国资源网| 日韩在线99| 国产69久久久欧美黑人A片| 五月婷婷激情综合网 | 51XX午夜影福利| 激情五月丁香色婷婷| 超碰伊人碰婷婷五月| 26uuu欧美| 色五月婷婷丁香五月| 淫荡家庭AV| 大香伊人婷婷| 精品夜夜澡人妻无码AV| 久久婷.com| 丁香五月,激情五月,深爱五月| 色色色色色色色色五月先| 91九色PORNY大屁股| 久久婷婷五月| 人妻视频在线| 狠狠va| 久久9久| 超碰在线播放免费观看| 欧美日本免费一道免费视频| 久久草大香蕉| 69色婷婷| 99热在这里只有精品| 97人人超| 色欧美影院| 天天天天天久久久久久| 激情综合激情五月| 精品五月丁香| 色吊丝永久访问网址| www.第四色99| 激情综合网激情五月婷婷| 夜夜爱网站| 亚洲午夜视频| 99热只有这里才是精品| 婷婷九月激情网| 久久九九中文字幕| 麻豆精品| 久久婷婷草| 九一娱乐在线观看视频| 深夜婷婷 丁香| 国产乱人偷精品人妻A片| 天天插天天插天天插天天插| 色射影院| 综合网色| 任你草| 大香蕉综合| 97狠狠色| 丁香五月天啪啪| 九九大香蕉黄色影院| 色婷婷五月天偷拍| 色九月婷婷| 激情综合色婷婷啪啪六月天| 色吧婷婷五月亚洲| 亚洲激情四射色| 在线成人网站| 久久99久久99久久99人受| 啪啪黄页网| AV五月丁香| 9久精品视频| 97视频.干com| 久久99网| 五月婷婷大香蕉| 成人综合网站| 久婷婷视平| 碰99在线| 婷婷国产欧美97| 影音先锋偷偷色男人站| 伦乱天堂| 99re这里只有精品免费| 日日干夜夜撸夜夜骑| 婷婷之六月丁香| 99热成人在线观看| 五月婷婷视频在线观看| 人人操人| 婷婷的99视频网站| tingting五月天亚洲| 婷婷天天综合| 日韩欧美一道四区中文字幕| 俺去婷婷 丁香| 第四色五月婷婷| 丁香五月婷婷啪啪啪| 都市激情蜜桃婷婷五月天| 久久狠色噜噜狠狠狠狠97| 日撸夜撸日操| 久久精品系列| 高清视频一区| 狠狠干五月| 久久久五月天网站| 婷婷五月天堂网| 黄页大全十八禁| 丁香六月婷婷综合| 97超碰在线免费观看| 丁香五月六月| 婷婷丁香综合色AV| 99在线精品视频免费| 99性感视频| 六月丁香中文字幕| 国产黄大片在线观看画质优化| www99xxxx五月丁| 任你草| 深爱激情五月天婷婷网| 色99热| 超碰99热| 嫩草哈哈操| aaaaa黄色| 九九99一区| 五月天六月色| 97国产精品女人碰碰| 五月天激情综合首页| 丁香五月激情六月| 91超级碰在线| 97超级碰| 欧美成人无码一区二区三区| 99热在线观看免费精品| 国产亚洲精品久久久久苍井松 | 噜噜噜噜噜日本视频| 激情五月丁香六月综合AVXXXX| 亚洲无码11| 国产精品天天狠天天看| 丁香六月婷婷| 精品久久这里热66| 桃色五月婷婷| 成人一级片| 亚洲综合丁香五月天| 久久精彩视频| 激情久久久久| 丁香五月欧美午夜视频| 九久九精品| 久久激情综合| 中文字幕AV网址| 五月婷婷先锋| 狠狠色无码| 超碰人人在线| 婷婷精品在线| 婷婷午夜丁香| 综合五月丁香六月婷婷| 国产色色色色| 涩丁香| 国产欧美日韩性爱| 精品人妻一区二区| 久热9热| 99爱免费视频| .青娱乐天天操B| 在线VA视频| 五月丁香影院| 五月丁香爱婷婷深深| 日本综合久久| 日本99视频精品免费播放| 激情五月天色婷婷| 真实的国产乱XXXX在线91| 色色色综合网| 五月婷婷无码| 五月天婷婷色色| 色五月亚洲| 丁香97综合| 亚洲天码视频www蛋播视频| 激情综合色| 五月伊人综合| 免费视频WWW在线观看网站| 91偷拍视频| 久久综合中文| 99色在线| 婷婷99狠狠躁天天躁| XXXX岛国| 青草视频在线观看视频| 激情婷婷另类| 久久婷色| 五月天婷婷伊人| 青青草婷婷五月天| 夜夜爽天操| 五月丁香婷婷综合网色欲| 五月丁香六月婷婷国产视频| 玖玖99精品视频| 日韩精品一区二区亚洲AV观看| 久久99网址| 二色av| 五月丁香久久网| 亚洲成av人影院| 99热在这里只有免费精品| 少妇性BBB搡BBB爽爽爽视頻| 婷婷综合六| 夜色.cnm| 99热这里只有精品1025| 激情五月天啪啪| 日本丁香五月| 精品久久久久久久久久久久人妻| 99草在线免费观看视频| 色色无码| 色婷婷五月影视| 99热只有| 99视频这里有精品免费观看| 黑人无码一区| a久久| 99九九精品视频| 97日在线视频| 99热久久这里只有精品| 五月花婷婷| 色丁香综合影院| 丁香五月综合久久综合| 婷婷97狠狠成人网站| 五月综合视频| 五月丁香婷婷激情在线| 9久国产| 欧美三级巜人妻互换| 五月丁香网站| 久久一二三视频| 操操人人| 婷婷碰碰| 26UUU欧美| 婷婷第六色| 色吊操色妞| 九九亚洲| 久久精热| 激情丁香婷婷五月天| 丁香五月色激情| 久久久激情| 5月婷婷激情网| 99综合视频一体| 91VIP在线观看| Av九九| 丁香五月六月欧美| 午夜婷婷丁香| 99资源人人| 色色无码| 成人五月天丁香婷| 欧美综合五月丁香五月天| 久久多色| 国产亚洲99久久精品熟女| 六月丁丁香| 天天噜| 超碰人人干| 亚洲AV成人精品网站在线播放| 99狠狠色| 青青草原99热| 久久97| 97色色综合| 99操九九网| 激情99| 久久大香蕉同僚| 九九热这里只有精品一| 色色网站| 五月天伊人网| 五月天激情啪啪| 5月色亭亭视频| 日本精品在线噜噜噜| 猫咪伊人久久| 国产精品丝| 中文字幕亚洲-区久久99婷婷| 五月天丁香婷婷网| 怎么样可以看免费的一级av| 黑人糟蹋人妻HD中文字幕| 99热精品在线在线| 狠狠色成人影片| 狠狠插狠狠操| 五月丁香六月婷婷网| 9999久久久久| 99久在线精品99re8| 色情五月丁香| 日夜操B| 日韩高清成人| 色区久久| www.99热| 国产亚洲成AV人片在线观黄桃| 操91| 青草视频在线播放| 婷婷五月丁香亚洲| 在线超碰免费| bukadeavzaixian| 婷婷综合在线视频| 丁香婷婷色情| 97色婷婷成人综合在线观看| 亚洲无码另类| 亚洲性天天| 狠狠人人| 九九热精品视频九九| 天天干天天操| 丁香五月婷婷基地| 色综合激情| 久久五月天婷婷| 四虎国产精品永久在线国在线| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 最新无毒无码AV| 国产jd1024基地手机看国产| 午夜福利8055| 亚洲综合成人网| 另类五月婷婷| 久久这里只有国产精品视频| 天天色色天天| 超碰人人射| 丁香六月激情综合| 天天日天天久久青青| 97涩婷婷婷婷基地| 日本99在线| 99国产小视频免费观看| 99精品爱| 91九色中文字幕女在线观看| 激情五月天网| 四虎99热在线观看网站| 99啪啪网| 夜夜骑日日操| 五月天综合在线观看| 日韩在线视频中文字幕| 亚洲成av人影院| 丁香五月 激情文学| 青青草原亚洲天堂| 婷婷丁香激情五月| 天天插天天射| 欧美大肥婆大肥BBBBB| 成人精品免费在线观看| 中文精品在| www.人人操人人看人人想人人摸 人人人人操,COM | 中文字幕乱码亚洲精品一区| 久久婷婷六月综合综合| 99在线观看视频免费| 婷婷五月丁香综合人妻| 五月婷亚洲精品AV天堂| 亚洲操女| 五月丁香六月色婷| 丁香六月情| 91狠狠综合久久久久久| www91久久| 婷婷成人综合免费视频| 亚洲五月丁香六月婷婷| 98国产精品综合一区二区三区| 丁香六月激情综合网| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 99久久.www| 夜夜操夜夜爽| 久久看婷婷| 国内自拍97在线| 五月婷婷六月丁香| 综合婷婷都市激情| 91av传媒高清在线视频网| 国产成人av在线播放| 毛片毛片毛片毛片| 五月综合激情| 狠狠色五月天| 亚洲情综合五月天| 国产成人av在线| 五月丁香六月婷婷综合网站 | 色婷婷AV在线观看| 女人天堂av| 久久婷婷五月丁香网| 久久色吧| 国产高清RV综合aVa| 亚洲色综合| 91大神操美女| 丁香婷婷视频在线| 九九成人电影婷婷| 亚洲色五月天在线| 日韩成人综合网| 超碰伊人碰婷婷五月| 婷婷五月天论坛| 丁香九月婷婷| 快乐激情五月色婷婷| 国产亚洲色婷婷久久99精品91| 影音先锋五月婷婷| 狠狠色激情在线| 91操人视频| 97久久视频| 女婷久久| 激情五月天综合网| 综合伊人久久| 超碰高清在线| 久久五月天综合| 色都都狠狠色都都色综合色| 婷婷深爱五月丁香网| 99精品偷自拍| 激情五月综合六月丁香婷婷狠狠干| 99欧美| 99色在线视频| 成人av免费观看| av网址在线| 丁香色色网| 九九色色网| 色色五月丁香| 操一区| 91婷婷| 99色在线视频观看| 99热这里是精品| 亚洲色色在线| 野战J办公桌椅H| 99re思思热这里| 久久加勤综合| 天天夜夜操| 五月婷婷综合在线视频| 天天做天天爱天天玩夜夜爽| 玖玖综合色区在线观看| 久久婷婷五月天综合| 国产99久9在线+|+传媒| 深爱开心激情| 婷婷五月天激情四射五月天激情| 人妻系列久久久久久久久久久 | 色亚洲中文| 99热8| 丁香五月天激情五月天激情五月天激情网| 99热精品在线播放| 熟女激情五月天 | 婷婷99狠狠躁天天躁| 婷婷五月激情中文字幕| 欧洲亚洲免费视频区| 婷婷狠狠综合网入口| 国产精品成人av在线观看春天| 国产精品成人网站| 欧美色久| 激情综合五月激情XXXX| 不卡在线超碰| 天天色视频| 67194国产| 婷婷D区| 婷婷丁香十月| 永久无码色| 丰满人妻妇伦又伦精品国产| 色婷婷五月天视频在线| aaa久久| 国产人妻777人伦精品HD| 五月综合六月婷婷| 先锋资源91| 色综合五月天| 五月天天爱| 综合激情五月丁香| 亚洲色综久久五月| 久久婷婷综合国产| 91久久久久久| 日韩在线婷婷五月天综合| 色久九| 日韩成人不卡| 97干视频| 五月天中文网| 熟女激情网| 中文字幕成人网站| 琪琪色五月天| 丁香五月天激情综合网| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 日日夜夜天天| 无码区婷婷五月花开| 久热久色| 开心五月婷婷综合在线精品素人| 五月天婷婷在线观看| 五月丁香做爱视频| 色婷婷AAA| 91碰操| 欧美精品999| 亚洲激情另类| 99热在线中文字幕| 久久HD| 五月婷婷婷色| 在线另类| 操操国产| 日日夜夜天天综合| 久久黄色免费视频| 在线另类视频| 六月丁香开心婷婷欧美| 婷婷久久五月| 日本一级特黄大片AAAAA级| 深爱丁香激情| 色婷婷五月影视| 丁香六月av| 天堂久久丁香| 欧美日韩aaa| 婷婷五月天综合久久| 五月婷婷福利| 五月的丁香六月的婷婷| 成人网址在线观看| 激情丁香久久久久久| 国产成人综合电影| 亚洲综合色网| 超碰久热| 色5月婷婷色| 99热这里只有精品首页| 久久99色色| 狠狠操天天操天天操| 在线成人网站| 丁香五月AV| 精品操逼一区二区| 丁香五月婷婷社区| 国产毛片精品一区二区色欲黄A片| 五月丁香999| 激情久久久久久久久久| 亚洲综合五月天婷婷| 淫荡综合网| 六月丁香婷婷开心综合基地| 激情深爱综合| 久久婷婷伊人| 色婷婷伊人| 99啪啪网| 久久久久久久久久久44| 99碰碰碰| 丁香伊人五月色婷婷五十路| 日本V在线观看不卡视频网站| 国产精品a无线| 天天操天天插| 欧美人与性动交CCOO| 久久99精品视频| 五月天伊人网| 婷婷五月丁香五月| 亚洲超碰在线| 噜噜噜狠狠色综合| 婷婷啪啪| BBWCUCKOLD精品熟妇| 嫩BBB槡BBBB搡BBBB| 日韩精品AV一区二区三区| 国产SUV精品一区二区6| A片试看50分钟做受视频| 日本猛少妇色XXXXX猛叫| 97人人操人人干| 中文字幕人成乱码在线观看| 国产亚洲精品久久久久久牛牛| 中文字幕网伦射乱中文| 免费观看全黄做爰的视频| 久久婷婷丁香花综合网| 九九色黄色| 色婷亚洲五月丁香| 大香蕉婷婷久久| 婷婷五月色情天| 96人人操人人操人人| 五月夜丁香| 啪到高潮激情丁香五月| 亚洲中文乱字字幕在线永久| 91精品综合久久婷婷九色| 五月婷在线| 五月丁香婷婷综合网| 国产黄色在线观看| 超级久久久| 中文字幕AV网址| 亚洲性天天| 九九热这里只有精品一| 五月激情六月综合| 欧美精产国品一二三区| 五月天亚洲色| 婷婷久久女人| 婷婷久久图片| 97啪啪| 色婷婷婷综合五月天| www.婷婷,com| 丁香婷五月天开心六月| 五月婷婷大香蕉| 99re6在线视频精品免费| 亚洲AV成人精品网站在线播放| 色五月婷婷青娱乐| 五月丁香久久| 伊人狠狠干| 91色综合网| 久久综合婷婷| 日韩精品无码AV| 五月婷婷免费在线| 亚洲久久婷婷| 人妻久热| 国产人妻人伦精品一区二区| 五月婷婷9| 亚洲Va成人| 五月丁香婷婷俺| 日韩成人免费电影| 玖玖色综合色| Av九九| 日本激情五月天‘| 六月激情婷婷| 激情6月| 伊人91| 色五月在线播放| 久久久久9| 亚洲色婷婷五月天| 色噜噜狠狠色综合日日免费| 狠狠搞狠狠操| 欧美日韩欧美| 久久色五月| 婷婷丁香五月天在线| 另类视频一区| 日本玖玖在线| 色五月婷婷天天干| 天天做天天爽| 日本eVa一区=区视频| 黄色片区子| 日韩精品无码99| 婷婷丁香六月| 日韩精品一区二区亚洲AV观看| 五月婷婷 六月丁香| 久久婷婷综合基地| 久久丁香婷| va中文资源在线观看| 日韩精品999| 91干99| 日日鲁鲁夜夜爽爽| 免费AV播放| 996精品热视频| 婷婷五月天激情丁香| 激情五月天丁香| 婷婷激情九月| 婷婷狠狠干| 天天干人人奸97| 九九精品这里只有| 粉嫩av蜜桃av蜜臀av| www.激情五月天.con| 婷婷五月天性| 欧美成人精品A片免费一区99| 五月丁香欧美综合| 激情丁香五月天图片| W色综合| 亚洲色域网| 日韩九区| 欧美婷婷六月丁香综合色| 综合色影| 五月婷婷六月丁香首页| 日日狠狠久久偷偷四色综合免费 | 天天爽天天日人人爱| 91性高潮久久久久久久久| 91久久九色| 五月婷婷香| 夜夜AVV| 五月花综合视频| 伊人久久丁香狠狠婷婷综合香蕉 | 玖玖精品资源| 八戒青柠影视剧在线观看| 丁香五月婷婷婷婷欧美综合| 99久久6| 久久99免费视屏| 欧美成人A片AAA片在线播放| 丁香五月激情啪| www..999热久| 五月丁香 啪啪| 狼友视频在线观看18| 97五月久久丁香婷婷| 9热精品| 黄色五月婷婷| 丁香婷婷基地| 婷婷五月天av| av人人干| 思思热闹这里只有精品| 婷婷五月天网| 色婷婷成人丁香| 五月天色五月| 日韩久久这里只有精品| 婷婷不卡基地| 欧美成人色婷婷|