ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:176.59KB ,
资源ID:5870934      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/5870934.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于单片机的简易酒店点菜系统.docx)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于单片机的简易酒店点菜系统.docx

1、第1章.设计总体思路与系统框图 1.1设计总体思路 根据设计要求我们可知酒店点菜终端系统由控制模块,液晶显示模块,键盘模块组成。控制模块有80C51和80C52可供选择,但考虑到程序占用的空间比较大,所以我选择了80C52单片机。对于液晶显示模块我们这里采用的是LCD12864(64行128列组成)。对于键盘模块由于只要用到三个键,故我们可以用三个按键分别来实现上移,确定,下移功能。再加以简单的辅助电路和C语言程序就可以构成简单的酒店点菜终端系统,在此,我们采用proteus软件进行仿真。 1.2系统框图 按照设计思路,系统框图如下: A T 8 9 C

2、 5 2 AMPIRE128X64 键盘控制模块 图一 系统框图 1.3系统显示框图 将各模块在Proteus仿真软件中连接好后,点击“运行”,结合键盘上的“上移”、“确定”、“下移”键可以在LCD上看到开机画面、各系菜单以及其子菜单。显示框图如图二。 开始 显示作者名称字样 返回 湘菜 粤菜 苏菜 浙菜 闽菜 川菜 鲁菜 各菜系子菜单 显示 点菜成功! 图二 显示框图

3、 第2章.单元函数模块设计 2.1 AT89C52单片机控制模块 2.1.1AT89C52介绍 AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串

4、行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 2.1.2AT89C52管脚图 AT89C52管脚图如下: 图三 AT89C52管脚图 2.1.3头文件注解 在用c语言编程是往往第一行就是reg52.h或者其他的自定义头文件,系统编程将要使用到两个头文件,分别是reg52.h和code.h。下面就reg52.h头文件作简单解释,code.h头文件的编写主要是为了存放菜单中所要使用的汉字的字模,以便主程序调用,程序清单将在附录中

5、给出。程序的第一行是一个“文件包含”处理,所谓“文件包含”是指一个文件将另外一个文件的内容全部包含进来。程序中包含REG51.h头文件的目的是为了要使用P1 (还有其他更多的符号)这个符号,即通知C 编译器,程序中所写的P1 是指80C51 单片机的P1 端口而不是其它变量。 2.2键盘控制模块 2.2.1键盘功能 本系统采用的是三个BUTTON分别实现“上移”,“确定”,“下移”三个功能,有了这三个键我们就能实现菜单,子菜单,功能的进入和返回。 图四 键盘控制模块 2.2.2键盘控制程序 程序中我定义了P3.0,P3.4,P3.7分别为“上移”,“确定”,“下移”三

6、个功能按键。按键引脚的一端接单片机,一端接低电平,当单片机接收到某个端口的低电平是就表示拿个按键已经按下。否则表示按键没按下,为了更好的实现按键的准确性我加入了消抖程序与松手检测程序。按键判断程序如下: void keyscan() //按键判断 { if(qd==0) { delay(5); if(qd==0) { while(!qd); n=1; } } if(sy==0) { delay(5); if(sy==0) { while

7、sy); m++; if(m>7) 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液晶显示驱动电压,RS数据指令选择信号,H为数据,L为指令,也叫D/I,即

