<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于單片機的“乒乓球”游戲機智能控制系統

基于單片機的“乒乓球”游戲機智能控制系統

作者: 時(shí)間:2012-01-17 來(lái)源:網(wǎng)絡(luò ) 收藏

0 前言

日常娛樂(lè )生活中,的娛樂(lè )產(chǎn)品非常流行。單片機具有功能強、可靠性高、使用方便、體積小及重量輕等優(yōu)點(diǎn)。國外已廣泛應用于自動(dòng)化控制的各個(gè)領(lǐng)域。近年來(lái),國內的單片機技術(shù)與產(chǎn)品開(kāi)發(fā)應用方面的發(fā)展也很快,各種電子產(chǎn)品已越來(lái)越多地采用單片機控制系統且性?xún)r(jià)比高。本文從實(shí)用的角度以AT89C2051單片機為核心設計了一種智能。實(shí)踐證明,該游戲機運行狀況穩定、可靠,滿(mǎn)足了要求。

1 系統的基本工作原理

本設計中,通過(guò)5只連續排列的發(fā)光二極管的依次點(diǎn)亮代表“乒乓球”的運動(dòng)。再用兩個(gè)按鍵模擬左右兩個(gè)球拍,鍵按下代表球拍擊球?!白笈摹卑聪驴墒拱l(fā)光二極管從左向右依次點(diǎn)亮,如同“乒乓球”從左向右飛來(lái);“右拍”按下則可使發(fā)光二極管從右向左依次點(diǎn)亮,代表“乒乓球”從右向左運動(dòng)。在游戲過(guò)程中,用數碼顯示管實(shí)時(shí)顯示雙方比分。游戲規則如下:

(1)“乒乓球”移動(dòng)速度是固定的,設定每秒鐘移動(dòng)一位(發(fā)光二極管)。

(2)在“乒乓球”移位一次的過(guò)程中,進(jìn)行25次的測試(即每40毫秒一次),查詢(xún)接球方是否有擊球動(dòng)作。

安徽省教育廳基金項目。編號:2003JK093

(3)接球方的擊球動(dòng)作應發(fā)生在“乒乓球”到達本方最后一位發(fā)光二極管(即點(diǎn)亮)一秒鐘時(shí)間之內。如接球方在此一秒鐘之內按鍵,則接球成功,接球方得分?!捌古仪颉鞭D為相反方向運動(dòng)。此后,原接球方變?yōu)榘l(fā)球方,原發(fā)球方變?yōu)榻忧蚍?。游戲繼續進(jìn)行。

(4)如接球方提前或滯后擊球,則接球方失誤。雙方都不得分。這時(shí)“乒乓球”熄滅,數碼顯示管顯示雙方的比分不變。然后仍由原發(fā)球方發(fā)球。

2 硬件組成

具體電路由單片機電路、發(fā)光二極管顯示電路、按鍵電路和數碼顯示電路等部分組成。

2.1 單片機電路

AT89C2051、X1、R1、C1等組成單片機電路,R1、C1組成單片機的復位電路,接通電源的瞬間,由于電源電壓通過(guò)R1對C1的充電過(guò)程,單片機AT89C2051復位端1腳獲得一個(gè)高電平復位脈沖,使得單片機進(jìn)入初始狀態(tài)。見(jiàn)圖1。

2.2 發(fā)光二極管顯示和按鍵電路

利用AT89C2051作發(fā)光二極管和按鍵的接口電路。P3.0~P3.4口接5只發(fā)光二極管,P3.7口接左按鍵,模擬左拍擊球動(dòng)作;P3.5口接右按鍵,模擬右拍擊球動(dòng)作。見(jiàn)圖1。

2.3 數碼顯示電路

利用顯示譯碼器MC14459組成6位共陰極LED靜態(tài)顯示電路。當P1.4=1時(shí),譯碼器74LS138開(kāi)通,由P1.5~P1.7口經(jīng)譯碼器74LS138控制各MC14459芯片依次選通各LED,同時(shí)由P1.0~P1.3口將欲顯示的十六進(jìn)制數直接輸出到各MC14459芯片中,再使控制端為高電平,鎖存P1.0~P1.3口輸出的數據,并進(jìn)行譯碼驅動(dòng)顯示。見(jiàn)圖1。

圖1 系統原理框圖

3 軟件設計

為了便于調試,本系統的軟件主要采用模塊化結構設計,具體的程序由主程序、“乒乓球”左移子程序、“乒乓球”右移子程序和比分顯示子程序等模塊組成。下面給出了主程序、“乒乓球”左移子程序、“乒乓球”右移子程序及顯示子程序的流程圖。

3.1 主程序

主程序的功能是進(jìn)行初始化工作,并控制“乒乓球”游戲的開(kāi)始。模擬左拍的按鍵接P3.7口,模擬右拍的按鍵接P3.5口。游戲開(kāi)始時(shí),顯示的比分是零比零,此后,如左拍按下則“乒乓球”右移;如右拍按下則“乒乓球”左移。在主程序中,需要用四個(gè)通用寄存器分別作為右方得分寄存器、左方得分寄存器、1秒計時(shí)常數寄存器及“乒乓球”移位計數器。其流程圖見(jiàn)圖2。

圖2 主程序流程圖

3.2 “乒乓球”左移子程序

左移子程序的主要功能是控制“乒乓球”的向左移動(dòng),并在逐位移動(dòng)過(guò)程中判斷是否有左拍擊球動(dòng)作。只有當“乒乓球”移動(dòng)到最左的一秒時(shí)間內擊球才是有效的,左拍得分,并轉乒乓球右移子程序,使“乒乓球”向右移動(dòng),即相當于左方發(fā)球。除此之外,所有的左拍擊球都算失誤,重新開(kāi)始“乒乓球”左移子程序,相當于由右方重新發(fā)球。其流程圖見(jiàn)圖3。

圖3 “乒乓球”左移子程序流程圖

3.3 “乒乓球”右移子程序

“乒乓球”的右移子程序的原理與左移子程序的原理相同,只要把左移子程序流程圖中的“右”與“左”互換即可。

3.4 顯示子程序

3.4.1 比分顯示格式

比分顯示用六位數碼顯示管進(jìn)行顯示。其顯示格式見(jiàn)圖4。

圖4 “乒乓球”游戲比分顯示格式

3.4.2 顯示原理

  “乒乓球”游戲的左右拍得分分別存在左方得分寄存器和右方得分寄存器中(在主程序中已設置好兩個(gè)寄存器)。首先設置初值,使二極管熄滅并使比分顯示為“00——00”,然后游戲開(kāi)始,如左拍或右拍正確擊球,相應方的比分加1分,否則比分保持原來(lái)比分不變。其流程圖見(jiàn)圖5。

圖5 顯示子程序流程圖

4 結束語(yǔ)

本文作者創(chuàng )新點(diǎn):整個(gè)設計以AT89C2051單片機為核心,充分利用了AT89C2051有限的外圍引腳資源,實(shí)現了對的左右操作及比分顯示的控制。整個(gè)系統通過(guò)按鍵可以很方便地操作。且運行穩定,抗干擾能力強。真正實(shí)現了娛樂(lè )產(chǎn)品的。

參考文獻

[1] 李廣第.單片機基礎[M].北京:北京航空航天大學(xué)出版社,1993.

[2] 盧存偉,錢(qián)捷.微機原理及應用系統設計[M].南京:河海大學(xué)出版社,1992.

[3] 劉淑榮,丁錄軍.基于單片機控制的溫度智能控制系統[J].微計算機信息,2003,19-7:29-30。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>