本项目为华东理工大学计算机专业大四课程作业,旨在通过实现基于8088架构的打地鼠游戏系统,提升学生在计算机硬件与软件结合方面的综合设计能力。
基于8086/8088的打地鼠游戏系统要求使用至少三个接口芯片或元件来组成相应的电路,并实现某一功能电路,同时编制对应的程序以调试运行并达到设计目标。本实验的目标是开发一个简单的打地鼠游戏,其中地鼠通过LED灯进行显示。按下MON键开始游戏,整个过程分为三关,每关的地鼠出现时间间隔分别为3秒、2秒和1秒,并且每一关有20秒的时间限制。玩家需使用外接键盘来击打地鼠以得分并触发喇叭发出音效。
本实验中所用到的芯片包括74LS393、8253定时/计数器、8255并行I/O接口、8259中断控制器和8279键盘控制器等。外设则包含LED灯、喇叭以及6位七段数码管和外部键盘。
具体来说,74LS393芯片作为分频单元使用,在本实验中将输入的8MHz频率信号进行处理以获得所需的31250Hz输出。在8253定时/计数器方面,通道0用于生成每秒一次的脉冲信号来触发中断操作;而通道1则通过产生伪随机数字序列的方式决定地鼠出现的位置。
对于8255并行I/O接口而言,在本实验中它被用来控制LED灯显示以及喇叭音效。同时,8259作为中断控制器负责管理外部事件的处理流程,例如在本次实验里IR0中断由通道0定时器触发,并随后进入相应的服务程序。
最后是使用了8279键盘控制器来接收玩家的操作指令(如开始游戏或击打地鼠),并通过数码管显示倒计时和当前得分。整个游戏中,每个阶段的地鼠出现位置是由伪随机数决定的,该数值由通道1定时器的当前位置值除以一个特定常量所得余数确定,并通过查找表来获取对应的位置信息。
综上所述,在本实验中8253的所有工作模式均设置为方式三(即二进制计数),其中通道0使用了初始值为31250,配合74LS393产生的频率信号生成每秒一次的脉冲;而通道1则利用其当前计数值来产生随机数字序列。至于8255接口中的A口用于输出地鼠的位置信息、B口控制喇叭的工作状态。
与此同时,8259中断控制器被设置为边沿触发模式,并且在单片机方式下运行,指定IR0的中断类型码为0x08(八进制),采用一般全嵌套机制以及通用EOI处理方法。最后,在配置了读/写工作模式、使用左入口编码方案和双键锁定功能后,8279键盘控制器可以同时支持数码管显示与外部按键信号的采集需求。
以上内容为基于特定硬件环境设计的一个打地鼠游戏系统概述,通过合理安排各芯片的功能分配并编写相应的程序代码实现了预期的游戏逻辑。