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