【8088】基于8088最小系统板的打地鼠游戏实现【简】

研究目的及意义

  • 随着社会的发展进步,电子技术的不断发展创新,为了紧跟快速信息时代的发展,诸多学生选择了计算机相关专业领域进行研究与学习,而在此过程中,周立功实验箱便是目前本科生普遍所使用的硬件方面的主要教学实验器材。它拥有的系统功能强大,但对初次接触相关方面学习的同学而言较为复杂,且因其价格昂贵以致大量的相关基础实验无法进行实践上手应用。这样以来,许多相关专业本科生仅有大量的理论学习资料研究,而并不能突破从理论到实践的屏障,长期以往屏障导致渐渐失去最初的学习研究兴趣。所以我们便想到使用单片机制作一款既能引起初次接触相关方面学习的同学的兴趣,又能进行进一步深入的学习研究,且体积小、价格低廉、稳定可靠的项目——基于8088最小系统板的打地鼠游戏。因为单片微型计算机是具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛特点的大规模集成电路技术发展的产物,属于第四代电子计算机。它的应用必定导致传统的控制技术从根本上发生变革,其开发应用也已成为高科技和工程领域的一项重大课题。而与此同时,我们还考虑到游戏显然已经融入到了现代人们的日常生活中,成为许多人生活中进行放松娱乐时不可替代的一部分。那如果可以在游戏娱乐中培养兴趣并获得相关学习能力,岂不乐哉,这便是我们进行此项目研究的初心目的。我们设计的基于
  • 8088最小系统板的打地鼠游戏具有以下优势:

  1. 上位机软件的可视化界面简洁清晰,用户可以轻而易举地进行汇编程序编 译、串口通信、程序固化等相关操作。
  2. 设计了 8088 最小系统板,使我们的接口板可以脱离实验箱运行。
  3. 巧妙地利用了 Ready 信号实现了本次设计的一大难点,即总线控制权在 51 单片机和 8088CPU 之间的转换问题。

研究内容和方法

接口板

  1. 本项目拟有 5 只地鼠,即 5 个灯,以及 1 个蜂鸣器,从 8255 芯片 B 口的 6 个引脚 输出,一只地鼠配有一个开关,另设有 1 个档位开关,总共 6 个开关从 8255 芯 片 A 口的 5 个引脚读入。再使用 1 个双位数码管计分,从 8255 芯片的 C 口输出, 使用 8255 芯片 B 口的 2 个引脚输出选通数码管信号(低电平选通)。用 8254 芯片的计时功能代替软延时,控制地鼠出现的精确时长,以及数码管亮的时长, 得出的时钟输出送到 8255 芯片 A 口的最高位引脚。其中 8255 芯片 A 口选用方式 0 输入,B 口 C 口都是方式 0 输出,8254 芯片选用计数器 0,先读/写低 8 位,再 读/写高 8 位,采用方式 3 输出方波,码制选用二进制。
  2. 线路连接中,8255 芯片的 PA0 到 PA5 连开关 K0 到 K5,PB0 到 PB4 连发光二极管 D0 到 D4,PB5 接蜂鸣器,PC0 到 PC7 连数码管 的 a 到 dp 管脚,PB6 到 PB7 连数码管的 1 和 2 管脚。8254 芯片的 OUT0 连 8255 的 PA7,CLK0 连时钟信号 18.432KHz。D0 到 D7 都连系统总线的 XD0 到 XD7,WR 和 RD 都连系统总线的 IOW#和 IOR#,CS 分别连系统总线的 IOY0(8255)和 IOY1 (8254)。
    接口板所需硬件
  3. 模块分析
    1. 主模块:调用整合其余功能模块,将其余模块有机联系在一起,以实现打地 鼠功能。
    2. 8254 计时模块:使用 8254 芯片,对其进行初始化,使其输出周期为 1s 的时 钟信号,从 8255 的 A 口读入时钟信号,每次比较当前读入的时钟信号和上次的 时钟信号是否一致,若不一致则表示完成 1s 计时,完成 5s 计时后,模块完成。
    3. 加分模块:若当前用户击打成功,则进入加分模块。先使蜂鸣器发出声响, 然后调用 8254 计时模块,取出当前用户得分,使得分数加 1,模块完成。
    4. 输出模块:先把当前用户得分的个位数通过8255芯片的C口输出,并点亮 显示个位数的数码管,然后调用8254计时模块,计时完毕后熄灭数码管;接着把当前用户得分的十位数通过 8255 芯片的 C 口输出,并点亮显示十位数的数码管,同样调用8254计时模块,计时完毕后熄灭数码管,模块完成。

