基于單片機(jī)的簡易酒店點(diǎn)菜系統(tǒng).doc_第1頁
基于單片機(jī)的簡易酒店點(diǎn)菜系統(tǒng).doc_第2頁
基于單片機(jī)的簡易酒店點(diǎn)菜系統(tǒng).doc_第3頁
基于單片機(jī)的簡易酒店點(diǎn)菜系統(tǒng).doc_第4頁
基于單片機(jī)的簡易酒店點(diǎn)菜系統(tǒng).doc_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章.設(shè)計總體思路與系統(tǒng)框圖1.1設(shè)計總體思路 根據(jù)設(shè)計要求我們可知酒店點(diǎn)菜終端系統(tǒng)由控制模塊,液晶顯示模塊,鍵盤模塊組成。控制模塊有80C51和80C52可供選擇,但考慮到程序占用的空間比較大,所以我選擇了80C52單片機(jī)。對于液晶顯示模塊我們這里采用的是LCD12864(64行128列組成)。對于鍵盤模塊由于只要用到三個鍵,故我們可以用三個按鍵分別來實現(xiàn)上移,確定,下移功能。再加以簡單的輔助電路和C語言程序就可以構(gòu)成簡單的酒店點(diǎn)菜終端系統(tǒng),在此,我們采用proteus軟件進(jìn)行仿真。1.2系統(tǒng)框圖按照設(shè)計思路,系統(tǒng)框圖如下:AT89C52AMPIRE128X64鍵盤控制模塊圖一 系統(tǒng)框圖1.3系統(tǒng)顯示框圖將各模塊在Proteus仿真軟件中連接好后,點(diǎn)擊“運(yùn)行”,結(jié)合鍵盤上的“上移”、“確定”、“下移”鍵可以在LCD上看到開機(jī)畫面、各系菜單以及其子菜單。顯示框圖如圖二。開始 顯示作者名稱字樣返回湘菜粵菜蘇菜浙菜閩菜川菜魯菜各菜系子菜單顯示 點(diǎn)菜成功!圖二 顯示框圖第2章.單元函數(shù)模塊設(shè)計2.1 AT89C52單片機(jī)控制模塊 2.1.1AT89C52介紹 AT89C52是一個低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C52單片機(jī)在電子行業(yè)中有著廣泛的應(yīng)用。AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規(guī)方法進(jìn)行編程,但不可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效地降低開發(fā)成本。2.1.2AT89C52管腳圖 AT89C52管腳圖如下: 圖三 AT89C52管腳圖2.1.3頭文件注解 在用c語言編程是往往第一行就是reg52.h或者其他的自定義頭文件,系統(tǒng)編程將要使用到兩個頭文件,分別是reg52.h和code.h。下面就reg52.h頭文件作簡單解釋,code.h頭文件的編寫主要是為了存放菜單中所要使用的漢字的字模,以便主程序調(diào)用,程序清單將在附錄中給出。程序的第一行是一個“文件包含”處理,所謂“文件包含”是指一個文件將另外一個文件的內(nèi)容全部包含進(jìn)來。程序中包含REG51.h頭文件的目的是為了要使用P1 (還有其他更多的符號)這個符號,即通知C 編譯器,程序中所寫的P1 是指80C51 單片機(jī)的P1 端口而不是其它變量。2.2鍵盤控制模塊2.2.1鍵盤功能本系統(tǒng)采用的是三個BUTTON分別實現(xiàn)“上移”,“確定”,“下移”三個功能,有了這三個鍵我們就能實現(xiàn)菜單,子菜單,功能的進(jìn)入和返回。圖四 鍵盤控制模塊2.2.2鍵盤控制程序 程序中我定義了P3.0,P3.4,P3.7分別為“上移”,“確定”,“下移”三個功能按鍵。按鍵引腳的一端接單片機(jī),一端接低電平,當(dāng)單片機(jī)接收到某個端口的低電平是就表示拿個按鍵已經(jīng)按下。否則表示按鍵沒按下,為了更好的實現(xiàn)按鍵的準(zhǔn)確性我加入了消抖程序與松手檢測程序。按鍵判斷程序如下:void keyscan() /按鍵判斷 if(qd=0) delay(5); if(qd=0)while(!qd); n=1; if(sy=0) delay(5); if(sy=0)while(!sy); m+;if(m7)m=0; if(xy=0) delay(5); if(xy=0)while(!xy); m-;if(m=255)m=7; 2.3 LCD顯示模塊2.3.1 LCD12864功能介紹 AMPIRE128x64管腳一共18個(見圖五),CS1左半屏片選端,CS2右半屏片選端;VCC、GND就是電源、接地引腳,V0液晶顯示驅(qū)動電壓,RS數(shù)據(jù)指令選擇信號,H為數(shù)據(jù),L為指令,也叫D/I,即DATA和INSTRUCTIONS這兩個單詞的縮寫。R/W讀寫選擇信號。E為LCD使能端,R/W為L時,E信號下降沿鎖存DB7-DB0;R/W為H時,E為H,DDRAM數(shù)據(jù)讀到DB7-DB0,如果只寫不讀的話可以接地處理。DB0-DB7數(shù)據(jù)傳輸端口。RST為復(fù)位信號,-VOUT為液晶顯示驅(qū)動電壓。2.3.2 LCD12864指令說明 AMPIRE128x64共有7個指令,下面分別加以說明:顯示開關(guān) :0x3e 關(guān);0x3f開(R/W=0,RS=0)。顯示起始行:0xc0+i , i取值0至63(R/W=0,RS=0)。設(shè)置DDRAM頁地址(X地址):0xb8+i,i取值0至7(R/W=0,RS=0),設(shè)置Y地址:0x40+i,i取值0至63(R/W=0,RS=0)。寫數(shù)據(jù):將數(shù)據(jù)線上的數(shù)據(jù)DB7-DB0寫到DDRAM 。Y地址指針自動加1(R/W=0,RS=1)。讀數(shù)據(jù):將DDRAM中的數(shù)據(jù)讀入1數(shù)據(jù)線DB7-DB0 。Y地址指針自動加1(R/W=1,RS=1)。指令表如表一所示 表一 LCD12864指令表2.3.3 LCD驅(qū)動程序驅(qū)動程序如下:void CheckState()uchar dat;/狀態(tài)信息(判斷是否忙) RS=0; / 數(shù)據(jù)指令選擇,D/I(RS)=“L” ,表示 DB7DB0 為顯示指令數(shù)據(jù) RW=1; /R/W=“H” ,E=“H”數(shù)據(jù)被讀到DB7DB0 doDATA=0x00; EN=1;/EN下降沿dat=DATA; EN=0; dat=0x80 & dat; 僅當(dāng)?shù)?位為0時才可操作(判別busy信號) while(!(dat=0x00); /*寫命令到LCD中*/SendCommandToLCD(uchar com)CheckState();/狀態(tài)檢查,LCD是否忙 RS=0; /向LCD發(fā)送命令。RS=0寫指令,RS=1寫數(shù)據(jù) RW=0;/R/W=“L” ,E=“HL”數(shù)據(jù)被寫到 IR 或 DR DATA=com; /com :命令 EN=1;/EN下降沿 EN=0;/*設(shè)置頁 0xb8是頁的首地址*/void Setpage(uchar page)page=0xb8|page; /1011 1xxx 0=page=7 設(shè)定頁地址-X 0-7,8行為一頁64/8=8,共8頁 SendCommandToLCD(page); /*設(shè)定顯示開始行,0xc0是行的首地址*/void SetStartLine(uchar startline) startline=0xc0|startline; /1100 0000 SendCommandToLCD(startline); /設(shè)置從哪行開始:0-63,一般從0 行開始顯示/*設(shè)定列地址-Y 0-63 ,0x40是列的首地址*/void SetColumn(uchar column)column=column &0x3f; /column最大值為64,越出 0=column=63 column= 0x40|column; /01xx xxxx SendCommandToLCD(column); /*開關(guān)顯示,0x3f是開顯示,0x3e是關(guān)顯示*/void SetOnOff(uchar onoff) onoff=0x3e|onoff; /0011 111x,onoff只能為0或者1 SendCommandToLCD(onoff);/*寫顯示數(shù)據(jù) */void WriteByte(uchar dat)CheckState();/狀態(tài)檢查,LCD是否忙 RS=1; /RS=0寫指令,RS=1寫數(shù)據(jù) RW=0;/R/W=“L” ,E=“HL”數(shù)據(jù)被寫到 IR 或 DR DATA=dat;/dat:顯示數(shù)據(jù) EN=1; /EN下降源 EN=0;/*選擇屏幕screen: 0-全屏,1-左屏,2-右屏*/void SelectScreen(uchar screen) switch(screen) case 0: cs1=1;/全屏 cs2=1; break; case 1: cs1=1;/左屏 cs2=0; break; case 2: cs1=0;/右屏 cs2=1; break; /*清屏screen: 0-全屏,1-左屏,2-右屏*/void ClearScreen(uchar screen) uchar i,j; SelectScreen(screen); for(i=0;i8;i+) /控制頁數(shù)0-7,共8頁 Setpage(i); for(j=0;j64;j+) /控制列數(shù)0-63,共64列 SetColumn(j); WriteByte(0x00); /寫點(diǎn)內(nèi)容,列地址自動加1 void InitLCD() /初始化LCD CheckState(); SelectScreen(0); SetOnOff(0); /關(guān)顯示 SelectScreen(0); SetOnOff(1); /開顯示 SelectScreen(0); ClearScreen(0);/清屏 SetStartLine(0); /開始行:0第3章.系統(tǒng)仿真與結(jié)果3.1 開機(jī)顯示 利用proteus軟件仿真,點(diǎn)擊運(yùn)行之后會顯示如下的開機(jī)畫面。 圖五 開機(jī)顯示畫面 圖中菜單為反白顏色,按下“確定”鍵后即可進(jìn)入菜單。3.2 主菜單顯示系統(tǒng)開機(jī)后,按下“確定”鍵即可進(jìn)入主菜單。主菜單顯示如下: 圖六 主菜單顯示3.3 子菜單顯示 在子菜單中分別有幾道菜供顧客享用,當(dāng)顧客按下“上移”或“下移”鍵選中想要的菜系再按下“確定”鍵就可以進(jìn)入該菜系,再選擇自己想要的菜系按下“確定”鍵即可點(diǎn)菜成功。子菜單顯示如下: 圖七 子菜單顯示3.4 點(diǎn)菜成功顯示當(dāng)顧客選擇到自己想要吃的菜并按下“確定”鍵后就表示顧客點(diǎn)菜成功。點(diǎn)菜成功顯示如下: 圖八 點(diǎn)菜成功顯示當(dāng)顧客再次按下“確定”鍵后返回菜系菜單,并且已經(jīng)點(diǎn)過的菜會以一個鉤表示。如下圖: 圖九 顯示已點(diǎn)菜第4章.總結(jié)與體會 短短兩周的專業(yè)設(shè)計結(jié)束了,回顧這兩周我的努力,我覺得我還是收獲蠻大的,通過這兩周的專業(yè)設(shè)計,我對單片機(jī)有了更深的認(rèn)識,對LCD12864有了更深入的了解,單片機(jī)其實說簡單點(diǎn)就是用軟件控制單片機(jī)各個腳的電平變化,但是實踐中還是挺有難度的,這次專業(yè)設(shè)計我接到的任務(wù)是做一個簡易的酒店點(diǎn)菜終端系統(tǒng),剛開始覺得挺有難度的,主要是我對LCD12864一無所知,但是經(jīng)過上網(wǎng)查找資料及通過看LCD12864的指導(dǎo)手冊終于弄懂了這個液晶顯示屏,其實一個看似簡單的電路,要把他設(shè)計出來就比較困難了,這次設(shè)計我用的編程語言是C語言,其實單片機(jī)的C語言我通過看網(wǎng)上的視頻還是有所了解。所以這次編程還算比較順利,剛開始我只做了兩大的菜系,我想這其中的難點(diǎn)就是怎樣進(jìn)入各個子菜單及其返回以及光標(biāo)的上下移動,我的方法其實也挺簡單,就是將選中的菜系字體取反白顯示出來。另一個難點(diǎn)就是鍵盤掃描了,剛開始我出了點(diǎn)小狀況,就是按下確定鍵后不會進(jìn)入各個菜單,后來認(rèn)識思考之后才發(fā)現(xiàn)用!n代替就行了。每次按鍵按下n自動取反,最后一個就是各個菜單的顯示比較難了,因為你移動一下就是一個狀態(tài),最后我經(jīng)過仔細(xì)的思考覺得用個 switchcase語句一下子就出來了,雖然這樣會顯得程序比較復(fù)雜,但是我還沒有想到其他更好的簡單辦法所以就用了這個。 通過這兩周的學(xué)習(xí),我學(xué)到了很多,畢竟自己也做出了一點(diǎn)東西,蠻有成就感的,其實我也知道這只是冰山一角,要想真正的弄通單片機(jī),今后的學(xué)習(xí)道路還很漫長,我想我也會深深的記住這次課設(shè)給我的經(jīng)驗與教訓(xùn),在今后的學(xué)習(xí)中一定要多思考,多實踐,那樣我才會真正有所成就。最后衷心感謝陳老師在這兩周對我的細(xì)心指導(dǎo)。附錄5.1 仿真電路圖5.2 程序清單#include #include #include #define uint unsigned int#define uchar unsigned char#define DATA P0 /LCD12864數(shù)據(jù)線sbit sy=P30;sbit qd=P34;sbit xy=P37;sbit RS=P20; / 數(shù)據(jù)指令 選擇sbit RW=P21; / 讀寫 選擇sbit EN=P22; / 讀寫使能sbit cs1=P23; / 片選1sbit cs2=P24; / 片選2void menuselect();void keyscan();void lucai();void dccg(uchar b);void lucai2();void chuancai();void sorry();void lucaia();uchar n,m,k;/*狀態(tài)檢查,LCD是否忙*/void CheckState()uchar dat;/狀態(tài)信息(判斷是否忙) RS=0; / 數(shù)據(jù)指令選擇,D/I(RS)=“L” ,表示 DB7DB0 為顯示指令數(shù)據(jù) RW=1; /R/W=“H” ,E=“H”數(shù)據(jù)被讀到DB7DB0 doDATA=0x00; EN=1;/EN下降沿dat=DATA; EN=0; dat=0x80 & dat; /僅當(dāng)?shù)?位為0時才可操作(判別busy信號) while(!(dat=0x00); /*寫命令到LCD中*/SendCommandToLCD(uchar com)CheckState();/狀態(tài)檢查,LCD是否忙 RS=0; /向LCD發(fā)送命令。RS=0寫指令,RS=1寫數(shù)據(jù) RW=0;/R/W=“L” ,E=“HL”數(shù)據(jù)被寫到 IR 或 DR DATA=com; /com :命令 EN=1;/EN下降沿 EN=0;/*設(shè)置頁 0xb8是頁的首地址*/void Setpage(uchar page)page=0xb8|page; /1011 1xxx 0=page=7 設(shè)定頁地址-X 0-7,8行為一頁64/8=8,共8頁 SendCommandToLCD(page); /*設(shè)定顯示開始行,0xc0是行的首地址*/void SetStartLine(uchar startline) startline=0xc0|startline; /1100 0000 SendCommandToLCD(startline); /設(shè)置從哪行開始:0-63,一般從0 行開始顯示/*設(shè)定列地址-Y 0-63 ,0x40是列的首地址*/void SetColumn(uchar column)column=column &0x3f; /column最大值為64,越出 0=column=63 column= 0x40|column; /01xx xxxx SendCommandToLCD(column); /*開關(guān)顯示,0x3f是開顯示,0x3e是關(guān)顯示*/void SetOnOff(uchar onoff) onoff=0x3e|onoff; /0011 111x,onoff只能為0或者1 SendCommandToLCD(onoff);/*寫顯示數(shù)據(jù) */void WriteByte(uchar dat)CheckState();/狀態(tài)檢查,LCD是否忙 RS=1; /RS=0寫指令,RS=1寫數(shù)據(jù) RW=0;/R/W=“L” ,E=“HL”數(shù)據(jù)被寫到 IR 或 DR DATA=dat;/dat:顯示數(shù)據(jù) EN=1; /EN下降源 EN=0;/*選擇屏幕screen: 0-全屏,1-左屏,2-右屏*/void SelectScreen(uchar screen) switch(screen) case 0: cs1=1;/全屏 cs2=1; break; case 1: cs1=1;/左屏 cs2=0; break; case 2: cs1=0;/右屏 cs2=1; break; /*清屏screen: 0-全屏,1-左屏,2-右屏*/void ClearScreen(uchar screen) uchar i,j; SelectScreen(screen); for(i=0;i8;i+) /控制頁數(shù)0-7,共8頁 Setpage(i); for(j=0;j64;j+) /控制列數(shù)0-63,共64列 SetColumn(j); WriteByte(0x00); /寫點(diǎn)內(nèi)容,列地址自動加1 /*延時程序*/void delay(uint z)uint i,j; for(i=0; iz; i+) for(j = 0; j 110; j+);/*初始化LCD*/void InitLCD() CheckState(); SelectScreen(0); SetOnOff(0); /關(guān)顯示 SelectScreen(0); SetOnOff(1); /開顯示 SelectScreen(0); ClearScreen(0);/清屏 SetStartLine(0); /開始行:0/*顯示全角漢字*/void Display(uchar ss,uchar page,uchar column,uchar number)int i;/選屏參數(shù),page選頁參數(shù),column選列參數(shù),number選第幾漢字輸出 SelectScreen(ss); column=column&0x3f; Setpage(page);/寫上半頁 SetColumn(column); /控制列 for(i=0;i16;i+) /控制16列的數(shù)據(jù)輸出 WriteByte(Hzki+32*number); /i+32*number漢字的前16個數(shù)據(jù)輸出 Setpage(page+1); /寫下半頁 SetColumn(column); /控制列 for(i=0;i16;i+) /控制16列的數(shù)據(jù)輸出 WriteByte(Hzki+32*number+16);/i+32*number+16漢字的后16個數(shù)據(jù)輸出 void Display2(uchar ss,uchar page,uchar column,uchar number)int i;/選屏參數(shù),page選頁參數(shù),column選列參數(shù),number選第幾漢字輸出 SelectScreen(ss); column=column&0x3f; Setpage(page);/寫上半頁 SetColumn(column); /控制列 for(i=0;i16;i+) /控制16列的數(shù)據(jù)輸出 WriteByte(Hzki+32*number); /i+32*number漢字的前16個數(shù)據(jù)輸出 Setpage(page+1); /寫下半頁 SetColumn(column); /控制列 for(i=0;i16;i+) /控制16列的數(shù)據(jù)輸出 WriteByte(Hzki+32*number+16);/i+32*number+16漢字的后16個數(shù)據(jù)輸出 void menu()uint i; while(!n) /顯示漢字 keyscan(); for(i=0;i2;i+) Display(1,0,0+i*16,i);/*Display(選屏參數(shù)(cs1,cs2),page選頁參數(shù),column選列參數(shù),number選第幾漢字輸出)*/Display(1,0,32+i*16,i+2);Display(2,0,64+i*16,i+4);Display(2,0,96+i*16,i+6);Display(1,2,0+i*16,i+8);Display(1,2,32+i*16,i+10);Display(2,2,64+i*16,12+i*5);Display(2,2,96+i*16,17);Display(1,4,0+i*16,17);Display(1,4,32+i*16,17);Display(2,4,64+i*16,17);Display(2,4,96+i*16,17);Display(1,6,0+i*16,i+13);Display(1,6,32+i*16,17);Display(2,6,64+i*16,17);Display(2,6,96+i*16,i+15); delay(5); n=0;menuselect();/*主函數(shù)*/void main()InitLCD();/初始12864menu();void menuselect() uint i;ClearScreen(0); while(!n) keyscan(); for(i=0;i7)m=0; if(xy=0) delay(5); if(xy=0)while(!xy);m-;if(m=255)m=7; /*魯菜*/void lucai() uint i,f;ClearScreen(0); while(!n) keyscan(); for(i=0;i2;i+) switch(m%5)case 0: Display2(1,0,0+i*16,26+i);Display2(1,0,32+i*16,28+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,40+i);Display(1,2,0+i*16,31+i);Display(1,2,32+i*16,33+i);Display(2,2,64+i*16,17);Display(2,2,96+i*16,39+i*2);Display(1,4,0+i*16,35+i);Display(1,4,32+i*16,37+i);Display(2,4,64+i*16,17);Display(2,4,96+i*16,40+i);Display(1,6,0+i*16,15+i);Display(1,6,32+i*16,17);Display(2,6,64+i*16,17+i*29);Display(2,6,96+i*16,47+i);break;case 1:Display(1,0,0+i*16,26+i);Display(1,0,32+i*16,28+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,40+i);Display2(1,2,0+i*16,31+i);Display2(1,2,32+i*16,33+i);Display(2,2,64+i*16,17);Display(2,2,96+i*16,39+i*2);Display(1,4,0+i*16,35+i);Display(1,4,32+i*16,37+i);Display(2,4,64+i*16,17);Display(2,4,96+i*16,40+i);Display(1,6,0+i*16,15+i);Display(1,6,32+i*16,17);Display(2,6,64+i*16,17+i*29);Display(2,6,96+i*16,47+i);break;case2:Display(1,0,0+i*16,26+i);Display(1,0,32+i*16,28+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,40+i);Display(1,2,0+i*16,31+i);Display(1,2,32+i*16,33+i);Display(2,2,64+i*16,17);Display(2,2,96+i*16,39+i*2);Display2(1,4,0+i*16,35+i);Display2(1,4,32+i*16,37+i);Display(2,4,64+i*16,17);Display(2,4,96+i*16,40+i);Display(1,6,0+i*16,15+i);Display(1,6,32+i*16,17);Display(2,6,64+i*16,17+i*29);Display(2,6,96+i*16,47+i);break;case 3:Display(1,0,0+i*16,26+i);Display(1,0,32+i*16,28+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,40+i);Display(1,2,0+i*16,31+i);Display(1,2,32+i*16,33+i);Display(2,2,64+i*16,17);Display(2,2,96+i*16,39+i*2);Display(1,4,0+i*16,35+i);Display(1,4,32+i*16,37+i);Display(2,4,64+i*16,17);Display(2,4,96+i*16,40+i);Display2(1,6,0+i*16,15+i);Display(1,6,32+i*16,17);Display(2,6,64+i*16,17+i*29);Display(2,6,96+i*16,47+i);break;case4:Display(1,0,0+i*16,26+i);Display(1,0,32+i*16,28+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,40+i);Display(1,2,0+i*16,31+i);Display(1,2,32+i*16,33+i);Display(2,2,64+i*16,17);Display(2,2,96+i*16,39+i*2); Display(1,4,0+i*16,35+i);Display(1,4,32+i*16,37+i);Display(2,4,64+i*16,17);Display(2,4,96+i*16,40+i);Display(1,6,0+i*16,15+i);Display(1,6,32+i*16,17);Display2(2,6,64+i*16,49-i*3);Display2(2,6,96+i*16,47+i);break; delay(5); n=0;if(m%5=0)f=26;if(m%5=1)f=31;if(m%5=2)f=35;if(m%5=3) m=0;menuselect(); if(m%5=4) m=0;lucai2(); k=1;dccg(f);void dccg(uchar b)uchar i;ClearScreen(0);while(!n) keyscan();for(i=0;i2;i+)Display(1,0,0+i*16,b+i);Display(1,0,32+i*16,b+2+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,17);Display(1,2,0+i*16,17);Display(1,2,32+i*16,42+i);Display(2,2,64+i*16,44+i);Display(2,2,96+i*16,17);Display(1,4,0+i*16,17);Display(1,4,32+i*16,17);Display(2,4,64+i*16,17);Display(2,4,96+i*16,17);Display(1,6,0+i*16,17);Display(1,6,32+i*16,17);Display(2,6,64+i*16,17);Display2(2,6,96+i*16,15+i);n=0; if(k=1)lucaia(); if(k=2)chuancai(); if(k=3)lucai();void lucai2()uint i,f;ClearScreen(0); while(!n) keyscan(); for(i=0;i2;i+) switch(m%4)case 0:Display2(1,0,0+i*16,50+i);Display2(1,0,32+i*16,52+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,39+i*2);Display(1,2,0+i*16,54+i);Display(1,2,32+i*16,56+i);Display(2,2,64+i*16,17);Display(2,2,96+i*16,40+i);Display(1,4,0+i*16,58+i);Display(1,4,32+i*16,60+i);Display(2,4,64+i*16,17);Display(2,4,96+i*16,40+i);Display(1,6,0+i*16,17);Display(1,6,32+i*16,17);Display(2,6,64+i*16,17);Display(2,6,96+i*16,15+i);break;case1:Display(1,0,0+i*16,50+i);Display(1,0,32+i*16,52+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,39+i*2);Display2(1,2,0+i*16,54+i);Display2(1,2,32+i*16,56+i);Display(2,2,64+i*16,17);Display(2,2,96+i*16,40+i);Display(1,4,0+i*16,58+i);Display(1,4,32+i*16,60+i);Display(2,4,64+i*16,17);Display(2,4,96+i*16,40+i);Display(1,6,0+i*16,17);Display(1,6,32+i*16,17);Display(2,6,64+i*16,17);Display(2,6,96+i*16,15+i);break;case2:Display(1,0,0+i*16,50+i);Display(1,0,32+i*16,52+i);Display(2,0,64+i*16,17);Display(2,0,96+i*16,39+i*2);Display(1,2,0+i*16

溫馨提示

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

評論

0/150

提交評論