




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄1 緒論11.1 本設計的研究背景和研究目的11.2 國內外研究現狀11.3 本設計的任務和設計方法21.3.1 設計任務21.3.2 設計方法22 乒乓游戲機設計方案32.1 基于單片機的乒乓游戲機設計32.1.1 硬件設計32.1.2 軟件設計42.2 基于fpga的乒乓游戲機設計42.3 方案比較與選擇53硬件電路的設計63.1 硬件核心電路選擇63.1.1 單片機stc89c51簡介63.1.2 單片機端口分配63.2 電源電路的設計83.3 時鐘電路的設計93.4 復位電路的設計93.5 按鍵電路的設計103.6 模擬球臺電路的設計113.6.1譯碼器簡介113.6.2發(fā)光二極管
2、簡介133.6.3 模擬球拍電路的設計143.7 顯示電路的設計143.7.1 lcd1602簡介153.7.2 顯示電路的設計163.8 乒乓游戲機總電路的設計164 乒乓游戲機的軟件設計及編程184.1 主程序的設計及功能實現194.2 按鍵組的設計及功能實現194.2.1 球拍模擬子程序204.2.2 暫停/開始子程序204.3 發(fā)球程序的設計及功能實現204.4 線路程序的設計及功能實現214.4.1 線路選擇子程序214.4.2 led點陣子程序214.5 回球程序的設計及功能實現224.6 lcd顯示程序設計及功能實現234.7 設計源程序235 系統(tǒng)調試及分析245.1 仿真調試
3、及分析245.1.1 proteus軟件簡介245.1.2 keil uvision4軟件簡介255.1.3 仿真調試255.1.4 仿真調試的結果分析275.2 實物調試及分析275.2.1 制作實物的過程275.2.2 進行實物調試275.2.3 實物調試的結果分析306 結論與展望31謝辭(acknowledge)32參考文獻33附錄1:程序34附錄2:元件清單4949乒乓游戲機設計1 緒論1.1 本設計的研究背景和研究目的乒乓球,中華人民共和國國球,是一種世界流行的球類體育項目。它的英語官方名稱是“table tennis”,即“網上桌球”。乒乓球的名字起源于1990年。乒乓球的比賽賽
4、制是以11分為一局,采用五局三勝(團體)或七局四勝制(單項)。比賽分團體、單項(男單、女單、男雙、女雙、混雙)。在中國,到處可見打乒乓球的人,以學生居多。因為,隨著人們現代化節(jié)奏的加快,工作壓力的增大,傳統(tǒng)打乒乓球的方式受到運動設施、場地、環(huán)境的因素的影響,讓人們對乒乓球運動減少了很多興趣。隨著科學技術的發(fā)展,人類進入信息化社會,信息社會的發(fā)展離不開電子產品的進步?,F代電子產品發(fā)展的越來越快,于是人們將乒乓球與電子產品結合在一起,形成了乒乓游戲機。通過使用按鍵模擬球拍,發(fā)光二極管模擬乒乓球,進行乒乓球游戲的操作。乒乓游戲機的出現解決了人類的很大難題。因為該產品不受運動設施、空間、場地、環(huán)境等因
5、素的影響,在家即可進行操作。操作的同時,讓操作者仿佛在真正的打乒乓球。而且該設計屬于一種益智類設計,讓人既可以鍛煉身體,也可以鍛煉智力。1.2 國內外研究現狀第二次世界大戰(zhàn)以后,電子計算機技術得到了突飛猛進的發(fā)展。電子計算機一代一代的更新的同時,軟件設計也迅速發(fā)展。于是,1971年,世界上第一臺電子游戲機出現了。隨著電子技術的迅猛發(fā)展,電子游戲機進入了次世代,主要有三大游戲機廠商。分別為:sony、微軟和任天堂。如今,大部分益智類游戲機屬于電子游戲機,乒乓游戲機就屬于電子游戲機。隨著電子技術的突破,電子游戲機開始朝著“便攜式”和“家庭化”方向發(fā)展,彩色電視的普及使大型游戲機的顯像管和掃描版部分
6、完全可以被彩色電視取代,使得微處理機部分與現實屏幕實現了分離。現在制成的游戲機只相當于一個信號發(fā)生器。如今乒乓游戲機已出現3d類,體感類等等類型。乒乓游戲機不僅可以實現人們對乒乓球的熱愛,又可以讓人們在玩耍的同時進行身體鍛煉和智力提高,具有明朗的前景。1.3 本設計的任務和設計方法1.3.1 設計任務如今各種不同類型的游戲設備一直是消費領域的熱點,本設計要求用低廉的成本設計出符合要求的游戲設備,要求操作方便,系統(tǒng)穩(wěn)定度高。設計任務為:(1)使用乒乓游戲機的甲乙雙方各在不同的位置發(fā)球或擊球。(2)乒乓球的位置和移動方向由燈亮及依次點燃的方向決定,球移動的速度為0.11s移動一位。游戲者根據球的位
7、置發(fā)出相應的動作,提前擊球或出界均判失分。(3)比賽用11分為一局來進行,甲乙雙方都應設置各自的記分牌,任何一方先記滿11分,該方就算勝了此局。當記分牌清零后,又可開始新的一局比賽。 1.3.2 設計方法本設計是基于單片機的乒乓游戲機設計,分別進行了硬件和軟件兩部分的設計。硬件設計包括單片機電路、譯碼電路、發(fā)光二極管電路、按鍵電路、顯示電路等電路的設計。軟件設計是使用keil uvision4軟件編寫與硬件模塊相應的源程序。利用proteus軟件對電路進行仿真,最后通過制作實物實現設計。2 乒乓游戲機設計方案目前,有兩種方案來設計乒乓游戲機設計。方案一是基于單片機的乒乓游戲機設計。方案二是基于
8、fpga的乒乓游戲機設計。2.1 基于單片機的乒乓游戲機設計方案一是基于單片機的乒乓游戲機設計,結果用lcd1602顯示屏顯示。軟件方面,使用keil uvision4進行編程。硬件設計包含單片機電路、模擬球臺電路、按鍵電路、顯示電路等電路的設計。軟件設計包括:主程序、按鍵組程序(球拍模擬和暫停/開始子程序)、發(fā)球程序、線路程序(包括線路選擇和led點陣子程序)、回球程序、lcd顯示程序?;趩纹瑱C的乒乓游戲機系統(tǒng)框圖如圖2.1所示。單 片 機 模 塊電源電路模擬球臺電路時鐘電路 復位電路lcd顯示屏按鍵電路圖2.1 基于單片機的乒乓游戲機的系統(tǒng)框圖2.1.1 硬件設計電源電路設計:單片機正常
9、工作電壓為+5v,設計采用三端穩(wěn)壓集成電路輸出+5v電壓。時鐘電路設計:單片機可以看成是在時鐘驅動下的時序邏輯電路,即單片機必須在時鐘的驅動下才能工作。因此,單片機需要時鐘電路支持,否則不能執(zhí)行程序。復位電路設計:單片機的復位電路使系統(tǒng)的所有功能部件都處于一個確定的初始狀態(tài),防止單片機執(zhí)行錯誤操作、發(fā)出錯誤的指令等失誤。單片機的復位方式有:手動按鈕復位和上電復位。本設計采用手動按鈕復位方式進行復位。按鍵電路設計:包含兩個按鍵組,一個是模擬球拍按鍵電路,一個是暫停/開始和復位按鍵電路。模擬球拍按鍵分為左右兩邊,左右各四個。這四個按鍵其中三個是對led點陣線路的操作,一個是進行加速;暫停/開始和復
10、位按鍵是在運行任一程序時,對游戲機進行暫停或開始或復位。模擬球臺設計:包括譯碼電路設計和發(fā)光二極管設計。譯碼電路設計:本設計中采用16個發(fā)光二極管,而單片機的端口較少,因此采用3-8譯碼器節(jié)約端口。發(fā)光二極管設計:由單片機控制74ls138譯碼器,74ls138譯碼器譯碼控制led點陣得點亮順序和相應點亮時間。顯示電路設計:設計中采用lcd顯示屏顯示結果,左右兩邊分別用a、b表示。2.1.2 軟件設計主程序:對乒乓游戲機進行初始化,定時器設置,對led點陣輸入數據等,延時掃描按鍵。按鍵程序:在回球和發(fā)球時,按鍵按下給單片機傳入數據作出相應處理。包括暫停/開始子程序,對系統(tǒng)進行暫停和開始。發(fā)球程
11、序:綠色指示燈亮起時,b得到發(fā)球球權,否則a得到發(fā)球球權。線路程序:游戲發(fā)球有8個線路選擇,ab分別4個線路選擇,共有16個回球線路,存在數組b16中,包括led點陣子程序,由單片機線路和delay_1(t)控制74ls138譯碼器,74ls138譯碼器譯碼控制led點陣得點亮順序和相應點亮時間。回球程序:當球在a邊時,a可在相應delay_1(t)中感應a按鍵組的數據并作出相應處理;當球在b邊時,同理。顯示程序:顯示游戲比分,當a或b到達11分時進入相應win子程序。2.2 基于fpga的乒乓游戲機設計方案二是基于fpga的乒乓游戲機設計。因為學校具備專門的實驗箱,如果采用方案二只需編程便可
12、實現。通過對各部分編寫vhdl程序,然后進行編譯、仿真、邏輯綜合、邏輯適配,最后進行編程下載,并通過程序驗證結果。用16個發(fā)光二極管代表乒乓球,在游戲機的兩側各設置兩個開關,一個是發(fā)球開關,一個是擊球開關。甲方按動發(fā)球開關時,靠近甲方的第一盞燈亮,然后發(fā)光二極管由甲向乙依次點亮,代表乒乓球在移動。當球過網后,按設計者規(guī)定的球位乙方就可以擊球。若乙方提前擊球或沒有擊到球,則判乙方失分,甲方自動加分,重新發(fā)球比賽繼續(xù)進行到一方記分到11分,該局結束,記分牌清零,可以開始新的一局比賽。其系統(tǒng)框圖如2.2所示。圖2.2 基于fpga乒乓游戲機的系統(tǒng)框圖2.3 方案比較與選擇fpga的運行速度很快,適合
13、高速場合,而單片機的運行速度低的多;fpga的i/o口多,容易實現大規(guī)模系統(tǒng),方便連接外設,而單片機的i/o口較少,適合小規(guī)模系統(tǒng);fpga的內部程序是并行運行,具有處理復雜功能的能力,而單片機程序時串行執(zhí)行,程序需要執(zhí)行完一條才能執(zhí)行下一條,處理突發(fā)事件時只能調用中斷資源;fpga包含單片機和dsp軟核,即單片機和dsp能實現的功能,fpga一般都能實現。單片機設計屬于軟件范疇,它的硬件即單片機芯片是固定的,通過軟件編程語言描述在硬件芯片上的執(zhí)行的軟件指令。fpga設計屬于硬件范疇,它的硬件即fpga是可編程的,是一個通過硬件描述語言在fpga芯片上自定義集成電路的過程。由上可知,fpga具
14、有很多優(yōu)點,但是對本設計而言是大材小用,而且芯片造價較高,因此選用單片機完成本設計。在國內,有很多成熟且性價比高的單片機,以51單片機為主。本設計對芯片的要求不高,因此選用性價比高的單片機stc89c51。stc89c51是isp的系統(tǒng)可編程芯片,可以直接將程序燒錄到芯片中,方便程序的修改和實物調試。其工作電壓要求低,工作頻率可達48mhz。并且可通過串口直接下載程序,數秒即可完成下載。采用單片機完成設計,可利用proteus繪制電路原理圖,用keil uvision4進行編程,然后進行仿真調試,減少出錯。并且采用c語言編程,移植性強,使端口的程序控制變得簡單。綜上所述,采用方案一完成乒乓游戲
15、機的設計。3硬件電路的設計3.1 硬件核心電路選擇乒乓游戲機設計選用單片機作為主控芯片,設計選用性價比高的stc89c51單片機。stc89c51與其它51單片機比較,具有成本低,性能好的優(yōu)點,并且其具有在線編程功能,可以直接將程序燒錄到芯片中,不需要對硬件進行修改。就乒乓游戲機而言,stc89c51能通過程序的編寫實現所需的功能。3.1.1 單片機stc89c51簡介單片機stc89c51是宏晶科技推出的超強抗干擾/低功耗的單片機,指令代碼與引腳結構完全兼容傳統(tǒng)的8051單片機。其最高工作時鐘頻率為80mhz,片內含8k bytes的可反復擦寫1000次的flash rom,芯片內集成了通用
16、8位中央處理器和isp flash存儲單元,具有在系統(tǒng)可編程特性,配合pc端的控制程序即可將用戶的程序代碼下載到單片機內部,并且速度更快。stc89c51的芯片擦除特性:整個perom陣列與三個鎖定位的電擦除可通過正確的控制信號組合,并保持ale管腳低電平10ms來完成。在芯片擦除中,代碼陣列全被寫“1”,且在任何非空存儲字節(jié)被重復編程以前,必須執(zhí)行該操作。stc89c51芯片及其引腳如圖3.1所示。圖3.1 stc89c51芯片及其芯片引腳圖3.1.2 單片機端口分配乒乓游戲機需要八個端口接按鍵;16個發(fā)光二極管則通過兩個3-8譯碼器與單片機連接,需要六個端口;lcd顯示屏需要7個端口;單片
17、機時鐘電路接兩個端口;復位電路接復位端口;暫停/開始按鍵需要兩個端口;發(fā)球指示燈和暫停指示燈需要兩個端口。下面對所需端口進行介紹及分配:p0口(3932腳):p0.0p0.7統(tǒng)稱為p0口。p0口是一個三態(tài)雙向口,每個引腳可吸收八個ttl門電流。當p0口的管腳第一次寫“1”時,被定義為高阻輸入。p0可用于外部程序數據存儲器,它可以被定義為數據/地址的低八位。在flash編程時,p0口用作原碼輸入口。當flash進行校驗時,p0輸出原碼,必須接上拉電阻。p1口(18腳):p1.0p1.7統(tǒng)稱為p1口.p1口為準雙向口,p1口緩沖器能接收四個ttl門電流。p1口的管腳寫“1”后,內部上拉為高,可用作
18、輸入。p1口被外部下拉為低電平時,因為內部上拉,將輸出電流。在flash編程和校驗時,p1口接收低八位地址。p2口(2128腳):p2.0p2.7統(tǒng)稱為p2口。p2口為準雙向口,緩沖器可接收/輸出4個ttl門電流。當p2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。作為輸入時,p2口的管腳被外部拉低,因為內部上拉將輸出電流。當p2口用于外部程序存儲器或十六位地址外部數據存儲器進行存取時,p2口輸出高八位地址。在給出地址“1”時,利用上拉優(yōu)勢,當對外部八位地址數據存儲器進行讀寫時,p2口輸出單片機特殊功能寄存器的內容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。p3口(1
19、017腳):p3.0p3.7統(tǒng)稱為p3口。p2口為準,雙向口可接收/輸出四個ttl門電流。當p3口寫入“1”時,被內部上拉為高電平,并用作輸入。當外部下拉為低電平,因為上拉的緣故,p3口將輸出電流。p3口作為第二功能使用時各端口引腳的作用,如表3.1所示。表3.1 p3口的第二功能端口引腳第二功能p3.0rxd (串行輸入口)p3.1txd(串行輸出口)p3.2/int0 (外中斷0)p3.3/int1 (外中斷1)p3.4t0 (定時/計數器0)p3.5t1(定時/計數器1)p3.6 /wr (外部數據存儲器寫選通)p3.7/rd (外部數據存儲器讀選通) rst:復位輸入。振蕩器復位器件時
20、,保持rst引腳兩個機器周期高電平時間。xtal1:反向放大器的輸入、內部時鐘工作電路的輸入。xtal2:反向振蕩器的輸出。本設計中,stc89c51單片機的管腳如下分配:p0.0p0.7口用作按鍵輸入口,接上拉電阻;p1.0p1.1口作為暫停、開始按鍵輸入口;p1.2p1.5作為lcd顯示屏輸入口;p1.6作為發(fā)球權指示燈,p1.7作為暫停指示燈控制口;p2.0p2.7作為譯碼器信號輸入口控制發(fā)光二極管;p3.2p3.4作為lcd顯示屏的控制端;rst引腳為復位電路輸入口;xtal1、xtal2分別作為片內振蕩器的輸入和輸出。3.2 電源電路的設計單片機stc89c51的工作電壓為+5v,因
21、此需要一個電源電路來提供這一電壓。設計通過固定三端穩(wěn)壓集器,輸出使單片機工作的+5v電壓。固定三端穩(wěn)壓器主要有78xx系列的正電壓輸出穩(wěn)壓器和79xx系列的負電壓穩(wěn)壓器。兩個系列的固定三端穩(wěn)壓器,輸出電壓有5v、6v、9v、12v、15v、18v、24v等規(guī)格,最大輸出電流為1.5a。這種三端穩(wěn)壓器內部包含了過流、過熱和調整管的保護電路,使用時組成穩(wěn)壓電源所需的外圍元件少,使用起來可靠、方便、快捷。7805的參數為:在25,輸入電壓為7.520v時,輸出電壓為4.8v5.2v。因此本設計采用三端穩(wěn)壓器7805輸出5v電壓。固定三端穩(wěn)壓器7805的1腳為輸入端,2腳為接地端,三腳為輸出端。芯片7
22、805及其引腳圖如圖3.2所示。1 2 3圖3.2 芯片7805及其引腳圖3.3 時鐘電路的設計單片機,可以認為是在時鐘驅動下的時序邏輯電路,即單片機必須在時鐘的驅動下才能夠工作。單片機內部含有一個可以構成振蕩器的放大電路。在單片機內部含時鐘振蕩電路,外部一個振蕩源產生是送到單片機內部,決定單片機的工作速度。此設計選用內部振蕩方式,即把放大器與振蕩器連接,構成的內部自激振蕩器并產生振蕩時鐘脈沖。選用的元器件為一個12mhz的石英晶體振蕩器,兩個30pf的電容。此電路在加點延遲10ms后振蕩起振,在xtal2引腳產生正弦時鐘信號。電路中的電容作用有兩個:一是對振蕩器的頻率進行微調,二是幫助振蕩器
23、起振。因為石英晶體振蕩器的振蕩頻率為12mhz,即單片機的振蕩周期為1us,狀態(tài)周期為2us,機器周期為12us。時鐘電路設計如圖3.3所示。圖3.3 時鐘電路圖3.4 復位電路的設計單片機stc89c51第九引腳為硬件復位端。對該引腳程序4個機器周期的高電平即可實現復位,復位后單片機都恢復到初始化狀態(tài)。復位電路由按鍵及電容,電阻構成。當按下按鍵時,電源經電阻r1、r2分壓,在復位管腳產生一個復位高電平,此時單片機處于復位狀態(tài)。當上電后,電容緩慢充電,單片機的復位管腳電壓由高向低轉化,經過一定時間,復位管腳處于穩(wěn)定的低電平狀態(tài),此時單片機復位完畢,系統(tǒng)從0000h執(zhí)行程序。該電路使用了按鍵一個
24、,10uf的電容一個,10k和1k的電阻各一個。復位電路設計圖如圖3.4所示。圖3.4復位電路設計圖3.5 按鍵電路的設計按鍵是一種常見的控制電器元件,常用來接通或斷開控制電路,從而達到控制電路的一種開關。按鍵共有4個引腳,當未按下按鍵時,2引腳和3引腳是導通的,1引腳和4引腳是導通的。當按下按鍵時,1引腳和2引腳連通,3引腳和4引腳連通,1引腳2引腳和3引腳連通,1引腳和4引腳連通。按鍵及其引腳圖如圖3.5所示。4引腳2引腳3引腳圖3.5按鍵及其引腳圖乒乓游戲機的按鍵電路包含兩個按鍵組,一個是模擬球拍按鍵電路,一個是暫停/開始和復位按鍵電路。模擬球拍按鍵分為左右兩邊,左右各四個。這四個按鍵其
25、中三個是對led點陣線路的操作,一個是進行加速;暫停/開始和復位按鍵是在運行任一程序時,對游戲機進行暫?;蜷_始或復位。設計中模擬球拍按鍵與p0口相連,同時p0口接5k的上拉電阻。當發(fā)光二極管亮時,按下按鍵進行控制。當按鍵按下的時候,相應端口感應輸入為低電平0。模擬球拍按鍵電路設計圖如3.6所示。圖3.6 按鍵電路設計圖暫停和開始按鍵分別與單片機的p1.0和p1.1相連。復位按鍵與單片機復位端口相連。暫停和開始按鍵電路設計圖如圖3.7所示。圖3.7 暫停和開始按鍵電路設計圖3.6 模擬球臺電路的設計模擬球臺電路設計包括譯碼電路設計和發(fā)光二極管設計。乒乓游戲機采用16個發(fā)光二極管,單片機的端口有限
26、,因此采用單片機的p2口的5個端口控制74ls138譯碼器進行譯碼,節(jié)約端口。譯碼器74ls138的輸入電壓范圍為+3.5+5v。3.6.1 譯碼器簡介本設計采用74ls138譯碼器進行譯碼。74ls138為3-8線譯碼器,其中l(wèi)s指采用低功耗肖特基電路。該譯碼器有3位二進制輸入a0、a1、a2,共有8種狀態(tài)的組合,即可譯出8個輸出信號y0y7,輸出低電平有效。此外,還設置了e1、e2和e3三個使能輸入端,為電路功能的擴展提供方便。譯碼器74ls138的管腳及其功能如表3.2所示。表3.2 譯碼器74ls138管腳功能管腳功能vcc電源正gnd地e1選通端e2 /e3選通端(低電平有效)a0a
27、3地址輸入端y0y7:輸出端(低電平有效)74ls138譯碼器的工作原理為:當一個選通端(e1)為高電平,另兩個選通端(e2)和 (e3)為低電平時,可將地址端(a0、a1、a2)的二進制編碼在對應的輸出端以低電平譯出。74ls138的引腳圖如圖3.8示。圖3.8 74ls138的引腳圖74ls138的功能真值表如表3.3所示。表3.3 74ls138功能真值表輸入輸出e3e2e1a2a1a0y0y1y2y3y4y5y6y7xhxxxxhhhhhhhhxxhxxxhhhhhhhhlxxxxxhhhhhhhhhllllllhhhhhhhhllllhhlhhhhhhhlllhlhhlhhhhhhl
28、llhhhhhlhhhhhllhllhhhhlhhhhllhlhhhhhhlhhhllhhlhhhhhhlhhllhhhhhhhhhhl3.6.2發(fā)光二極管簡介發(fā)光二極管簡稱為led,是一種能發(fā)光的半導體電子元件。這種電子元件在1962年出現,由鎵(ga)與砷(as)、磷(p)的化合物組成的二極管,電子與空穴復合時能輻射出可見光。其中,磷砷化鎵二極管發(fā)紅光,磷化鎵二極管發(fā)綠光,碳化硅二極管發(fā)黃光。發(fā)光二極管具有單向導通性,即發(fā)光二極管只能往一個方向通電,這種特性叫做正向偏置(正向偏壓)。發(fā)光二極管的基本結構是一塊電致發(fā)光的半導體材料,置于一個有引線的架子上,然后用環(huán)氧樹脂密封,起到保護內部芯片
29、線的作用。發(fā)光二極管的核心部分是由p型半導體和n型半導體組成的晶片,在p型半導體和n型半導體之間有一個過渡層,稱為pn結。在某些半導體材料的pn結中,注入少數載流子與多數數載流子復合時把多余的能量以光的形式釋放出來,從而把電能轉換成光能。發(fā)光二極管的兩根引線較長的一根是正極,需接電源正極。發(fā)光二極管及其構造如圖3.9所示。圖3.9發(fā)光二極管及其構造3.6.3 模擬球拍電路的設計單片機p2.0p2.3控制兩個譯碼器的a,b,c端,p2.4和p2.7分別控制兩個譯碼器的e1端,且e2、e3兩個端口接地。單片機p2口輸出信號,從而達到控制發(fā)光二極管的熄滅與點亮。其電路圖如圖3.10所示。圖3.10模
30、擬球臺電路設計圖3.7 顯示電路的設計乒乓游戲機的數據較為簡單,只需要顯示比分和最終勝利的狀態(tài),因此選用只顯示字符和數字的lcd1602顯示屏。3.7.1 lcd1602簡介乒乓游戲機顯示電路設計采用lcd1602顯示屏。lcd1602為工業(yè)字符型液晶,能夠同時顯示32個字符。它是專門用來顯示字母、數字、符號等的點陣型液晶模塊。由若干個5*7或5*11等點陣字符位組成。每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。lcd采用標準的16腳接口,其管腳功能如表3.4所示。表3.4 lcd1602的管腳功能表管腳功能vss電源地vcc接5
31、v電源電極v0(vee)液晶顯示器對比度調整端,接正電源對比度最弱,接地電源最高rs寄存器選擇。高電平時選擇數據寄存器,低電平時選擇指令寄存器rw讀寫信號線。高電平時讀取信息,低電平時進行寫操作e(en)使能端。高電平時讀取信息,負跳變時執(zhí)行指令d0d78位雙向數據端bla背光正極blk背光負極lcd1602的特性:3.3v或5v工作電壓,對比度可調;內含復位電路,提供各種控制命令;有80字節(jié)顯示數據存儲器ddram;內建有192個5*7點陣的字型的字符發(fā)生器cgrom;8個可由用戶自定義的5*7的字符發(fā)生器cgram;lcd1602及其引腳圖如圖3.11所示。圖3.11 lcd1602及其引
32、腳圖3.7.2 顯示電路的設計此設計中的顯示模塊采用lcd來顯示乒乓游戲機的ab隊比分。lcd1602的d4、d5、d6、d7分別與單片機中的p1.5、p1.4、p1.3、p1.2相連,用于數據和地址的傳輸。lcd1602的rs、rw、e分別與單片機中的p3.4、p3.3、p3.2相連,用于寫入控制。其電路設計圖如圖3.12所示。圖3.12顯示電路設計圖3.8 乒乓游戲機總電路的設計本設計采用proteus繪制電路設計仿真圖,乒乓游戲機的硬件設計包括單片機電路、譯碼電路、發(fā)光二極管電路、按鍵電路、顯示電路等電路的設計。其仿真圖如圖3.13所示。圖3.13總電路設計圖乒乓游戲機的硬件包括單片機電
33、路、譯碼電路、發(fā)光二極管電路、按鍵電路、顯示電路等電路。其中單片機電路包括:晶振電路,復位電路;由譯碼器接p2的5個i/o口控制16個模擬乒乓球臺桌led燈;由單片機的p0口接上拉電阻,感應按鍵電路的輸入;有p1.2到p1.5給lcd進行數據的輸入,p3.2-p3.3給lcd進行寫入控制。4 乒乓游戲機的軟件設計及編程本系統(tǒng)的軟件主要采用模塊化結構設計,具體的程序有主程序、按鍵組程序(球拍模擬和暫停/開始子程序)、發(fā)球程序、線路程序(包括線路選擇和led點陣子程序)、回球程序、lcd顯示程序。系統(tǒng)流程圖如圖4.1所示。開 始初始化主程序否發(fā)球指示燈是否點亮是a發(fā)球b發(fā)球線路程序回球程序是ab回
34、球是否成功否否b失敗a加1分a失敗b加1分顯示程序否得分11是結 束圖4.1 系統(tǒng)流程圖通過程序實現的功能為:在主程序進入初始化,lcd屏的清零,及初始化顯示設置;然后進入發(fā)球程序,綠色指示燈亮起時,b得到球權,否則a得到球權;當發(fā)球成功后,進入線路模塊,在不同的情況進入相應的線路,依據線路的選擇依次點亮線路所包含的led燈;而后進入回球程序,回球成功繼續(xù)進入線路程序,回球失敗,對手分數加1,并進入lcd顯示程序;當ab隊 任一隊11分后進入相應win子程序。暫停/開始程序在定時掃描,當暫停鍵按下時,游戲暫停,在游戲暫停時當開始按下游戲繼續(xù)。 4.1 主程序的設計及功能實現主程序的功能是進行初
35、始化工作,并控制“乒乓球”游戲的開始。led燈組接單片機的p2口上,按鍵組接單片機p0口上,lcd顯示屏由單片機控制。游戲開始時,程序控制顯示上行a:0;下行b:0。void main()write_com(0x01);/顯示器清屏p2=0;/led點陣全部熄滅 fuwei();/數據初始化ea=1;ex0=1;ex1=1;et0=1;it0=1;it1=1;tmod=0x01;th0=(65536-50000)/256;tl0=(65536-50000)%256;tr0=1;/定式掃描初始化設置qiuquan();/跳轉到發(fā)球程序while(1)/循環(huán)掃描并點亮相應led int t=100
36、0+w*1000;p2=qn;delay_1(t);/延時處理程序xianlu();/線路控制程序4.2 按鍵組的設計及功能實現此程序貫穿了整個系統(tǒng)框圖中,包括球拍模擬子程序和暫停/開始子程序。4.2.1 球拍模擬子程序單片機p0口在相應時間段內感應來自由按鍵組傳來的數據,如果在delay_1(t)中作出正確的選擇,進入回球程序,否則對方加1分。 按下按鍵否是是否成功對方分數加1回球程序 圖4.2 按鍵組流程圖4.2.2 暫停/開始子程序當暫停鍵被按下后,程序進入中斷,暫停燈亮起,當按下開始按鍵時,程序繼續(xù)。其流程圖如圖4.3所示。定時程序是否暫停否繼續(xù)游戲是回到游戲是是否解除暫停繼續(xù)暫停否圖
37、4.3 暫停/開始程序流程圖4.3 發(fā)球程序的設計及功能實現綠色指示燈亮起時,b得到發(fā)球球權,否則a得到發(fā)球球權。void qiuquan(void)w=1;/球速控制變量v=0;/發(fā)球控制變量 if(f=3)/球權控制變量0-3循環(huán)。 f=0; else f+; if(f256)/m取自b中得數據 n=m/256;m=m%256; else if(m16) n=m/16;m=m%16; else if(m=0) n=m;m=-1; else if(m0)/當m取完數據時,按鍵都沒做出正確輸入時,表明a或b回球失敗。 p2=0; if(n=8) chang1(); qiuquan(); 4.4
38、.2 led點陣子程序由單片機線路和delay_1(t)控制74ls138譯碼器,74ls138譯碼器譯碼控制led點陣得點亮順序和相應點亮時間。q16寄存數組,列如p2=q0時點亮a邊的第一個燈,單片機將數據傳輸給74ls138進行譯碼點亮相應的led實現乒乓球的移動。 4.5 回球程序的設計及功能實現當球在a邊時,a可在相應delay_1(t)中感應a按鍵組的數據并作出相應處理;當球在b邊時,同理。這里需要對16個燈(d2-d17)進行處理。下面對其中一個燈進行解釋。w=p0_3;/a的p0_3控制游戲的速度/d2 if(n=0)/n=0時d2燈點亮 if(x=13&!p0_0)/當線路為
39、13時且p0_0按下時按以下處理。 if(!w) x=3; else x=0; while(!p0_0) ; m=bx; if(x=8)/當線路為8時只能按以下處理 if(!p0_0) x=3; while(!p0_0); m=bx; else if(!p0_1) x=0; while(!p0_1); m=bx; 4.6 lcd顯示程序設計及功能實現lcd1602與單片機p1口相連,程序控制顯示上行a:0;下行b:0。當a或b到達11分時進入相應win子程序。 write_com(0x80+2);/第一行隔兩位寫入以下字符a: 0; write_data(a); write_data(:);
40、write_data( ); write_data(0); write_com(0xc0+2);/第一行隔兩位寫入以下字符b: 0; write_data(b); write_data(:); write_data( ); write_data(0);4.7 設計源程序設計源程序見附錄1。5 系統(tǒng)調試及分析5.1 仿真調試及分析乒乓游戲機設計利用proteus軟件設計原理圖,keil uvision4軟件進行編程。5.1.1 proteus軟件簡介proteus軟件是英國labcenter electronics公司出版的eda工具軟件。它不僅具有eda工具軟件的仿真功能,還能仿真單片機及外圍
41、器件。從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換至pcb設計,實現了從概念到產品的完整設計。其處理器支持的模型有:8051、hc11、pic10/12/16/18/24/30/d是、pic33、avr、arm、8086和msp430等。在編譯方面,它也支持iar、keil和mplab等多種編譯器。電路原理圖是生產電子產品的基礎,電路設計的最終目的是從電路原理圖到設計出印制電路板圖,經過焊接、組裝、調試得到合格的電子產品。利用proteus繪制原理圖的基本流程如圖5.1所示。設置圖紙規(guī)格及編輯器系統(tǒng)參數放置元器件設置元器件屬性原理圖連線生成電路設計報表及網絡文件文件保存及輸出圖5
42、.1 繪制原理圖的基本流程5.1.2 keil uvision4軟件簡介keil uvision4是德國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng)。keilc51標準c編譯器為8051微控制器的軟件提供了c語言環(huán)境,同時保留了匯編代碼高效、快速的特點。它比以前的keil uvision系列的優(yōu)點是引入靈活的窗口管理系統(tǒng)。目前使用keil uvision4的產品有keil mdk-arm,keil c51,keil c166和keil c251。5.1.3 仿真調試仿真調試的步驟:(1) 在keil中建立工程,輸入程序,進行編譯,修改直至無錯,最后編譯并保存。將保存
43、的程序進行編譯和生成.hex文件,如圖5.2所示。圖 5.2 生成.hex文件(2) 在proteus中設計硬件原理圖。(3) 在proteus中導入.hex文件,如圖5.3所示。導入的方法:將鼠標置于電路圖中stc89c51器件上,先右擊再左擊,即彈出導入框,再導入框中導入乒乓球.hex文件。圖5.3 導入 乒乓球.hex文件(4) 點擊仿真盤框中的運行按鈕,電路進入仿真狀態(tài),開始調試。如圖5.4所示。圖5.4仿真調試圖在調試過程中,觀看lcd顯示屏的變化,由此得出設計是否正確。如果不正確,按以上步驟進行修改,直到達到設計要求。5.1.4 仿真調試的結果分析對電路進行仿真調試后,發(fā)現了一些問
44、題。(1)led未按正常預期工作,發(fā)球與回球的程序存在共同部分,加入發(fā)球控制參數后,正常工作。(2)發(fā)球程序出現問題,有時候發(fā)球指示燈亮時,b卻不能成功發(fā)球,經過修改程序,解決這個問題。5.2 實物調試及分析5.2.1 制作實物的過程根據原理圖焊接電路。在每焊接完成一個模塊時,檢查電路焊接是否正確、是否連錯端口、是否有虛焊,確認無誤后,完成焊接。如圖5.5所示。焊接遇到的問題:(1) led燈接反,導致led點陣不工作,改正全部的點陣燈后,正常工作。(2) 74ls138沒有接電源,開始一直不工作,改正后正常工作。5.2.2 進行實物調試用燒錄器將keil軟件中生成的.hex文件燒錄到單片機s
45、tc89c51芯片中。燒錄的步驟為:選項/串口設置、芯片型號選擇stc89c51rc、打開程序文件、選擇.hex文件、download/下載、擦除、查空、編程、校驗。燒錄程序圖如圖5.6所示。5.6 燒錄程序圖最后將芯片安裝到硬件電路中,接入5v穩(wěn)壓電源,乒乓游戲機開始運行。調試初始狀態(tài)如圖5.7所示。圖5.7 調試初始狀態(tài)ab雙方任一方為11分時,結束游戲,11分的一方獲得勝利。游戲勝利狀態(tài)圖如圖5.8所示。圖5.8 游戲狀態(tài)勝利圖按下暫停鍵,游戲機暫停,同時暫停指示燈亮。暫停調試狀態(tài)圖如圖5.9所示。圖5.9 暫停調試狀態(tài)圖5.2.3 實物調試的結果分析完成實物制作后,對總電路進行調試。在
46、調試中遇到的問題:(1)在按鍵操作過程中,發(fā)光二極管快速變化,與設定值不一樣。經分析,原因為程序中的防抖動功能不完善。在實際的電路中,機械式按鍵按下或釋放時,因為機械彈性作用的影響,通常伴隨有一定時間的觸點機械抖動,然后其觸點才穩(wěn)定下來??赡茉诎聪掳存I時,已經對按鍵進行了幾次操作,因此發(fā)光二極管快速的變化。通過對程序的修改,問題解決。(2)發(fā)光二極管未按預期效果被點亮,經過分析,發(fā)現實際中與仿真的接線不同,改正相應參數后,正常運行。6 結論與展望6.1 結論本設計根據乒乓游戲機的功能要求,本設計采用性價比高的單片機設計出操作方便,系統(tǒng)穩(wěn)定度高的乒乓游戲機設計。本設計采用單片機stc89c51作
47、為主控芯片,采用proteus軟件和keil uvision4軟件分別進行硬件仿真和軟件編程,最后制作實物,實現乒乓游戲機的雙人對打。本設計采用44的線路電路,乒乓球的位置和移動方向由燈亮及依次燈亮的方向決定使用,乒乓游戲機的a、b兩方在各自不同的位置發(fā)球或擊球,分別有左、中、右、加速四個按鍵作為模擬球拍。游戲者根據球的位置按下相應的按鍵得分,最后通過lcd顯示屏顯示數據。通過一系列的仿真調試和實物調試,已驗證本設計的開發(fā)方案是基本可行的。這種成本低,操作方便,穩(wěn)定度高的設計,能很好的適應乒乓游戲機的開發(fā)。此外,本次設計還有以下一些可以加以改進的地方:(1) 設計線路復雜,如果可以采取無線的方
48、式,則更加方便攜帶與玩耍。(2) 選用更加好的lcd顯示屏,使界面更加美觀(3) 娛樂效果過低,如果可以玩游戲的同時播放音樂,或動態(tài)顯示,則提高娛樂性。6.2 展望如今各種不同類型的游戲設備一直是消費領域的熱點,作為電子游戲產品,乒乓游戲機的競爭十分激烈。在功能上,乒乓游戲機不應只是一個益智,還可以提供娛樂性,提供鍛煉身體的功能,比如游戲時添加音樂,采用人體感應技術實現人機互動,采用3d效果更加真實。讓人感覺不枯燥,且具有豐富的娛樂性。這些都將使乒乓游戲機更加成熟,更受歡迎。謝辭(acknowledge)轉眼間,兩個月過去了。在實驗室的兩個月里,我完成了畢業(yè)設計。讓我完整的完成了一次電子產品的
49、生產,經過了設計、生產、安裝、調試等一系列的過程。回顧四年大學生活,有太多事情對以后的人生影響深遠。特別是2012年暑假,我在實驗室學到了很多,對我這次的畢業(yè)設計的完成提供了基礎。感謝我的指導老師孫曉玲老師。她在忙碌的教學工作中,孫老師每周二都會對我們的畢業(yè)設計審查,從設計的選題直至最后畢業(yè)論文的修改整個過程,孫老師都給出了自己的寶貴意見,孫老師的悉心指導和建議給了我極大的幫助,在此對孫老師表示衷心感謝。同時感謝所有教過我的老師,謝謝你們對我們孜孜不悔的教誨,你們傳授的知識為我在以后的道路奠定了良好的基礎。在此之外感謝學校,給我們一個良好的學習環(huán)境,提供我們畢業(yè)設計所需的器材,讓我們能夠更方便
50、的進行畢業(yè)設計。感謝實驗室的同學,在我的設計出現問題時,提出意見,在進行自己的畢業(yè)設計時愿意擠出時間幫助我。感謝同學們讓我擁有了美好的四年大學生活。參考文獻1 謝龍漢 莫衍.proteus電子電路設計及仿真.北京:電子工業(yè)出版社,20122 周靈彬 任開杰.基于proteus 的電路與pcb的設計.北京:電子工業(yè)出版社,20103 康華光.電子技術基礎模擬部分(第五版). 北京:高等教育出版社,2006.14 康華光.電子技術基礎數字部分(第五版).北京:高等教育出版社,2006.15 李建忠.單片機原理及應用(第二版).西安:西安電子科技大學出版社,2008.26 郝建國 鄭燕 薛延俠.單片
51、機在電子電路設計中的應用.北京:清華大學出版社,2006.57 顧三春 仝迪.電子技術實驗.北京:化學工業(yè)出版社,2009.88 趙廣林.常用電子元器件識別/檢測/選用一讀通.北京:電子工業(yè)出版社,2007.49 米旭.protel 2004電路設計與仿真.北京:機械工業(yè)出版社,2006.110 王國勝.c#基礎與案件開發(fā)祥解.清華大學出版社,200911 周長發(fā). c#面向對象編程.電子工業(yè)出版社,200712 謝自美.電子線路綜合設計.武漢:華中科技大學出版社,2006.613 彭偉.單片機c語言程序設計實訓100例:基于8051+proteus仿真.北京:電子工業(yè)出版社,200914 劉同法.單片機c語言編程基礎與實踐.北京:北京航空航
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 命令行界面跨語言支持-洞察闡釋
- 土壤微生物群落對茶園精準施肥效果的評價-洞察闡釋
- 企業(yè)內部網絡安全防護的智能化研究
- 學生行為觀察在教育評估中的作用
- 貨幣政策與匯率動態(tài)-洞察及研究
- 技術與教育攜手助力醫(yī)療創(chuàng)新發(fā)展
- 學校消防安全知識培訓
- 患者管路安全管理制度
- 智能網聯車發(fā)展趨勢-洞察闡釋
- 物流優(yōu)化與供應鏈管理的智慧化整合-洞察闡釋
- 檢驗科管理手冊
- 行車安全風險點告知牌
- 2019-2020鞍山八年第二學期語文期末考試帶答案
- 心臟粘液瘤超聲診斷
- 國家開放大學電大2022年春季期末考試《商務英語閱讀》試題試卷代號4050
- 2023年音樂考試真題
- NB/T 10751-2021礦用往復式氣動注漿泵
- 裝卸搬運課件
- GB/T 18391.2-2009信息技術元數據注冊系統(tǒng)(MDR)第2部分:分類
- GB/T 16924-2008鋼件的淬火與回火
- 基礎護理學:肌內注射
評論
0/150
提交評論