CMOS高速鎖相環(huán)的研究與設(shè)計(jì)畢業(yè)設(shè)計(jì)_第1頁(yè)
CMOS高速鎖相環(huán)的研究與設(shè)計(jì)畢業(yè)設(shè)計(jì)_第2頁(yè)
CMOS高速鎖相環(huán)的研究與設(shè)計(jì)畢業(yè)設(shè)計(jì)_第3頁(yè)
CMOS高速鎖相環(huán)的研究與設(shè)計(jì)畢業(yè)設(shè)計(jì)_第4頁(yè)
CMOS高速鎖相環(huán)的研究與設(shè)計(jì)畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩94頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、畢 業(yè) 設(shè) 計(jì)設(shè)計(jì)題目:cmos高速鎖相環(huán)的研究與設(shè)計(jì) 系 別: 信息工程系 班 級(jí): 電子信息工程 姓 名: 指 導(dǎo) 教 師: 年6月10日cmos高速鎖相環(huán)的研究與設(shè)計(jì)摘 要在現(xiàn)今電子信息高速發(fā)展的時(shí)代,通信等技術(shù)變得越來(lái)越重要。鎖相環(huán)作為一種能夠跟蹤輸入信號(hào)的閉環(huán)自動(dòng)相位控制系統(tǒng),因其電路結(jié)構(gòu)簡(jiǎn)單,性能優(yōu)越等特點(diǎn),現(xiàn)在被廣泛應(yīng)用于無(wú)線電通信、雷達(dá)、流體力學(xué)等眾多領(lǐng)域。本文介紹了一種高速鎖相環(huán)的設(shè)計(jì)方法。本文設(shè)計(jì)的鎖相環(huán)采用當(dāng)前主流的電路結(jié)構(gòu)數(shù)?;旌辖Y(jié)構(gòu)的電荷泵鎖相環(huán)。鎖相環(huán)路中的鑒頻鑒相器采用rs鎖存器實(shí)現(xiàn)鑒頻/鑒相功能,有效地提高了整個(gè)電荷泵鎖相環(huán)對(duì)相位變化的靈敏度。電荷泵電路也做了一

2、定的改進(jìn),性能更為優(yōu)越。壓控振蕩器采用常用的環(huán)形振蕩器結(jié)構(gòu),采用電流驅(qū)動(dòng)邏輯(csl)電路作為緩沖單元。分頻器采用單相時(shí)鐘tspc邏輯實(shí)現(xiàn)。論文從系統(tǒng)設(shè)計(jì)角度出發(fā)對(duì)電荷泵鎖相環(huán)的工作原理、數(shù)學(xué)模型及基本性能多做了詳細(xì)的分析。該電荷泵鎖相環(huán)采用0.13mcmos工藝實(shí)現(xiàn)。利用tanner軟件進(jìn)行各模塊、整體電路的設(shè)計(jì),及版圖的繪制與驗(yàn)證。從鎖相環(huán)的仿真結(jié)果可知,我們的實(shí)驗(yàn)結(jié)果和理論結(jié)果相符。關(guān)鍵詞:電荷泵鎖相環(huán)電荷泵壓控振蕩器 鑒頻鑒相器 abstractcommunications technology is becoming increasingly important in todays

3、era of rapid development of electronic information. a tetris games design method has been introduced in this thesis based on stc89c53 mcu. this system is chiefly constituted of stc89c53 mcu, kxm12864j lcd, independent keys and buzzer. mcu is the core controller in this design. to make related inform

4、ation of the game seen by players, an area is differentiated showing shape of next graph, score, game time, speed and level in the screen. when playing this game, we can control the graph shown to move left and right, fall quickly and transform into another one flexibly by pressing keys. after passi

5、ng one level, the screen shows us “good job”, or we get “game over”. the buzzer gives out different sounds meanwhile to warn game-players of the current state.in this design, the simulation is done in proteus simulative software. code compiling, debugging and modification of hardware circuit are don

6、e with the help of kiel c51 tool. then it is debuged again after circuit board welded. finally, the system raslizes all the functions of a minitype tetris machine. key words: mcu; kxm12864j; tetris; keil目 錄1 引言12 芯片簡(jiǎn)介22.1 單片機(jī)簡(jiǎn)介22.2 kxm12864j簡(jiǎn)介43 系統(tǒng)硬件的設(shè)計(jì)93.1 單片機(jī)最小系統(tǒng)的設(shè)計(jì)93.1.1 電源電路的設(shè)計(jì)93.1.2 振蕩電路的設(shè)計(jì)113.

7、1.3 復(fù)位電路的設(shè)計(jì)123.1.4 下載電路的設(shè)計(jì)133.2 lcd顯示電路的設(shè)計(jì)163.3 按鍵電路的設(shè)計(jì)173.4 聲音電路的設(shè)計(jì)184 系統(tǒng)軟件的設(shè)計(jì)194.1 lcd顯示子程序204.1.1 顯示字符子程序204.1.2 顯示圖形子程序214.1.3 設(shè)定游戲顯示區(qū)域子程序224.1.4 清屏子程序224.1.5 顯示計(jì)時(shí)子程序234.1.6 消行積分子程序244.1.7 闖關(guān)設(shè)置子程序254.2 按鍵操作子程序264.3 聲音子程序285 系統(tǒng)調(diào)試與仿真295.1 keil軟件和proteus軟件簡(jiǎn)介295.2 系統(tǒng)調(diào)試與仿真315.3 仿真過(guò)程中的問(wèn)題336 硬件焊接與調(diào)試366

8、.1電路板焊接366.2 硬件調(diào)試376.2.1 lcd顯示的調(diào)試376.2.2 按鍵調(diào)試396.2.3 聲音調(diào)試397 結(jié)論40謝辭41參考文獻(xiàn)42附錄43附錄一 總體設(shè)計(jì)電路原理圖43附錄二 程序清單80附錄三 器件清單80外文資料811 引言1.1鎖相技術(shù)的發(fā)展鎖相技術(shù)是一門(mén)實(shí)現(xiàn)相位自動(dòng)控制的學(xué)科,是專(zhuān)門(mén)研究系統(tǒng)相位的技術(shù)。利用鎖相技術(shù)而成的鎖相環(huán)pll(phase-locked loop)是一個(gè)閉環(huán)的相位自動(dòng)控制系統(tǒng),它的輸出信號(hào)能夠自動(dòng)跟蹤輸入信號(hào)的相位變化,也可以將之稱(chēng)為一個(gè)相位差自動(dòng)跟蹤系統(tǒng),它能夠自動(dòng)跟蹤兩個(gè)信號(hào)的相位差,并且靠反饋控制來(lái)達(dá)到自動(dòng)調(diào)節(jié)輸出信號(hào)相位的目的。“鎖相”