8、DATA和INSTRUCTIONS这两个单词的缩写。R/W读写选择信号。E为LCD使能端,R/W为L时,E信号下降沿锁存DB7-DB0;R/W为H时,E为H,DDRAM数据读到DB7-DB0,如果只写不读的话可以接地处理。DB0-DB7数据传输端口。RST为复位信号,-VOUT为液晶显示驱动电压。 2.3.2 LCD12864指令说明 AMPIRE128x64共有7个指令,下面分别加以说明:显示开关 :0x3e 关;0x3f开(R/W=0,RS=0)。显示起始行:0xc0+i , i取值0至63(R/W=0,RS=0)。设置DDRAM页地址(X地址):0xb8+i,i取值0至7(

9、R/W=0,RS=0),设置Y地址:0x40+i,i取值0至63(R/W=0,RS=0)。写数据:将数据线上的数据DB7-DB0写到DDRAM 。Y地址指针自动加1(R/W=0,RS=1)。读数据:将DDRAM中的数据读入1数据线DB7-DB0 。Y地址指针自动加1(R/W=1,RS=1)。指令表如表一所示 表一 LCD12864指令表 2.3.3 LCD驱动程序 驱动程序如下: void CheckState() {uchar dat;//状态信息(判断是否忙) RS=0; // 数据\指令选择,D/I(RS)=“L” ,表示 DB7∽DB

10、0 为显示指令数据 RW=1; //R/W=“H” ,E=“H”数据被读到DB7∽DB0 do{DATA=0x00; EN=1; //EN下降沿 dat=DATA; EN=0; dat=0x80 & dat; 仅当第7位为0时才可操作(判别busy信号) }while(!(dat==0x00)); } /*写命令到LCD中*/ SendCommandToLCD(uchar com) {CheckState();//状态检查,LCD是否忙 RS=0; //向LCD发送命令。RS=0写指令,RS=1写数据 RW=0;//R

11、/W=“L” ,E=“H→L”数据被写到 IR 或 DR DATA=com; //com :命令 EN=1;//EN下降沿 EN=0; } /*设置页 0xb8是页的首地址*/ void Setpage(uchar page) {page=0xb8|page; //1011 1xxx 0<=page<=7 设定页地址--X 0-7,8行为一页64/8=8,共8页 SendCommandToLCD(page); } /*设定显示开始行,0xc0是行的首地址*/ void SetStartLine(uchar startline) {startli

12、ne=0xc0|startline; //1100 0000 SendCommandToLCD(startline); //设置从哪行开始:0--63,一般从0 行开始显示 } /*设定列地址--Y 0-63 ,0x40是列的首地址*/ void SetColumn(uchar column) {column=column &0x3f; //column最大值为64,越出 0=

13、示*/ void SetOnOff(uchar onoff) {onoff=0x3e|onoff; //0011 111x,onoff只能为0或者1 SendCommandToLCD(onoff); } /*写显示数据 */ void WriteByte(uchar dat) {CheckState();//状态检查,LCD是否忙 RS=1; //RS=0写指令,RS=1写数据 RW=0;////R/W=“L” ,E=“H→L”数据被写到 IR 或 DR DATA=dat;//dat:显示数据 EN=1; //EN下降源 EN=0; } /*

14、选择屏幕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;

15、SelectScreen(screen); for(i=0;i<8;i++) //控制页数0-7,共8页 {Setpage(i); for(j=0;j<64;j++) //控制列数0-63,共64列 {SetColumn(j); WriteByte(0x00); } //写点内容,列地址自动加1 } } void InitLCD() //初始化LCD {CheckState(); SelectScreen(0); SetOnOff(0); //关显示 SelectScreen(0); SetOnOff(1); //开显示

16、 SelectScreen(0); ClearScreen(0);//清屏 SetStartLine(0); //开始行:0 } 第3章.系统仿真与结果 3.1 开机显示 利用proteus软件仿真,点击运行之后会显示如下的开机画面。 图五 开机显示画面 图中菜单为反白颜色,按下“确定”键后即可进入菜单。 3.2 主菜单显示 系统开机后,按下“确定”键即可进入主菜单。主菜单显示如下: 图六 主菜单显示 3.3 子菜单显示 在子菜单中分别有

17、几道菜供顾客享用,当顾客按下“上移”或“下移”键选中想要的菜系再按下“确定”键就可以进入该菜系,再选择自己想要的菜系按下“确定”键即可点菜成功。子菜单显示如下: 图七 子菜单显示 3.4 点菜成功显示 当顾客选择到自己想要吃的菜并按下“确定”键后就表示顾客点菜成功。点菜成功显示如下: 图八 点菜成功显示 当顾客再次按下“确定”键后返回菜系菜单,并且已经点过的菜会以一个钩表示。如下图: 图九 显示已点菜 第4章.总结与体会

18、 短短两周的专业设计结束了,回顾这两周我的努力,我觉得我还是收获蛮大的,通过这两周的专业设计,我对单片机有了更深的认识,对LCD12864有了更深入的了解,单片机其实说简单点就是用软件控制单片机各个脚的电平变化,但是实践中还是挺有难度的,这次专业设计我接到的任务是做一个简易的酒店点菜终端系统,刚开始觉得挺有难度的,主要是我对LCD12864一无所知,但是经过上网查找资料及通过看LCD12864的指导手册终于弄懂了这个液晶显示屏,其实一个看似简单的电路,要把他设计出来就比较困难了,这次设计我用的编程语言是C语言,其实单片机的C语言我通过看网上的视频还是有所了解。所以这次编程还算比较顺利,

19、刚开始我只做了两大的菜系,我想这其中的难点就是怎样进入各个子菜单及其返回以及光标的上下移动,我的方法其实也挺简单,就是将选中的菜系字体取反白显示出来。另一个难点就是键盘扫描了,刚开始我出了点小状况,就是按下确定键后不会进入各个菜单,后来认识思考之后才发现用!n代替就行了。每次按键按下n自动取反,最后一个就是各个菜单的显示比较难了,因为你移动一下就是一个状态,最后我经过仔细的思考觉得用个 switch…case语句一下子就出来了,虽然这样会显得程序比较复杂,但是我还没有想到其他更好的简单办法所以就用了这个。 通过这两周的学习,我学到了很多,毕竟自己也做出了一点东西,蛮有成就感的,其实

20、我也知道这只是冰山一角,要想真正的弄通单片机,今后的学习道路还很漫长,我想我也会深深的记住这次课设给我的经验与教训,在今后的学习中一定要多思考,多实践,那样我才会真正有所成就。最后衷心感谢陈老师在这两周对我的细心指导。 附录 5.1 仿真电路图 5.2 程序清单 #include #include #include #define uint unsigned int #define uchar unsigned char #define DATA P0 //LCD

21、12864数据线 sbit sy=P3^0; sbit qd=P3^4; sbit xy=P3^7; sbit RS=P2^0; // 数据\指令 选择 sbit RW=P2^1; // 读\写 选择 sbit EN=P2^2; // 读\写使能 sbit cs1=P2^3; // 片选1 sbit cs2=P2^4; // 片选2 void menuselect(); void keyscan(); void lucai(); void dccg(uchar b); void lucai2(); void chuancai(); void sorry();

22、void lucaia(); uchar n,m,k; /*状态检查,LCD是否忙*/ void CheckState() {uchar dat;//状态信息(判断是否忙) RS=0; // 数据\指令选择,D/I(RS)=“L” ,表示 DB7∽DB0 为显示指令数据 RW=1; //R/W=“H” ,E=“H”数据被读到DB7∽DB0 do{DATA=0x00; EN=1; //EN下降沿 dat=DATA; EN=0; dat=0x80 & dat; //仅当第7位为0时才可操作(判别busy信号) }while(!

23、dat==0x00)); } /*写命令到LCD中*/ SendCommandToLCD(uchar com) {CheckState();//状态检查,LCD是否忙 RS=0; //向LCD发送命令。RS=0写指令,RS=1写数据 RW=0;//R/W=“L” ,E=“H→L”数据被写到 IR 或 DR DATA=com; //com :命令 EN=1;//EN下降沿 EN=0; } /*设置页 0xb8是页的首地址*/ void Setpage(uchar page) {page=0xb8|page; //1011 1xxx 0<=page<

24、7 设定页地址--X 0-7,8行为一页64/8=8,共8页 SendCommandToLCD(page); } /*设定显示开始行,0xc0是行的首地址*/ void SetStartLine(uchar startline) {startline=0xc0|startline; //1100 0000 SendCommandToLCD(startline); //设置从哪行开始:0--63,一般从0 行开始显示 } /*设定列地址--Y 0-63 ,0x40是列的首地址*/ void SetColumn(uchar column) {column=c

25、olumn &0x3f; //column最大值为64,越出 0=

26、);//状态检查,LCD是否忙 RS=1; //RS=0写指令,RS=1写数据 RW=0;////R/W=“L” ,E=“H→L”数据被写到 IR 或 DR DATA=dat;//dat:显示数据 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; br

