1、单片机原理及系统课程设计报告 - 1 - 1 引言引言 单片机作为微型计算机发展的一个重要分支,以其高可靠、高性能价格比、低 电压、低功耗等优势,赢得了广泛的应用。单片机是一门实用性很强的应用学科, 在目前和今后相当长的一段时间内仍有着广泛的应用前景。作为自动化专业的学 生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一 类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。之前 由于培养过自己的动手能力,在本次课程设计中,本人使用单片机作为这次作业 的核心。课程设计通过使用 90C51 单片机和共阳极二位数码管,综合应用基础电 子电路和单片机的知识,来实现该电
2、路的制作。 通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课 程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的 计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单 片机应用系统的全过程,为今后从事相应工作打下基础。 2 设计方案及原理设计方案及原理 2.1 2.1 题目要求题目要求 8 支连续排列的发光二极管,发光二极管的依次点亮代表乒乓球的运动。用两 个按键模拟左右两个球拍,键按下代表球拍击球。 “左拍”按下可使发光二极管从 左向右依次点亮,如同乒乓球从左向右飞来;反之, “右拍”按下则可使发光二极 管从右向左依次点亮,代表乒乓球从
3、右向左运动。 本游戏供两人玩耍,以一方按键开始,这时“乒乓球”就向对方运动,接球 方应在“乒乓球”到达终点时刻击球。如击球时机合适,则把球击回,算得分; 否则就算失误,由对方重新发球。在游戏过程中,以 LED 显示器显示双方比分。 2.2 2.2 题目分析题目分析 (1) “乒乓球”移动速度是固定的,假定每秒钟移动 1 位 LED。 (2) 在“乒乓球”移位一次的过程中,进行 50 次测试,查询接球方是否有击 球动作。 (3) 接球方的击球动作应发生在“乒乓球”到达最后一位 LED1 秒钟时间之 内。如接球方在此 1 秒钟时间之内按键,则接球成功,接球方得分。 “乒乓球”转 为相反方向运动。此
4、后,原接球方变为发球方,原发球方变为接球方。游戏继续 单片机原理及系统课程设计报告 - 2 - 进行。 (4) 如接球方提前或滞后击球,则接球方失误,双方都不得分。这时“乒乓 球”熄灭,LED 显示器显示出双方比分,然后仍由原发球方发球。 2.3 2.3 解决方案解决方案 本设计采用 90C51 单片机系统,任何软件的设计首先都应该对模型进行抽象 画,使用实用化语言对对任务进行描述,对于具体到本实验的设计,最需要描述 和处理的事件是击球动作,比赛双方的任何一方按下键都是一个击球动作,需要 判断是发球还是击球,是提前击球还是滞后击球还是准确击球,这是本设计把乒 乓球游戏抽象为系统模型的关键点。 是否准确击球是具体体现为:若有键按下时则先判断 A 还是 B 击球,再根据 球所在位置就可以判断击球准确还是失球。比如现在 A 按键击球,而同时 LED 当 前显示值为 01H,则判断 A 正确击球,反之若 LED 点亮处于其他任何状态都判 A 失球 B 得分,同样 B 的有效击球时间应为 LED 显示值为 80H 额时间段内,其他 时间段 B 有击球动作都判 B 时分。 球移动的动作抽