9、的起源可以追溯到17世紀(jì),荷蘭天文學(xué)家、物理學(xué)家christiana huygens,通過(guò)觀察首次提出了“同步振蕩器”(synehronized oseillator)的概念,但因?yàn)楫?dāng)時(shí)科學(xué)技術(shù)條件的限制,并沒(méi)有引起重視,得到應(yīng)有的發(fā)展。1932年法國(guó)科學(xué)家de belleseize在“l(fā)a reception synehrone”一文中,首先公開(kāi)發(fā)表了對(duì)鎖相環(huán)路的數(shù)學(xué)描述,明確提出了“鎖相”的概念,且運(yùn)用此概念論述了無(wú)線電信號(hào)的同步接收。但是他的同步檢波理論在當(dāng)時(shí)并沒(méi)有引起普遍的重視。直到1940年鎖相環(huán)技術(shù)才得到了第一次成功的應(yīng)用,在電視機(jī)水平掃描行同步裝置中,有效的抑制外界噪聲對(duì)同步信號(hào)

10、的干擾,使電視圖像的同步性能得到很大的改善。同時(shí),在此期間的第二次世界大戰(zhàn)中,各種武器裝備對(duì)鎖相環(huán)提出了更多的要求,也極大地推動(dòng)了鎖相技術(shù)的發(fā)展。為了滿(mǎn)足這些極具挑戰(zhàn)性的要求,很多先進(jìn)的反饋控制理論在此期間得到發(fā)展。隨著對(duì)鎖相技術(shù)理論以及應(yīng)用的廣泛而深入的研究,鎖相技術(shù)己經(jīng)成為一門(mén)比較系統(tǒng)的理論科學(xué)。但是,研究的不斷深入,科技技術(shù)的不斷前進(jìn),新的物理現(xiàn)象和問(wèn)題還是層出不窮,得不到解釋。因此直到現(xiàn)在,世界各國(guó)科技工作者對(duì)鎖相環(huán)的理論和應(yīng)用進(jìn)行還在繼續(xù)的進(jìn)行研究,而且鎖相環(huán)原理的應(yīng)用已經(jīng)深入到許多其他學(xué)科中去了,如氣象學(xué)、海洋學(xué)、生物物理學(xué)、原子物理學(xué)等等。在鎖相環(huán)發(fā)展的最初階段,pll都是由分立

11、元器件組成的,電路復(fù)雜,調(diào)整困難。隨著半導(dǎo)體集成技術(shù)的日趨成熟,鎖相環(huán)技術(shù)成為模擬集成電路設(shè)計(jì)中一個(gè)重要的研究方向3。之后的幾年內(nèi)就出現(xiàn)了數(shù)?;旌系逆i相環(huán)電路,以及后來(lái)的全數(shù)字鎖相環(huán)電路。這三種鎖相環(huán)電路各有千秋,相互彌補(bǔ),分別存在于各類(lèi)電子產(chǎn)品中。模擬鎖相環(huán)在穩(wěn)定工作時(shí),各模塊都可以認(rèn)為是線性工作的,所以也稱(chēng)為線性鎖相環(huán)。模擬鎖相環(huán)對(duì)正弦特性信號(hào)的相位跟蹤非常好,環(huán)路特性主要由鑒相器的特性決定,主要用于對(duì)信號(hào)的調(diào)制解調(diào)。模擬鎖相環(huán)的優(yōu)點(diǎn)是電路簡(jiǎn)單有效,低通濾波器設(shè)計(jì)良好時(shí),輸出頻率純凈穩(wěn)定,跟隨性能好,理想情況下輸出頻率完全等于同步頻率,對(duì)晶振壓控特性的線性要求不高。缺點(diǎn)是一旦失去基準(zhǔn)頻率,

12、輸出頻率立刻跳回晶振本身的頻率。全數(shù)字鎖相環(huán)的英文全稱(chēng)是all digital phase-locked loop,簡(jiǎn)稱(chēng)是adpll。adpll的經(jīng)典結(jié)構(gòu)為鑒相器用過(guò)零檢測(cè)數(shù)字鑒相器,環(huán)路濾波器一般用可逆計(jì)數(shù)器來(lái)實(shí)現(xiàn),振蕩器則用數(shù)控振蕩器實(shí)現(xiàn)。全數(shù)字鎖相環(huán)具有精度高且不受溫度和電壓影響,環(huán)路帶寬和中心頻率編程可調(diào),易于構(gòu)建高階鎖相環(huán)等優(yōu)點(diǎn),缺點(diǎn)是不能過(guò)濾時(shí)鐘源的抖動(dòng),會(huì)引入固有抖動(dòng),造成抖動(dòng)的累積。數(shù)模混合鎖相環(huán)的部分環(huán)路部件為數(shù)字電路,但是環(huán)路控制仍是模擬形式。數(shù)?;旌湘i相環(huán)的優(yōu)點(diǎn)是相位誤差、溫度誤差等較小,電路結(jié)構(gòu)較簡(jiǎn)單,且噪聲較小,具有高速低功耗等優(yōu)越特性。電荷泵鎖相環(huán)cppll(cha

13、rge-pump phase-locked loop)是數(shù)?;旌湘i相環(huán)中的典型代表。數(shù)?;旌湘i相環(huán)主要用于頻率綜合,時(shí)鐘處理等領(lǐng)域。雖然pll技術(shù)已經(jīng)發(fā)展了半個(gè)多世紀(jì),但是由于其應(yīng)用領(lǐng)域的擴(kuò)展,而且高新科技的發(fā)展對(duì)它的性能又不斷提出新的要求,所以一直以來(lái)pll的設(shè)計(jì)與分析都是集成電路設(shè)計(jì)者的熱點(diǎn)。設(shè)計(jì)者們也不斷的提出新的結(jié)構(gòu)和新的分析方法,以滿(mǎn)足不同應(yīng)用的需要。本文設(shè)計(jì)了一種高速電荷泵鎖相環(huán),并用0.13mcmos工藝實(shí)現(xiàn)。利用tanner軟件進(jìn)行仿真,并進(jìn)行版圖的繪制與驗(yàn)證。2 芯片簡(jiǎn)介2.1 單片機(jī)簡(jiǎn)介單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)單片微機(jī)或單片機(jī),又稱(chēng)微控制器(mcu)。它是在一塊半導(dǎo)體芯片上,集成

