久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

51單片機(jī)貪食蛇游戲機(jī)課設(shè):LED點(diǎn)陣驅(qū)動(dòng)與狀態(tài)機(jī)完整實(shí)現(xiàn) 簡(jiǎn)介一份基于89C52單片機(jī)的貪食蛇游戲機(jī)完整設(shè)計(jì)面向51單片機(jī)入門與進(jìn)階學(xué)習(xí)者以及需要課程設(shè)計(jì)或?qū)嵱?xùn)參考的電子類學(xué)生。方案依托清翔MCS51開發(fā)板包含驅(qū)動(dòng)代碼、上位機(jī)軟件與演示視頻鏈接實(shí)現(xiàn)八乘八點(diǎn)陣LED主屏幕、LCD1602液晶狀態(tài)顯示并打通按鍵、紅外遙控、上位機(jī)三種操控方式同時(shí)利用EEPROM保存最高分記錄。壓縮包約36.95MB平臺(tái)未提供明確的文件總數(shù)與類型明細(xì)從資源描述看內(nèi)容以C語(yǔ)言工程源碼、上位機(jī)程序及相關(guān)說(shuō)明為主便于對(duì)照移植到其他51開發(fā)板。已有1559人學(xué)習(xí)下載適合希望快速上手外設(shè)驅(qū)動(dòng)、中斷掃描與多模式交互設(shè)計(jì)的開發(fā)者可作為完整參考項(xiàng)目直接研讀并二次開發(fā)。視頻中的運(yùn)行效果可幫助理解整體交互邏輯與顯示刷新方式。1. 一個(gè) rar 里裝的不是游戲是 51 的完整人機(jī)交互課設(shè)“51貪食蛇游戲機(jī).rar”這個(gè)包名第一眼會(huì)讓人覺得里面就是一個(gè)貪食蛇游戲拿來(lái)編譯燒錄就能玩。實(shí)際動(dòng)手做過(guò)的人都知道這個(gè)工程的價(jià)值遠(yuǎn)不止“能玩”——它把 LED 點(diǎn)陣驅(qū)動(dòng)、定時(shí)器中斷、按鍵消抖、狀態(tài)機(jī)、串口燒錄這幾條線串成了一個(gè)能完整跑起來(lái)的人機(jī)交互系統(tǒng)。對(duì)正在做課程設(shè)計(jì)、或者第一次想從“流水燈”往“完整作品”跳的讀者來(lái)說(shuō)這個(gè)項(xiàng)目比電子鐘更合適作為過(guò)渡載體。它能讓你在幾天之內(nèi)把“硬件接線 → 寫驅(qū)動(dòng) → 跑游戲邏輯 → 調(diào)體驗(yàn)”這條路完整走一遍后面再做任何單片機(jī)小系統(tǒng)都會(huì)順手得多。2. 硬件怎么搭點(diǎn)陣、按鍵、最小系統(tǒng)的選型與連接2.1 從點(diǎn)陣到屏幕三種顯示方案的取舍貪食蛇的顯示方案基本就三條路8x8 單色點(diǎn)陣、16x16 單色點(diǎn)陣、LCD/OLED 屏。很多人第一反應(yīng)是“用 OLED 多高級(jí)”真正做出來(lái)才發(fā)現(xiàn)OLED 刷新整屏需要幾十毫秒像素點(diǎn)要反復(fù)翻寫畫像素類游戲非常別扭而且 128x64 的屏做 16x16 的蛇大量面積閑著觀感并不好。LCD1602 同理更適合做菜單和分?jǐn)?shù)顯示不適合做游戲畫面。方案游戲分辨率引腳占用驅(qū)動(dòng)難度適合人群8x8 單色點(diǎn)陣8x8蛇最大 64 格約 16 個(gè) IO低直推即可第一次接觸點(diǎn)陣16x16 單色點(diǎn)陣16x16畫面舒服約 8 個(gè) IOHC595 擴(kuò)展中數(shù)據(jù)串行化課程設(shè)計(jì)、正經(jīng)作品LCD1602/OLED不適合作游戲畫面2~4 個(gè) IO中但動(dòng)畫刷新拉胯只做菜單分?jǐn)?shù)我的建議很直接如果只是想跑通流程8x8 點(diǎn)陣就夠了P0 送列數(shù)據(jù)、P1 送行選通邏輯最簡(jiǎn)單半天能搞定。但如果你想拿這個(gè)作品去答辯或者放進(jìn)作品集直接上 16x16。四個(gè) 8x8 點(diǎn)陣拼成 16x16 之后蛇的長(zhǎng)度、轉(zhuǎn)彎半徑、視覺反饋都明顯更像一個(gè)“游戲機(jī)”而不是一個(gè)演示板。16x16 需要 32 根驅(qū)動(dòng)線51 的 IO 口總共才 32 個(gè)加上按鍵和蜂鳴器根本不夠分。常見做法是用兩片 74HC595 級(jí)聯(lián)把 16 位列數(shù)據(jù)串行發(fā)出去行選通用 P2 口的低四位經(jīng) 74HC154 譯碼器擴(kuò)展。這樣單片機(jī)的 IO 占用被壓縮到2 根時(shí)鐘線 1 根數(shù)據(jù)線 4 根行選擇線總共 7 個(gè)引腳資源一下子就寬裕了。2.2 按鍵電路獨(dú)立按鍵上拉與矩陣擴(kuò)展貪食蛇需要 4 個(gè)方向鍵加 1 個(gè)開始/暫停鍵一共 5 個(gè)按鍵用獨(dú)立按鍵就是最省事的接法。按鍵一端接地另一端接 P1 口的低四位和 P1.4讀取時(shí)按鍵按下對(duì)應(yīng)引腳讀到低電平。51 的 P1 口內(nèi)部有上拉電阻直接用內(nèi)部上拉就行讀取低四位后按位判斷即可不需要額外的鎖存器。有人會(huì)問要不要外接上拉。內(nèi)部上拉阻值通常在幾十千歐級(jí)別對(duì)數(shù)字信號(hào)來(lái)說(shuō)完全夠用。如果現(xiàn)場(chǎng)電磁環(huán)境差、線又長(zhǎng)按鍵信號(hào)出現(xiàn)抖動(dòng)導(dǎo)致誤觸發(fā)再在按鍵兩端并一個(gè) 0.1μF 電容、或者外接 10kΩ 上拉電阻加強(qiáng)一下。實(shí)際踩坑經(jīng)驗(yàn)是軟件消抖做到位之后外接上拉多數(shù)時(shí)候是多余的反而增加焊接量。矩陣鍵盤在這個(gè)項(xiàng)目里沒有意義因?yàn)榘存I一共才 5 個(gè)矩陣是為了在按鍵數(shù)量超過(guò) 8 個(gè)時(shí)省 IO 口用的。硬上矩陣除了讓讀鍵代碼復(fù)雜化沒有任何收益。真正需要矩陣的場(chǎng)景是數(shù)字鍵盤、密碼鎖那一類。貪食蛇用獨(dú)立按鍵P1 的低四位正好四個(gè)方向代碼里讀一次端口就能拿到全部鍵值簡(jiǎn)潔可靠。2.3 最小系統(tǒng)的 3 個(gè)必查點(diǎn)晶振、復(fù)位、電源51 的最小系統(tǒng)看著簡(jiǎn)單但很多新手焊完板子跑不起來(lái)問題幾乎都出在晶振、復(fù)位、電源這三處。晶振我強(qiáng)烈建議直接用 11.0592MHz而不是 12MHz。原因是 12MHz 雖然讓定時(shí)器初值更好算但串口波特率會(huì)帶誤差燒錄和調(diào)試時(shí)經(jīng)常出現(xiàn)“連不上”的玄學(xué)問題。11.0592MHz 分頻出來(lái)的 9600、115200 波特率都是整數(shù)分頻USB 轉(zhuǎn) TTL 模塊在這種速率下通信非常穩(wěn)定。如果你的工程代碼里的延時(shí)函數(shù)是按 12MHz 校準(zhǔn)的那就保持一致別混用否則新做的板子一律 11.0592MHz。復(fù)位電路用經(jīng)典的 10μF 電解電容加 10kΩ 電阻到地。上電瞬間電容充電RST 引腳保持高電平十幾毫秒讓單片機(jī)完成復(fù)位。這里有個(gè)新手容易翻車的點(diǎn)電解電容極性接反會(huì)導(dǎo)致復(fù)位時(shí)序不對(duì)板子表現(xiàn)為反復(fù)重啟或者干脆不啟動(dòng)檢查時(shí)先看電容方向再查別的。用示波器量 RST 引腳正常上電應(yīng)該是一段高電平然后跌到低電平要是波形不對(duì)多半是電容容值或者電阻阻值用錯(cuò)了。電源是這三項(xiàng)里最容易讓“游戲機(jī)”出問題的。16x16 點(diǎn)陣一行同時(shí)點(diǎn)亮 16 個(gè) LED按每個(gè) 5mA 算就是 80mA 的瞬時(shí)電流雖然行掃描是分時(shí)點(diǎn)亮但電源瞬時(shí)響應(yīng)跟不上就會(huì)導(dǎo)致電壓跌落。單片機(jī) VCC 腳必須就近放一個(gè) 104 去耦電容點(diǎn)陣的電源線單獨(dú)走不要和單片機(jī)共用一根細(xì)跳線。最靠譜的做法是點(diǎn)陣的電源直接從 USB 的 5V 出來(lái)后先過(guò)一個(gè)大電容再分別給單片機(jī)和點(diǎn)陣供電避免點(diǎn)陣?yán)碗妷喊褑纹瑱C(jī)拉復(fù)位。3. 軟件怎么跑貪食蛇狀態(tài)機(jī)與 32ms 時(shí)間片刷新3.1 游戲邏輯拆成狀態(tài)移動(dòng)、進(jìn)食、判定貪食蛇的核心數(shù)據(jù)結(jié)構(gòu)不是鏈表而是一個(gè)數(shù)組加兩個(gè)索引。51 的內(nèi)存就 128 字節(jié)鏈表節(jié)點(diǎn)需要額外的指針開銷兩三個(gè)節(jié)點(diǎn)還好蛇長(zhǎng) 30 格之后內(nèi)存直接爆炸。用數(shù)組存蛇身的 x、y 坐標(biāo)再用 head_idx 標(biāo)記當(dāng)前蛇頭在數(shù)組里的下標(biāo)。移動(dòng)的時(shí)候蛇頭往前走一步蛇尾丟掉一個(gè)格子整個(gè)蛇身就“跟隨”了。這個(gè)做法在數(shù)據(jù)結(jié)構(gòu)里叫環(huán)形隊(duì)列思路是單片機(jī)貪食蛇最省內(nèi)存的實(shí)現(xiàn)。#define SNAKE_MAX_LEN 64 unsigned char snake_x[SNAKE_MAX_LEN]; // 蛇身所有格子的 x 坐標(biāo) unsigned char snake_y[SNAKE_MAX_LEN]; // 蛇身所有格子的 y 坐標(biāo) unsigned char snake_len; // 當(dāng)前蛇長(zhǎng) unsigned char head_idx; // 蛇頭在數(shù)組中的下標(biāo)隊(duì)尾 signed char dir; // 0上 1下 2左 3右 // 方向增量表上、下、左、右 const signed char dir_step[4][2] { {0, -1}, {0, 1}, {-1, 0}, {1, 0} };邏輯上每次移動(dòng)就是“頭往前加一格尾往后減一格”。如果吃到食物尾就不減蛇長(zhǎng)度加 1。這里說(shuō)的“頭往前”是指把新頭坐標(biāo)寫進(jìn)數(shù)組里原頭位置的下一個(gè)下標(biāo)然后更新 head_idx 指向它。數(shù)組里的蛇身順序可能是從頭到尾巴連續(xù)排列的也可能是繞了一圈之后首尾相鄰的但因?yàn)槲覀冎恍枰ㄟ^(guò)索引找到頭和尾順序并不影響邏輯正確性。移動(dòng)和判定寫在一個(gè)函數(shù)里每 100ms 調(diào)用一次這是游戲的主心跳void Game_Update(void) { unsigned char i; unsigned char new_idx; unsigned char new_x, new_y; // 新頭坐標(biāo) 蛇頭當(dāng)前坐標(biāo) 方向增量 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]; // 撞墻判定坐標(biāo)越界直接結(jié)束 if (new_x 15 || new_y 15) { Game_Over(); return; } // 撞自己判定尾巴這一格馬上要讓出來(lái)所以只檢查蛇身長(zhǎng)度-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; // 吃到食物長(zhǎng)度加 1尾巴不動(dòng)否則尾巴丟掉一格 if (new_x food_x new_y food_y) { snake_len; Food_Generate(); } else { // 沒吃到食物時(shí)蛇尾那一格在下一次覆蓋前就是廢位置 // 實(shí)際邏輯里通過(guò) head_idx 和 snake_len 計(jì)算尾下標(biāo)這里省略 } }這段代碼的邏輯說(shuō)明new_idx是蛇頭要去的新位置寫成數(shù)組下標(biāo)后head_idx更新。撞自身檢查時(shí)只遍歷snake_len - 1格是因?yàn)樯呶材且桓裨谝苿?dòng)后會(huì)被讓出來(lái)如果把它也算進(jìn)去蛇在追自己尾巴時(shí)會(huì)誤判死亡。這個(gè)細(xì)節(jié)是很多實(shí)現(xiàn)翻車的根源之一細(xì)節(jié)定生死。食物的生成必須避開蛇身這是最容易寫錯(cuò)的點(diǎn)。正確做法是用 do-while 循環(huán)隨機(jī)生成坐標(biāo)后遍歷蛇身數(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; }食物坐標(biāo)存成全局變量顯示刷新時(shí)會(huì)用到。rand()的種子建議在按鍵響應(yīng)時(shí)隨手取一下當(dāng)前計(jì)數(shù)值做種子能避免每次上電食物位置完全一樣。3.2 16x16 點(diǎn)陣的行掃描刷新代碼16x16 點(diǎn)陣的刷新必須用行掃描每一時(shí)刻只點(diǎn)亮一行靠人眼的視覺暫留讓人感覺整屏同時(shí)亮。以一幀 16 行為例如果 32ms 掃完一整屏幀率約 31fps動(dòng)態(tài)畫面基本流暢。行掃描的典型實(shí)現(xiàn)是“先送列數(shù)據(jù)再選通當(dāng)前行”把這一行的 16 個(gè)點(diǎn)一次性點(diǎn)亮保持 2ms 左右然后換下一行。關(guān)鍵在于送數(shù)據(jù)和選行的順序不能反否則會(huì)出現(xiàn)殘影和花屏。下面是我基于兩片 74HC595 級(jí)聯(lián)的串行驅(qū)動(dòng)代碼。兩片 595 級(jí)聯(lián)數(shù)據(jù)先發(fā)高位那片也就是第 0~7 列一個(gè)字節(jié)然后發(fā)第 8~15 列一個(gè)字節(jié)// HC595_DS 數(shù)據(jù)腳, HC595_SHCP 移位時(shí)鐘, HC595_STCP 鎖存時(shí)鐘 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; // 鎖存并行輸出到點(diǎn)陣列腳 }邏輯說(shuō)明595 是串入并出移位寄存器16 位數(shù)據(jù)在 16 個(gè)時(shí)鐘上升沿逐位移入最后用鎖存腳的上升沿一次性輸出。dat 0x8000取出當(dāng)前最高位數(shù)據(jù)判斷成 1 或 0 送到 DS 腳。兩片級(jí)聯(lián)時(shí)先發(fā)送的 8 位會(huì)停在較遠(yuǎn)的那片 595 上剛好對(duì)應(yīng)點(diǎn)陣的左半邊。顯示刷新函數(shù)里每一幀從頭掃到尾逐行點(diǎn)亮// 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é)對(duì)應(yīng)左半邊 dat ((unsigned int)screen[row][0] 8) | screen[row][1]; HC595_SendData(dat); // 選行之前先關(guān)閉所有行避免上一行的余暉殘留 ROW_PORT 0xF0; ROW_PORT | row; // P2 低四位輸出當(dāng)前行號(hào) row; if (row 16) row 0; }邏輯說(shuō)明screen是顯存數(shù)組游戲邏輯只往數(shù)組里寫點(diǎn)顯示刷新只管把數(shù)組內(nèi)容搬上屏幕。ROW_PORT 0xF0先讓 74HC154 所有輸出無(wú)效等列數(shù)據(jù)穩(wěn)定后再把新行號(hào)輸出這樣能杜絕行切換瞬間的“鬼影”。這個(gè)坑我在第 5 章會(huì)展開說(shuō)——很多人殘影怎么消都消不掉就是少了這一句。3.3 定時(shí)器中斷與主循環(huán)的職責(zé)劃分時(shí)間基準(zhǔn)用定時(shí)器 0 的 16 位模式1ms 中斷一次。晶振 11.0592MHz、12T 模式下機(jī)器周期約 1.085μs1ms 需要 922 個(gè)計(jì)數(shù)初值就是 65536 - 922 0xFC66void Timer0_Init(void) { TMOD 0x01; // 定時(shí)器 016 位不自動(dòng)重裝 TH0 0xFC; // 1ms 初值高 8 位 TL0 0x66; // 1ms 初值低 8 位 ET0 1; // 開定時(shí)器 0 中斷 TR0 1; // 啟動(dòng)定時(shí)器 EA 1; // 開總中斷 }定時(shí)器中斷里只做一件事置flag_1ms 1其余全部放到主循環(huán)處理。這是我從這個(gè)項(xiàng)目里學(xué)到的最重要原則——中斷里只做最輕量的事。很多人把顯示刷新和游戲邏輯都塞進(jìn)中斷結(jié)果按鍵一按蛇飛出去好幾格本質(zhì)是中斷占用了過(guò)多 CPU 時(shí)間主循環(huán)根本沒機(jī)會(huì)處理按鍵。主循環(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 刷新一行點(diǎn)陣16 行約 32ms 掃完一幀 if (tick_cnt % 2 0) { Disp_Refresh(); } // 每 10ms 采樣一次按鍵消抖依賴這個(gè)間隔 if (tick_cnt % 10 0) { Key_Scan(); } // 每 100ms 蛇走一步也就是游戲速度 if (tick_cnt % 100 0) { Game_Update(); } } } }邏輯說(shuō)明tick_cnt只加不減時(shí)間片通過(guò)取余切開。2ms 掃一行對(duì)應(yīng)幀率約 31fps基本流暢10ms 采樣一次按鍵配合狀態(tài)機(jī)完成消抖100ms 走一步是默認(rèn)速度想加速改成 80ms 甚至 60ms 就行變量抽出來(lái)做成全局調(diào)節(jié)會(huì)更方便。所有任務(wù)都在主循環(huán)里做中斷只負(fù)責(zé)打拍子這保證了系統(tǒng)的實(shí)時(shí)性和可調(diào)試性。4. 拿到工程包先做四件事打開、改配置、編譯、燒錄4.1 工程里通常有哪些文件各自干嘛你從網(wǎng)上下到的 51 貪食蛇工程包打開 rar 之后大概率會(huì)看到這幾類東西Keil 工程文件后綴是 .uvproj 或 .uvprojx、若干個(gè) .c 源文件、對(duì)應(yīng)頭文件 .h可能還有原理圖 PDF 或者 Proteus 仿真文件。先別急著點(diǎn)編譯按順序認(rèn)識(shí)一下它們。main.c 是游戲主邏輯所在包含初始化、主循環(huán)、游戲狀態(tài)更新。顯示驅(qū)動(dòng)的代碼可能單獨(dú)放在 disp.c 里按鍵掃描在 key.c 里。這種拆分在老式課設(shè)代碼里不常見很多課設(shè)就是一個(gè) main.c 寫完所有東西但你拿到手之后不要抱怨結(jié)構(gòu)亂——恰恰因?yàn)樗菃挝募愀菀醉樦鴱纳贤伦x一遍把每個(gè)函數(shù)的作用搞明白。原理圖文件比源碼更值得先看。PCB 圖也好、仿真圖也好先確認(rèn)點(diǎn)陣的接線方式和代碼里的引腳定義一致。最常見的問題就是代碼里寫sbit HC595_SHCP P2^1;而你的原理圖把 SHCP 接到了 P2.2這種不一致會(huì)讓屏幕怎么點(diǎn)都不亮。我拿到任何板子工程的習(xí)慣是先畫一張引腳對(duì)照表原理圖一個(gè)引腳代碼一個(gè)引腳核對(duì)完再編譯。燒錄相關(guān)的文件一般不會(huì)在包里需要自己準(zhǔn)備 USB 轉(zhuǎn) TTL 模塊和燒錄軟件。這部分我在 4.3 節(jié)詳細(xì)說(shuō)。4.2 編譯前要改的三個(gè)地方Keil 打開工程之后不要直接按編譯鍵。先打開 Options for Target檢查三個(gè)設(shè)置這三處不對(duì)編譯能過(guò)、跑起來(lái)也是錯(cuò)的。第一處是芯片型號(hào)。很多工程默認(rèn)按 AT89C51 建的但實(shí)際用的是帶 ISP 功能的國(guó)產(chǎn) 51 芯片比如 STC89C52。芯片型號(hào)選錯(cuò)一般不影響編譯但影響燒錄——燒錄軟件讀不到芯片 ID或者說(shuō)“芯片型號(hào)不匹配”。在 Target 標(biāo)簽頁(yè)的 Device 欄重新選擇實(shí)際芯片型號(hào)。第二處是晶振頻率。Options for Target → Target → Xtal(MHz) 這個(gè)值是給 Keil 做串口仿真和延時(shí)分析用的。工程如果默認(rèn) 24MHz而你板子上是 11.0592MHz仿真時(shí)的時(shí)間基準(zhǔn)全錯(cuò)delay 函數(shù)實(shí)際延時(shí)長(zhǎng)了一倍。第三處是 Memory Model。默認(rèn) Small 模式就行51 的片內(nèi) RAM 只有 128/256 字節(jié)這個(gè)項(xiàng)目的變量也小不需要改 Large。如果代碼量很大導(dǎo)致 data 段溢出編譯時(shí)會(huì)報(bào)DATA SEGMENT TOO LARGE再改成 Large 也不遲。改完之后重新編譯確保 0 Error 0 Warning 再往下走。// 一個(gè)常見的坑代碼里沒有包含 reg52.h // 如果 main.c 里直接用了 P0、P1、TMOD 這些寄存器名 // 記得在頭部加上 #include reg52.h邏輯說(shuō)明reg52.h 是 Keil 自帶的寄存器定義頭文件里面定義了 P0、P1、TMOD、TH0 這些 SFR 的地址。有些工程會(huì)自己寫一個(gè)頭文件原理一樣。如果編譯報(bào)undefined identifier P199% 是頭文件沒包含或者目標(biāo)芯片選成了非 51 內(nèi)核的型號(hào)。4.3 燒錄失敗時(shí)先查電平與串口參數(shù)燒錄是新手翻車重災(zāi)區(qū)最常見的現(xiàn)象是燒錄軟件一直顯示“正在檢測(cè)單片機(jī)...”然后超時(shí)。先做排除法。查接線USB 轉(zhuǎn) TTL 模塊的 TXD 接單片機(jī) RXDRXD 接單片機(jī) TXD交叉連接共地。很多人第一次燒錄把 TXD 接 TXD、RXD 接 RXD完全對(duì)不上。還要確認(rèn)模塊是 3.3V/5V 兼容的如果模塊輸出 3.3V 而單片機(jī)需要 5V 供電務(wù)必用外部 5V 給板子供電模塊只負(fù)責(zé)信號(hào)。查上電時(shí)序STC 系列單片機(jī)的下載方式是“冷啟動(dòng)”。操作順序是先點(diǎn)燒錄軟件的“下載/編程”按鈕再給板子重新上電。很多人習(xí)慣先上電再點(diǎn)下載結(jié)果永遠(yuǎn)等不到握手信號(hào)。這個(gè)流程反直覺但用一次就記住了。查波特率9600 和 115200 是燒錄軟件默認(rèn)的高兼容性波特率。如果電腦的 USB 轉(zhuǎn) TTL 模塊是舊的主控芯片115200 可能不穩(wěn)定降到 9600 通常能解決。還有一個(gè)小技巧燒錄軟件里勾選“每次下載前重新裝入文件”和“編程后執(zhí)行”可以少一些手動(dòng)步驟。最后查驅(qū)動(dòng)。USB 轉(zhuǎn) TTL 模塊插上電腦后設(shè)備管理器里要能看到對(duì)應(yīng)的 COM 口看不到就裝驅(qū)動(dòng)。這一步是純環(huán)境問題和工程代碼無(wú)關(guān)但很多人卡在這里誤以為是代碼寫錯(cuò)了。5. 避坑點(diǎn)陣鬼影、按鍵失靈、復(fù)位反復(fù)的排查記錄5.1 現(xiàn)象點(diǎn)陣出現(xiàn)殘影、拖尾整屏像蒙了一層灰點(diǎn)陣在顯示運(yùn)動(dòng)畫面時(shí)蛇尾巴拖著一串“虛影”或者整屏亮度不均勻有幾行明顯發(fā)暗。這個(gè)現(xiàn)象幾乎是 16x16 點(diǎn)陣新手必踩的坑。原因是行切換時(shí)上一行的列數(shù)據(jù)還留在 595 的輸出鎖存里而新的行選通已經(jīng)打開了導(dǎo)致上一行的數(shù)據(jù)在新行上閃了一下。人的視覺對(duì)這一閃很敏感看起來(lái)就成了殘影。解決的辦法就是在選新行之前先關(guān)閉所有行。上文的Disp_Refresh里ROW_PORT 0xF0這一句就是干這個(gè)的。先把輸出全部關(guān)掉再更新行號(hào)最后新行才亮起來(lái)。順序不能變“先送列數(shù)據(jù) → 關(guān)所有行 → 選新行”。另外還要檢查行掃描周期是否太慢如果每行停留超過(guò) 5ms整屏 16 行掃完要 80ms幀率只有 12fps那殘影就不不是行切換的問題了而是視覺暫留不夠需要把刷新調(diào)快。5.2 現(xiàn)象按鍵按下去偶爾沒反應(yīng)或者一次跳兩步按鍵問題的表現(xiàn)分兩種一是快速連按時(shí)丟失按鍵二是按一下方向鍵蛇走了兩格。這兩種現(xiàn)象對(duì)應(yīng)兩個(gè)不同的原因。丟失按鍵是因?yàn)闆]消抖。機(jī)械按鍵在按下和釋放的瞬間都有幾毫秒的抖動(dòng)如果主循環(huán)在抖動(dòng)期間讀到一次高、一次低就把它當(dāng)成兩次按鍵邏輯就亂了。一次跳兩步的原因更隱蔽有些實(shí)現(xiàn)里把方向修改直接放在了定時(shí)器中斷里中斷每次進(jìn)來(lái)都讀按鍵而游戲移動(dòng)在主循環(huán)里。按鍵按下期間中斷觸發(fā)了多次方向標(biāo)志被重復(fù)改寫蛇自然就連續(xù)轉(zhuǎn)向。我使用的方案是 10ms 采樣一次 狀態(tài)機(jī)消抖。每次采樣到的電平如果和上一次穩(wěn)定值不同就計(jì)數(shù)連續(xù)兩次相同才認(rèn)為電平真正變了。按下瞬間產(chǎn)生一次事件之后按住不動(dòng)不會(huì)重復(fù)觸發(fā)。方向鍵事件在主循環(huán)里只做一次方向更新不直接操作蛇的位置。這樣按一下就是一下永遠(yuǎn)不會(huì)有跳兩步的問題。5.3 現(xiàn)象上電后反復(fù)復(fù)位跑幾秒就白屏板子剛上電時(shí)正常玩不了幾秒就重啟或者 LED 點(diǎn)陣亮度明顯不均勻、單片機(jī)像在“呼吸”。這是典型的電源問題。原因有兩類一是 USB 供電線太細(xì)太長(zhǎng)壓降過(guò)大點(diǎn)陣瞬時(shí)電流一拉單片機(jī) VCC 跌到復(fù)位閾值以下二是電源濾波電容不足點(diǎn)陣行掃描的電流波動(dòng)直接耦合到單片機(jī)電源腳。解決的辦法先把點(diǎn)陣電源和單片機(jī)電源分開走線在板子入口放置一個(gè)大容量的電解電容100μF 起步有條件上 470μF再用一個(gè) 104 陶瓷電容緊貼單片機(jī) VCC 腳。如果還不行降低整體亮度——把點(diǎn)陣列的限流電阻從 470Ω 換成 1kΩ或者用軟件把點(diǎn)亮的占空比從 1/16 降到 1/20犧牲一點(diǎn)亮度換穩(wěn)定性。另外檢查一下是不是 74HC154 的電源腳忘記加去耦電容這種數(shù)字芯片的電源抖動(dòng)同樣會(huì)影響輸出波形。5.4 現(xiàn)象蛇往右走按一下方向鍵卻直接掉頭撞墻這個(gè)現(xiàn)象發(fā)生時(shí)你會(huì)覺得方向“串”了。蛇頭明明朝右按下鍵蛇卻往上或者往下走了有時(shí)候甚至直接反向 180 度回頭撞上自己的身體瞬間死亡。原因有兩個(gè)一是消抖狀態(tài)機(jī)里沒有處理“兩個(gè)按鍵同時(shí)按下”或者“按鍵切換瞬間”。如果上一次穩(wěn)定值是“無(wú)按鍵”這次讀到“上鍵按下”但讀取時(shí)另一路抖動(dòng)干擾導(dǎo)致鍵值錯(cuò)誤映射。二是方向更新沒有做禁止反向的判斷。方向鍵允許蛇在朝右時(shí)直接改成朝左這是一種非常反直覺但新手常犯的放縱設(shè)計(jì)游戲體驗(yàn)極差。解決方法是雙管齊下。按鍵映射函數(shù)里只接受 0x01、0x02、0x04、0x08 這四個(gè)單鍵值其余都按無(wú)效處理。方向更新時(shí)加一個(gè)判斷// new_dir 來(lái)自按鍵映射dir 是當(dāng)前實(shí)際移動(dòng)方向 if (new_dir 0 ((new_dir 2) % 4 ! dir)) { dir new_dir; }邏輯說(shuō)明方向編號(hào) 0上、1下、2左、3右任意兩個(gè)相差 2 的方向互為反方向。(new_dir 2) % 4得到的就是 new_dir 的反方向如果它和當(dāng)前方向相同就說(shuō)明這次按鍵會(huì)導(dǎo)致 180 度掉頭直接丟棄。這樣蛇永遠(yuǎn)只能做左轉(zhuǎn)或右轉(zhuǎn)想回頭只能先轉(zhuǎn) 90 度再等下一次按鍵這是貪食蛇的基礎(chǔ)手感。5.5 現(xiàn)象食物生成后看不見或者直接消失食物偶爾刷不出來(lái)開局就找不到食物或者玩到一半食物突然“消失”。出現(xiàn)這種情況定位起來(lái)最容易但也最容易犯。原因是食物生成時(shí)只規(guī)避了蛇頭坐標(biāo)沒有規(guī)避整條蛇身。如果蛇身很長(zhǎng)食物落在蛇身某個(gè)身體的格子上顯示層把蛇身畫上去食物就被覆蓋了看起來(lái)像消失。還有一種情況是隨機(jī)數(shù)只取了坐標(biāo)范圍但沒檢查這個(gè)坐標(biāo)是否已經(jīng)存在——同樣的位置反復(fù)生成兩次視覺效果更奇怪。解決方式在 3.1 節(jié)的Food_Generate里已經(jīng)寫了do-while 循環(huán)里遍歷snake_x數(shù)組、snake_y數(shù)組只要新坐標(biāo)和任何一節(jié)蛇身重疊就重新隨機(jī)。這里注意邊界條件當(dāng)蛇長(zhǎng)接近 64 格時(shí)整個(gè)場(chǎng)地幾乎沒有空位這個(gè)函數(shù)會(huì)變成死循環(huán)。實(shí)際游戲里要在蛇長(zhǎng)達(dá)到一定值后宣布通關(guān)或者提前結(jié)束游戲避免掉進(jìn)這個(gè)死循環(huán)里。6. 從 8x8 到 16x16 再到雙緩沖把顯示刷新這條路走到底6.1 數(shù)據(jù)都映射成二維數(shù)組后換分辨率其實(shí)是改一張表如果你已經(jīng)用screen[16][2]這種顯存數(shù)組把游戲邏輯和顯示驅(qū)動(dòng)分開那換硬件分辨率會(huì)比你想象中輕松。游戲邏輯只往screen里寫坐標(biāo)點(diǎn)顯示驅(qū)動(dòng)只負(fù)責(zé)把screen搬上點(diǎn)陣。換成 8x8 時(shí)把screen改成screen[8][1]行列數(shù)宏改一下繪制函數(shù)里的邊界判斷同樣跟著宏走其余代碼基本不用動(dòng)。這里有個(gè)值得養(yǎng)成的習(xí)慣不要直接在游戲邏輯里寫硬件引腳操作所有畫面輸出都走SetPixel(x, y, on)這一層抽象。我見過(guò)不少工程顯示代碼和游戲邏輯耦合在一起換一次屏就得重寫半個(gè)游戲就是因?yàn)闆]做這層隔離。你的下一個(gè)作品可能從點(diǎn)陣換成 LCD、從 LCD 換成 TFT顯存抽象能幫你省掉大把重構(gòu)時(shí)間。6.2 終極驗(yàn)證用一幀空閑時(shí)間去斷言每一幀的用時(shí)游戲跑起來(lái)之后不要只靠眼睛判斷流暢度。用一個(gè)最樸素的辦法實(shí)測(cè)幀時(shí)間在Disp_Refresh()函數(shù)開頭翻轉(zhuǎn)一個(gè)閑置的 IO 口結(jié)尾再翻轉(zhuǎn)回來(lái)用示波器或者邏輯分析儀量這個(gè)方波的高電平寬度。如果每行刷新耗時(shí)超過(guò) 2ms一幀 16 行就會(huì)超過(guò) 32ms肉眼能感覺到卡頓。另一個(gè)更實(shí)用的技巧是把游戲邏輯幀率和顯示刷新率分開算賬。顯示刷新靠時(shí)間片每 2ms 一次游戲移動(dòng)靠計(jì)數(shù)每 100ms 一次。兩者互不阻塞你可以在調(diào)試時(shí)把移動(dòng)間隔調(diào)到 50ms 看蛇飛跑再調(diào)回 100ms 感受正常速度這時(shí)候你會(huì)明顯察覺到“游戲卡不卡”和“點(diǎn)陣閃不閃”是兩個(gè)獨(dú)立問題。能區(qū)分這兩種現(xiàn)象說(shuō)明你對(duì)這套時(shí)間片架構(gòu)的理解已經(jīng)到位了。我在這個(gè)項(xiàng)目上踩過(guò)的最后一個(gè)坑是為了追求“畫面更順”把游戲更新也搬進(jìn)了中斷結(jié)果主循環(huán)沒事可干按鍵響應(yīng)全亂。后來(lái)才明白中斷就適合做節(jié)拍發(fā)生器任務(wù)調(diào)度留在主循環(huán)里51 這種資源有限的芯片反而能跑出穩(wěn)定的效果。這個(gè)原則后來(lái)做其他小系統(tǒng)也一直沒變過(guò)。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲天堂自拍| 996热| 色欲Av人妻精品一区二| 天堂中文日本在线观看| 欧美色图人妻| 亚洲熟妇丝袜在线观看| 婷婷干黄色| 中文字幕在线2| 99热99在线播放激情| 校园春色家庭伦理欧美激情| 爱射综合| 亚洲av综合伊人久久| 欧美日本视频一区| 国产午夜福利视频在线| 欧亚性爱啪啪| 中文乱码字字幕在线第5页| 久久久99久9| 五十路六十路七十路熟婆| 久久久久9999妇女| 极品极品色影院| 日韩成年人性爱视频| 一区二区 电影 亚洲| 九九久久一区二区伦理| 国产精品毛片?v一区二区三区 | 怡红院网站在线视频| 亚洲天天艹| 久久超碰国产一区二区三区| 九月伊人中文字幕| 欧美性Fer办公室秘书| 日日日日日| 国产精品久久久久久亚洲色欲| 97操97干| 少妇激情一区二区三区视频| 97人人爱人人做人人乐| 伊人久久婷婷| 中文字幕丝袜人妻| 25国产精品免费观看| 嫩呦国产一区二区三区AV| 嗯嗯啊啊啊好爽| 亚洲精品蜜桃久久久| 伊人四虎综合| 日韩精品资源| 在线播放免费av福利片| 久久五十路熟女人妻| 天天日天天看| 日本不卡免费二区| 欧美亚洲特P| 91色伦综合| 欧美亚洲综合色| 欧美性爱系列| 青青草日韩无码| 蜜臀av中字字幕网站| 乱日视频| 蜜臀久久在线视频| 91AV国产精品| 亚洲自拍偷拍视频在线| 看大黄色大片原件| 99视频内射三四| 翔田千里AⅤHD无码| 精品人妻av在线播放| 狠狠婷婷亚洲中文综合久久| 亚洲成人一区二区精品| 丁香六月激情| 九九色热| 99操| 麻豆成人AV| 加勒比久久av| 亚洲综合第一页| 一区二区三区看视频| 97超碰超碰| 久久中文字幕一区不卡| 久久久中文| 欧美超碰96| 久久精品高清无码一区| 97国产中文| 嗯嗯啊啊的视频| 96超碰网| 天堂v无码免费视频| 国产 大胆 对白| 97超级色碰碰| a片久久久久久久久久久久 | 久久↗↗| 人人看人人摸人人色| 中文字幕大片三级狠狠干| 日本九九久久99| 91热情品| 青青草好吊色| 中文字幕啊啊啊在线观看视频| 日本人妻A片成人免费看片| 按摩中文字幕| 亚洲精品国产熟女| av72网| 欧美影音在线| 中文字幕精品一区二区精| 亚洲一区二区麻豆影院| 欧美亚洲91| 综合伊人激情| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国内毛片四区| 国产91亚洲精品一区二区三区| 久久精品中文字幕观看| 9久久精品| 天操老女人| 国产又黄又粗又猛大片| 黑丝少妇麻豆| 大香蕉一级黄色片久久| 嗯啊抽插大香蕉网页| 久久久久久午夜男人的天堂| 色色无码| 成人五月天丁香激情综合| 色婷婷综合久久久久中文一区二区 | 99天天超碰| 屁股久久久久久久久久| 淫淫综合网| 国产美女高潮叫床视频| 欧美狠狠操| 九九九九久久久久| AV老汉| 国产精品露脸在线观看| 日本精品国产视频| 欧美日韩国产三级黄色| 九九九精品一区二区无码| 欧美日韩色综合网| 无码男人天堂| 欧美成va视频网站| 欧美日本天堂| 久草免费福利在线播放| 九九av| 91综合在线| 国产精品一区二区 尿失禁| 午夜欧美J进J出白浆流出久久久 | 亚洲欧洲网站免费观看| 天天看高清麻豆| 黄在线| 中文日韩欧美熟| 男人的天堂一区三区| 熟女露脸激情自拍视频| 欧美99热| 午夜a成v人电影| 婷婷爱五月| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 狠狠爱综合网| 成人熟女区| 亚洲av青草久久一区二区| 男人的天堂啪啪| 欧美性爱精品七区| 成人开心网在线视频| 乱伦系列一区二区| 欧美性爱第一页久久| 60秒免费小视频| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 少妇高潮特黄A片| 欧美爱国产综合、| 国内黄色精品| 凹凸视频特色日本特黄| 丰满人妻区一区二区三| 日欧毛片久久| 婷婷丁香六月天| 97亚洲自在精品在线观看| 國產尤物AV尤物在線觀看| 日本Suv精品一区二区| 超碰激情808| 99国产精品视频尤物| 国产激情在线| 超碰97在线色男人??| 丝袜AV一二三区| 亚洲小电影免费涩涩成人在线高清| 亚洲国产亚洲天堂| 热天堂一区二区| 亚洲欧美日韩精品久久久一区二区| 91色亚洲| 99re热| 爽爽淫人网| 91丨豆花丨熟女| 99re9| 亚洲精品97中文字幕| 性爱动态120秒| 日韩人妻播放| 国产熟女乱论| 亚洲国产精品无码AV久久久| 精品国产乱码久久久| 国产天美传媒精品| 日韩天堂av电影在线观看| 熟女乱伦二区| 久久九九网| 九九色影院| 色综合天天| 偷拍 欧美 日韩| 97爱亚洲| 操熟女91| 欧美色97| 成人九九| 久久久久久十| 久久久久女教师免费一区| 无毛精品| 久久久性少妇| 超碰97综合网| 日韩精品三级| 在线啊啊啊| 日韩精品大香蕉伊人在线| 久久有码| 97色妞| 色综合加勒比四四季| 五月丁香综合激情| 天天综合AV| 日韩一区二区高清在线观看的| 另类图片欧美激情综合| 污色区网站| 日本阿v天堂在线观看| 亚洲丝袜少妇在线| 中文字幕三四区| 操国产高清| 偷拍 亚洲 欧美| aV中亚| 欧洲性爱无码区| 人人操人人爽人人操人人| 国产91精品在线免费| 国产熟妇 码视频户外直播| 九九九精品| A级国产欧美激情在线| 国产熟女精品一区二区| 日韩一级久久毛片| 激情抓乳插进去啪啪啪日韩 | 六月丁香婷| 啊…啊…操我用力操我| 青青草伊人久久| 一级黄碟在线看| 亚州大图综合色图| 国产女同在线观看视频| 人人妻人人爽 97人人看碰人免费公开视频 | 久热91| 六九九九| 欧美色图在线视频少妇| 91成人无码| 日本熟女不卡视频| 国产精品免费美女视频| 天堂蜜桃无码视频一区二区| 怡春苑东京热| 一本色道久久综合精品婷婷| 强奸抽插av| 欧美v亚洲v日韩v最新在线二区 | 久久精品一区二区一8| 亚洲天堂7777| www.狠狠干.coom | 极品综合| 婷婷亚洲天堂| 国产中文福利| 亚洲情欲| 日韩亚洲Av人人夜夜澡人人爽| 99热这里只有精品8| 超碰99热中文字幕| 亚洲97在线观看| 国产精品亚洲高清在线| 天美国产三级传媒| 亚洲日韩97| 夜夜草我| 久久99久久99久久99人受| 中文字幕视频2区| 亚洲欧洲激情| 国产精品视频91久久| 久久精视频美日韩在线视频| 夫妻四区五区六区| 大香蕉视频啪啪啪啪| 欧美A片中文字幕| 超碰在线国产| 欧美日韩国产色五月综合在线| 亚洲国产综合图区中文字幕| 中文字幕精品一区二区精品| 99色在线| 青青操狠狠撩| 丝袜狠狠草尤物 91| 秋霞怕怕片| 99视频内射三四| 亚洲无限观看| 黄在线| 亚洲激情 欧美色图| 校园激情狠狠四射| 99热这里只有精品99| 97草草| 国产一区二区三区白丝| 久热色情精品| 日韩欧美日韩| 熟女丰满人妻一区| 九九热三级片| 欧美亚洲综合色| 激情在线青青操| 9999免费精彩视频| 欧美亚洲清纯| 亚洲欧美国产其他二区| 综合大香蕉美。| 日韩性爱电影一区| 亚洲情色无码一区二区三区| 亚洲四虎熟女精品| 久夜操| 国产亚洲综合欧美一区| www.人人摸在线视频| 亚洲高清无码AAA久久久精品| 欧美亚洲高清不卡| 黄片无码在线制服| 黄页网站成人免费| 嗯嗯,啊啊,国产精品| 美女91在线| 欧美午夜精品久久久久久3D| 一区二区乱码福利| 欧美色图亚州激情| 精品一级| 天天综合网一91网| 精品人妻一区二区视频| 欧美大片天天看| 色欲无码人妻日韩欧美精品| 久久精品视| 爱媛媛久久国产福利| 亚洲少妇自拍中文字幕懂色| 色情成人五月天| 97爱爱| 精品一区二区三区最新| 先锋激情∨在线视频播放| 啊啊啊啊二区好大| 国产精品无码在线| 青青在线视频日韩欧美| 国产五码丝袜屁眼| 岛国片在线观看视频亚洲| 欧美色图第一页| 爱干爱射网啊啊啊| 天天看,天天做| 超碰免费人妻在线| 四虎在线观看网站| 久久久久久亚洲精品不卡人乳| 绯色一区二区三区不卡少妇 | 免费国产电影一区二区| 97在线资源| 色五月激情综合网| 中文字幕一区二区三区高清| 欧美日韩制服| 日韩色女精品| 偷拍亚洲高清图片| 婷婷91| 国产无码高清操逼视频| 日韩本不卡视频在线观看| 色老汉色| 五月婷丁香| 亚洲影院365| 亚洲,欧美,综合网| 久久精品老司| 麻豆亚洲Av成人无码一区精品| 思思热免费在线视频| 久久久久夜夜夜夜| 狠狠躁伊人中文字幕| 99热这里只有是精品10| 天天影视综合网欧美精品| 一线黄色免费性爱片| 伦理第一页| 青女在线| 中文字幕在线观看第二页| 日韩黄色一区二区三区| 国产av又色又爽又黄| 亚洲色图欧美激情| 五月天人妻综合| 欧美成人色| 欧美亚洲第1页| 久久人人看| 亚欧高清v| 国模不卡| 国产女乱淫真高清免费视频| 乱伦Av网| 免费在线黄片视频| 91强热人妻| 香蕉久久AⅤ...| 亚洲阿v天堂在线| 久久αⅴ| 色97干| julia国产在线 | 婷婷啪啪| 丁香六月激情| 九九色色| 玖玖综合.com| 日韩97视频!在线| 女同在线视频一区| 人妻天天操天天爽视频免费| 欧美九9 9 9| 午夜婷婷| 天美传媒国产原创中文字幕亚洲欧美另类| 五月天伊人| 色婷婷亚洲婷婷| 色噜噜综合网| 亚洲精品一区二区三区新线路| 亚洲第一页色| 欧美久久婷婷| 91精产一区二区三区| 黑人精品久久97| 吊色| 大茄子熟女AV导航| 久艹日日日| 啊啊啊想要| 2023天天操夜夜操| 国模不卡| 日本三级大片| 久视频在线观看| 青青草视频在线观看一区二区| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 国内精品嫩模A∨私拍小视频| 成人五月天丁香激情综合| 超碰在线人妻中文字幕| 亚洲毛片一级带毛片基地| 黄色免费网页无码| 久久怡红院| 亚州宗合另类| 国产精品久久久999| 久久熟女嫩草成人片免费| 亚洲国产天堂| 国产高清26uuu| 欧美十八禁在线看| 男人的天堂成人的社区| 久久九操在线观看| 日少妇视频| 欧美自拍偷拍综合图片| 性吧在线视频| 国产欧美后入| 欧美性暴力| 26uuu性物| 欧美日韩91| 精品97精品97| 欧美美女视频| 99精品成人免费看| 96爱综合| 91久久| 中文字幕日韩人妻视频一区二区三区| 色香色香欲天天天影视综合网| 亚洲美女30b| 少妇天堂| 中文字幕亚洲热播人妻| 91蜜臀熟女| 天天影视网色欲色香| 亚洲av成人精品一区| 秋霞曰韩R级| 中文字幕亚洲欧美在线不卡| 欧美视频一区二区三区| 国产极品美女高潮无套在线观看| 67194无码不卡| 狠狠色五月亚洲91| 探花熟女,姿勢到位,體驗感也到位| 天天射网| 女性91网站| 一品道视频一区二区三区| 亚洲人综合| 亚洲天堂五月天国产| 日韩精品 资源| 加勒比性爱成人在线| 日韩美女啪啪一区| 成人无码专区精品视频| 亚洲色狠| 中文字幕一区av| 蜜臀99久久精品| av在线一区二区三区| 久久久av爱| 少妇综合网| 亚洲日本韩国极品一区二区| 射久久| 午夜免费视频1000| 丰满人妻一区二区三区免费| 亚洲激情综合| 伊人超碰97| 欧美色图天堂在线| 超碰97丝袜| 国产成人资源| 久久久97| 天天摸夜夜摸| 精品丝袜无码一区二区三APP| 99.色网| 91w欧美| 国产视频一区二区在线| 男女啪啪网站免费视频| 久久综合中文国产| 国产精品久久久久亚洲av| 91久久18禁| 亚洲第一精品在线视频| 狠狠干2020| 秋霞曰韩R级| 91狠狠综合久久| 日本天天操| 久久久精品| 一区二区三区蜜桃成人撸久久东京热| 乱伦a片视频| 青草影院内射高潮| www色婷婷| 好爽视频在线观看视频| 不卡码视频| 上海一级黄片| 久久人| 日韩天堂av电影在线观看| 欧美日韩午夜精品一区二区三区| 日本好吊色视频| 性爱av网站| 97超碰超碰| 麻豆激情综合| 日本 欧美 亚中文字幕| 中文字幕一区二区三区字幕| 国产精品一区二区校花| 凹凸 69堂 在线播放| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 色欲色香天天天综合网www-亚洲综合国| 日韩成人精品| 日韩在线观看AV| 亚洲av在线免费观看| 日韩免费三级黄片电影| 熟女熟妇一区二区三区视频| 欧美激情总合网| 中文字幕AV乱伦| asc国产精品| 精品久久久久,69国产成人精| 无码直播久久久| 亚洲美腿丝袜香蕉影视欧美成人| 宅男91视频在线播放| 国产黄色 A 片免费看| 97欧美综合| 中文欧丝袜诱惑| 久久久噜噜噜久久久| 把腿张开老子CAO烂你| 香蕉视频欧美一卡二卡| 久久久久极品| 日韩精品永久在线观看| 91总综合网| 3PAV乱伦视频| 蜜臀久久精品久久久久视频| 中文字幕一二三区| 爱我干综合| 中文字幕一二区二三区人妻专区| 2020中文字幕在线观看| 青久久| 亚洲男人的天堂V| 人人扣人人操| 久久久精品视频免费观看| 人人操人人摸人人骑| 日本在线15p| 中文字幕久久亚州无码| 国产精品视频播放| 亚洲AO在线| 久久人妻丝袜一区二区三| 欧美麻豆成人同性GⅤ在线| 肏逼福利网站| 国产精品熟女一区二区三区| 亚洲精品电影| 成人无码欧美一级A片狼牙直播| 校园春色中文字幕AV| 精品十三区| 夜夜狼人妻| 极品丝袜无码| 亚洲免费精品一区| 熟妇人妻一区二区三区| 麻豆乱码久久精| 99999精品视频| 麻豆亚洲Av成人无码一区精品| 狠狠色综合网| 日本大片日本一区二区免费高清| 色婷久久| 韩日精品四区| 久jiu久神马影院| 亚洲人成网www| 亚洲天堂,男人| 天美传媒国产原创中文字幕亚洲欧美另类 | 久久久久久少妇| 嗯,啊。舔我逼| 欧美97视频| 一区二区三区色综合| 久久精品人妻一区二区| 色阁阁AV综合网| 国产精品粉嫩福利在线| 91痴汉| 亚洲无码一区成人免费午夜| 久久啊啊| 国产高清成人免费视频| 人人爱人人乐人人操| 欧洲性爱无码区| 强被迫伦姧在线观看无码网站| 综合 亚洲 欧美| 久久久999| 欧美中文字幕日韩在线| 欧美日韩色综合网| 成人短视频在线观看| 91oumei| 色婷婷综合久久久久中文一区二区| 国产精品亚洲四五区在线观看| 神马久久久久久久久久久久| 啊啊啊在线看| 人妻久久一区二区三区| 天天干干天天干干| 婷婷五月天成人| 久久超碰亚洲人| 91美女国产在线| 亚洲情欲| 91人妻素女| 91久久精品国产| 亚洲精品蜜桃久久久久久久| 日日干日日摸| 肏逼福利网站| 欧美黄色片AAAAA| 91人妻丝袜无码| 99国产精品自在自在| 99re这里只有| 日韩欧美tv一区二区在线观看| 九九色图| 蜜桃一区二区三区| 97干97色| 国产成人自拍视频在线| 91欧美偷拍| 91大香蕉伊人| 色婷婷激一区二区三区 | 九九九国产| 日韩在线一区高清在线| 天美AV片| 视频在线97| 天美传媒精品一区二区三区| 尤物网站91| 久久精品中文字幕无码l| 麻豆久久久一区二区| 日日夜夜模| 人人弄人人摸| 日韩一区二区精品视频| 熟妇高潮二区三区| 看大黄色大片原件| 日韩欧美成人大香蕉| 欧中美三级一区二区三区| 精品国产91av一区二区三区| 日韩美女久久一区二区三区| 人妻精品一区二区三区| 91久久伊人婷婷青青草| 亚洲 中文 欧美 日韩 在线| 丰满人妻aA一区二区三区| 亚洲欧美在线观看2021 | 日韩电影天堂视频一区二区| 四虎在线视频| 国产免费久久久久| 久久原创中文| 另类 日韩 熟女| 久久同城AV| 精品九九国产无码| 久操操| 日B操| 97色爱| 操逼A∨| 久久久9品一区二区三区| 亚洲毛片基地专区| 97AV爱| 欧洲特黄毛片免费看欧洲毛片| 中文字幕五区| 91老熟妇| 蜜臀亚洲中文| 人妻偷拍一区二区三区| 欧美一区二区三区大综合| 精品蜜乳AV免费观看| 久久超碰亚洲人| 欧美 精品国产制服第一页| 蜜臀精品1区2区| 秋霞免费无码视频日韩A片| 97色欧州| 韩国成人精品久久久免费看| 97av,com| 色五月激情综合网| 神马久久久久久| 久久久久久久久久久久久久久乱码| 欧美激情激情xxxx欧美专区| 久久97资源 网| 操逼www.| 精品十八在线观看| 青娱乐导航AV| 国产精品视频麻豆入口| 人人爽夜夜玩视频| 人妻天天夜夜爽一区二区| 日本淫乱女一区二区三区视频| 5252色欧美在线| 婷婷视频在线免费观看| 亚洲精品国产拍免费91在线| 丝袜夫妻自拍| 中国大陆国产高清AⅤ毛片| 人妻色情天天操| 精品久久久久久亚洲| 无码不卡亚洲成?人片| 精品9区| 九九99精品| 自拍偷拍 日韩欧美| 日日嗨AV一区二区夜夜| 九九热精品| 久热在线精品免费观看| 日韩欧美~中文字| 欧美最婬乱婬爆婬性视频 | 天天摸天天插天天日| 天堂а√在线最新版在线| 日日AAvv| 天天碰操中国年青熟妇| 91干熟女| 一级日本牲交大片好爽在线看| 91狠狠狠| 日韩精品9999| 屌色在线97视频| 国产av波波国产精品| 日日不卡av| 亚洲色悠悠久久88| 日韩精彩免费| 亚洲午夜av| 伊人丁香五月婷婷| 免费视频97| 中文字幕精品亚洲熟女| 亚洲蜜臀懂色| 射 色综合| 国产小u女在线观看| 欧美性爱日韩高清| 啊v在线观看视频| 国产AV线| 亚洲综合射| 久久9亚洲| 午夜天堂精品久久久久91| 黄色网址在线免费观看| 看免费的黄片| 国产性爱强奸乱伦大全| 台湾佬大香蕉| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 男人久久天堂| 热久久无毒不卡| 美女大乳久久久久久久女人18| 国产欧美一区激情交| 日韩免费大片一级播放| 91久久久亚洲| 97在线免费看视频| 91无码人妻精品一区二区三区蜜桃 | 自拍大香蕉乱插| 能在线播放的国产三级| 人人操我人人干| 日欧操屄| 欧美1区二区三区公司| 欧洲在线性爱视频| 97超碰色色| 国产路线专区| 四方色播| 日韩人妻丝袜中文字幕| 中文字幕乱码在线观看| www.91视频网| 精品人妻一区二区三区在线视频不卡| 中文字幕视频二区| 精品人妻丰满熟妇一区二区三| 中文字幕第二页| 狠狠色五月亚洲91| 91观看 国产白丝| 九久精品| 九九九免费视频| 日产操逼| 人妻丰满熟妇一区二区三| Sekablack无码一区| 久久这里只精品免费福利| 日韩免费高清大片在线| 精品国产91内射久久| 素人一区二区三区日韩| 91成人久久| 97香蕉碰碰人妻国产欧美| 操逼日韩无码 | 91大神电影天堂| 九X超碰| 国产情色第一第二页在线观看| 91精品免费| 欧美亚州综合网图片| 伊人九九九| 青娱乐999| 日韩国产在线观看av| 大香蕉丝袜一级片| 九九热精品在线| 老女人碰碰在线碰碰视频| 啊嗯嗯啊好大好爽| 96久久久久| 亚洲性爱电影| 中文字幕永久在线| 激情文学欧美| 竹菊一区二区三区AV线| dy888午夜老子影视达达兔| 巨爆乳一区二区爆乳区| 亚洲成人久久美女| 欧美图片色综合| 日本熟妇自慰性高潮一区二区三区| 97视频免费播放| 亚洲,日韩,欧美,成人播放 | 欧美在线电影| 思思视频免费看网站| 一级啊性爱在线视频| 青青草日逼视频| 加勒比综合a∨| 97啪啪| 成年人性爱日韩| 亚洲熟妇丝袜在线观看| asc国产精品| 中国操逼无码| 天天干天天拍| 日本免费一区二区不卡| 亚洲国产丝袜熟女av| AV免费在线播放一区| 精品久久久中文字幕不| 岛国天天午夜影院传媒网| 国产午夜在线观看视频| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 99热9| 中文字幕日韩人妻视频一区二区三区交换夫妻| 亚洲操操操无码| 夜夜天天噜狠狠爱2021| 亚洲 图片 综合91| 亚洲狠狠入| 国产熟女乱论| 狠狠夜色午夜久久综合在线| 丰满人妻一区二区三区免费 | 成年女人一区| 欧美激情亚洲| 中国一区二区亚洲人妻| 蜜桃不卡一区二区| 日韩97P| 日本天天色| 久久久性少妇| 久久久无码av精| ai欧美亚洲小说| 日本性交操一区二区不卡系列| 25国产精品免费观看| 东京男人天堂| 丰满人妻大屁一区二区| 亚洲色图伊人网| 亚洲av综合色区图片亚洲| oumeisetupian| 在线观看视频91| 亚洲日韩国产欧美综合v| 欧美日韩资源在线| 超碰97人妻在线| 久久国产视频性吧 | 97综合激情| 精品亚洲国产成人AV制服丝袜| 青青草字幕AV| 一起草日韩| 综合网97| 久久精品店| 四虎免费视频| 日韩黄色成人性爱| 国产精品农村妇女精品| 亚洲操人| 少妇淫妇久久久久久久| 日韩久久三区| 99国产精品| 男人的天堂激情| 91在线秘 男同| 欧美78| 伊人五月天激情| 我爱操| 99热这里只有精| 一区二区高清视频| 99999精品成人| 亚洲 日本 国产 综合| 日本高清熟女久久一区| 强奸乱伦大香蕉网| 亚洲欧美国产精品久久久久久久| 超碰人妻在线| 精品一级毛片在线观看| 青青草精品| 亚洲最新中文字幕免费| 欧美天天影院| 性爱乱伦视频免费| 国产久久成人| 免费超碰97久久| 国产动漫操逼视频| 欧美啪啪色吧在线| av大香蕉网站| 中国乱伦一区二区| 奶水 人妻 哺乳 在线| 清纯唯美激情四射| 岛国片国产成人亚洲播放| 亚州,欧美在线| 午夜激情床戏激情| 国产野战露脸在线播放| 欧美啪啪天堂| 日少妇亚洲版| 欧美日韩中文亚洲v在线综合| 特污精品女优骚货黄色视频在线免费观看| 久久婷婷国产一区二区色| 久久久久久人妻一区精品色欧美| 日本五区不卡| xxx亚洲午夜天堂| 亚洲精品第一| 午夜舔阴达高潮视频免费看| 91久久久老司机| 亚洲欧美精品91| 精品中文字幕一区二区| 久久精品电影在线| 欧美论理片| 插入综合网| 把腿张开老子CAO烂你| 日本精品五区| 欧美后入式| 欧亚第一综合网| 香蕉久久国产AV一区二区| 特级特黄一级毛片免费| 啊啊啊好大好深| 亚洲日产专区婷婷| 99r九九| www久| 激情国产乱伦Av| 韩国一级做a久久久久| 无码九九| 日韩操呦呦影院在线观看| 狼天天狼天天大香蕉| 国产精品一区二区 尿失禁| 台湾一区国产高清在线| 鸥美中出| 女人天堂网| 伦理弟一页| 台湾大香蕉99热| 天美国产精品| 资源在线观一 二| 国产黄色av大片网站| 久综合国内精品自在自线| 欧美精品宗合| 九九九九九九视频免费| 日日干日日摸| 秘书高跟黑色丝袜国产91在线| 老女人碰碰在线碰碰视频| 欧美亚洲第1页| 国产高清1234区| 亚洲欧美精品91| av九九| 99色天堂| 99久久久久| 亚洲AV成人无码一区二区三区在线观看 | 欧美翘臀视频网站一区二区三区 | 99热在线观看| 亚洲成a人在线观看久| 精品国产91av一区二区三区| 91性高朝久久久久久久久| 东北少妇高潮zzzz| 乱伦强奸区日韩| 精品九九| 最新日本中文字幕| 欧美日韩在线视频网站| 家庭乱伦麻豆| 国产精品日本无码A片| 久9re热视频这里只有精品| 新亚洲无码| 人人操人人干xxx| 国产乱伦亚洲色图高清无码| 亚洲 小说 欧美 激情 另类| 岛国黄片网站| 精品无码不卡视频| 久久久久久国产精品免费网站| 91足交| 日韩乱插| 久久久久久亚洲精品不卡人乳| 亚洲老熟妇xxx| 熟女在线视频| 天天看片麻豆| 91色综合色| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 熟女六十路| 色五月婷婷在线| 国产丝袜美女诱惑| 伊人久久大香线综合无码| 亚洲综合99999| 欧美亚洲宗合色性图| 欲色啪| 日逼97| 国产91会所女技师在线观看| 中文字幕奈奈美被公侵犯| 国产 v乱码一区二| 小少妇| 久久曰曰| 91欧美情色| 日韩精品中文字幕人妻| 亚洲97久久精品亚洲| 99久久婷婷国产综合精品草原| 欧美三级不卡| 麻豆精品天美| 特污精品女优骚货黄色视频在线免费观看| 亚洲啪啪综合?v一区综合精品区| 久久性爱精品一区| 丁香六月啪| 亚洲偷拍自拍在线视频| 国产麻豆福利av在线播放| 超碰人人在线| 日韩一级二级在线| 好爽要喷了| 中文字幕三四区| 老司机老司机午夜影院| 欧美激情综合色综合啪啪五月| 欧美操逼视频二区| 超碰97极品9| 亚洲黄色视频在线观看视频| 亚欧Av| 欧美亚洲激情小说| 九9热伊人| 久草成人| 日韩乱伦视频| 久久久穴999| 亚洲中文字幕熟女少妇一区二区| 巨爆乳一区二区爆乳区| 丰满人妻一区二区三区| 国产精品亚洲日韩骚欢乐谷最新地址发布页huanieguty性屋娱乐妖精视频 | 欧美丝袜制服久久| 91蜜桃婷婷狠狠久久综合9色| 青青草视频久久久久| 香港久久久| 男女性感激情网站| 丰满人妻一区二区三区在线| 九色 蝌蚪 熟女自 | 97精品在线| 国产精品久久久吖| 国产精品色色| q2午夜理论片夜色av| 中文色综合| 夜夜嗨AV蜜臀av| 91性片| 天美麻花大全视频| 老熟妇一区二区三区啪啪| 一二三区操逼国产91| 国产亚洲99久久精品| 丰满人妻一区| 美国一区二区三区视频| 久久国产视频专区一二三| 久久久久99精品成人片蜜臀| 日韩乱伦视频| 啊啊啊啊啊啊啊啊要喷了| 操操吧亚洲乱伦视频| 亚洲AV乱码专区国产噜噜亚洲 | 久久久久久大| 黄骗免费网站| 日产狠狠干| 久久在肏| 日韩欧美视频青青| 91中出视频| 五月天激情网站| 激情在线青青操| 久久久激情| 亚洲女人91| 激情五月综合网| 九九九九精品视频| 丁香五月影院| 东北熟女91| 丝袜美腿欧美| 91在线视频国产网站| 97九色人妻| 一级二级在线观看| 丝袜狠狠草尤物人妻av91| 国产h小视频在线观看免费| 1956日韩精品| 国产欧美日本亚洲精品| av操操不卡| 精品人妻中文字幕4399| 国产精品久久久久久久免牛肉蒲团 | 超碰97资源中文字幕| 91精片| 亚洲综合图文| 岛国激情视频软件| 青草影院内射高潮| 小情侣高清国产在线视频| 日韩本不卡视频在线观看 | 久操免费视频| 色色色网站| 91美女在线观看| 东北女人被操| 顶级丝袜熟女一区二区三区| 蜜臀在线网站| 欧美激情总合网| 五月天久久综合网| 欧美骚少妇| 天天干天天爽| 国产辣妈在线视频福利| 中文字幕人乱码中文字的预防方法 | 一区二区三区国产精产| av网站在线观看了| 91久热| 久久精品国产亚洲AV成人直播| 无码少妇精品一区二区60岁老人| 亚洲,欧美,综合网| 91大学精品激情戏| 秋霞一集毛片观看| 大香蕉之青青草原| 亚洲无码国产精品久久| 熟女日韩| 伊人久久综合影院| 夜夜高潮夜夜爽夜夜爱爱一区| 99国产精品人妻人伦| 精品午夜福利国产一区二区在线观看| 综合97久久| 无码99| 国产在线能看的你懂的| 北条麻妃99精品青青久久| 天天舔天天| 久久精品成人| 国产精品一区二区久久精品| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 日韩啪啪啪啪啪| 日韩成人大片一区二区| 亚洲自拍欧美国产首页网曝| 日韩av情韩国爱禁区av一区二区| 国产精品蜜臀久久久久无码AV| 福利伊人玖玖国产| 麻豆伊人网| 日本黄色精品专区网站| 六月婷婷色综合| 成人夜夜| 日韩人妻无码精品系列| 丁香色婷婷| 久久亚洲AV成人精品无码| 91黑人狂躁丰满熟妇| 国产精品3| 欧美性暴力猛交XXXX| 色婷婷电影网| 浪人综合网| 中文字幕美女91| 亚洲三级。日韩三级| 日本最新1区2区3区| 激情露脸爱| 91在线色综合| 久热婷婷| 成人三级片无码| 强奸乱伦大香蕉| 综合久久久久久久久91| 欧美姓爱综合网| 激情文学亚洲| 超碰久久网| 亚洲色资源| 亚洲国产一级中文综合久久天堂在线免费观看| 立川理惠加勒比无码| 乱伦日本色图AⅤ| 中文字幕一区二区在线日韩精品| 人人操,人人液| 91一区二匹| 伊人九九九| 欧美性性性| 亚洲se91| 欧美天天搞| 男人天堂新在线| 男人天堂2019| 奶水 人妻 哺乳 在线| 91N综合网| 又黄又硬又粗又长国产视频| 中亚黄色三级大片| 久久久久久久久久久久欧美日| 精品一久久久| 91挑色欧美| 成人在线日韩| 九九色精品| 日本人妻A片成人免费看片| 久久毛卡| 最新中文字幕在线亚洲| 91人妻素女| 久久精品国产亚洲AV片多多| 青青伊人这里只有精品| 免费观看国产小粉嫩喷水精品午| 国产三级资源在线观看| 在线播放免费av福利片| 性爱视频无打码在线观看| 国产AV毛片| 国产一级黄色片在线观看| 精品国产久热在线观看| 91亚洲综合| 久夜视频| 亚洲综合999| 亚洲视频中文一区| 亚洲啪啪视频免费| 亚洲好看强奸乱伦| 1769一区二区| 五月天激情婷婷|