freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的游戲機設(shè)計與實現(xiàn)畢業(yè)設(shè)計-在線瀏覽

2025-08-14 20:26本頁面
  

【正文】 驗室正式發(fā)表了C語言。通常簡稱為《Kamp。R》標(biāo)準(zhǔn)。R》中并沒有定義一個完整的標(biāo)準(zhǔn)C語言,后來由美國國家標(biāo)準(zhǔn)學(xué)會在此基礎(chǔ)上制定了一個C 語言標(biāo)準(zhǔn),于一九八三年發(fā)表。 早期的C語言主要是用于UNIX系統(tǒng)。成為當(dāng)代最優(yōu)秀的程序設(shè)計語言之一。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護。它不僅具有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。由于C語言實現(xiàn)了對硬件的編程操作,因此C語言集高級語言和低級語言的功能于一體。此外,C語言還具有效率高,可移植性強等特點。C語言對操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進(jìn)行操作的場合,用C語言明顯優(yōu)于其它高級語言,許多大型應(yīng)用軟件都是用C語言編寫的。 C語言特點(1)簡潔緊湊、靈活方便: C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫自由,主要用小寫字母表示。(2)運算符豐富: C的運算符包含的范圍很廣泛,共有種34個運算符。從而使C的運算類型極其豐富表達(dá)式類型多樣化,靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運算。另外C語言具有強大的圖形功能, 支持多種顯示器和驅(qū)動器。 (4) C是結(jié)構(gòu)式語言:結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。而C語言允許程序編寫者有較大的自由度。(7) C語言程序生成代碼質(zhì)量高,程序執(zhí)行效率高:一般只比匯編程序生成的目標(biāo)代碼效率低10へ20%。游戲規(guī)則介紹:最開始顯示開機畫面并由按鍵B進(jìn)入游戲,進(jìn)入游戲后將會選擇方塊下降速度,然后由按鍵A控制游戲開始隨機出現(xiàn)由四個小方塊組成的一個圖形,從屏幕上方落到下方,由按鍵左、右控制方塊的左移和右移,由按鍵下控制方塊快速下降,由按鍵A控制方塊的形狀,可以將方塊進(jìn)行旋轉(zhuǎn),用以放到合適的位置。當(dāng)某一列被擺滿時,游戲結(jié)束,顯示結(jié)束畫面。當(dāng)消夠三十行時,速度會加一。主要實現(xiàn)對俄羅斯方塊的控制,控制方塊的移動和旋轉(zhuǎn),顯著特點是用軟件簡便實現(xiàn)某些硬件功能。一切準(zhǔn)備就緒后,顯示開始畫面。然后按旋轉(zhuǎn)鍵,進(jìn)入游戲畫面,系統(tǒng)隨機生成方塊形狀。一旦查詢到按鍵按下,擇調(diào)用相應(yīng)的執(zhí)行函數(shù)。如果一次按下的按鍵超過一個,則按預(yù)定的優(yōu)先順序執(zhí)行,優(yōu)先順序為旋轉(zhuǎn)、下、左、右、暫停。當(dāng)某一列被填滿時,游戲結(jié)束,顯示結(jié)束畫面。void LCD_initialize(){ LCD_RST=0。 _nop_()。 LCD_W_code(0x3f,0)。 //設(shè)置顯示起始行為第一行 LCD_W_code(0xb8,0)。 //列地址設(shè)為0 LCD_W_code(0x3f,1)。 LCD_W_code(0xb8,1)。} 液晶屏初始化函數(shù)可以將液晶開顯示,然后準(zhǔn)備好液晶的頁地址、行地址和列地址,0x3f是開顯示代碼,0xb8是頁地址,0x40是行地址0xc0是列地址。頁地址、行地址和列地址,分別是首頁、首行和首列的地址,之后顯示的時候需要在屏幕的哪個地方顯示就加上它的頁地址和列地址就可以了。void LCD_W_code(unsigned char tpcode,bit cs){// LCD_check_busy()。 LCD_RW=0。 LCD_CS1=~cs。 LCD_E=1。 LCD_E=0。 LCD_RS=1。 LCD_CS2=cs。 LCD_DATA=tpdata。 _nop_()。}//寫數(shù)據(jù)(cs為0選左屏,cs為1選右屏)當(dāng)LCD_RS和LCD_RW都為地電平的時候,單片機向液晶顯示屏寫指令即地址,準(zhǔn)備向該地址寫入數(shù)據(jù),當(dāng)LCD_RS為高、LCE_RW為低的時候,單片機向液晶顯示屏寫數(shù)據(jù)即顯示內(nèi)容,然后再使能端E的下降沿傳入液晶顯示屏。//類型 unsigned char shape。//x坐標(biāo) unsigned char y。//定義方塊緩存}s_box。 =next_shape。 =0。//產(chǎn)生隨機數(shù),但是是偽隨機的 next_shape=TL0%4。}//方塊生成函數(shù)先用結(jié)構(gòu)體將方塊的類型、形狀和將出現(xiàn)時的位置用一個結(jié)構(gòu)體儲存起來,然后調(diào)用結(jié)構(gòu)體,產(chǎn)生方塊和下一方塊。void game_button(){ switch(basic_button()) { case 1: if(!=0)//1表示down被按下 { EA=0。 box_to_Box_Ram(,)。 box_build()。 box_to_Box_Ram(,)。//開中斷 }break。//關(guān)中斷,如果不關(guān)的話可能引起游戲顯示混亂 speaker=1。 box_to_Box_Ram(+1,)。//開中斷 speaker=0。 case 5: if(!=0)//5表示right被按下 { EA=0。 if(check_cover(+1,)) { ++。 } EA=1。 }break。所有的函數(shù)都是對數(shù)組的編輯,對數(shù)組里的數(shù)進(jìn)行運算,將一個方塊看作一個整體,讓它所占的數(shù)組進(jìn)行變換,即可在屏幕上的到相應(yīng)的變化。將液晶測試軟件燒入到單片機中,檢查液晶屏是否完好,電路是否錯誤。調(diào)試液晶顯示器的時候?qū)⒁壕э@示器的測試程序燒錄到單片機中后,發(fā)現(xiàn)不能顯示,經(jīng)過檢查后發(fā)現(xiàn)是由于液晶顯示屏的對比對調(diào)節(jié)出現(xiàn)了問題,經(jīng)過修改,可以成功顯示。5程序調(diào)試和仿真軟件 Keil2介紹及編程 Keil C51 181。Keil C51集成開發(fā)環(huán)境的主要功能有以下幾點:1.181。181。Vision2可以自動完成編譯、匯編、鏈接程序等操作。,用來編輯系統(tǒng)程序,選擇系統(tǒng)用的AT89S52單片機,然后在編輯區(qū)編輯系統(tǒng)程序。 Proteus介紹及應(yīng)用Proteus軟件是來自英國Labcenter electronics公司的EDA工具軟件,Proteus軟件有十多年的歷史,在全球廣泛使用,除了其具有和其它EDA工具一樣的原理布圖、PCB自動或人工布線及電路仿真的功能外,其革命性的功能是,他的電路仿真是互動的,針對微處理器的應(yīng)用,還可以直接在基于原理圖的虛擬原型上編程,并實現(xiàn)軟件源碼級的實時調(diào)試,如有顯示及輸出,還能看到運行后輸入輸出的效果,配合系統(tǒng)配置的虛擬儀器如示波器、邏輯分析儀等,您不需要別的,Proteus為您建立了完備的電子設(shè)計開發(fā)環(huán)境!尤其重要的是Proteus Lite可以完全免費,也可以花微不足道的費用注冊達(dá)到更好的效果。 Proteus組合了高級原理布圖、混合模式SPICE仿真,PCB設(shè)計以及自動布線來實現(xiàn)一個完整的電子設(shè)計系統(tǒng)。Proteus 產(chǎn)品系列也包含了我們革命性的VSM技術(shù),用戶可以對基于微控制器的設(shè)計連同所有的周圍電子器件一起仿真。 其功能模塊:—個易用而又功能強大的ISIS原理布圖工具;PROSPICE混合模型SPICE仿真。此外,還可以結(jié)合微控制器軟件使用動態(tài)的鍵盤,開關(guān),按鈕,LEDs甚至LCD顯示CPU模型. 1.支持許多通用的微控制器,如PIC,AVR,HC11以及8051. 最新支持ARM2.交互的裝置模型包括: LED和LCD顯示,RS232終端,通用鍵盤,I2C,SPI器件3.強大的調(diào)試工具,包括寄存器和存儲器,斷點和單步模式4.IAR CSPY 和Keil uVision2等開發(fā)工具的源層調(diào)試5.應(yīng)用特殊模型的DLL界面提供有關(guān)元件庫的全部文件 6.最新版支持非常豐富仿真元件共7000多種,還有很多第三方模型。該軟件的特點:① 全部滿足我們提出的單片機軟件仿真系統(tǒng)的標(biāo)準(zhǔn),并在同類產(chǎn)品中具有明顯的優(yōu)勢。③ 目前支持的單片機類型有:68000系列、8051系列、AVR 系列、PIC12 系列、PIC16 系列、PIC18 系列、Z80 系列、HC11系列以及各種外圍芯片??傊撥浖且豢?集單片機和SPICE 分析于一身的仿真軟件,功能極其強大,是其他任何一款軟件不能相比的。經(jīng)檢查仿真軟件中的電路圖無誤后,可以進(jìn)行仿真調(diào)試,電機仿真開始,可以在仿真界面里看到液晶顯示出的圖像,并可以對整個電路進(jìn)行控制,仿真出硬件電路的調(diào)試過程?!盎趩纹瑱C的游戲機設(shè)計與實現(xiàn)”是從我們的日常生活而來的一個課題,該課題本身不是那么復(fù)雜,而且當(dāng)今市場上賣的游戲機也是高級得多。通過這么一個普通的游戲機的設(shè)計,可以更深刻的了解單片機的構(gòu)造,和對C語言的運用。本課題的設(shè)計過程中,最為復(fù)雜的部分就是軟件編程的調(diào)試,在程序調(diào)試過程中遇到一些問題,例如最初的液晶屏無法正常顯示,但通過檢查電路,都得到了圓滿的解決?,F(xiàn)在我明白知識必須通過應(yīng)用才能實現(xiàn)其價值!有些東西以為學(xué)會了,但真正到用的時候才發(fā)現(xiàn)是兩回事,所以我認(rèn)為只有到真正會用的時候才是真的學(xué)會了。我通過查閱大量的有關(guān)資料,與同學(xué)交流經(jīng)驗和自學(xué),并向老師請教等方式,使自己學(xué)到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。20參考文獻(xiàn)參考文獻(xiàn)[1],2005. 1017[2] 康華光,. :高等教育出版社,[3] 康華光,. :高等教育出版社,2000. 83155[4]周堅.如何用C語言編寫計數(shù)器程序.無線電合訂本,2004年(下):213214[5]黃智偉,王彥, [6]張萬奎.《模擬電子技術(shù)》[M].湖南.湖南大學(xué)出版社,2005:226229.[7]彭為,黃科,[8]李廣弟,朱月秀,[9]梅麗風(fēng),王艷秋,[10] 涂時亮等.單片機軟件設(shè)計技術(shù). 科學(xué)技術(shù)文獻(xiàn)出版社重慶分社:1998[11] 席德勛.現(xiàn)代電子技術(shù)[D].北京.高等教育出版社,2002:121125.[12] 陸子明,[M].北京:國防工業(yè)出版社,2005 [13] :電子工業(yè)出版社,[14] 胡偉.:人民郵電出版社, [15] :上??茖W(xué)技術(shù)出版社,[16] (修訂本).北京:北京航空航天大學(xué)出版社,[17] ,1996 [18] 劉征宇,:福建科學(xué)技術(shù)出版社,[19] 李玉峰等 MCS51系列單片機原理與借口技術(shù). 北京:22附錄1附 錄1 總電路圖22附錄2附 錄2 系統(tǒng)程序include include includeinclude include include void main(){ LCD_initialize()。 while(1) { game_start_show()。 game_initialize()。 game_over_show()。//游戲點陣緩存10*16(用前10位表示)(1表示亮,0表示滅)unsigned char code speed_data[]={0x46,0x49,0x49,0x31,0x00,0x7F,0x09,0x09,0x06,0x00,0x7F,0x49,0x49,0x49,0x00,0x7F,0x49,0x49,0x49,0x00,0x7F,0x41,0x41,0x3E,}。//score字模unsigned char code num_data[]={0x7F,0x41,0x41,0x7F,//0字模0x00,0x00,0x00,0x7F,//1字模0x79,0x49,0x49,0x4F,//2字模0x49,0x49,0x49,0x7F,//3字模0x0F,0x08,0x08,0x7F,//4字模0x4F,0x49,0x49,0x79,//5字模0x7F,0x49,0x49,0x79,//6字模0x01,0x01,0x01,0x7F,//7字模0x7F,0x49,0x49,0x7F,//8字模0x4F,0x49,0x49,0x7F,//9字模}。//定義游戲點陣緩存10*16unsigned char box_down_reg。//定義定時器0累加寄存器unsigned char next_mode。//定義下一個方塊的形狀unsigned int destroy_row_num=0。//定義游戲速度等級unsigned char level_num。//游戲結(jié)束標(biāo)志位置0表示游戲未結(jié)束bit pause_game_flag。//類型 unsigned char shape。//x坐標(biāo) unsigned char y。//定義方塊緩存}s_box。//方塊生成函數(shù)unsigned int box_read_data(unsigned char tpmode,unsigned char tpshape)。//方塊載入函數(shù)void box_to_Box_Ram(unsigned char tpx,unsigned char tpy,unsigned int tpbox)。//游戲執(zhí)行函數(shù)(控制方塊下落,檢測是否到底,如果到底調(diào)用消行函數(shù))void time0_initialize()。//檢查覆蓋函數(shù)(檢查此時帶入的參數(shù)所確定的方塊是否會覆蓋原有圖形,不會覆蓋返回1,覆蓋返回0)void destroy_row()。//顯示下一個方塊函數(shù)void show_score_num(unsigned char x,unsigned char y)。//顯示速度函數(shù)void Tetris_main()。//選擇游戲速度函數(shù)void game_over_show()。//游戲初始化
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1