14、了cpu、rom、ram、i/o接口、定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)等功能部件,構(gòu)成了一臺(tái)完整的數(shù)字電子計(jì)算機(jī)。該器件采用高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和輸出管腳相兼容。由于將多功能8位cpu和閃爍存儲(chǔ)器組合在單個(gè)芯片中,stc89c51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性好且性?xún)r(jià)比高的設(shè)計(jì)方案。隨著集成電路技術(shù)的發(fā)展,單片機(jī)功能逐漸增強(qiáng),由單片機(jī)構(gòu)成的計(jì)算機(jī)應(yīng)用系統(tǒng)的功能也日益增強(qiáng),進(jìn)一步深化了單片機(jī)在工業(yè)控制、自動(dòng)檢測(cè)、智能儀器儀表、家用電器等領(lǐng)域的突出地位2。stc系列單片機(jī)功能基本相同,在此以stc89c51為代表進(jìn)行簡(jiǎn)單介紹。1. stc

15、89c51單片機(jī)引腳stc89c51單片機(jī)封裝引腳如圖2-1所示。t2/p1.0 t2ex/p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7 rst rxd/p3.0 txd/p3.1 int0/p3.2 int1/p3.3 t0/p3.4 wr/p3.6 rd/p3.7 xtal2 xtal1 t1/p3.5 vss vcc p0.0/ad0 p0.1/ad1 p0.2/ad2 p0.3/ad3 p0.4/ad4 p0.5/ad5 p0.6/ad6 p0.7/ad7 ea ale/prog psen p2.7/a15 p2.6/a14 p2.5/a13 p2.4/a12

16、p2.3/a11 p2.2/a10 p2.1/a9 p2.0/a8 12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 311132 33 34 35 36 37 38 39 40 dip40 圖2-1 stc89c51單片機(jī)封裝引腳圖stc89c51有4個(gè)8位可編程并行i/o口(p0、p1、p2、p3),1個(gè)全雙工串行口,2個(gè)定時(shí)器/計(jì)數(shù)器,2個(gè)外部中斷輸入口。各個(gè)引腳的功能說(shuō)明如下:gnd:接地端。vcc:電源端,接+5v。xtal1:接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是反相放大

17、器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部時(shí)鐘時(shí),該引腳作為外部振蕩的輸入端。xtal2:接外部石英晶體的另外一端。在單片機(jī)內(nèi)部,它是反相放大器的輸出端。rst:該引腳為單片機(jī)的上電復(fù)位引腳,高電平有效。當(dāng)單片機(jī)電源電壓達(dá)到單片機(jī)工作電壓、同時(shí)單片機(jī)振蕩器正常工作后,該引腳上必須持續(xù)兩個(gè)機(jī)器周期的高電平,才可能實(shí)現(xiàn)復(fù)位操作,使單片機(jī)回到初始狀態(tài)。ale/prog:地址鎖存允許。 psen:外部程序存儲(chǔ)器讀允許。:為0時(shí),單片機(jī)只訪問(wèn)外部程序存儲(chǔ)器。p0口:p0數(shù)據(jù)/低八位地址復(fù)用總線端口。p1口:p1靜態(tài)通用端口。p2口:p2高八位地址總線動(dòng)態(tài)端口。p3口:p3雙功能靜態(tài)端口。p3口也

18、可作為stc89c51的一些特殊功能口。如:p3.0為串行輸入口(rxd),p3.1為串行輸出口(txd),p3.2為外部中斷0(int0),p3.3為外部中斷1(int1),p3.4為定時(shí)/計(jì)數(shù)器0的外部輸入口(t0),p3.5為定時(shí)/計(jì)數(shù)器1的外部輸入口(t1),p3.6為外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通(wr),p3.7為外部數(shù)據(jù)存儲(chǔ)器讀選通(rd)。由于本設(shè)計(jì)中定時(shí)器的應(yīng)用很多而且很重要,在此對(duì)定時(shí)器/計(jì)數(shù)器t1、t0的使用方法進(jìn)行簡(jiǎn)單說(shuō)明:stc89c51單片機(jī)內(nèi)有兩個(gè)可編程的定時(shí)器/計(jì)數(shù)器t1、t0。兩個(gè)定時(shí)器都具有定時(shí)器和計(jì)數(shù)器兩種工作模式,四種工作方式(方式0、方式1、方式2和方式3),其

19、控制字均在相應(yīng)的特殊功能存儲(chǔ)器中,通過(guò)對(duì)它的特殊功能寄存器編程,用戶(hù)可方便地選擇定時(shí)器/計(jì)數(shù)器的兩種工作模式和四種工作方式。定時(shí)器/計(jì)數(shù)器t0由特殊功能寄存器th0、tl0構(gòu)成,定時(shí)器/計(jì)數(shù)器t1由特殊功能寄存器th1、tl1構(gòu)成。特殊功能寄存器tmod用于選擇定時(shí)器/計(jì)數(shù)器t1、t0的工作模式和工作方式。特殊功能寄存器tcon用于控制t1、t0的啟動(dòng)和停止計(jì)數(shù),同時(shí)包含了t1、t0的狀態(tài)。tmod、tcon這兩個(gè)寄存器的內(nèi)容由軟件設(shè)置3。2. stc89c51單片機(jī)特點(diǎn)stc89c51單片機(jī)是宏晶科技推出的新一代超強(qiáng)抗干擾/高速/低功耗的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),其主要特點(diǎn)

20、:(1) 增強(qiáng)型6時(shí)鐘/機(jī)器周期,12時(shí)鐘/機(jī)器周期,8051cpu。(2) 工作電壓:3.45.5v。(3) 工作頻率040mhz,實(shí)際工作頻率可達(dá)48mhz。(4) 應(yīng)用程序空間8k字節(jié)。(5) ram存儲(chǔ)容量為128b,可擴(kuò)展至64kb。(6) i/o口有32個(gè),p0口開(kāi)漏輸出,作為i/o口需要上拉;p1、p2、p3口是準(zhǔn)雙向/弱上拉。(7) isp,無(wú)需專(zhuān)用編程器/仿真器,可通過(guò)串口(p3.0/p3.1)直接下載用戶(hù)程序,8k程序3秒即可完成。(8) 具有看門(mén)狗,冷啟動(dòng)后為關(guān)閉狀態(tài)。(9) 工作溫度范圍:075。(10) stc89c51單片機(jī)的抗干擾與抗emi輻射能力。2.2 kxm

