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

正文內(nèi)容

基于51單片機(jī)的俄羅斯方塊游戲課設(shè)-預(yù)覽頁

2025-12-09 07:06 上一頁面

下一頁面
 

【正文】 .....XVI 附錄 1: C 語言程序 ........................................................................................................... 17 附錄 2:電路原理圖 .......................................................................................................... 46 整體設(shè)計方案 系統(tǒng)的核心部分單片機(jī) 單片機(jī)的選擇 單片機(jī)微型計算機(jī)是微型計算機(jī)的一個重要分支,也是頗具生命力的機(jī)種。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機(jī)控制系統(tǒng)。 有的單片機(jī)針對某一個應(yīng)用領(lǐng)域,集成了相關(guān)的控制設(shè)備,以減少應(yīng)用系統(tǒng)的芯片數(shù)量。使用高級語言可以降低開發(fā)難度,縮短開發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改進(jìn)和擴(kuò)充功能。 4. 低價格 單片機(jī)應(yīng)用面廣 ,使用數(shù)量大,帶來的直接好處就是成本的降低。使用 Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè) 80C51 產(chǎn)品指令和引腳完全兼 容。 AT89S52具有以下標(biāo)準(zhǔn)功能: 8K字節(jié) Flash, 256字節(jié) RAM, 32位 I/O口線,看門狗定時器, 2個數(shù)據(jù)指針,三個 16位定時器 /計數(shù)器,一個 6向量 2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。 AT89S52單片機(jī)有 PDIP、 PLCC、 TQFP三種封裝方式,在此我選用 DPIP也就是雙列直插封裝的單片機(jī)此種封裝有如下特點: 1. 適合 PCB的穿孔安裝 ; 2. 易于對 PCB布線 ; 3. 操作方便 ; IV AT89S52 引腳功能描述 AT89S52 單片機(jī)的管腳說明如圖 21所示: 圖 21 DIP封裝 AT89S52單片機(jī)引腳結(jié)構(gòu)圖 1. VCC:電源。對 P0端口寫“ 1”時,引腳用作高阻抗輸入。程序校驗時,需要外部上拉電阻。此外, /計數(shù)器 2的外部計數(shù)輸入( )和時器 /計數(shù)器 2的觸發(fā)輸入( ),具體如表 21所示: 在 Flash編程和校驗時, P1口接收低 8位地址字節(jié)。在訪問外部程序存儲器或用 16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行 MOVX DPTR)時, P2口送出高八位地址。 6. P3口( ~ ): P3 口是一個具有內(nèi)部上拉電阻的 8位雙向 I/O口, P2輸出緩沖器能驅(qū)動 4個 TTL邏輯電平。 RST:復(fù)位輸入。 DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲器時, ALE 脈沖將會跳過。這個 ALE使能標(biāo)志位(地址為 8EH的 SFR的第 0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。為使能從 0000H到 FFFFH的外部程序存儲器讀取指令, EA 必須接 GND。 XTAL2:振蕩器反相放大器的輸出端。 液晶顯示控制驅(qū)動器 HD61202 的特點 HD61202 液晶顯示控制驅(qū)動器是一種帶有驅(qū)動輸出的圖形液晶顯示控制器,它可直接與 8 位微處理器相連,它可與 HD61203 配合對液晶屏進(jìn)行行、列驅(qū) 動。 HD61202 的引腳功能如下表 23所示: 表 23 HD61202的引腳功能 引腳符號 狀態(tài) 引腳名稱 功能 CS1,CS2,CS3 輸入 芯片片選端 CS1和 CS2低電平選通, CS3高電平選通。 2. 顯示起始行( ROW)設(shè)置指令 該指令設(shè)置了對應(yīng)液晶屏最上一行的顯示 RAM 的行號,有規(guī)律的改變顯示起始行,可以使 LCD 實現(xiàn)顯示滾屏的效果。在對 HD61202 操作之前要查詢 BUSY 狀態(tài),以確定是否可以對 HD61202 進(jìn)行操作。顯示起始行設(shè)置中 L5~ L0 為顯示起始行的地址,取值在 03FH(164 行 )范圍內(nèi)。 D0 代表最上一行的點數(shù)據(jù), D1 為第二行的點數(shù)據(jù) , ??D7 為第八行的點數(shù)據(jù)。由于 HD61202 顯示存儲器的特性,不能將計算機(jī)內(nèi)的漢字庫和其它字模庫提出直接使用,需要將其旋轉(zhuǎn) 90 度后再寫入。裝入字庫至軟字庫 */ mov bh,6 /*AL=30h 取點陣信息 */ int 10h /*BH=6 取 ROM8X16 點陣指針 (VGA) */ mov ax,es /*出口: ES:BP 指向字庫指針 */ mov ascii_es,ax mov ax,bp mov ascii_bp,ax }。 /*讀 16 字節(jié)點陣數(shù)據(jù) */ for(m=0。} else { beginbyte=15。j++) ascii8x16[m]=(ascii8x16[m]+ (buf[beginbytej](shiftnm))amp。所有字符按照 ASCII 值從小到大升序排列。 HZK16 文件的字符為 1616 點陣。 數(shù)據(jù)重新排列,并按 MCS51 匯編程序的要求寫成相應(yīng)格式的文本文件。 fread(buf,sizeof(unsigned char),32,cclibfile)。 shiftn=7。 shiftn=15。 shiftn=23。j8。對已有的圖形可采用掃描儀進(jìn)行掃描,然后用圖形處理軟件進(jìn)行處理,再將 BMP 格式文件轉(zhuǎn)換成 MCS51 的匯編文件的格式。下面子程序中設(shè)指令代碼寄存器為 COMM,數(shù)據(jù)寄存器為 DATA。下面主要介紹一下JM12864J的邏輯電路圖 。 XII JM12864J 的應(yīng)用 以下內(nèi)容為以單片機(jī) 89S52 為例機(jī)的接口電路,控制電路為直接訪問方式的接口電路。當(dāng)方塊堆滿一行時,方塊正確消除,并將分?jǐn)?shù)累計在屏幕右側(cè),同時消除多行方塊時,分?jǐn)?shù)有額外獎勵。 uchar miao=0,fen=0。 typedef struct{ uchar code * box。 char column。 uchar speed=1。 //////////////////////////////////////////////////////////////////////////////// 21 void lcdCmd(uchar cmd) { bit ea。 RW=0。 EN=1。 RS=1。 EN=1。 page +=0xb8。 column +=0x40。 p=5*index。 CS2=0。 temp=i64。 } } // //rectangle(3,0,50,60) void rectangle(void) 23 { uchar i,page。 lcdSetColumn(2)。 LCD=0xff。 for(i=3。 RW=0。 EN=0。 LCD=0xff。 // for(page=1。 EN=0。 EN=1。i51。 LCD=0x0。 } EN=0。 EN=1。 lcdSetColumn(2)。 LCD=0x1f。 for(i=3。 RW=0。 EN=0。 LCD=0x1f。 } // //x:列; y 行,頁 3*3 void lcdPutPix(uchar x, uchar y,uchar flag) { uchar i,dat,bitmask,nextbit。 bflag=0。 else if(i==1) 26 bitmask=0xe。 else if(i==5) bitmask=0xe0。 } else if(i==7) { bflag=1。 CS2=0。 } else pflag=1。i++) { if(pflag) { if(i==62 || i==63) { CS1=1。amp。 } } lcdSetColumn(i)。 LCD=0xff。 EN=0。 if(flag==1) dat|=bitmask。 EN=0。 EN=1。 } if(bflag) { lcdSetPage(y/8+1)。 CS2=0。 i==64) { CS1=0。 ea=EA。 RS=1。 EN=1。 else datamp。 RW=0。 EN=1。 CS1=1。page++) { lcdSetPage(page)。i++) lcdWriteByte(0)。page8。i64。 lcdClear()。 lcdPlayChar(13,0,STAR+2*WIDE)。 31 lcdPlayChar(17,3,STAR+2*WIDE)。 lcdPlayChar(1,4,STAR+3*WIDE)。 lcdPlayChar(21,5,STAR+3*WIDE)。 lcdPlayChar(0,6,STAR+3*WIDE)。 lcdPlayChar(10,7,STAR+2*WIDE)。 char i。i5。i0。i1。 } // void timeServer(void) { if(timeupdate) { timeupdate=0。 lcdPlayChar(miao/10,7,STAR+3*WIDE)。 } } 33 //=================================================================== void t0isr(void) interrupt 1 { uchar key。 t0ms=++t0ms%100。 } if(t0ms==50) fashionupdate=1。 KEYROTATION=1。 if(!KEYROTATION) key=2。 } break。 } else keystate=0。 keyflag=0。 for(i=0。j4。 temp=1。 =0。 showNextCube(cube+16*next,19,3)。hang) { if(cubeMap[hang][0]==0 amp。lie(MAXLIE/8)。 if(cubeMap[hang][lie]amp。 if(cubeMap[hang][lie]amp。 if(cubeMap[hang][lie]amp。 if(cubeMap[hang][lie]amp。 for(row=0。column4。 cubeMap[hang][lie/8] |=bittable[lie%8]。 uchar hang,lie。 for(column=0。 lie=+column。 } 38 temp=1。 else if([2]!=0 amp。amp。 (MAXHANG1)) return 1。 0x01) ||([3] amp。 0x02) || ([2] amp。 0x04) || ([1] amp。 } 39 else if(([0] amp。 0x08) ) { if(3) return 1。 0x08) ||([3] amp。 0x04) || ([2] amp。 0x02) || ([1] amp。 } else if(([0] amp。 0x08) ) { if((MAXLIE1)) return 1。 for(row=0。column4。 if(cubeMap[hang][lie/8] amp。 } //
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1