電路方案:基于單片機(jī)的貪吃蛇設(shè)計(jì)
1設(shè)計(jì)目的
在21世紀(jì)的今天,人們的生活開始變得更加豐富多彩。在繁忙的工作之余,娛樂成為人們生活不可或缺的一份子,而游戲作為近年來逐漸興起的一種娛樂方式,已經(jīng)越來越受到人們的青睞。在工作學(xué)習(xí)之余,通過玩游戲來放松、調(diào)節(jié)緊張的學(xué)習(xí)工作壓力是不錯(cuò)的選擇;然而大型的網(wǎng)絡(luò)游戲玩起來比較耗費(fèi)時(shí)間,且不能隨時(shí)隨地的玩。那么如果這時(shí)候擁有一款簡單易攜帶,并且能夠緩解壓力的小游戲?qū)⑹莻€(gè)不錯(cuò)的選擇,所以,我就設(shè)計(jì)了這樣一款簡單易攜帶的經(jīng)典小游戲——貪吃蛇。1.2 設(shè)計(jì)要求
(資料圖)
①制作一個(gè)的貪吃蛇游戲,系統(tǒng)以單片機(jī)為控制器,用四個(gè)輸入端表示四個(gè)控制鍵(上下左右)。②游戲初始化蛇的節(jié)數(shù),以及障礙墻壁。③當(dāng)蛇的頭碰到障礙墻壁或蛇的身體時(shí)自動(dòng)結(jié)束。2 總體方案
2.1 總體框圖
圖 2?1總體框圖
2.2 方案選擇2.2.1 點(diǎn)陣驅(qū)動(dòng)電路選擇由于單片機(jī)IO口的驅(qū)動(dòng)能力有限,當(dāng)驅(qū)動(dòng)16*16點(diǎn)陣時(shí),行控制IO口需要控制16個(gè)LED,單個(gè)IO口驅(qū)動(dòng)能力達(dá)不到良好的顯示效果,故需要驅(qū)動(dòng)電路來控制16*16點(diǎn)陣,具體有以下兩種方案以供選擇:方案一:選用74HC595作為點(diǎn)陣驅(qū)動(dòng)。74HC595是一個(gè)8位串行輸入、并行輸出的位移緩存器。可使用4個(gè)74HC595來控制點(diǎn)陣的行列,在控制點(diǎn)陣時(shí)僅需6個(gè)IO口,但每次控制時(shí)需要發(fā)送16次數(shù)據(jù)。方案二:選用74LS138配合74HC373作為點(diǎn)陣驅(qū)動(dòng)。74LS138為3線-8線譯碼器,可由2個(gè)74LS138構(gòu)成一個(gè)4線-16線譯碼器來驅(qū)動(dòng)點(diǎn)陣的行。74HC373是八路D型鎖存器,可用來并行驅(qū)動(dòng)點(diǎn)陣的列,每次控制只需執(zhí)行一次命令。但在此方案中需要20個(gè)IO口來控制電路。根據(jù)以上兩種方案的描述,再結(jié)合我們的系統(tǒng)設(shè)計(jì),IO口還未完全利用,為使刷新速度更快,故采取用方案二。2.2.2 按鍵電路設(shè)計(jì)方案在本設(shè)計(jì)中,我們需要通過按鍵來實(shí)現(xiàn)改變貪吃蛇的運(yùn)動(dòng)方向。那么,鍵盤就是整個(gè)系統(tǒng)中不可缺少的一部分。具體有以下兩種方案以供選擇:方案一:矩陣式鍵盤,這種鍵盤I/O口利用率高,但電路連接復(fù)雜,軟件編程也比較復(fù)雜,適用于需要大量使用案件的系統(tǒng)。方案二:獨(dú)立式鍵盤,這種鍵盤每個(gè)按鍵之間是相互獨(dú)立的,每個(gè)按鍵占用一個(gè)IO口,當(dāng)按鍵數(shù)量較多時(shí),I/0口利用率不高,但程序編寫簡單,適用于所需按鍵較少的場合。根據(jù)以上兩種方案的描述,再結(jié)合我們的系統(tǒng)設(shè)計(jì),顯而易見,我們需要獨(dú)立式鍵盤,所以,這里我們選擇方案一。2.2.3 電源供電選擇電源電路是一個(gè)電子產(chǎn)品的重要組成部分,本設(shè)計(jì)中的單片機(jī)與驅(qū)動(dòng)電路都需要電源。在本設(shè)計(jì)中的單片機(jī)、74HC373和74LS138的電壓典型值都為5V,故需要一個(gè)5V的電源供電。具體有以下三種方案以供選擇:方案一:使用直流電源供電,例如手機(jī)充電器,可以直接獲取5V的電源,并且可以長時(shí)間供電,但必須有電線連接,不具有便攜性。方案二:使用干電池供電,電池?zé)o需電線連接,具有便攜性。并且單節(jié)干電池由1.5V的電壓,3節(jié)干電池串聯(lián)即可得到4.5V的電壓,基本滿足需求。但干電池僅能單次使用,沒電后需更換電池,造成浪費(fèi)。方案三:使用鋰電池供電,電池?zé)o需電線連接,比干電池更加輕便,更具有便攜性。鋰電池還可以重復(fù)充電循環(huán)使用,設(shè)計(jì)產(chǎn)品可有更長的壽命。另外鋰電池典型電壓為3.7V,不滿足系統(tǒng)所需的5V,但市面上有類似于FM3209M之類的鋰電池管理芯片只需搭配簡單的外圍電路即可獲得5V的電壓。根據(jù)以上兩種方案的描述,我們選用方案三,使用鋰電池為本設(shè)計(jì)供電,以便使設(shè)計(jì)產(chǎn)品更加便捷。3 硬件設(shè)計(jì)
3.1 單片機(jī)最小系統(tǒng)3.1.1 單片機(jī)選型本設(shè)計(jì)選用STC89C52單片機(jī)作為系統(tǒng)的主控芯片,控制該貪吃蛇系統(tǒng)的整體運(yùn)行。STC89C52單片機(jī)的優(yōu)點(diǎn)為功耗低、八位CMOS微處理器性能高,片內(nèi)具有8k在線編程Flash存儲(chǔ)器,采用MCS-51內(nèi)核,指令完全兼容MCS-51,具有開發(fā)簡單、可在線編程下載、成本低等優(yōu)點(diǎn)。[1]最小系統(tǒng)主要由STC89C52單片機(jī)、晶振電路、復(fù)位電路構(gòu)成。電源采用鋰電池供電,晶振電路為12M石英晶振,并聯(lián)兩個(gè)電容,可以起到頻率微調(diào)作用。復(fù)位電路有上電自動(dòng)復(fù)位和開關(guān)復(fù)位兩種復(fù)位方式。3.1.2 單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)原理圖如圖 3?1所示:
圖 3?1單片機(jī)最小系統(tǒng)
[1] 時(shí)鐘電路
圖 3?2單片機(jī)最小系統(tǒng)-時(shí)鐘電路
單片機(jī)內(nèi)部具有一個(gè)高增益反相放大器,用于構(gòu)成振蕩器。通常在引腳XTALI和XTAL2跨接石英晶體和兩個(gè)補(bǔ)償電容構(gòu)成自激振蕩器,系統(tǒng)時(shí)鐘電路結(jié)構(gòu)如圖 3?2所示,在本設(shè)計(jì)中時(shí)鐘電路采用12M石英晶振作為基準(zhǔn)時(shí)鐘。[2] 復(fù)位電路
圖 3?3單片機(jī)最小系統(tǒng)-復(fù)位電路
復(fù)位電路用于重新啟動(dòng)系統(tǒng),使得單片機(jī)回到原始狀態(tài)。設(shè)置復(fù)位電路的目的是當(dāng)系統(tǒng)失去控制或程序跑飛時(shí),通過復(fù)位按鈕恢復(fù)默認(rèn)設(shè)置,系統(tǒng)重新啟動(dòng)運(yùn)行。[2]復(fù)位電路由電容串聯(lián)電阻構(gòu)成,由圖 3?3并結(jié)合“電容電壓不能突變”的性質(zhì),可以知道,當(dāng)系統(tǒng)一上電,RST腳將會(huì)出現(xiàn)高電平,并且,這個(gè)高電平持續(xù)的時(shí)間由電路的RC值來決定。典型的51單片機(jī)當(dāng)RST腳的高電平持續(xù)兩個(gè)機(jī)器周期以上就將復(fù)位,所以,適當(dāng)組合RC的取值就可以保證可靠的復(fù)位。一般教科書推薦C 取10u,R取8.2K。當(dāng)然也有其他取法的,原則就是要讓RC組合可以在RST腳上產(chǎn)生不少于2個(gè)機(jī)器周期的高電平。式 3?1電容充電時(shí)間計(jì)算公式在本設(shè)計(jì)中C取10u,R取10K。由式 3?1計(jì)算得 =0.1s遠(yuǎn)大于兩個(gè)機(jī)器周期(2us),故可以實(shí)現(xiàn)上電復(fù)位功能,另外還設(shè)置了一個(gè)按鍵作為復(fù)位按鍵,即按下后直接將單片機(jī)RST端接至5V復(fù)位單片機(jī),當(dāng)按鍵松開后再重復(fù)電容充電的過程恢復(fù)正常運(yùn)行。3.2 點(diǎn)陣驅(qū)動(dòng)電路
圖 3?5點(diǎn)陣LED內(nèi)部原理圖
點(diǎn)陣LED內(nèi)部原理圖如圖 3?5所示,外側(cè)的就是點(diǎn)陣LED的引腳號(hào),左側(cè)的8個(gè)引腳是接的內(nèi)部LED的陰極,上側(cè)的8個(gè)引腳接的是內(nèi)部LED的陽極。從圖上可以看出來,我們的9腳如果是低電平,13腳是高電平的話,最左上角的那個(gè)LED小燈就會(huì)亮??刂埔粋€(gè)8*8的點(diǎn)陣需要16個(gè)引腳,將四個(gè)點(diǎn)陣行與行分別連接,列與列分別連接,控制這個(gè)16*16點(diǎn)陣仍然需要32個(gè)引腳,占用了過多的單片機(jī)IO口,所以需要一定的驅(qū)動(dòng)電路來控制點(diǎn)陣。具體驅(qū)動(dòng)方式如下述所示。3.2.1 4-16線譯碼器(行驅(qū)動(dòng))
圖 3?6由兩片74LS138構(gòu)成的4~16線譯碼器
設(shè)計(jì)中采用74LS138譯碼器。譯碼器每一時(shí)刻的輸出口會(huì)根據(jù)輸入信號(hào)的譯碼來選擇,同一時(shí)刻僅有一個(gè)端口輸出與其他端口的輸出不同,該電平信號(hào)就是設(shè)計(jì)所需的。只要在輸入端給出連續(xù)的編碼信號(hào),輸出端就會(huì)產(chǎn)生由低位端口到高位端口輸出的電平信號(hào)。由于16×16點(diǎn)陣給出的行引腳為16根,而74LS138僅有8位輸出引腳,所以要想實(shí)現(xiàn)譯碼選擇行線的話一片,74LS138顯然是不夠的,因此該設(shè)計(jì)中采用兩片74LS138譯碼器級(jí)聯(lián)成4~16線譯碼器。那么怎樣才能實(shí)現(xiàn)兩片74LS138級(jí)聯(lián)成為4~16線譯碼器呢?級(jí)聯(lián)原理如圖 3?6所示,從圖中可以看到,兩片74LS138的輸入端被相應(yīng)地連在一起組成4~16譯碼器的低三位,關(guān)鍵是第四位的連接方式,從圖中可以看出,當(dāng)D3=0時(shí),會(huì)使73LS138(1)對(duì)輸入信號(hào)譯碼,而輸出端也僅會(huì)在73LS138(1)的Y0到Y(jié)7之間進(jìn)行選擇。這與一片74LS138的譯碼關(guān)系一樣,74LS138(2)則不參與譯碼,而全部輸出默認(rèn)電平,但從輸入端看是輸入了四位信號(hào)而產(chǎn)生了16位數(shù)據(jù)。再當(dāng)D3=1時(shí),73LS138(2)對(duì)輸入的低三位信號(hào)譯碼,73LS138(2)被屏蔽,輸出端全部輸出高電平。這樣,只要將4~16線譯碼器的輸入端口接入單片機(jī)的IO端口上,16位輸出端接在16×16點(diǎn)陣的行線接口上,即可完成點(diǎn)陣的行驅(qū)動(dòng)。[3]
圖 3?7點(diǎn)陣行驅(qū)動(dòng)電路
在本設(shè)計(jì)中,如圖 3?6所示通過單片機(jī)的P2.0、P2.1、P2.2和P2.3四個(gè)引腳作為4~16線譯碼器的輸入,4~16線譯碼器的輸出接至四個(gè)點(diǎn)陣的陰極。3.2.2 D鎖存器(列驅(qū)動(dòng))74HC373是八路D型鎖存器,每個(gè)鎖存器具有獨(dú)立的D型輸入,以及適用于面向總線的應(yīng)用的三態(tài)輸出。鎖存器的主要作用 | |
[1] | 緩存 |
[2] | 完成高速的控制其與慢速的外設(shè)的不同步問題 |
[3] | 是解決驅(qū)動(dòng)的問題(提供的電流比51IO口輸出電流大) |
[4] | 拓展I/O口(可以用鎖存器冪疊加方法,即鎖存器的Q再接鎖存器實(shí)現(xiàn)IO口的無限拓展) |
表 3?1鎖存器的主要作用
在本設(shè)計(jì)中就是用到了鎖存器的第三個(gè)功能,微控制器的IO口均不能流過過大的電流,LED點(diǎn)亮?xí)r有約10ms的電流,因此點(diǎn)陣陽極不要直接接單片機(jī)IO口,應(yīng)先經(jīng)過一個(gè)緩沖器74HC373。單片機(jī)IO口只需很小的電流控制74HC373即可間接的控制點(diǎn)陣陽極的顯示,而74HC373輸出也能負(fù)載約10mA的電流。設(shè)置數(shù)碼管段的驅(qū)動(dòng)電流為ID=15mA,這個(gè)電流點(diǎn)亮度好,并且有一定的裕度。圖 3?8點(diǎn)陣列驅(qū)動(dòng)電路
在本設(shè)計(jì)中,如圖 3?7所示將鎖存器串如單片機(jī)與點(diǎn)陣之間,將鎖存器的OE接低電平、LE接高電平,以使鎖存器的輸出始終等于輸入。從而實(shí)現(xiàn)擴(kuò)大電流的作用。3.3 按鍵電路
4 軟件設(shè)計(jì)
4.1 主函數(shù)
圖 4?1主函數(shù)流程圖
單片機(jī)復(fù)位后,單片機(jī)運(yùn)行main()函數(shù),初始化定時(shí)器并點(diǎn)亮由兩個(gè)LED構(gòu)成的蛇身和一個(gè)食物,蛇開始默認(rèn)向左運(yùn)動(dòng)。初始化完成后單片機(jī)循環(huán)執(zhí)行點(diǎn)陣掃描函數(shù)(點(diǎn)陣顯示掃描函數(shù))與按鍵掃描函數(shù)(檢測按鍵是否被按下)。點(diǎn)陣掃描函數(shù):點(diǎn)陣的顯示原理是在每一時(shí)刻僅顯示一行數(shù)據(jù),然后通過每行輪流顯示,以很快的速度不斷地刷新,也就產(chǎn)生了靜態(tài)的顯示效果。在本設(shè)計(jì)中,單片機(jī)P2.0-P2.3引腳控制4~16線譯碼器從而控制點(diǎn)陣的行,P0與P1控制點(diǎn)陣的列。當(dāng)P2.0-P2.3分別是0、0、0、0時(shí),選中的是點(diǎn)陣的第一行,其顯示內(nèi)容由P0與P1控制,IO口為高電平時(shí)點(diǎn)陣上對(duì)應(yīng)LED點(diǎn)亮反之低電平則不亮,當(dāng)P0與P1分別是0xff與0x00時(shí),第一行的左八個(gè)LED點(diǎn)亮右八個(gè)熄滅。當(dāng)P2.0-P2.3分別是0、0、0、1時(shí),選中的是點(diǎn)陣的第二行,依次類推從而實(shí)現(xiàn)點(diǎn)陣每行的顯示??刂芇2.0-P2.3引腳以實(shí)現(xiàn)選中1-16行,并使其依次循環(huán)選中,并通過P0與P1發(fā)送數(shù)據(jù)從而實(shí)現(xiàn)點(diǎn)陣整片的顯示。按鍵掃描函數(shù):在本設(shè)計(jì)中按鍵使用的是單片機(jī)的P3.2-P3.5,單片機(jī)內(nèi)部有將其上拉,所以在沒按下按鍵時(shí)按鍵輸入為高電平,按鍵另一端接地,當(dāng)按下按鍵時(shí)輸入則為低電平。所以循環(huán)掃描按鍵是否有變成低電平,當(dāng)找輸入到低電平,就使蛇向相應(yīng)的方向改變。資料包括:
需要完整的資料可以加入我的紛傳圈子,里面有資源壓縮包的百度網(wǎng)盤下載地址及提取碼。
關(guān)鍵詞:
您可能也感興趣:
為您推薦
空調(diào)管漏水怎么辦(空調(diào)管漏水)
元旦給老公講的話 元旦給老公講的話簡短
【筑牢安全生產(chǎn)防線】關(guān)嶺組織參加全市安全生產(chǎn)電視電話會(huì)議
更多
- 簡而不減,戴爾OptiPlex再造臺(tái)式機(jī)體驗(yàn)
- 大聯(lián)大世平集團(tuán)推出基于NXP產(chǎn)品的3D打印機(jī)方案
- 杰華特x英特爾,攜手推動(dòng)計(jì)算領(lǐng)域的持續(xù)創(chuàng)新
- 民警化身臨時(shí)“奶爸” 幫助走失萌娃找媽媽
- 電腦修復(fù)文件丟失 dii文件修復(fù)
- 悅數(shù)圖數(shù)據(jù)庫與keyarchOS完成浪潮信息澎湃技術(shù)認(rèn)證
- 繁榮濱江文化,邁向亞運(yùn)盛會(huì)——杜高杰、杜晨鷹詩書畫作品展開幕
- 創(chuàng)新服務(wù)器系統(tǒng)設(shè)計(jì) 浪潮信息發(fā)布融合架構(gòu)3.0
排行
最近更新
- 電路方案:基于單片機(jī)的貪吃蛇設(shè)計(jì)
- 我國西北首個(gè)光儲(chǔ)氫熱綜合應(yīng)用示范項(xiàng)目建成:探氫能多元應(yīng)用
- 最高34℃!部分地區(qū)有雷陣雨,河北最新出行提示請(qǐng)查收→
- 景區(qū)和場館“一票難求”,如何破解?
- 中國商務(wù)部:將積極拓寬農(nóng)產(chǎn)品上行渠道
- 2023年08月15日06時(shí)40分土耳其里拉/人民幣匯率最新報(bào)價(jià)
- “穩(wěn)穩(wěn)的幸?!币灿邢薅?,多只債基開啟限購模式
- 小克重黃金產(chǎn)品走俏,年輕人為何熱衷攢“金豆豆”?
- 中期改款8.5代大眾高爾夫諜照曝光,或?qū)⒃黾踊旌蟿?dòng)力
- 劉震:發(fā)展藝術(shù)科技 提升香港國際藝壇地位
- 能吃苦或者不能吃苦,都得吃苦,區(qū)別是淡定吃和哭著吃。 ???
- 《蓮花樓》:從云端跌入塵泥,生而不凡是李相夷的遺憾
- “極越”品牌正式發(fā)布,吉利牽手百度拿下造車“準(zhǔn)生證”
- 上半年廣州駕培行業(yè)新招學(xué)員同比下降超三成,供大于求存在產(chǎn)...
- 恭喜,3-1馬競迎來開門紅,隊(duì)長閃退,莫拉塔建功,德佩挺身而出
- 法院對(duì)刑事案件中書證物證審查什么
- 務(wù)農(nóng)工作單位填什么(務(wù)農(nóng))
- “中東金主”投資恒大汽車,“救命”還是“騙局”
- 上市公司扎堆涌入復(fù)合集流體賽道
- 治療水泡型腳氣用什么藥(根治水泡型腳氣很簡單)
- 【等海報(bào),預(yù)計(jì)8月16日發(fā)】新時(shí)代最美奮斗者丨李格甫、李格修...
- 8月15日河南河北地區(qū)乙醇市場行情整理
- 每一次困境,都是新起點(diǎn) 一顆珍珠的變革圖強(qiáng)之路
- 博德之門3召喚次級(jí)元素生物法術(shù)有什么特點(diǎn)
- 凱里亞德酒店西昌高枧家園項(xiàng)目成功簽約,凱里亞德西南重點(diǎn)項(xiàng)...
- 熱評(píng)丨生態(tài)文明有“流量”更有力量
- 嘉定這里的“城中村”改造項(xiàng)目啟動(dòng)
- 微星公布白色版 RTX 4060 萬圖師顯卡
- 20人!九江一地公開招聘
今日要聞
- 好評(píng)中國:匯聚正能量“星火”,照亮奮進(jìn)征程
- 2023年08月15日06時(shí)40分土耳其里拉/人民幣匯率最新報(bào)價(jià)
- 鎮(zhèn)平:優(yōu)服務(wù) 促招商引資提檔升級(jí)
- 許光漢犧牲這么大,可算等到了!
- 凱里亞德酒店西昌高枧家園項(xiàng)目成功簽約,凱里亞德西南重點(diǎn)項(xiàng)目落地
- 董洪魁(關(guān)于董洪魁簡述)
- 哪怕沒有情懷分,也值得好評(píng)
- 簡而不減,戴爾OptiPlex再造臺(tái)式機(jī)體驗(yàn)
- 杭州亞運(yùn)籌辦踐行綠色低碳理念
- 大聯(lián)大世平集團(tuán)推出基于NXP產(chǎn)品的3D打印機(jī)方案