21、12864j簡(jiǎn)介型的液晶顯示模塊種類(lèi)繁多,而且大部分液晶顯示模塊都自帶驅(qū)動(dòng),使用時(shí)直接連接控制器件即可。型的液晶顯示模塊分為帶字庫(kù)的和不帶字庫(kù)的。帶字庫(kù)的液晶顯示模塊可以直接從字庫(kù)中調(diào)用漢字或字符,減少了代碼長(zhǎng)度,方便用戶(hù)使用。不帶字庫(kù)的液晶顯示模塊,每個(gè)字符要逐個(gè)按一定的規(guī)則送出顯示,但掌握一定的使用方法后使用會(huì)很方便,可以顯示漢字、字符和圖形。不帶字庫(kù)的液晶顯示模塊價(jià)格相對(duì)便宜又是其一大優(yōu)勢(shì)。本次設(shè)計(jì)選用kxm12864j顯示模塊。kxm12864j是一種不帶字庫(kù)的圖形點(diǎn)陣液晶顯示器。它主要采用動(dòng)態(tài)驅(qū)動(dòng)原理由行驅(qū)動(dòng)控制器和列驅(qū)動(dòng)器兩部分組成了128(列)64(行)的全點(diǎn)陣液晶顯示。此顯示器

22、采用了cod的軟封裝方式(cod:英文全稱(chēng)為cacheondie,芯片內(nèi)集成緩存),通過(guò)導(dǎo)電橡膠和壓框連接lcd,使其壽命長(zhǎng),連接可靠。1. kxm12864j的特點(diǎn)(1) 工作電壓為5v10%,可自帶驅(qū)動(dòng)lcd所需的負(fù)電壓。(2) 全屏幕點(diǎn)陣,點(diǎn)陣數(shù)為128(列)64(行),可顯示8(行)4(行)個(gè)(1616點(diǎn)陣)漢字,也可完成圖形,字符的顯示。(3) 與cpu接口采用5條位控制總線和8位并行數(shù)據(jù)總線輸入輸出,適配m系列時(shí)序。(4) 內(nèi)部有顯示數(shù)據(jù)鎖存器。(5) 簡(jiǎn)單的操作指令。如顯示開(kāi)關(guān)設(shè)置,顯示起始行設(shè)置,地址指針設(shè)置和數(shù)據(jù)讀/寫(xiě)等指令。2. kxm12864j的內(nèi)部結(jié)構(gòu)kxm12864

23、j內(nèi)部主要包括以下部分:數(shù)據(jù)顯示ram(ddram)、i/o緩沖器(db0db7)、輸入寄存器、輸出寄存器、指令寄存器、狀態(tài)字寄存器、地址寄存器、y地址計(jì)數(shù)器、z地址計(jì)數(shù)器、顯示起始行寄存器、顯示開(kāi)/關(guān)觸發(fā)器、復(fù)位端res、背光接線4。kxm12864j的內(nèi)部原理圖如圖2-1所示。圖2-1 kxm12864j原理圖3. kxm12864j的軟件應(yīng)用規(guī)則kxm12864j的指令功能:(1) 讀狀態(tài)字狀態(tài)字是mpu了解lcm(液晶顯示模塊)當(dāng)前狀態(tài),或lcm向mpu提供其內(nèi)部狀態(tài)的唯一的信息渠道。busy表示當(dāng)前l(fā)cm接口控制電路運(yùn)行狀態(tài)。busy=1表示lcm正在處理mpu發(fā)過(guò)來(lái)的指令或數(shù)據(jù)。此

24、時(shí)接口電路被封鎖,不能接受除讀狀態(tài)字以外的任何操作。busy=0表示lcm接口控制電路已外于“準(zhǔn)備好”狀態(tài),等待mpu的訪問(wèn)。on/off表示當(dāng)前的顯示狀態(tài)。on/off=1表示關(guān)顯示狀態(tài),on/off=0表示開(kāi)顯示狀態(tài)。 reset表示當(dāng)前l(fā)cm的工作狀態(tài),即反映res端的電平狀態(tài)。當(dāng)res為低電平狀態(tài)時(shí),lcm處于復(fù)位工作狀態(tài),標(biāo)志位reset=1。當(dāng)res為高電平狀態(tài)時(shí),lcm為正常工作狀態(tài),標(biāo)志位reset=0。在指令設(shè)置和數(shù)據(jù)讀寫(xiě)時(shí)要注意狀態(tài)字中的busy標(biāo)志。只有在busy=0時(shí),mpu對(duì)lcm的操作才能有效。因此mpu在每次對(duì)lcm操作之前,都要讀出狀態(tài)字判斷busy是否為“0”

25、。若不為“0”,則mpu需要等待,直至busy=0為止。(2) 顯示開(kāi)關(guān)設(shè)置該指令設(shè)置顯示開(kāi)/關(guān)觸發(fā)器的狀態(tài),由此控制顯示數(shù)據(jù)鎖存器的工作方式,從而控制顯示屏上的顯示狀態(tài)。d位為顯示開(kāi)/關(guān)的控制位。當(dāng)d=1為開(kāi)顯示設(shè)置,顯示數(shù)據(jù)鎖存器正常工作,顯示屏上呈現(xiàn)所需的顯示效果。此時(shí)在狀態(tài)字中on/off=0。當(dāng)d=0為關(guān)顯示設(shè)置,顯示數(shù)據(jù)鎖存器被置零,顯示屏呈不顯示狀態(tài),但顯示存儲(chǔ)器并沒(méi)有被破壞,在狀態(tài)字中on/off=1。(3) 顯示起始行設(shè)置該指令設(shè)置了顯示起始行寄存器的內(nèi)容。lcm通過(guò)cs的選擇分別具有64行顯示的管理能力,該指令中l(wèi)5l0為顯示起始行的地址,取值在03fh(164行)范圍內(nèi),

26、它規(guī)定了顯示屏上最頂一行所對(duì)應(yīng)的顯示存儲(chǔ)器的行地址。如果定時(shí)間隔地,等間距地修改(如加一或減一)顯示起始行寄存器的內(nèi)容,則顯示屏將呈現(xiàn)顯示內(nèi)容向上或向下平滑滾動(dòng)的顯示效果。(4) 頁(yè)面地址設(shè)置該指令設(shè)置了頁(yè)面地址x地址寄存器的內(nèi)容。lcm將顯示存儲(chǔ)器分成8頁(yè),指令代碼中p2p0就是要確定當(dāng)前所要選擇的頁(yè)面地址,取值范圍為07h ,代表第18頁(yè)。該指令規(guī)定了以后的讀/寫(xiě)操作將在哪一個(gè)頁(yè)面上進(jìn)行。(5) 列地址設(shè)置該指令設(shè)置了y地址數(shù)計(jì)數(shù)器的內(nèi)容,lcm通過(guò)cs的選擇分別具有64列顯示的管理能力,c5c0=03fh(164)代表某一頁(yè)面上的某一單元地址,隨后的一次讀或?qū)憯?shù)據(jù)將在這個(gè)單元上進(jìn)行。y地