27、eak; case 2: cs1=0;//右屏 cs2=1; break; } } /*清屏screen: 0-全屏,1-左屏,2-右屏*/ void ClearScreen(uchar screen) {uchar i,j; SelectScreen(screen); for(i=0;i<8;i++) //控制页数0-7,共8页 {Setpage(i); for(j=0;j<64;j++) //控制列数0-63,共64列 {SetColumn(j); WriteByte(0x00); } //写点内容,列地

28、址自动加1 } } /*延时程序*/ void delay(uint z) {uint i,j; for(i=0; i

29、始行:0 } /*显示全角汉字*/ void Display(uchar ss,uchar page,uchar column,uchar number) {int i; //选屏参数,page选页参数,column选列参数,number选第几汉字输出 SelectScreen(ss); column=column&0x3f; Setpage(page); //写上半页 SetColumn(column); //控制列 for(i=0;i<16;i++) //控制16列的数据输出 {WriteByte(Hzk[i+32*number]);} //i+32*nu

30、mber汉字的前16个数据输出 Setpage(page+1); //写下半页 SetColumn(column); //控制列 for(i=0;i<16;i++) //控制16列的数据输出 {WriteByte(Hzk[i+32*number+16]);}//i+32*number+16汉字的后16个数据输出 } void Display2(uchar ss,uchar page,uchar column,uchar number) {int i; //选屏参数,page选页参数,column选列参数,number选第几汉字输出 SelectScre

31、en(ss); column=column&0x3f; Setpage(page); //写上半页 SetColumn(column); //控制列 for(i=0;i<16;i++) //控制16列的数据输出 {WriteByte(~Hzk[i+32*number]);} //i+32*number汉字的前16个数据输出 Setpage(page+1); //写下半页 SetColumn(column); //控制列 for(i=0;i<16;i++) //控制16列的数据输出 {WriteByte(~Hzk[i+32*number+16]

32、);}//i+32*number+16汉字的后16个数据输出 } void menu() { uint i; while(!n) { //显示汉字 keyscan(); for(i=0;i<2;i++) {Display(1,0,0+i*16,i);/*Display(选屏参数(cs1,cs2),page选页参数,column选列参数,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);