接口原理图
接口板

上位机软件

  1. 使用 C#语言编写的上位机软件相当于一个可以用于接收数据、控制数据的系统,即可以对接收到的数据直接发送控制命令,从而操作数据。同时上位机也可以接收控制器,即下位机的信号,通过下位机可以直接控制设备并获取设备状态。此外我们的上位机软件还拥有可视化界面,能够将所有需要手动操作的功能展示出来,方便用户操作。
  2. 模块分析
    1. 串口通信。传输数据的串口实际上就是将数据传到计算机的上位机中,供上位机接收信息并处理,从而实现工程技术人员监视、调试串口程序等功能。上位机软件即通 过该串口完成上位机和下位机之间的通信功能。
    2. 程序固化。首先,上位机发出命令传递给下位机,下位机将此命令解释成时序信号,直接控制到相应设备。接着,下位机通过读取设备状态数据(模拟量),转换成数据信号,反馈给上位机。同时,上位机发出的命令转换成的信息被固化到下位机中。

8080最小系统板

  1. 简单说明采用8088作为主控芯片,其外接一片存储容量为 128KB 的 SRAM;采用ATMEL公司生产的51系列型号为AT89C52的单片机作为从控芯片;采用 UART 转 USB 串口芯片CP2102完成51单片机主控的调试模式下其和 PC 机之间的数据传输功能,把用户代码存入 SRAM 中。通过总线控制权的切换,转换 51 单片机主控的调 试模式至 8088CPU 主控的运行模式,8088 控制总线,读取 SRAM 并完成运算功能。
    试模式至 8088CPU 主控的运行模式,8088 控制总线,读取 SRAM 并完成运算功能。
  2. 线路连接
    8088 最小系统板主要用到了 1 片 8088 芯片,1 片 AT89C52 芯片,1 片 SRAM 存储器 HM628128,3 片 74HC373 地址锁存器,1 片 74HC245 数据收发器,1 片 UART 转 USB 串口芯片 CP2102,1 片 8284 时钟发生器,1 片 74LS125 三态门缓冲器,1 片 74LS00 与非门,一个 14.7458MHz 晶振给 8284 提供时钟源,1 个 12MHz 晶振给 单片机提供时钟源,直插色环电阻若干,直插退耦电容若干,导线若干。 8088 工作在最小模式,AD0-AD7 通过一片地址锁存器产出地址总线第八位, AD8-AD15 直接作为地址总线的 A8-A15,AD16 用另外一个地址锁存器产生地址总 线的 A16。由于 8088 的 AD0-AD7 是地址与数据的复用端口,所以将这八个端口 与数据收发器相连产生 8 位数据总线。这 17 根地址总线与 8 根数据总线与 HM628128 相连,RD 和 WR 端口通过 74HC125 三态缓冲,产生读写信号,提供给 SRAM,CLK、RESET、READY 信号由 8284 提供给 8088。AT89C52 的时钟源由 12MHZ 的晶振提供,P0、P2 产生 16 位地址总线,其中 P0 是低 8 位地址总线与 8 位数 据总线的复用口,因此 P0 还需要接 1 片 74HC373 锁存器,将 C52 的地址总线、 数据总线与 SRAM 相连,RD 与 WR 口接到 SRAM 的 OE 和 WE 读写信号使能端。C52 8088 最小系统板设计 6 / 36 的 P3.0 与 P3.1 串行数据端口分别与 CP2102 的 TXD 与 RXD 端口相连。整个电路 的电源由 CP2102 提供+5V。

