ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:2.73MB ,
资源ID:5861361      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

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

注意事项

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

单片机课程设计范文.doc

1、广东工业大学华立学院 课 程 设 计(论文)课程名称微机原理与单片机技术综合设计与实践 题目名称 贪吃蛇游戏机 学生系部 机电工程学部 专业班级 09电气3班 学号 12030903039 学生姓名 指导教师 王 赟 2012年06月5日1广东工业大学华立学院课程设计(论文)任务书题目名称贪吃蛇游戏机学系学部机电工程学部专业班级09电气3班姓 名12030903039学 号一、课程设计(论文)的内容设计一款贪吃蛇游戏机。主要功能有:(1) 进行经典的贪吃蛇游戏;(2) 显示玩家当前关卡;(3) 记录玩家分数;(4) 游戏暂停,重新开始;(5) 上下颠倒画面,以适应习惯左手或右手操作的玩家。二、

2、课程设计(论文)的要求与数据(1) 方案论证;(2) 系统原理图或各功能模块的硬件电路原理框图;(3) 主程序流程图;(4) 系统调试与分析;(5) 源程序清单。三、课程设计(论文)应完成的工作(1) 完成方案论证;(2) 完成器件选型;(3) 给出硬件电路原理图;(4) 给出程序流程图;(5) 完成源程序设计及调试;(6) 完成课程设计报告的撰写。四、课程设计(论文)进程安排序号设计(论文)各阶段内容地点起止日期1选择课题,明确设计要求,查阅资料校内5.262方案论证、系统总体设计校内6.073硬件电路原理图设计校内6.074程序流程图设计、源程序的编制及调试校内6.076.105系统调试及

3、分析校内6.106课程设计报告的撰写校内6.10五、应收集的资料及主要参考文献1 孙育才.MCS-51系列单片微型计算机及其应用M.东南大学出版社,2004.6 发出任务书日期: 2012年 05月19 日 指导教师签名:计划完成日期: 2012年 06 月5 日 教学单位责任人签章:目录1系统分析12系统设计22.1系统硬件设计22.1.1系统硬件接线图22.1.2单片机引脚接线表22.1.3TFT液晶屏引脚功能32.1.4微动开关功能42.2系统软件设计52.2.1系统MAIN程序设计52.2.2系统SNAKE程序设计62.2.3系统KEY程序设计72.3.4 MAIN源程序72.3.5

4、SNAKE源程序82.3.6 KEY源程序133元件清单14参考文献151系统分析本文设计一款贪吃蛇游戏机,以STC 12C5A60S2芯片为控制核心,24MHz晶振,并采用一块2.4英寸,以ILI9325为控制器,分辨率为320*240的TFT彩色显示屏,保证了显示效果细腻流畅。由于显示屏自带的背光,使得画面在黑暗中也能清晰地展现出来。作品基于一块7cm*9cm的玻璃纤维万能版制作,体积重量与一般智能手机相当,并集成了独立移动电源,便于携带。游戏机外观如图1.1所示。左边为显示屏,右边是总开关和游戏键盘,屏幕下方焊接有单片机,晶振以及两块3V的CR2032纽扣电池。作品主要功能有:(6) 进

5、行经典的贪吃蛇游戏(7) 显示玩家当前关卡(8) 记录玩家分数(9) 游戏暂停,重新开始(10) 上下颠倒画面,以适应习惯左手或右手操作的玩家图1.1 贪吃蛇游戏机外观图32系统设计2.1硬件设计本系统的硬件主要由12C5A60S2单片机、24MHz晶振、2.4英寸TFT显示屏、若干微动开关组成。单片机的作用是运行游戏程序,驱动显示屏,识别微动开关;显示屏的作用是显示游戏画面、微动开关的作用是控制蛇的运动方向等设置。2.1.1系统硬件接线图图2.1 系统硬件接线图2.1.2单片机引脚分配单片机引脚对应元件引脚P1.0微动开关REVERSEP1.7微动开关PAUSE/RESTARTP3.1微动开

6、关DOWNP3.5微动开关RIGHTP3.6微动开关UPP3.7微动开关LEFTXTAL224MHz晶振XTAL124MHz晶振VSSGNDVCC+5V DCP0.0TFT DB0P0.1TFT DB1P0.2TFT DB2P0.3TFT DB3P0.4TFT DB4P0.5TFT DB5P0.6TFT DB6P0.7TFT DB7P2.6TFT RDP2.5TFT WRP2.4TFT RSP2.2TFT CSP2.1TFT RESET2.1.3TFT液晶屏引脚功能符号功能说明CS-选通RESET-复位DB7高4位三态、双向数据总线4位DB6高4位三态、双向数据总线4位DB5高4位三态、双向数

7、据总线4位DB4高4位三态、双向数据总线4位DB3低4位三态、双向数据总线4位DB2低4位三态、双向数据总线4位DB1低4位三态、双向数据总线4位DB0低4位三态、双向数据总线4位RD通过读数据寄存器从GRAM读取18位数据WR-写RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器NC悬空VCC+5V DCGNDGND2.1.4微动开关功能本系统硬件选用了6个微动开关,分布在显示屏的同一侧,其作用分别为:微动开关名称功能说明UP令蛇向上走DOWN令蛇向下走LEFT令蛇向左走RIGHT令蛇向右走PAUSE/RESTART游戏暂停/重新开始REVERSE颠倒屏幕单片机识别微动开关

