网站大量收购独家精品文档,联系QQ:2885784924

推箱子游戏-51单片机课设计(最全).doc

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
推箱子游戏-51单片机课设计(最全)

《51单片机》 课程设计 题 目:基于51单片机的推箱子游戏设计 目 录 1、课程设计目的 1 2、课程设计题目和实现目标 1 3、设计方案 1 4、Proteus仿真原理图 7 5、程序设计 9 6、调试总结 28 7、设计心得体会 28 参考文献 29 附录:程序代码------------------------------------------------------------------29 1、课程设计目的 《MCS-51单片机》课程设计是与《MCS-51单片机》课程相配套的实践教学环节。《MCS-51单片机》是一门实践性很强的专业基础课,通过课程设计,达到进一步理解单片机的硬件、软件和综合应用方面的知识,培养实践能力和综合应用能力,开拓学习积极性、主动性,学会灵活运用已经学过的知识,并能不断接受新的知识。培养大胆发明创造的设计理念,为今后就业打下良好的基础。 通过课程设计,掌握以下知识和技能: 单片机应用系统的总体方案的设计; 单片机应用系统的硬件设计; 单片机应用系统的软件程序设计; 单片机开发系统的应用和调试能力 课程设计题目和实现目标 2.1 课程设计题目:基于51单片机的推箱子游戏设计 2.2实现目标 设计一款在以51单片机为核心的硬件系统中运行的推箱子游戏。游戏一共9关,功能包括: (1)显示游戏开机界面和游戏界面; (2)按键处理包括移动小人和移动箱子,通过移动上下左右键来控制小人的移动,通过小人推动箱子,把箱子推到指定的目的地为过关,箱子只能推不能拉; (3)用于可以任意选关,并能随时退出、进入游戏; (4)每一关都有时间计时,显示当前玩家的游戏耗时。 3、设计方案 根据设计目标,整个系统框图如下: 图1 系统框图 3.1 控制模块 选用ATMEL公司 是一个低电压,高性能CMOS 8位单片机,兼容MCS51指令系统 2、8k可反复擦写(大于1000次)Flash 7、2个串行中断,可编程UART串行通道; 8、2个外部中断源,共8个中断源; 9、2个读写中断口线,3级加密位; 低功耗空闲和掉电模式,软件设置睡眠和唤醒功能; 图2 引脚功能 图3 最小系统 U1:AT89C52,DIPf封装;C1,C2:22pf瓷片电容 C3:10uf电解电容;X1:12M晶振 R1:10K金属膜电阻 3.2 显示模块 选用内置T6963C控制控制器的12864图形点阵液晶(以下简称Lcd12864)做为显示模块。 T6963C控制器的最大特点具是有硬件初始值设置功能,显示驱动所需的参数,例如:占空比系数、每行驱动传输的字节数、字符的字体选择等均由引脚电平设置。所以,液晶显示模块在上电时T6963C控制器就进行初始化设置,软件操作的主要精力就可以全部用于显示界面的设计上。 市场上出售此控制器的液晶很多,本次课设选用深圳市晶日达科技有限公司生产KXM12864F. LCD12864和单片机以模拟方式连接,即通过模拟操作时序的方法控制液晶显示。具体的接线图如图4所示 图4 显示模块 RP1:1k排阻,用于做P0口的上拉电阻;LCD1:KXM12864F 3.3按键模块 16个轻触按键连接成4*4矩阵键盘,做为按键模块,如图5所示 图5 4*4矩阵键盘 最终系统的硬件系统如下: 图6 硬件系统 Proteus仿真原理图 在proteus搭建的仿真原理图如下: 图7 硬件系统 图8 开机画面 图9 游戏画面 图10 游戏画面 程序设计 5.1 Lcd12864显示驱动程序 图11 读写指令/数据时序图 准备向Lcd12864进行操作时,首先要读取lcd12864的当前的状态,只有lcd12864不忙的时候才能读写操作和数据。相关程序如下: /************************************************** 函数名:status_bit_01() 功能:状态位sta1(读/写指令),sta0(读/写数据)判断 入口参数: 返回值:状态值i ***************************************************/ unsigned char status_bit_01() { unsigned char i; P0=0xff; cd=1; rd=0; for(i=10;i0;i--) { if((P10x03)==0x03) break;

您可能关注的文档

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档