1、1 课程名称 微机原理与接口技术课程设计 设计题目 兵乓球比赛 目录 一、设计题目. 2 1.1 设计的题目: 2 二、设计要求与目的 2 2.1 设计的要求: 2 2.2 设计的目的 2 三、设计方案. 2 3.1 设计原理 . 2 3.2 设计思路 3 3.2.1 提出方案 3 3.2.2 方案论证 3 四、原理分析. 4 五、硬件设计. 5 六、软件分析. 6 6.1 软件流程 . 6 6.2 源程序: . 7 七、总结与展望 . 14 八、参考文献. 15 2 一、一、设计题目设计题目 1.1 设计的题目:设计的题目: 兵乓球比赛。 二、二、设计要求设计要求与与目的目的 2.1 设计设
2、计的要求:的要求: 用 8 个 LED 发光管(4 红 4 绿)的来回滚动显示模拟打乒乓球时,乒乓球在 两边球台上的来回运动。比赛双方用按按钮(双方各用一个按钮)的方法来模拟 发球与接球,即发球方按动其控制的按钮,球从发球方一侧向对方运动(LED 发 光管从发球方到对方逐个点亮,滚动显示) 。当球运动至接球方时,接球方立即 按动其控制的按钮, “击球”使球“弹回”发球方一侧。如此周而复始,直至在 规定的击球时间内有一方未能完成击球动作,从而对方得一分;然后继续比赛。 比赛规则可参照一般的乒乓球比赛。 2.2 设计设计的目的的目的: 通过课程设计及研究论文, 使学生对计算机系统尤其对计算机硬件系
3、统有更 深入的理解,并具有较简单的计算机应用的设计能力。 三三、设计方案设计方案 3.1 设计设计原理原理 根据课程设计任务书的内容与要求,要实现模拟打乒乓球的运动过程,首先 使比赛开始,假定甲先发球,小球向乙方向运动,然后乙挥拍击球将球打回,小 球向甲方向运动,如此循环,当某一方击球失误(过早或是超时击球) ,则为对 3 方加分,最后将比分显示出来。 3.2 设计设计思路思路 编写汇编语言程序,并结合 AEDK 实验箱上的相关芯片设计电路,实现模拟 打乒乓球的过程(开始,挥拍,球移动,加分,显示分数等功能) 。 3.2.1 提出提出方案方案 用 8255A 的 A 口作为输出端,分别与机箱上
4、的 8 个小灯相连,向 A 口输出一 个值,使相应的一个小灯亮,然后利用循环左移和右移发光的小灯来模拟实现乒 乓球的实际运动轨迹。每当小灯亮时,就检测有无键按下,如果无键按下,小灯 继续移动并继续检测有无键按下;如果有键按下并且键码值等于所按下的对应 键,则读出 8255A 的 A 口的值,看其是否等于小球到达正确位置时对应的值,如 果相等小球自动返回,如果不等则调用加分程序,为对方加分。 设置适当大小的缓冲区,将所有比赛的比分放在此缓冲区内,利用 8279A 将比分输出显示在 LED 上(分两部分:1)每局的比分 2)比赛的局分) 。 3.2.2 方案方案论证论证 利用 8279A 芯片的键
5、盘输入来实现比赛开始和甲、 乙的挥拍 (F 键为开始键, 0 键为甲,7 键为乙) ,用 8279A 的 LED 显示来实现比分的显示。利用 8255A 的 A 口作为输出来模拟小球的运动情况,假定甲先发球,为其设置一个初始值,低电 平灯亮,使最左边的灯亮,调用循环右移程序,小灯依次向右亮,按下 7 键,判 断是否是在小球到达最右边时按下的, 如果是, 调用循环左移程序, 小灯依次 向 左亮, 如果乙击球提前或是超时, 则给对方加分, 同理循环下去。 甲和乙的比 分 放在不同缓冲区内累加,当有一方得分满 11 分时,总局比分加一,此时比赛中 止,再次按下开始键后,单局比分清零,总局分不变,另一
6、方发球,重新积分。 经实际连线操作,所得现象与预期的相一致,方案成功。 4 四四、原理原理分析分析 18253 定时器选用方式 0,实现定时功能。两个七段数码管要实现连续显 示,必须每隔 510ms 刷新一次,而灯移动速度为 300500ms。设定定时周期为 5ms,当计数停止,8253 输出高电平时,分别显示比分的高位和低位。经过一定 数量的定时周期后,再进行灯移动的操作。 28255 并行接口 A 口 B 口分别用来控制 LED 流水灯及数码管的显示,C 口 则用于读入各开关状态及输出数码管片选信号。 3单脉冲开关模拟击球,当 8255 读入脉冲信号为高电平时,通过判断灯当 前移动方向和击球者,来确定灯下一次的移动方向。 4LED 流水灯表示乒乓球移动,灯每次移动应留有足够的时间给操作者拨 动调速开关,或按下脉冲开关。 5七段数码管与比赛同步显示比分,显示 0f 相应的 16 进制控制数为 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e ,0x7b,0x