33、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*1

34、6,i+15); } delay(5); } n=0; menuselect(); } /*主函数*/ void main() { InitLCD();//初始12864 menu(); } void menuselect() { uint i;ClearScreen(0); while(!n) { keyscan(); for(i=0;i<2;i++) { switch(m%8) { case 0: Display(1,0,0+i*16,30-i*17);Disp

35、lay(1,0,32+i*16,19+i*6); Display(2,0,64+i*16,20+i*5);Display(2,0,96+i*16,21+i*4); Display(1,2,0+i*16,17);Display(1,2,32+i*16,17); Display(2,2,64+i*16,17);Display(2,2,96+i*16,17); Display(1,4,0+i*16,22+i*3);Display(1,4,32+i*16,23+i*2); Display(2,4,64+i*16,24+i*1);Display(2,4,96+i*16,i+15); Disp

36、lay(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,17); break; case 1: Display2(1,0,0+i*16,30-i*17);Display2(1,0,32+i*16,19+i*6);Display(2,0,64+i*16,20+i*5); Display(2,0,96+i*16,21+i*4); Display(1,2,0+i*16,17); Display(1,2,32+i*16,17);Display(2,2,64+i*16,17

37、); Display(2,2,96+i*16,17);Display(1,4,0+i*16,22+i*3); Display(1,4,32+i*16,23+i*2);Display(2,4,64+i*16,24+i*1); Display(2,4,96+i*16,i+15);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,17); break; case2: Display2(1,0,0+i*16,30-i*17);Display(1,0,3

38、2+i*16,19+i*6)Display2(2,0,64+i*16,20+i*5);Display(2,0,96+i*16,21+i*4)Display(1,2,0+i*16,17);Display(1,2,32+i*16,17); Display(2,2,64+i*16,17);Display(2,2,96+i*16,17); Display(1,4,0+i*16,22+i*3);Display(1,4,32+i*16,23+i*2); Display(2,4,64+i*16,24+i*1);Display(2,4,96+i*16,i+15); Display(1,6,0+i*16

39、17);Display(1,6,32+i*16,17); Display(2,6,64+i*16,17);Display(2,6,96+i*16,17); break; case 3: Display2(1,0,0+i*16,30-i*17);Display(1,0,32+i*16,19+i*6)Display(2,0,64+i*16,20+i*5);Display2(2,0,96+i*16,21+i*4)Display(1,2,0+i*16,17);Display(1,2,32+i*16,17); Display(2,2,64+i*16,17);Display(2,2,96+i*

40、16,17);、Display(1,4,0+i*16,22+i*3);Display(1,4,32+i*16,23+i*2); Display(2,4,64+i*16,24+i*1);Display(2,4,96+i*16,i+15); 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,17); break; case 4: Display2(1,0,0+i*16,30-i*17);Display(1,0,32+i*16,19+i*6);Displa

