欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的俄罗斯方块游戏机课程设计Word文档格式.docx

    • 资源ID:3326524       资源大小:801.58KB        全文页数:18页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的俄罗斯方块游戏机课程设计Word文档格式.docx

    1、图3.1 硬件设计框图3.2电源系统本设计的电源系统比较简单,由USB电源输出5V电源进行供电,具体电路如下图所示:图3.2 电源电路3.3 STC89C52单片机介绍图3.3 STC89C52引脚图P1口P1 是一个带内部上拉电阻的8 位双向I/O 口, P1的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写1,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和(P1.1/

    2、T2EX)。P2口P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地数据存储器(例如执行MOVX DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVXRI 指令)时,P2 口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。P3 口P3 口是一组带有内部上拉电阻的8

    3、 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能P3 口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此

    4、它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两

    5、次PSEN信号。EA/VPP外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H-FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1振荡器反相放大器及内部时钟发生器的输入端。XTAL2振荡器反相放大器的输出端。3.4 复位电路设计单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复

    6、位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。 手动按钮复位需要人为在复位输入端RST上加入高电平(图1)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。复位电路连接如图所示:图3.4复位电路3.5时钟电路设计8XX51系列单

    7、片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶振,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟脉冲。晶振通常选用6MHz、12MHz或24MHz。本次设计中我们选用了12MHz的晶振,晶振与锁相环电路配合使用,以提供系统所需的时钟频率。设计中STC89C52使用12MHz晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF到50pF之间,我们选用电容容量为33pF的电容,如图所示即为本设计的振荡电路。图3.5 时钟电路

    8、3.6液晶屏显示模块液晶显示屏是整个系统硬件的重要组成部分,担当着人机交互的重要角色。本设计采用铭正同公司生产的MzL02D-12864液晶点阵屏作为显示器件。它是一块128*64点阵的LCD显示模组,模组上的LCM采用COG技术将控制(包括显存)、驱动器集成在LCM的玻璃上,接口简单,操作方便。其特点为单电源供电,对比度编程可调,可采用并行接口为6800/8080时序或者串行SPI的MPU接口方式,整块液晶屏由3.3V的白色LED背光,美观大方。其外接部分分为电源端口、数据端口和命令端口三部分组成。本设计中LCD的数据端口连接到STC89C51单片机的P0端口,LCD命令端口连接到单片机的P

    9、2端口。具体实物如图所示:图3.6 液晶屏正面图 图3.7 液晶屏反面图图3.8 液晶屏显示电路3.7按键电路设计按键电路模块是智能俄罗斯方块游戏系统的输入器件,它的控制器包括六个按键,分别为:左移、变形、右移、暂停、下降、确定。具体硬件电路如下图所示。图3.8 按键电路4.软件系统的设计4.1软件系统设计框图 Y图4.1软件系统设计框图5.调试结果记录及分析5.1仿真结果图5.1 仿真电路图5.2实物调试结果图5.2实物主界面图 图5.3实物速度设置界面图 图5.4实物游戏界面图图 5.5实物游戏得分界面图5.6实物游戏结束界面图6.心得体会我在这次中主要负责软件的调试以及协调好软硬键的通讯

    10、。软件调试中,发现了乱码的现象,开始调试是弄不清是软件的问题还是硬件的问题,这给了我一个很大的教训,软件硬件不能同时调试,只有确认一个没问题后才能更好的调试另一个。最后发现是由软件引起数据冲突造成的。此外还出现的各种各样的BUG,例如游戏得分系统和人机通讯系统也会出现问题,有个问题更是莫名其妙,比如按着按着出现界面停顿现象,甚至出现了死机现象,而实际游戏中这种现象是万万不允许的。开始以为是电平干扰所引起的,但是接稳定的电压也会出现这种情况。回去检查代码时已经是1000多行代码了,从主函数慢慢往下看,虽然注释的比较详细但是问题却很难找到,然而BUG事实却摆在那里。不修复则游戏无法进行。我终于体会

    11、到程序员的辛苦和无奈。只能回到最初的流程图从底层驱动函数和算法逻辑慢慢整理,才发现我的程序出现的多么大的问题,没有用好指针,指针出现了问题给程序带来的灾难性的后果。还有一些变量的初始化没有赋值,初始化指针中没用明确的指向,函数没有返回。这些都是细节问题,任何一个关键变量没有用好都会出现很大的问题。更重要的教训是编程思路一定要清晰,这就要求编写代码之前流程图都要画好。还有就是编写程序时头脑要清醒不能打疲劳战,有时候变量的赋值过程中脑袋里想的是赋值为1而键盘中赋值的确实0;这种情况也是最难找的,因为是自己写的程序,潜意识以为是正确的,就去找别处的错误了。只有一个一个的找才能找出来。找到之后,真的很

    12、后悔当初的粗心参考文献1张毅刚.单片机原理及接口技术M.北京:人民邮电出版社,2013:220-2402郭天祥.新概念51单片机C语言教程M.北京:电子工业出版社,2012:230-2403韩旭,王娣. C语言从入门到精通M.北京:清华大学出版社,2010:244-2604胡仁喜. Altium Designer 16从入门到精通M.北京:机械工业出版社,2016:118-1685 王东锋,董冠强.单片机C语言应用100例M.北京:电子工业出版社,2009:182-200附录1整体电路原理图:PCB图:附录2元件清单:元件名称规格可调电阻10K单片机STC89C52按键6个液晶显示屏LCD12

    13、864晶振12M滑动变阻器瓷片电容33PFUSB母座1个附录3关键函数如下所示:俄罗斯方块中文显示界面void game_start_show() bit tpflag=1;/置循环标志位为1 LCD_full_draw(start_pic); while(tpflag) switch(basic_button() case 6: tpflag=0; speaker=0; while(button_b=0); speaker=1; break; default:; /game_start_show选择游戏难度级别void select_speed() unsigned char i;/置循环标

    14、志为1 LCD_clear(); for(i=0;i128;i+) LCD_display_byte(i,0,0xff); LCD_display_byte(i,7,0xff); LCD_display_byte(60,4,0x7f); LCD_display_byte(59,4,0x3e); LCD_display_byte(58,4,0x1c); LCD_display_byte(57,4,0x08); LCD_display_byte(67,4,0x7f); LCD_display_byte(68,4,0x3e); LCD_display_byte(69,4,0x1c); LCD_dis

    15、play_byte(70,4,0x08); LCD_display_word(speed_data,24,3,52); show_speed_num(62,4); case 4: if(speed_num!=0) speaker=0; speed_num-; show_speed_num(62,4); speaker=1; while(left=0); case 5:=9) speaker=0; speed_num+; while(right=0); /选择游戏速度循环人机通信(进行游戏)void Tetris_main()19; Box_Rami=Box_Ram_datai; ;/载入游戏初

    16、始化显示画面 LCD_draw(mpic); game_over_flag=0;/游戏结束标志位置0表示游戏未结束 box_build(); box_load(); box_to_Box_Ram(s_box.x,s_box.y,s_box.box); box_down_reg=(20-(speed_num1)-1);/为了使方块一出现就能变换形状,所以需要尽快使得方块下降一行,不知道为什么最高行不行变换形状 time0_initialize(); while(!game_over_flag)/如果游戏结束标志位置1,表示游戏结束,打破循环,调用游戏结束画面显示函数 game_button(); EA=0;/游戏结束后关总中断


    注意事项

    本文(基于单片机的俄罗斯方块游戏机课程设计Word文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开