27、址計(jì)數(shù)器具有自動(dòng)加一功能,在每一次讀/寫(xiě)數(shù)據(jù)后它將自動(dòng)加一,所以在連續(xù)進(jìn)行讀/寫(xiě)數(shù)據(jù)時(shí),y地址計(jì)數(shù)器不必每次都設(shè)置一次。頁(yè)面地址的設(shè)置和列地址的設(shè)置將顯示存儲(chǔ)器單元唯一地確定下來(lái),為后來(lái)的顯示數(shù)據(jù)的讀/寫(xiě)作了地址的選通。kxm12864j的接口時(shí)序:(1) 寫(xiě)操作將8位數(shù)據(jù)寫(xiě)入先前已確定的顯示存儲(chǔ)器的單元內(nèi)。操作完成后列地址計(jì)數(shù)器自動(dòng)加一。時(shí)序如圖2-2所示。圖2-2 寫(xiě)操作時(shí)序圖(2) 讀操作該操作將lcm接口部的輸出寄存器內(nèi)容讀出,然后列地址計(jì)數(shù)器自動(dòng)加一。時(shí)序如圖2-3所示。圖2-3 讀操作時(shí)序圖4. kxm12864j的顯示方法點(diǎn)陣式lcd的取模方式有逐列式、逐行式、列行式、行列式等。

28、本設(shè)計(jì)中選用列行式。列行式就是:先選擇點(diǎn)陣的第一頁(yè),逐列查表顯示一個(gè)漢字的上半部分,再選擇第二頁(yè),逐列查表顯示一個(gè)漢字的下半部分。顯示字符,一頁(yè)就可以顯示完整一個(gè)。每次顯示要先通過(guò)指令選中顯示位置的頁(yè)和列,然后將字模逐個(gè)送入。(1) 漢字取模應(yīng)用51單片機(jī)工具箱取漢字字模。取字模的方法以漢字“唐”為例進(jìn)行介紹。設(shè)定每個(gè)漢字大小為1616。首先將漢字“唐”寫(xiě)入漢字字模生成工具1616的點(diǎn)陣中,如圖2-4所示。圖2-4 漢字1616點(diǎn)陣圖然后就可以生成“唐”字字模,“0xff,0xff,0xbf,0xbb,0xd8,0x1b,0xdb,0xab,0x7a,0xab,0x9a,0xab,0xda,0

29、xab,0xf2,0xab,0xea,0xab,0xda,0xab,0x1a,0xab,0xde,0xfb,0xdd,0x7b,0xdb,0xbb,0xd7,0xab,0xdf,0xf7”。(2) 字符取模51單片機(jī)工具箱不可以實(shí)現(xiàn)字符取模,沒(méi)有找到相應(yīng)的取模工具,使用了一種比較傳統(tǒng)的取模方式。以字符“t”為例進(jìn)行介紹。設(shè)定每個(gè)字符大小為58。首先將字符“t”寫(xiě)入58的點(diǎn)陣中,如圖2-5所示。圖2-5 字符58點(diǎn)陣圖然后每列從下往上讀,亮的點(diǎn)為“1”,暗的點(diǎn)為“0”。讀出“t”的二進(jìn)制字?!?0000001,00000001,01111111,00000001,00000001”。最后轉(zhuǎn)換為十

30、六進(jìn)制字?!?x01,0x01,0x7f,0x01,0x01”。3 系統(tǒng)硬件的設(shè)計(jì)俄羅斯方塊游戲系統(tǒng)硬件電路的設(shè)計(jì)分為四大模塊,分別是單片機(jī)最小系統(tǒng)模塊、lcd顯示模塊、獨(dú)立按鍵模塊和聲音模塊。單片機(jī)最小系統(tǒng)顯示模塊按鍵模塊pc機(jī)聲音模塊硬件電路整體框圖如圖3-1所示。圖3-1 硬件電路整體框圖1. 單片機(jī)最小系統(tǒng)模塊,包括電源電路、復(fù)位電路、振蕩電路和下載接口電路。2. lcd顯示模塊,采用kxm12864j型液晶顯示器顯示圖形的形狀、游戲得分游戲時(shí)間、游戲速度和游戲等級(jí)等信息。3. 獨(dú)立按鍵模塊,設(shè)定六個(gè)獨(dú)立按鍵進(jìn)行游戲操作,功能分別為左移、右移、快速下移、翻轉(zhuǎn)、變形、確定和暫停,其中確定

31、和暫停功能由一個(gè)獨(dú)立按鍵來(lái)實(shí)現(xiàn)。4. 聲音模塊,主要由蜂鳴器構(gòu)成,可以在不同的游戲進(jìn)程發(fā)出不同的音樂(lè),增加了游戲的娛樂(lè)性。系統(tǒng)總體設(shè)計(jì)電路原理圖見(jiàn)附錄一。3.1 單片機(jī)最小系統(tǒng)的設(shè)計(jì) 單片機(jī)最小系統(tǒng)包括:v直流電源電路、振蕩電路、復(fù)位電路和下載電路。下面分模塊進(jìn)行介紹。3.1.1 電源電路的設(shè)計(jì)設(shè)計(jì)中單片機(jī)和lcd顯示屏所需電源均為v直流電。一般將220v交流電轉(zhuǎn)化為穩(wěn)定的v直流電的電路設(shè)計(jì)流程是把單相交流電經(jīng)過(guò)電源變壓器、整流電路、濾波電路和穩(wěn)壓電路轉(zhuǎn)換成穩(wěn)定的直流電5,其框圖如圖3-2所示。220v 50hz整流電路濾波電路電源變壓 器穩(wěn)壓電路+5v圖3-2 電源電路框圖由于上述供電方法需

32、要220v到12v的電源變壓器,這種變壓器相對(duì)系統(tǒng)來(lái)說(shuō)體積偏大,而且偏重。本次設(shè)計(jì)選擇usb供電和外部供電。電路圖如圖3-3所示。圖3-3 電源電路圖1. usb供電在很多情況下使用usb供電比較方便,不必?cái)y帶不方便的ac適配器。在設(shè)計(jì)過(guò)程中電路板直接和筆記本電腦連接就可以供電。 所有主機(jī)usb設(shè)備(如pc和筆記本電腦)至少可以供出500ma電流或每個(gè)usb插口提供5個(gè)“單元負(fù)載”。在usb述語(yǔ)中,“一個(gè)單元負(fù)載”是100ma。自供電usb插孔也可以提供5個(gè)單元負(fù)載。總線供電usb插孔保證提供一個(gè)單元負(fù)載(100ma)。所有usb設(shè)備在連接主機(jī)時(shí)需要主機(jī)對(duì)其加以識(shí)別。在識(shí)別過(guò)程中,主機(jī)決定us

