一、设计概述
1.设计目的
下载测试乒乓游戏的时候觉得很有意思,但玩法还是比较单一,可以添加一些功能和提升难度来增强游戏的趣味性。
2.设计任务
9.9-9.10实现第一个功能。9.11-9.12实现第二个功能。9.13-9.14实现第三第四个功能。9.15整合并测试。
3.设计要求
功能1:随机生成数字n并在数码管上显示,n即是一次乒乓游戏中需要正确按下的位置(或对称的数字),而不再是样例中的最左边或最右边。
功能2:按键KEY3用于选手1开球(即左边开球)或回击球,按键KEY2用于选手2开球(即右边开球)或回击球。刚开始的时候数码管上显示“n 00 VS 00”。LED灯中间有两个亮灯,是初始状态。如果按下KEY3或KEY2键,会有一亮灯从最左边(最右边)出现,并一位位地向右移(左移),当亮灯移至正确位置时,按下KEY3(KEY2)键则表示回击球成功,亮灯会逆向开始移动,否则开球方得分加一。一局的胜负是某一方取得11分且比对方分数大2为止,数码管中间显示局数比分,如果一方局数得分为2,则表示其比赛取胜,相应数码管会有闪烁图案表示。
功能3:每次失误时蜂鸣器响一声。
功能4:有一方获胜时蜂鸣器长响。
二、总体方案设计
Pingpang_Init()给用到的各类参数赋初值。
my100mS_callback()集合了四个功能,显示了四种状态下需要进行的操作。等待开球状态下可以按key2/key3开球,led灯从最左边/最右边开始亮起。从左往右/从右往左状态下,led灯逐个亮起,按下key2/key3击球,如果过了正确位置还没被击打则相应选手加分,蜂鸣器响,同时数码管显示得分。数码管显示局比分,某一方取得11分且比对方分数大2则记1分,如果一方局数得分为2,则表示其比赛取胜。比赛结束状态下,相应数码管会有闪烁图案表示,蜂鸣器长响。
三、硬件原理

五、实验过程与测试
初始时,数码管和led灯显示正常
左边获胜时,数码管和led灯显示正常,蜂鸣器正常
右边获胜时,数码管和led灯显示正常,蜂鸣器正常
六、设计总结与心得
1.设计总结
本次实验软件和硬件相结合,运用keil和STC-ISP进行编程和仿真,利用数码管、发光二极管、蜂鸣器等模块最终实现了乒乓游戏的改进。
2.设计心得
本次实验中,我先是依次查看 站上提供的参考代码,研究代码中的函数,了解了各种功能需要如何实现,然后确定选题,一步一步实现自己需要的功能,完成了自己的创新的项目,得到了自己的仿真结果。
通过这段的学习,我学会了如何使用仿真软件,了解了仿真的作用和效果,并最终通过编码来解决问题。明确自己的实验项目之后,应该把大的目标分隔成小的任务,静下心来分模块逐个击破,然后再整合起来。遇到问题时要戒骄戒躁,不能轻易放弃,一定要敢于尝试,也要学会与同学交流讨论,或是在 络上寻找答案。实现更加复杂的功能在目前看来还存在一定的难度,但随着学习的进一步深入,相信这一切不会是不可能的。
完整代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!