41、y(2,0,64+i*16,20+i*5);Display(2,0,96+i*16,21+i*4)Display(1,2,0+i*16,17);Display(1,2,32+i*16,17); Display(2,2,64+i*16,17);Display(2,2,96+i*16,17); Display2(1,4,0+i*16,22+i*3);Display(1,4,32+i*16,23+i*2);Display(2,4,64+i*16,24+i*1);Display(2,4,96+i*16,i+15); Display(1,6,0+i*16,17);Display(1,6,32+i*

42、16,17); Display(2,6,64+i*16,17);Display(2,6,96+i*16,17); break; case 5: Display2(1,0,0+i*16,30-i*17);Display(1,0,32+i*16,19+i*6)Display(2,0,64+i*16,20+i*5);Display(2,0,96+i*16,21+i*4);Display(1,2,0+i*16,17);Display(1,2,32+i*16,17); Display(2,2,64+i*16,17);Display(2,2,96+i*16,17); Display(1,4,0

43、i*16,22+i*3);Display2(1,4,32+i*16,23+i*2);Display(2,4,64+i*16,24+i*1);Display(2,4,96+i*16,i+15); 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,17); break; case 6: Display2(1,0,0+i*16,30-i*17);Display(1,0,32+i*16,19+i*6)Display(2,0,64+i*16,20+i*5);D

44、isplay(2,0,96+i*16,21+i*4);Display(1,2,0+i*16,17);Display(1,2,32+i*16,17); Display(2,2,64+i*16,17);Display(2,2,96+i*16,17); Display(1,4,0+i*16,22+i*3);Display(1,4,32+i*16,23+i*2); Display2(2,4,64+i*16,24+i*1);Display(2,4,96+i*16,i+15); Display(1,6,0+i*16,17);Display(1,6,32+i*16,17); Display(2,6

45、64+i*16,17);Display(2,6,96+i*16,17); break; case 7: Display2(1,0,0+i*16,30-i*17);Display(1,0,32+i*16,19+i*6) Display(2,0,64+i*16,20+i*5);Display(2,0,96+i*16,21+i*4);Display(1,2,0+i*16,17);Display(1,2,32+i*16,17); Display(2,2,64+i*16,17);Display(2,2,96+i*16,17); Display(1,4,0+i*16,22+i*3);Disp

46、lay(1,4,32+i*16,23+i*2); Display(2,4,64+i*16,24+i*1);Display2(2,4,96+i*16,i+15); 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,17); break; } } } n=0; if(m%8==7) { m=0; menu(); } if(m==0) lucai(); else if(m==

47、1) { m=0;chuancai();} else sorry(); } 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(m>7)m=0; } } if(xy==0) {delay(5); if(xy==0) {while(!xy

48、);m--; if(m==255)m=7; } } } /*鲁菜*/ void lucai() { uint i,f;ClearScreen(0); while(!n) {keyscan(); for(i=0;i<2;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); Displ

49、ay(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,9

50、6+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); D

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服