33、b設(shè)備的電源以及是否為其供電,對(duì)于被認(rèn)可的設(shè)備將負(fù)載電流從100ma增大到500ma。usb供電方式,可以選擇比較簡(jiǎn)單的電路來(lái)實(shí)現(xiàn)。如圖3-3所示,在電路板上只需要有一個(gè)usb接口,傳輸過(guò)來(lái)的電流經(jīng)過(guò)濾波后接電源開(kāi)關(guān)。最后連接上熔斷器,在電流過(guò)大時(shí)熔斷器首先被燒壞使主板斷電,可以有效的保護(hù)電路主板6。2. 外部電源供電usb供電可能出現(xiàn)供電不足,在此又設(shè)計(jì)了外部供電。外部供電方式,首先需要用電源變壓器將220v交流電轉(zhuǎn)變?yōu)橹绷麟?,然后?jīng)過(guò)濾波和7805穩(wěn)壓后與usb供電電路重合。7805的引腳1是輸入腳,接+8+20v直流電源。引腳2是接地腳,接直流電源的負(fù)極。引腳3是輸出腳,輸出+5v的穩(wěn)定

34、電壓,確保在輸入交流電壓波動(dòng)或負(fù)載和溫度變化時(shí)輸出電壓的穩(wěn)定。后面電路與usb供電電路重合,如圖3-3所示。3. 電源指示燈電路為了可以直觀的觀測(cè)到電源接通情況,在電源設(shè)計(jì)部分增加了電源指示燈電路,如圖3-4所示。圖3-4 電源指示燈電路圖此電路由一個(gè)發(fā)光二極管和一個(gè)1k的限流電阻構(gòu)成,兩端連接電路板電源的正負(fù)極。當(dāng)按下電源開(kāi)關(guān)時(shí),電路板得電,同時(shí)指示燈亮。3.1.2 振蕩電路的設(shè)計(jì)單片機(jī)以晶體振蕩器的振蕩周期為最小的時(shí)序單位,片內(nèi)的各種微操作都以此周期為時(shí)序基準(zhǔn)。stc89c53可以選用外部振蕩方式和內(nèi)部振蕩方式。內(nèi)部振蕩方式所得的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中實(shí)用較多,本設(shè)計(jì)選用內(nèi)部振蕩方式

35、。stc89c53中有一個(gè)用于構(gòu)成內(nèi)部振蕩器的高增益反相放大器,引腳xtal1和xtal2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外晶振一起構(gòu)成自激振蕩器,振蕩電路如圖3-5所示。圖3-5 振蕩電路圖外接晶振及電容c2、c3接在放大器的反饋回路中構(gòu)成并聯(lián)振蕩電路。外接電容c2、c3起穩(wěn)定振蕩頻率,快速起振的作用。對(duì)外接電容c2、c3雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響振蕩頻率的高低、振蕩器工作的穩(wěn)定性、起振的難易程度及溫度穩(wěn)定性,如果使用石英晶體,電容使用30pf10pf,而如果使用陶瓷諧振器則選擇30pf10pf 7。在此選用石英晶體,電容使用30pf。3.

36、1.3 復(fù)位電路的設(shè)計(jì)stc89c53單片機(jī)的復(fù)位引腳rst出現(xiàn)2個(gè)機(jī)器周期(1個(gè)機(jī)器周期為12個(gè)振蕩周期)以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果rst持續(xù)為高電平,單片機(jī)將處于循環(huán)復(fù)位狀態(tài)不在執(zhí)行程序。復(fù)位操作分可分為上電復(fù)位和開(kāi)關(guān)復(fù)位兩種方式。上電復(fù)位要求接通電源后,自動(dòng)實(shí)現(xiàn)復(fù)位操作。開(kāi)關(guān)復(fù)位要求在電源接通的條件下,單片機(jī)運(yùn)行期間,如果發(fā)生死機(jī),用按下復(fù)位按鈕操作使單片機(jī)復(fù)位。本設(shè)計(jì)中選用上電復(fù)位和開(kāi)關(guān)復(fù)位并存的復(fù)位方式,如圖3-6所示?;驹硎牵荷想姾螅捎陔娙莩潆?,使rst持續(xù)一段高電平時(shí)間。當(dāng)單片機(jī)已在運(yùn)行之中時(shí),按下復(fù)位鍵也能使rst持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電且開(kāi)關(guān)復(fù)

37、位的操作。通常選擇c=1030uf,r=101 k。本設(shè)計(jì)中選擇c=30uf,r=10 k。圖3-6 復(fù)位電路圖如果不僅要使單片機(jī)復(fù)位,而且還要使單片機(jī)的外圍芯片也同時(shí)復(fù)位,上述電路中應(yīng)進(jìn)行少許調(diào)整。單片機(jī)的復(fù)位操作使單片機(jī)進(jìn)入初始化過(guò)程,其中包括使程序計(jì)數(shù)器pc=0000h,p0p3=ffh,sp=07h,其他寄存器從h地址單元開(kāi)始執(zhí)行8。單片機(jī)復(fù)位后不改變片內(nèi)ram區(qū)中的內(nèi)容,特殊功能寄存器復(fù)位后的狀態(tài)見(jiàn)表3-1所示。表3-1 特殊工作寄存器復(fù)位狀態(tài)表特殊功能寄存器初始狀態(tài)特殊功能寄存器初始狀態(tài)a00htmod00hb00htcon00hpsw00hth000hsp07htl000hdpl

38、00hth100hdph00htl100hp0p3ffhsbuf不定ie*00000bscon00hip0*00000bpcon0*b值得指出的是,記住一些特殊功能寄存器復(fù)位后的主要狀態(tài),對(duì)于了解單片機(jī)的初態(tài),減少應(yīng)用程序中的初始化部分是十分必要的。說(shuō)明:表中符號(hào)*為隨機(jī)狀態(tài);a=00h,表明累加器已被清零;psw=00h,表明選寄存器0組為工作寄存器組;sp=07h,表明堆棧指針指向片內(nèi)ram的h字節(jié)單元,根據(jù)堆棧操作的先加后壓法則,第一個(gè)被壓入的內(nèi)容寫(xiě)入到08h單元中;p0p3ffh,表明已向各端口線寫(xiě)入1,此時(shí),各端口既可用于輸入又可用于輸出;ip00000b,表明各個(gè)中斷源處于低優(yōu)先級(jí)