8、动作的原理是判断引脚置零与否。把所有微动开关常开引脚的一端接地,另一端接单片机相应的引脚,当微动开关触点闭合,则相当于把单片机相应的引脚接地,输入了“0”信号,于是单片机能识别到该微动开关闭合,在程序运行上作出预先设定好的改变。2.2软件设计本系统的软件系统主要可分为MAIN,KEY,SNAKE程序三大模块。2.2.1系统MAIN程序设计主程序的任务是对系统进行初始化,清屏,运行SNAKE和KEY程序。程序框图如图2.2示。图2.2 主程序流程图2.2.2系统SNAKE程序设计SNAKE程序是本系统的核心程序,此程序的正常运行与否直接影响到游戏的显示和操作效果。其作用为:(1) 绘制游戏界面(

9、2) 显示死亡界面(3) 显示过关界面(4) 控制蛇的运动(5) 判断蛇是否碰壁(6) 判断蛇是否咬到自己(7) 判断蛇是否吃到豆程序框图如图2.3所示。图2.3 SNAKE程序流程图2.2.3系统KEY程序设计KEY程序是本系统唯一的玩家操控程序,通过识别玩家对六个独立开关的操作,控制游戏里蛇的走向等。程序框图如图2.4示。图2.4 KEY程序流程图2.3.4 MAIN源程序#include STC12C5A60S2.h#include KEY_SWEEP.H #include SNAKE.h#include 9325tp.hmain() ILI9325_Initial();CLR_Scre

10、en(0XFFFF);Init_SNAKE();P3=0XFF;P1=0XFF;while(1)Run_SNAKE();Key();2.3.5 SNAKE源程序#include STC12C5A60S2.h #include #include9325tp.h#include SNAKE.h#define uchar unsigned charstruct uchar X;uchar Y; uchar Yes;Food;/食物结构体#define SNAKE_Max_Long 3 struct uchar XSNAKE_Max_Long;uchar YSNAKE_Max_Long;uchar L

11、ong; uchar Life; uchar Score;uchar Level; idata Snake;uchar idata Key_V_temp=0; extern unsigned char xdata Key_flag;void Delay_1mS(unsigned int n)unsigned int xdata i;unsigned char xdata j;for(i=0;in;i+)for(j=0;j120;j+);void Init_time0 (void)EA=1;/ET1=1;TMOD|=0x20;TH1=0X00;TL1=0X00;TR1=1;void Trun_O

