




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的乒乓球游戏系统的设计姓名学号专业班级院(系)设计时间设计地点指导教师评语成绩签名年月日目录一、题目要求二、方案设计三、硬件原理四、软件设计五、结论与体会附硬件原理图基于单片机的乒乓球游戏系统的设计一、题目要求以STC12C5410AD单片机为核心设计一款“乒乓球游戏机”。用8支连续排列的发光二极管,通过发光二极管的依次点亮代表乒乓球的运动。再用2个按键模拟左右2个球拍,键按下代表球拍击球。“左拍”按下可使发光二极管从左向右依次点亮,模拟乒乓球从左向右飞来;反之,“右拍”按下则可使发光二极管从右向左依次点亮,代表球从右向左运动。本游戏供两人玩,以一方按键(发球)开始,这时乒乓球就向对方运动,接球方应在乒乓球到达终点之前击球。如果击球时机合适,则把球击回,否则就算失误,由对方重新发球。在游戏过程中用LED数码管显示双方比分。二、方案设计1本游戏开始时球在左方甲手中,数码管显示双方最初比分00。2当甲方按下按键T1时,球开始往右边移动,此时8位LED灯从左至右逐次点亮。乒乓球移动速度是固定的,每05S左右的速度移动一位。3若接球方乙提前或迟后按下按键T2击球,则判已失误,由甲得分,乒乓球停止运动(发光二极管熄灭),数码管显示得分。球重新回到甲手中,由甲方再次发球,游戏进入下一回合。4若接球方乙击球时机合适,即在LED灯到达最右端之前按下按键T2,则把球击回,LED灯即刻以05S每位左右的速度从右向左依次移动,等待甲方接球。若甲方接球失误,则判乙方得分,乒乓球停止运动(LED灯灭),数码管显示得分。球回到乙方手中,由乙方发球,游戏继续,开始进入下一回合。5当甲乙中有一人得分为9后,游戏进入下一轮,得分较少方一端的LED灯亮,数码管重新显示00。此时发球权交给在上轮比赛中落后(得分较少)的一方,当其按下按键后下一轮游戏正式开始。三、硬件原理1STC12C5410AD单片机的主电路A复位电路复位操作有两种基本形式一种是上电复位,另一种是按键复位。按键复位具有上电复位功能外,若要复位,只要按图中的RESET键,电源VCC经电阻R1、R2分压,在RESET端产生一个复位高电平。上电复位电路要求接通电源后,通过外部电容充电来实现单片机自动复位操作。上电瞬间RESET引脚获得高电平,随着电容的充电,RERST引脚的高电平将逐渐下降。RERST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。按键复位电路图如图31A所示。图31A复位电路B振荡电路单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容(电容一般取30PF)这样就构成了一个稳定的自激振荡器,振荡电路脉冲经过二分频后作为系统的时钟信号,再在二分频的基础上三分频产生ALE信号,此时得到的信号时机器周期信号。振荡电路如图31B所示图31B晶体振荡电路2LED灯接口电路8个LED灯的阳极与电源相连,阴极通过限流电阻与单片机的P1口相连,当单片机的P1口为低电平时,相应LED灯就被点亮,而当为高电平时相应LED灯就表现为熄灭状态。其接口电路如图32所示图32LED灯接口电路3LED数码管显示电路LED数码显示管的数据段通过限流电阻分别与单片机的P2口相接,位选段分别接NPN三极管的两个集电极,三极管的两个发射极共地,基极通过限流电阻分别与P32、P33相接。其硬件电路如图33所示图33LED数码管显示电路4按键设定电路独立式键盘独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。I/O口通过按键与地相连,I/O口有上拉电阻,无键按下时,引脚端为高电平,有键按下时,引脚电平被拉低。I/O口内部有上拉电阻时,外部可不接上拉电阻。本设计中键盘接口电路如图34所示图34按键设定电路四、软件设计软件设计流程图大体为开始初始化按键K1(甲发球)K2适时NY显示甲得分K1适时显示乙得分N按键K2(乙发球)Y乙得分为9YN甲得分为9YN软件设计原代码为INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINELEDP1DEFINESHUMAP2SBITK1P30SBITK2P31SBITDIG1P32SBITDIG2P33UCHARCODETABLE0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71UCHARFLAG1,FLAG2,PAIR1,PAIR2,SCORE1,SCORE2,WAITVOIDDELAYUINTVOIDLEDMOVEVOIDKEYSCANVOIDSCOREVOIDSHOWSCOREVOIDDELAYUINTTIMEUINTI,JFORITIMEI0IFORJ100J0JVOIDMAINA0LED0X7FSCORE10SCORE20FLAG10FLAG20DIG11DIG21SHUMATABLE0DELAY2000B0WHILE1KEYSCANLEDMOVESCORESHOWSCOREIFSCORE19|SCORE29BREAKIFSCORE29SHOWSCOREDELAY1000GOTOA0IFSCORE19SHOWSCOREDELAY1000LED0XFESCORE10SCORE20FLAG10FLAG20DIG11DIG21SHUMATABLE0DELAY2000GOTOB0VOIDLEDMOVEIFLED0X7FFLAG20IFFLAG11LEDLED1|0X80DELAY300WAIT1IFLED0XFEFLAG10IFFLAG21LEDLED1|0X01DELAY300WAIT1VOIDKEYSCANIFK10DELAY20IFK10PAIR11ELSEPAIR10ELSEPAIR10IFK20DELAY20IFK20PAIR21ELSEPAIR20ELSEPAIR20VOIDSCOREIFLED0XFELED0X7FFLAG10FLAG20WAIT0IFLED0X7FLED0XFEFLAG10FLAG20WAIT0VOIDSHOWSCOREDIG11DIG20SHUMATABLESCORE1DELAY20DIG10DIG21SHUMATABLESCORE2DELAY20五、结论与体会本设计的乒乓球游戏系统是由STC单片机、共阴数码显示管、控制按键、三极管等器件构成的,设有双位数据显示、两个游戏按键以及一个系统整机复位按钮。设计精简,使用简单易懂。系统设计合理,线路简单、功能先进,性能稳定,程序精简。并给出了详细的电路设计方法。本系统是以单片机为核心,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。通过一个星期的努力,我终于完成了单片机的课程设计。在设计的过程中,我发现了自身的许多不足,比如自己的编程能力薄弱,软件不够熟悉、焊接技术有待提高等等。我觉得作为一名自动化专业的学生,单片机的课程设计是很有意义的,更重要的是如何把自己平时所学的东西应用到实际中。通过这次课程设计,加强了我们动手、思考和解决问题的能力。通过本次设计,复习巩固我们以前所学习的数电、模电、单片机原理及应用等课程知识,加深对各门课程及相互关系的理解,并成功使用了WAVE、PROTEL2004和PROTEUS三款电子软件,使理论知识系统化、实用化,系统地掌握微机应用系统的一般设计方法,培养较强的编程能力、开发能力。在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。动手实践让我们对各个元件各个单元的组成及其相应的功能映象深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论