39、;ie000000b,表明各個(gè)中斷均被關(guān)斷。3.1.4 下載電路的設(shè)計(jì)本次設(shè)計(jì),軟件程序是通過(guò)串行編程方式寫(xiě)入單片機(jī)flash存儲(chǔ)器的,即isp編程方式,需要電平轉(zhuǎn)換芯片max232。同時(shí)上位機(jī)與系統(tǒng)的連接需要一條下載線,下載線的一端是usb口接pc機(jī),另一端是九針的串行口接系統(tǒng)電路板。1. isp簡(jiǎn)介stc系列單片機(jī)提供isp在線系統(tǒng)可編程,可方便使用rs232接口直接下載程序。isp的好處是:不用購(gòu)買(mǎi)通用編程器,單片機(jī)在系統(tǒng)上即可下載/燒錄用戶(hù)程序,而無(wú)須將單片機(jī)從已生產(chǎn)好的產(chǎn)品上拆下,再用通用編程器將程序代碼燒錄進(jìn)單片機(jī)內(nèi)部。這種方法極大地方便了軟件編寫(xiě)過(guò)程中的調(diào)試工作。stc89系列單

40、片機(jī)在出廠之前已在單片機(jī)內(nèi)部固化有isp系統(tǒng)引導(dǎo)程序,配合isp端的控制程序即可將用戶(hù)的程序代碼下載進(jìn)單片機(jī)內(nèi)部,故無(wú)需編程器,而且速度比通用編程器快。2. max232簡(jiǎn)介max232芯片(如圖3-7所示)是美信公司專(zhuān)門(mén)為電腦的rs-232標(biāo)準(zhǔn)串口設(shè)計(jì)的接口電路,使用v電源供電。內(nèi)部結(jié)構(gòu)基本可分三個(gè)部分:第一部分是電荷泵電路。由芯片的1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生v和v兩個(gè)電源,提供給rs-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由芯片的7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(r1in)、12腳(r1out)、11腳(t1in)、14

41、腳(t1out)為第一數(shù)據(jù)通道。8腳(r2in)、9腳(r2out)、10腳(t2in)、7腳(t2out)為第二數(shù)據(jù)通道。ttl/cmos數(shù)據(jù)從t1in、t2in輸入轉(zhuǎn)換成rs-232數(shù)據(jù)從t1out、t2out送到電腦db9插頭;db9插頭的rs-232數(shù)據(jù)從r1in、r2in輸入轉(zhuǎn)換成ttl/cmos數(shù)據(jù)后從r1out、r2out輸出11。第三部分是供電。15腳gnd、16腳vcc(v)。16 15 14 13 12 11 10 91121314151617181c1+ v+ c1- c2+ c2- v- t2out r2in vcc gnd t1out r1in r1out t1in

42、t2in r2out 圖3-7 max232芯片引腳圖3. isp下載電路圖3-8 下載電路圖如圖3-8所示stc系列單片機(jī)下載電路需要一片max232及五只電容即可,電路簡(jiǎn)單易行。兩個(gè)發(fā)光二極管在下載程序時(shí)會(huì)不斷閃爍,方便用戶(hù)觀察。下載程序時(shí)還需要使用stc提供的下載軟件stc_isp.exe,軟件界面如圖3-9所示。圖3-9 軟件界面圖下載步驟:(1) 選擇mcu類(lèi)型:stc89c53rc。(2) 將編譯鏈接代碼文件形成的為擴(kuò)展的文件調(diào)入緩沖區(qū),每次調(diào)入,都會(huì)使校驗(yàn)和改變。(3) 選擇pc串口,若沒(méi)有串口,則需要usb轉(zhuǎn)串口轉(zhuǎn)換器。波特率可以使用默認(rèn)值;若通信不正常,可以將波特率值降低后再

43、試,知道通信正常。(4) 不要改動(dòng)無(wú)關(guān)的一些默認(rèn)值。(5) 點(diǎn)擊“download/下載”按鈕,屏幕提示單片機(jī)上電,這時(shí)pc等待單片機(jī)冷啟動(dòng)(給單片機(jī)通電),隨后就可以看到hex文件寫(xiě)入單片機(jī)。給單片機(jī)斷電,點(diǎn)擊“donload/下載”按鈕,單片機(jī)上電,消息框提示握手成功,幾秒種后程序下載完畢,單片機(jī)自動(dòng)開(kāi)始運(yùn)行下載的程序9。3.2 lcd顯示電路的設(shè)計(jì)lcd顯示電路部分為該設(shè)計(jì)系統(tǒng)的主要部分。在前面已經(jīng)介紹了lcd顯示模塊kxm12864j的顯示原理,在此不再重復(fù)敘述。kxm12864j的d0d7端口與單片機(jī)p0口相連,用于數(shù)據(jù)傳輸(單片機(jī)的p0口連接了10k的排阻,用于拉高電平)。e、r/

44、w、rs、cs1、cs2分別與單片機(jī)的p2.0p2.4相連,用于控制。顯示電路圖如圖3-10所示。圖3-10 顯示電路圖kxm12864j的接線需要注意以下幾點(diǎn):1. 在kxm12864j和單片機(jī)連接。不同的12864lcd部分引腳功能不同,而且不對(duì)應(yīng)。連接時(shí)應(yīng)對(duì)應(yīng)所用型號(hào)lcd的引腳圖逐個(gè)接線,以免因接線錯(cuò)誤燒壞lcd。2. kxm12864j背光的連接。kxm12864j的19、20引腳分別為led+和led-,是背光電源引腳。在接線時(shí),led+要接v電源,led-接系統(tǒng)的地,如圖3-11所示。lcmlcm20195v圖3-11 背光電路圖3. kxm12864j亮度調(diào)節(jié)的電路連接。kxm

45、12864j的18引腳為vee,輸出-10v的負(fù)電壓(單電源供電),3引腳為vlcd是lcd的驅(qū)動(dòng)負(fù)電壓。kxm12864j需要連接一個(gè)電位器,用于調(diào)節(jié)背光的亮度。設(shè)計(jì)中選用電位器的可調(diào)范圍為020k。線路連接方式如圖3-12所示。lcd-vlcdlcd-veer320kvcc 圖3-12 亮度調(diào)節(jié)電阻連接圖3.3 按鍵電路的設(shè)計(jì) 電路板的功能鍵可以使用矩陣鍵盤(pán),也可以使用獨(dú)立按鍵,在本設(shè)計(jì)中采用獨(dú)立按鍵。根據(jù)系統(tǒng)功能需要,使用了六個(gè)獨(dú)立按鍵。四個(gè)操作按鍵的功能分別為左移、快速下移、右移、翻轉(zhuǎn),分別與單片機(jī)的p1.0p1.3口相接;變形鍵和確定/暫停鍵分別與單片機(jī)的p1.4p1.5口相接。當(dāng)有

