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

正文內(nèi)容

基于51單片機(jī)的貪吃蛇游戲(文件)

2024-12-01 22:14 上一頁面

下一頁面
 

【正文】 ................30 致 謝 ..........................................................................................................................................31 常州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 1 頁,共 31 頁 1 緒論 研究背景與意義 隨著社會(huì)的發(fā)展,人們生活的步調(diào)日益加快,越來越多的人加入了全球化的世界。這一款游戲緊緊地抓住了人們的心 理,雖然簡單,卻其樂無窮,在人們不斷追求更多的欲望下,該游戲給人們帶來了追逐的快感,以及成功后的滿足感,對于一直處于高壓下的現(xiàn)代人是很好的放松工具。 傳統(tǒng)的貪吃蛇游戲只有單純的吃豆子,得分,升級以后蛇運(yùn)動(dòng)的速度加快等功能。 單片機(jī)的發(fā)展?fàn)顩r 目前,單片機(jī)正朝著高性 能和多品種方向發(fā)展趨勢將是進(jìn)一步向著 CMOS 化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。這也是今后以 80C51 取代 8051 為標(biāo)準(zhǔn) MCU 芯片的原因。隨著技術(shù)和工藝水平的提高,又出現(xiàn)了 HMOS(高密度、高速度 MOS)和 CHMOS 工藝。 ○ 2 低功耗化 單片機(jī)的功耗已從 Ma 級,甚至 1uA 以下;使用電壓在 3~6V 之間,完全適應(yīng)電池工作。低電壓供電的單片機(jī)電源下限已可達(dá) 1~2V。但在需要復(fù)雜控制的場合,該存儲(chǔ)容量是不夠的,必須進(jìn)行外接擴(kuò)充。采用精簡指令集( RISC)結(jié)構(gòu)和流水線技術(shù),可以大幅度提高運(yùn)行速度。 小容量、低價(jià)格化 與上述相反,以 4 位、 8 位機(jī)為中心的小容量、低價(jià)格化也是發(fā)展動(dòng)向之一。除 了一般必須具有的 CPU、 ROM、RAM、定時(shí)器 /計(jì)數(shù)器等以外,片內(nèi)集成的部件還有模 /數(shù)轉(zhuǎn)換器、 DMA 控制器、聲音發(fā)生器、監(jiān)視定時(shí)器、液晶顯示驅(qū)動(dòng)器、彩色電視機(jī)和錄像機(jī)用的鎖相電路等。 ○ 7 隨著半導(dǎo)體集成工藝的不斷發(fā)展,單片機(jī)的集成度將更高、體積將更小、功能將列強(qiáng)。專家認(rèn)為,雖然世界上的 MCU 品種繁多,功能各異,開發(fā)裝置也互不兼容,但是客觀發(fā)展表明, 80C51 可能最終形成事實(shí)上的標(biāo)準(zhǔn) MCU 芯片。他是把有機(jī)液晶原料夾在兩片透明的玻璃或者有機(jī)玻璃中。液晶技術(shù)發(fā)展的早期,由于液晶管的穩(wěn)定性以及生產(chǎn)技術(shù),還不能大量大規(guī)模的生產(chǎn),直到了英國的科學(xué)家發(fā)明了用 ”聯(lián)苯 (Biphenyl)”一作為液晶管的原料,這個(gè)問題才得以解決。 LCD 技術(shù)是把液晶灌入兩片偏振玻璃之間。夾住液晶的兩片偏振玻璃,假設(shè)為 a、 b,他們的偏振方向會(huì)設(shè)置為 90 度夾角。 課題分析 貪吃蛇游戲設(shè)計(jì)主要硬件由單片機(jī)最小系統(tǒng), LCD, 4X4 矩陣鍵盤,整個(gè)的游戲設(shè)計(jì)外圍電路比較少,主要核心在于游戲的程序設(shè)計(jì),本設(shè)計(jì)的游戲規(guī)則也參照現(xiàn)在手機(jī)流行的貪吃蛇游戲的規(guī)則去設(shè)計(jì),當(dāng)蛇吃到食物時(shí),蛇身就會(huì)自動(dòng)增加一格,食物隨機(jī)出現(xiàn)在屏幕上,當(dāng)蛇碰到墻壁時(shí),游戲結(jié)束。 VSS: 電源地端。 EA/Vpp: EA為英文 External Access的縮寫,表示存取外部程序代碼之意,低電平動(dòng)作,也就是說當(dāng)此引腳接低電平后, 系統(tǒng)會(huì)取用外部的程序代碼(存于外部EPROM 中)來執(zhí)行程序。 ALE/PROG: ALE 是英文 Address Latch Enable的縮寫,表示地址鎖存器啟用信號。 PSEN: 此為 Program Store Enable的縮寫,其意為程序儲(chǔ)存啟用,當(dāng) 8051 被設(shè)成為讀取外部程序代碼工作模式時(shí)( EA=0),會(huì)送出此信號以便取得程序代碼,通常這支腳是接到 EPROM 的 OE 腳。如果當(dāng) EA 引腳為低電平時(shí)(即取用外部程序代碼或數(shù)據(jù)存儲(chǔ)器), P0 就以多工方式提供地址總線( A0~ A7)及數(shù)據(jù)總線( D0~ D7)。 PORT1( ~ ): 端口 1 也是具有內(nèi)部提升電路的雙向 I/O 端口,其輸出緩沖器可以推動(dòng) 4 個(gè)LS TTL 負(fù)載,同樣地若將端口 1 的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。 : TXD,串行通信輸出。 : T1,計(jì)時(shí)計(jì)數(shù)器 1 輸入。 RST: 復(fù)位輸入。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè) ALE 脈沖。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外 部程序時(shí),應(yīng)設(shè)置 ALE 禁止位無效。如 EA 端為高電平(接 Vcc端),CPU 則執(zhí)行內(nèi)部程序存 儲(chǔ)器的指令。 3 系統(tǒng)總體設(shè)計(jì) 軟件開發(fā)環(huán)境 對于 序的編寫,在 C51 單片機(jī)中,可以用匯編語言編寫程序,也可以用 C語言編寫。 綜合本設(shè)計(jì)的情況,由于編寫程序容量并不是很大,而且對于初學(xué)者更好理解程序的設(shè)計(jì),故采用 keilC 編譯器來完成程序的編寫 。 2) 器件庫用來配置開發(fā)工具設(shè)置。 6) 真正的源代碼 級的對 CPU 和外圍器件的調(diào)試器。 常州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 8 頁,共 31 頁 圖 菜單條提供各種操作菜單,如:編輯操作,項(xiàng)目維護(hù),開發(fā)工具選項(xiàng)設(shè)置,調(diào)試程序,窗口選擇和處理,在線幫助,工具條按鈕允許你快速地執(zhí) 行 uVision4命令。它是目前最好的仿真單片機(jī)及外圍器件的工具。在編譯方面,它也支持 IAR、 Keil 和 MPLAB 等多種 編譯器 [14]。 PROTEUS 不僅可將許多單片機(jī)實(shí)例功能形象化,也可將許多單片機(jī)實(shí)例運(yùn)行過程形象化。 畢業(yè)設(shè)計(jì)是學(xué)生走向就業(yè)的重要實(shí)踐環(huán)節(jié)。相信在單片機(jī)開發(fā)應(yīng)用中 PROTEUS 也能茯得愈來愈廣泛的應(yīng)用。 系統(tǒng)軟硬件設(shè)計(jì) 系統(tǒng)的硬件 總體設(shè)計(jì) 采用 AT89S52 芯片作為 CPU,結(jié)合鍵盤芯片 74CH148 和漢字圖形點(diǎn)陣液晶顯示模塊 LCD12864,使用 C51 語言編寫, 在硬件軟件上實(shí)現(xiàn)了這個(gè)游戲。在主程序里只對 LCD 的初始化,中斷設(shè)備的初始化,然后死循環(huán)執(zhí)行貪吃蛇運(yùn)行程序。蛇的運(yùn)動(dòng)和游戲時(shí)鐘則是采用定時(shí)器 2 中斷產(chǎn)生的,當(dāng)滿足一定條件時(shí)通過單片機(jī) I/O F3 送到 LCD 上進(jìn)行顯示。第二種方式是矩陣鍵盤,矩陣鍵盤采用行列式結(jié)構(gòu)按鍵設(shè)置在行列的交點(diǎn)上。矩陣鍵盤上某一鍵閉合時(shí),該鍵所對應(yīng)的行線和列線短接。 RS=0 時(shí),選擇指令寄存器; RS=1 時(shí),選擇數(shù)據(jù)寄存器 7 腳 R/W:讀寫信號線。 根據(jù)上述管腳功能介紹,硬件管腳相關(guān)定義如下: 定義單片機(jī)與 12864 的接口 , 數(shù)據(jù)接口為 p0 口 sbit lcd_en=P3^4。 sbit cs2=P3^7。由于將 4x4 點(diǎn)陣定義為單位點(diǎn)陣的大小,并定義單位點(diǎn)陣為豆子的大小,因此將屏幕按 4x4 比例從 128x64 縮小為 32x16(即將4x4 點(diǎn)陣看成 LCDl2864 上的一個(gè)最小點(diǎn)陣 )。 液晶的顯示效果是由于在顯示像素上施加了電場的緣故,而這個(gè)電場則由顯示像素前后兩電極上的電位信號差所產(chǎn)生。 液晶顯示像素上交流電場的強(qiáng)弱用交流電場的有效值表示,當(dāng)有效值大于液晶的 ICJ 值電壓時(shí),像素產(chǎn)生電光效應(yīng),呈顯示狀態(tài) 。液晶顯示的驅(qū)動(dòng)方式有許多,常用于液晶顯示器件上的驅(qū)動(dòng)方法有靜態(tài)驅(qū)動(dòng)和動(dòng)態(tài)驅(qū)動(dòng)兩種 ,在這里就不多介紹了 。反相時(shí),液晶上施加了一矩形波。 圖 主程序流程圖 具體代碼實(shí)現(xiàn)如下: void main() { present_menu_num=0。 //對 LCD 進(jìn)行初始化 clear_lcd()。 按鍵檢測模塊 按鍵檢測是模塊是用的查詢的方式來實(shí)現(xiàn)的, 6 個(gè)按鍵對應(yīng) 6 個(gè)引腳,先對引腳進(jìn)行初始化,設(shè)置 P2 口的電平為低電平,其他的為高電平 [7]。 if ((P2amp。0x7f)!=0x7f )。對應(yīng)七個(gè)函數(shù),分別是游戲開始狀態(tài),游戲選擇返回狀態(tài),游戲等待開始狀態(tài),游戲中狀態(tài),游戲中暫停狀態(tài),游戲通關(guān)狀態(tài),游戲結(jié)束狀態(tài) [15]。 TMOD= (0x0f amp。 TR1=1。//初始化 12864 void clear_lcd()。 //測忙 void set_lcd_xy(unsigned char x,unsigned char y)。//寫數(shù)字 void write_lcd_hanzi(unsigned char x,unsigned char y,unsigned char code *dat)。 void game_over()。具體功能如下: (1) 貪吃蛇按一定方向移動(dòng) (2) 貪吃蛇根據(jù)按鍵改變方向 (3) 貪吃蛇判斷吃食物 (4) 貪吃蛇判斷撞邊界 相關(guān)變量 和函數(shù)的 定義 //對于蛇的結(jié)構(gòu)體定義 struct she { unsigned char x,y,value。 //蛇的頭尾節(jié)點(diǎn) 和食物點(diǎn)
。 }。主要開發(fā)內(nèi)容包括蛇的方向、蛇的速度、蛇的位置的控制,吃食物、撞邊界、判斷并調(diào)用其它模塊進(jìn)行相應(yīng)操作。//畫圖 畫 128*64 的全圖 void key_down()。//向液晶讀一個(gè)字 void draw_lcd_point(unsigned char x,unsigned char y,unsigned char dat)。//向 12864 寫一個(gè)字節(jié)的數(shù)據(jù) void write_lcd_(unsigned char )。本模塊提供了 LCDl2864 的初始化,顯示游戲界面的函數(shù),顯示選框的函數(shù)、顯示游戲狀態(tài)的函數(shù) (游戲運(yùn)行或暫停 )和顯示圖形的函數(shù)。 //定時(shí)器一 16位定時(shí)器模式 10ms中斷一次 用來掃描鍵盤 TH1=0xDC。 代碼實(shí)現(xiàn)如下: 首先是對函數(shù)原型聲明 : void tcs_game() void wei_you() //向右 void wei_zuo() //向左 void wei_shang() //向上 void wei_xia() //向下 常州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 20 頁,共 31 頁 另外定義定時(shí)器一 16 位定時(shí)器模式 10ms 中斷一次 用來掃描鍵盤 。 delay_ms(10)。0x7f。 if((P2amp。 //返回到主菜單 while(1) { 開始 LCD 屏幕初始化 貪吃蛇設(shè)計(jì)初始化 貪吃蛇運(yùn)行子程序 常州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 18 頁,共 31 頁 key_down()。 tcs_dt=1。 圖 靜態(tài)波形 圖 設(shè)計(jì)圖顯示模塊圖如下: 常州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 17 頁,共 31 頁 圖 LCD 結(jié)果圖 5 系統(tǒng)軟件設(shè)計(jì) 主程序設(shè)計(jì) 如圖所示,程序設(shè)計(jì)的主程序即 main 函數(shù)很簡單,主要完成初始化工作,主要完成對 LCD 屏幕,貪吃蛇結(jié)構(gòu)的初始化,然后不斷運(yùn)行貪吃蛇游戲程序。如圖所示: 圖 驅(qū)動(dòng)原理圖 驅(qū)動(dòng)波形:根據(jù)此電信號,筆段波形不是與公用波形同相就是反相。因此液晶顯示驅(qū)動(dòng)器要能夠控制驅(qū)動(dòng)輸出的電壓幅值,以實(shí)現(xiàn)對顯示對比度的控制。由此要求液晶顯示驅(qū)動(dòng)器的驅(qū)動(dòng)輸出必須是交流驅(qū)動(dòng)。液晶顯示器件中的每個(gè)顯示像素都可以單獨(dú)被電場控制,不同的顯示像素按照驅(qū)動(dòng)信號的 “指揮 ”在顯示屏上合成各種字符,數(shù)字及圖形。橫向 O 一 127 共 128 個(gè)點(diǎn)陣,分為左右 兩屏。 sbit lcd_rw=P3^6。 CSI 和常州大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 第 15 頁,共 31 頁 CS2 為液晶顯示器的左右半屏的選擇端口。 LCD 12864 顯示模塊 LCDl2864(以后簡稱大屏 )功能強(qiáng)大, 5V 電壓驅(qū)動(dòng),帶背光,內(nèi)置 8192 個(gè)16x16 個(gè)點(diǎn)陣、顯示容量為 128*64,內(nèi)部由 A,B 兩屏左右分布組成。同樣利用 8 根口線,矩陣鍵盤可以配置 16 個(gè)鍵,而獨(dú)立鍵盤只能配置 8 個(gè)按鍵,從此看出,矩陣鍵盤比獨(dú)立鍵盤擁有更豐富的性能 。 鍵盤掃描思路設(shè)計(jì) 鍵盤是人機(jī)對話的一個(gè)重要的橋梁,通過按鍵控制單片機(jī)的操作。單片機(jī)采用查詢方式掃描鍵盤,當(dāng)有鍵按下的時(shí)候,單片機(jī)讀取鍵值,按照按鍵的功能進(jìn)入不同的游戲狀態(tài)。 為了簡化顯示屏電路,降低成本,單片機(jī)部分發(fā)不加字庫存儲(chǔ)器,而在 PC機(jī)上編輯漢字和字符顯示信息,并轉(zhuǎn)換為相應(yīng)的點(diǎn)陣顯示數(shù)據(jù),送給單片機(jī)存儲(chǔ)并作顯示處理。實(shí)踐證明,在使用 Proteus 進(jìn)行系統(tǒng)仿真開發(fā)成功之后再進(jìn)行實(shí)際制作,能極大提高單片機(jī)系統(tǒng)設(shè)計(jì)效率。它具有設(shè)計(jì)靈活,結(jié)果、過程的統(tǒng)一的特點(diǎn)。它的元器件、連接線路等卻和傳統(tǒng)的單片機(jī)實(shí)驗(yàn)硬件高度對應(yīng)。 ( 2)完善的電路仿真功能( Prospice) ○ 1 ProSPICE 混合仿真:基于工業(yè)標(biāo)準(zhǔn) SPICE3F5,實(shí)現(xiàn)數(shù)字 /模擬電路的混合仿真; ○ 2 超過 27000 個(gè)仿真器件:可以通過內(nèi)部原型或使用廠家的 SPICE 文件自行設(shè)計(jì)仿真器件, Labcenter 也在不斷地發(fā)布新的仿真器件,還可導(dǎo)入第三方發(fā)布的仿真器件; ○ 3 多樣的激勵(lì)源:包括直流、正弦、脈沖、分段線性脈沖、音頻(使用 wav文件
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1