东南大学自动化学院-Read
东南大学自动化学院
《微机实验及课程设计》
课程设计报告
——移动靶射击比赛
姓 名: 秦蓓蓓 学 号:
专 业: 自动化 实 验 室: 103
组 别: 同组人员:
设计时间:2007年 9 月 1 日 —— 2007年 10 月 15 日
评定成绩: 审阅教师:
目 录
一. 简介………………………………………………………第3页
二. 基本原理…………………………………………………第4页
三、流程设计及编程实现……………………………………第6页
四.测试方案与测试结果……………………………………第19页
五.分析与讨论………………………………………………第20页
一. 简介
1、 目的
(1)用8 个LED 发光管的来回滚动显示或跳跃运动显示来模拟靶的移动,用按1~8 数字键(对应8 个LED)来模拟射击,如果在某个LED 点亮期间按下相应数字键,表示射中并熄灯(全部熄),记录射中次数。
(2)比赛规则可有以下两种:
比赛规则1:靶始终来回不断地移动(一旦射中则从头开始滚动),在规定的时间(如50 秒)和规定的射击次数(如20 次)内看谁的射中次数多谁获胜;
比赛规则2:总共有若干个(如20 个)移动靶,每个靶的移动时间限制在一定的时间范围内(如5 秒),要求在此时间内射击,若射中则记一分并出现下一个移动靶,若未射中或在规定时间内未射击则不记分并出现下一个移动靶。同样看谁的射中次数多谁就获胜。
(3) 要求精确定时中断计时;
2、基本设计要求:
(1) 用一个按钮作为比赛开始总按钮,2 个八段数码管倒计数规定时间,扩展的6 个八段数码管记录射中次数;也可合在6 个数码管上显示时间和分数;
(2) 靶以较快的移动速度(如每0.5 秒点亮1 个LED)从左到右或从右到左移动;
(3) 射击需在“靶”出现(即LED 亮)时进行(按下相应数字键),一直按着键或提前按下键不起射击作用;
(4) 按比赛规则(1)或(2)设计相应的记分方法。
2)设计提示
靶移到某个位置后立即读相应数字键的状态,若未按下则有效(若已按则无效),然后不断读此键的状
态,直到按下代表“射击”动作。
3、提高部分设计要求
(1) 用8×8 点阵显示射击的动画效果(模拟靶移动、射击点以及射击直线);
(2) 通过拨动开关改变靶的移动速度,即每个LED 点亮时间分别为0.5 秒、0.3 秒或0.15 秒;
(3)通过拨动开关改变靶的移动方式:
① 发光二极管1,2,3,…,7,8,7,6,…,2,1,…,如此往复;
② 发光二极管1,3,5,7,8,6,4,2,1,…,如此往复。
③ 编写1 个随机数产生子程序,靶的移动速度与靶的移动方式(即靶的移动方向)由产生的随机数确定,使每次靶的移动速度与移动方式均不同(增加射击难度)。
注:可以用键盘在线设定,用开关对应位置打靶,如开关K1 对应LED 灯L1),提高打靶直观性.
4、实现情况
(1) 用试验箱上的单脉冲触发按钮作为比赛开始总按钮,用小键盘上的4 个八段数码管分别倒计数规定时间和记录射中次数;
(2) 靶以较快的移动速度移动,其移动方式可用PC键盘上的‘1’(移动方式1)、‘2’(移动方式2)、‘3’(移动方式3)键来选择,靶的移动间隔时间可用PC键盘上的‘H’(HARD-0.15S)、‘M’(MIDDLE-0.3S)、‘E’(EASY-0.5S)键来选择;其中在游戏过程中也可随时按下‘H’‘M’‘E’这三个键以随时改变八德移动间隔时间,从而增加射击难度。
(3) 射击时需下拨相应开关(K0~K7),在射击后需将相应的开关上拨,一直将开关下拨或提前拨下开关不起射击作用,同时再屏幕上动态显示射击情况:当开关下拨打中时,显示“Pressed”;当开关下拨并且打中时,显示“Score”;
(4) 此设计按比赛规则(1)进行,并设计相应的记分方法。
(5)int_proc、数码管显示程序disp、射击轨迹显示程序line、随机数子程序iRand、微小延时子程序delay。其相互关系如图1
图1
“移动靶射击比赛”的基本设计原理如图2:
图2 基本原理图
三、流程设计及编程实现
在介绍各部分程序前,对程序中用到的变量做简单说明:
sym_end 程序结束标志
led_now db 0
key11 db 0;
counter_time
原创力文档

文档评论(0)