46、鍵按下時(shí),則對(duì)應(yīng)端口電平被拉低。系統(tǒng)中設(shè)置了定時(shí)器中斷,定時(shí)對(duì)按鍵進(jìn)行掃描,當(dāng)掃描到有鍵按下時(shí),執(zhí)行相應(yīng)程序完成相應(yīng)功能。鍵盤(pán)接口電路如圖3-13所示。圖3-13 鍵盤(pán)接口電路3.4 聲音電路的設(shè)計(jì)為了增加游戲的娛樂(lè)性系統(tǒng)中增設(shè)由蜂鳴器產(chǎn)生的游戲聲音,通過(guò)編程控制蜂鳴器在游戲進(jìn)程中發(fā)出不同的音調(diào)。這部分電路設(shè)計(jì)比較簡(jiǎn)單,由一個(gè)蜂鳴器,一個(gè)三極管驅(qū)動(dòng)和一個(gè)200的限流電阻組成。當(dāng)向蜂鳴器送入脈沖時(shí),蜂鳴器就會(huì)發(fā)出聲音10。改變輸入脈沖頻率蜂鳴器所發(fā)聲音的音調(diào)就會(huì)發(fā)生變化。蜂鳴器電路圖如圖3-14所示。圖3-14 蜂鳴器電路4 系統(tǒng)軟件的設(shè)計(jì)本系統(tǒng)軟件設(shè)計(jì)主要分為三部分:lcd顯示部分、功能按鍵部

47、分和音樂(lè)部分。主程序中有兩個(gè)循環(huán):在一個(gè)圖形下落到底時(shí)將下一個(gè)圖形設(shè)定為當(dāng)前圖形并產(chǎn)生新的下一個(gè)圖形為大循環(huán),當(dāng)前下落圖形的狀態(tài)檢測(cè)和自動(dòng)下移為小循環(huán)換。本設(shè)計(jì)軟件編程主程序流程圖如圖4-1所示。程序清單見(jiàn)附錄二。開(kāi)始給定時(shí)器0賦初值開(kāi)定時(shí)器初始化否計(jì)時(shí)顯示按鍵操作下落到底?是否音樂(lè)闖關(guān)成功?闖關(guān)失???產(chǎn)生圖形否否有滿(mǎn)行?消行積分是圖形下移一行是是圖4-1 主程序流程圖4.1 lcd顯示子程序顯示分為兩部分:左半屏顯示游戲;右半屏顯示游戲進(jìn)程的相關(guān)信息,包括下一個(gè)圖形形狀、當(dāng)前速度、游戲積分、游戲時(shí)間和游戲等級(jí)。本設(shè)計(jì)選用的kxm12864j型lcd,為128列、8頁(yè)(每頁(yè)8行)的點(diǎn)陣顯示屏。

48、它的使用有兩個(gè)基本操作:送指令和送數(shù)據(jù)。通過(guò)“page0x7; page0xb8; lcdcmd(page);”語(yǔ)句選定顯示屏的頁(yè);“column0x40;column0x3f; lcdcmd(column);” 語(yǔ)句選定顯示屏的列。主要用于顯示字符、顯示圖形、設(shè)定游戲顯示區(qū)域和清屏。4.1.1 顯示字符子程序否開(kāi) 始選取字模首位置設(shè)定顯示起始列colume,i=5+columei64?是選擇右屏選擇左屏選擇頁(yè)、列寫(xiě)入字模+i,i5+colume?否是結(jié) 束圖4-2 lcd顯示流程圖顯示流程圖如圖4-2所示。每個(gè)字符為58點(diǎn)陣,即字符占5列、8行的點(diǎn)陣,采用列行式的輸入方法。每個(gè)字符有五個(gè)字模

49、,字符取字模后存入asii數(shù)組。通過(guò)選擇asii的腳標(biāo)選擇需要輸出字符的字模(取模方式已在lcd簡(jiǎn)介中介紹)。4.1.2 顯示圖形子程序本設(shè)計(jì)定義了七個(gè)圖形,每個(gè)圖形由四個(gè)小方塊構(gòu)成,小方塊為33的點(diǎn)陣。圖形定義在cube數(shù)組中13。七個(gè)圖形的形狀如圖4-3所示。圖4-3 七種顯示圖形 每個(gè)圖形的顯示,是將小方塊寫(xiě)入指定區(qū)域。圖形顯示流程圖如圖4-4所示。開(kāi) 始i 4 ?是否寫(xiě)入圖形的模選擇行、列i=0i=i-1結(jié) 束圖4-4 中斷程序流程圖4.1.3 設(shè)定游戲顯示區(qū)域子程序本設(shè)計(jì)將游戲顯示區(qū)設(shè)定在左半屏,顯示區(qū)寬度為48列,高度為62行??梢匀菁{33的小方塊16列,21行。按照所用顯示屏的列

50、行式顯示方法,將左半屏的最頂行和最底行寫(xiě)入高電平,顯示屏左起第2列和第51列送入高電平,其它位置寫(xiě)入“0”,這樣就可以在藍(lán)色顯示屏上顯示出一個(gè)白框。4.1.4 清屏子程序清屏包括整體清屏和部分清屏,在程序除的位置再寫(xiě)入“0”即可。清屏的應(yīng)用,可使圖形和字符清晰顯示,使顯示界面更加中選擇要清整潔。部分程序如下所示。void lcdclear(void) uchar i,page; cs1=0; cs2=1; for(page=0;page8;page+) lcdsetpage(page); lcdsetcolumn(0); for(i=0;i64;i+)lcdwritebyte(0); cs1=

51、1; cs2=0; for(page=0;page8;page+) lcdsetpage(page); lcdsetcolumn(0); for(i=0;i64;i+) lcdwritebyte(0); 4.1.5 顯示計(jì)時(shí)子程序計(jì)時(shí)流程圖如圖4-5所示。中斷入口t0ms=50? downtimegapdowntimegap=50?產(chǎn)生中斷?+s20=20?是是否否t0ms=0?是是是否否按鍵掃描downtimegap+,t0ms=+t0ms%100+m+s=60?結(jié) 束否改變“:”狀態(tài)圖形下移一行設(shè)置中斷初值,開(kāi)中斷圖4-5 計(jì)時(shí)程序流程圖本設(shè)計(jì)在按鍵掃描、游戲計(jì)時(shí)、圖形自動(dòng)下移中均應(yīng)用到時(shí)間。在此利用單片機(jī)的定時(shí)器t0使用方式1來(lái)實(shí)現(xiàn)所有的計(jì)時(shí)和定時(shí)。所用的定時(shí)器方式在每次中斷后要重新載入初值,設(shè)置每次中斷的時(shí)間為10m

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論