原理图

  1. 模块分析
    1. PC 机与单片机的数据传输:用户通过中介上位机软件写入代码,经过上位机 软件固化后程序即导入单片机。
    2. 单片机与 SRAM 的数据传输:单片机提供 17 位单向地址信号,8 位双向数据 信号。读模式下,由单片机给出 17 位地址,SRAM 取出该地址中的数据信号并送 到 8 位数据总线中,由单片机 8 位相应端口接收。写模式下,由单片机给出 17 位地址和 8 位数据,SRAM 将地址信号与数据信号读入并将其写入到对应地址中。
    3. SRAM 与 8088CPU 的数据传输:当总线控制权切换到运行模式时,8088 作为 主控芯片,对 SRAM 进行内存的读写操作,读模式下,8088 对 SRAM 提供 17 位地 址信号,SRAM 通过地址总线读入 17 位地址并将 8 位数据通过 8 位并行 IO 口传 输到数据总线上,由 8088 接收。写模式下,8088 对 SRAM 提供 17 位地址信号和 8 位数据信号,SRAM 通过地址总线读入 17 位地址并通过 8 位并行 IO 口读取数据 总线上的数据,写入内部寄存器。
    4. 总线控制权切换:从调试模式切换到运行模式,需要 51 单片机撤出控制总 线及数据线和地址线,通过烧写 51 单片机的控制程序将连接单片机的数据总线 和控制总线调整为输入模式。地址总线的释放可通过电路设计撤出地址锁存器的 OE 信号实现。
      8088 的 ready 信号电路设计:复位后的第一个时钟周期,会从 0xFFFF0 地址 读取 1 字节的指令代码,如果此时撤除了 READY 信号,则 8088 微处理器数据总 线会保持高阻态。8088_READY=8284_READY & DEBUG,DEBUG 信号由单片机的 P1. 5 端口提供,DEBUG 为 1 时,电路工作在运行模式下,DEBUG 为 0 时,电路工作 在调试模式下。同时,8088 所用两片地址锁存器的 OE 信号接~8088_READY,单 片机所用一片地址锁存器的 OE 信号接 8088_READY,以运行模式为例,8088_READY 为高电平,8088 所接两片地址锁存器的输出使能端 OE 为低电平,有效,单片机 所接地址锁存器 OE 为高电平,地址总线被撤出。
      除串口通信的功能原理图如下:
      功能原理图
      总原理图如下:
      总原理图
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
基于8086/8088的打地游戏系统 要求使用三个以上的接口芯片或其他元件组成相应的电路,实现某一功能电路,并编制相应的程序,调试运行最终达到设计要求。 本实验设计的是一个打地游戏。地通过LED灯显示。按MON键开始游戏,共分为三关,三关地出现的时间间隔分别为3秒、2秒和1秒。每关有20秒,使用8279外接键盘击打地,打中分数加一并由喇叭发出音效。 本实验用到芯片有74LS393、8253、8255、8259和8279等。外设有LED灯、喇叭、6位七段数码管和外接键盘等。 74LS393是分频单元,将8MHz的频率分频。本实验中使用到31250Hz。 8253为定时/计数器。本实验使用通道0产生1秒的脉冲信号用于触发中断,使用通道1产生伪随机数,从而使地从不同位置出现。 8255是并行I/O接口。本实验中通过8255控制地(LED灯)的显示和喇叭的音效。 8259是中断控制器。本实验使用IR0,由8253通道0触发并转中断服务程序。 8279是键盘控制器。本实验使用外接功能,由键盘控制地的击打以及游戏的开始,并使用数码管显示倒计时以及当前分数。 实验中的地出现的位置是由伪随机数控制的。伪随机数由8253通道1的当前计数值产生。用当前计数值除以常数得余数,即可获得随机数,查表可得当前地位置。 8253的通道0和通道1都工作在方式三,16位二进制计数,通道0的计数初值为31250,配合74LS393分出的31250Hz,可以发出1Hz的脉冲,用于触发中断。通道1的计数初值为7,等于地的洞数,用于产生随机数。 8255的AB口都用于输出,A口输出地的位置,B口控制喇叭。 8259边沿触发,单片方式,设定IR0的中断类型为08H,一般全嵌套方式,一般EOI方式,允许IR0中断。 8279为读写模式,8位,左入口,编码,双键锁定,时钟分频,用于显示数码管以及键盘的读入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值