12、n_Point (uchar x,uint y,uchar color)Bar(2*(x+2),(2*(y+2),(2*(x+4),(2*(y+4),color);void Trun_Off_Point (uchar x,uint y)Bar(2*(x+2),(2*(y+2),(2*(x+4),(2*(y+4),0xBE5F);void Init_SNAKE(void) uchar xdata i;Init_time0();CLR_Screen(0xBE5F);Rectangle(8,8-1,231,270,0x8a);/绘制一个矩形框, 0-127Rectangle(7,7-1,232,27

13、1,0x8a);/绘制一个矩形框, 0-127Rectangle(6,6-1,233,272,0x8a);/绘制一个矩形框, 0-127 LCD_PutString(50,275,SCORE,0x00ff,0xBE5F);LCDShow_uCharNumber(56,290,Snake.Score,0x00ff,0xBE5F); LCD_PutString(150,275,LEVEL,0x00ff,0xBE5F);LCDShow_uCharNumber(156,290,Snake.Level,0x00ff,0xBE5F);Snake.Long=16;Snake.Life=0;Snake.Sco

14、re=0;Snake.Level=0;Food.Yes=1;Key_Value=0; Key_V_temp=0;for(i=0;iSnake.Long;i+)Snake.Xi=i+6;Snake.Yi=6;for(i=0;iSnake.Long;i+)Trun_On_Point(Snake.Xi,Snake.Yi,0xa8);void Display_dead(void)LCD_PutString(80,80,GAME OVER,0x00ff,0xBE5F); while(Key_Value!=Key_Enter) Key(); Init_SNAKE();void Display_Pass(v

15、oid)Snake.Level+;LCD_PutString(68,80,You are,0xcc88,0xBE5F); LCD_PutString(74,100,WIN!,0xcc88,0xBE5F); while(Key_Value!=Key_Enter) Key(); Init_SNAKE();void Run_SNAKE(void)uchar xdata i=0;if(Key_Value=Key_Right&Key_V_temp!=Key_Left)|(Key_Value=Key_Left&Key_V_temp=Key_Right)Trun_Off_Point(Snake.X0,Sna

16、ke.Y0); for(i=0;iSnake.Long-1;i+)Snake.Xi=Snake.Xi+1;Snake.Yi=Snake.Yi+1; Snake.XSnake.Long-1=Snake.XSnake.Long-2+1;Snake.YSnake.Long-1=Snake.YSnake.Long-2+0;for(i=0;iSnake.Long;i+)Trun_On_Point(Snake.Xi,Snake.Yi,0xaa);Key_V_temp=Key_Right;if(Key_flag)if(Key_Value=Key_Left&Key_V_temp!=Key_Right)|(Ke

17、y_Value=Key_Right&Key_V_temp=Key_Left)Trun_Off_Point(Snake.X0,Snake.Y0);for(i=0;iSnake.Long-1;i+)Snake.Xi=Snake.Xi+1;Snake.Yi=Snake.Yi+1; Snake.XSnake.Long-1=Snake.XSnake.Long-2-1;Snake.YSnake.Long-1=Snake.YSnake.Long-2+0;for(i=0;iSnake.Long;i+)Trun_On_Point(Snake.Xi,Snake.Yi,0xaa);Key_V_temp=Key_Le

18、ft;if( Key_Value=Key_Up&Key_V_temp!=Key_Down)|( Key_Value=Key_Down&Key_V_temp=Key_Up)Trun_Off_Point(Snake.X0,Snake.Y0); for(i=0;iSnake.Long-1;i+)置Snake.Xi=Snake.Xi+1;Snake.Yi=Snake.Yi+1; Snake.XSnake.Long-1=Snake.XSnake.Long-2+0;Snake.YSnake.Long-1=Snake.YSnake.Long-2-1;for(i=0;iSnake.Long;i+)Trun_O

19、n_Point(Snake.Xi,Snake.Yi,0xaa);Key_V_temp=Key_Up;if( Key_Value=Key_Down&Key_V_temp!=Key_Up)|( Key_Value=Key_Up&Key_V_temp=Key_Down)Trun_Off_Point(Snake.X0,Snake.Y0);for(i=0;iSnake.Long-1;i+)Snake.Xi=Snake.Xi+1;Snake.Yi=Snake.Yi+1; Snake.XSnake.Long-1=Snake.XSnake.Long-2+0;Snake.YSnake.Long-1=Snake.

20、YSnake.Long-2+1;for(i=0;i=111|Snake.YSnake.Long-1=131 |Snake.XSnake.Long-1=2 |Snake.YSnake.Long-10;i-)if(Snake.Xi=Snake.XSnake.Long-1&Snake.Yi=Snake.YSnake.Long-1)Snake.Life=1;if(Snake.Life=1)Display_dead();Display_Pass();if(Snake.XSnake.Long-1-1=Food.X & Snake.YSnake.Long-1-1=Food.Y)/Trun_Off_Point

21、(Food.X,Food.Y);Snake.Long+;Snake.XSnake.Long-1=Food.X;Snake.YSnake.Long-1=Food.Y;Snake.Score+=5;LCDShow_uCharNumber(56,290,Snake.Score,0x00ff,0xBE5F);Food.Yes=1;if(Food.Yes=0)Trun_On_Point(Food.X,Food.Y,0xaa); if(Food.Yes=1)while(1)Food.X=(TL1+60)2);Food.Y=(TL1+85)2); for(i=0;iSnake.Long;i+)if(Food

22、.X=Snake.Xi)&(Food.X=Snake.Yi)break;if(i=Snake.Long)Food.Yes=0;break;Delay_1mS(300-Snake.Level*200);2.3.6 KEY源程序void Key (void) if(P3!=0XFF) | (P1!=0XFF) Delay(10); if(P3!=0XFF)if(K_UP=0)Key_Value=1;Key_flag =1;if(K_DOWM=0)Key_Value=2;Key_flag =1;if(K_LEFT=0)Key_Value=3;if(K_RIGHT=0)Key_Value=4;Key_

23、flag =1; if(P1!=0XFF)if(K_RETURN=0)Key_Value=5;if(K_ENTER=0)Key_Value=6;void Key (void) if(P1!=0XFC) Delay(10); if(P1!=0XFC)if(K_UP=0 & K_DOWM!=0)Key_Value=1;Key_flag =1;if(K_DOWM=0 & K_UP!=0)Key_Value=2;Key_flag =1;if(K_LEFT=0)Key_Value=3;if(K_DOWM=0 & K_UP=0)Key_Value=4;Key_flag =1;*/* if(Key_Port

24、!=0X0f)/Delay();if(Key_Port!=0X0f)KeyV_l=Key_Port&0x0f;Key_Port=0XF0;KeyV_h=Key_Port&0xf0;KeyV=KeyV_h+KeyV_l;for(i=0;i16;i+)if(Key_codei=KeyV)Key_Value=(i+1);Key_Port=0X0f;Key_flag =1;3元件清单元件型号数量单片机12C5A60S21IC插口40P1方口排母16P1圆口排母3P1纽扣电池CR20322微动开关6按钮开关1晶振24MHz1万用板7*9cm1参考文献1 张毅刚,彭喜源,谭晓昀.MCS51系列单片机实用设计M.哈尔滨工业大学出版社,2008.2 楼苗然,李光飞.单片机课程设计指导M.北京航空航天大学出版社,2007.心得体会教师评语 年 月 日成绩及签名年 月 日

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

关于我们      便捷服务       自信AI       AI导航        获赠5币

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

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

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

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服