基于MAXQ2000和MAX7312的LED靶标游戏机

Abstract

这篇应用笔记介绍了一个LED靶标游戏设计方案。利用该游戏计方案可以演示MAXQ2000微控制器(MAXQ20核)和MAX7312端口扩展器的功能,提供了所用与这两款芯片接口的固件程序。

引言

该应用笔记提供了所有与MAXQ2000微控制器(MAXQ20核)、MAX7312 16位端口扩展器接口的固件程序。该应用示例为LED靶标游戏机。示例中,MAXQ2000所使用的汇编程序利用免费的IAR Embedded Workbench® IDE 2.10A版进行编程、编译。

硬件电路

MAX7312为2线接口、16位I/O端口扩展器,具有中断和热插拔保护功能。借助这篇应用笔记和MAX7312 EV (评估)板,用户可以方便地构建一个LED靶标游戏机。评估板上的红光、绿光LED可以快速地上、下滚动。游戏机的目标是当红光、绿光LED在中心汇聚时按下特定的按钮。

MAX7312评估板包括MAX7312、MAXQ2000微控制器、所有所需的无源元件以及经过验证的PCB。MAX7312评估板原理图如图1图2所示。

如需了解更多关于MAXQ2000微控制器的信息,可订购MAXQ2000评估套件。MAXQ2000评估套件包括完整的软件、硬件、示例代码以及设计文档,可以快速启动对MAXQ2000的设计。数据资料给出了MAXQ2000评估套件的原理图。

图1. MAX7312评估板原理图(1/2)
查看详细图片
(PDF, 292kB)
图1. MAX7312评估板原理图(1/2)

图2. MAX7312评估板原理图(2/2)
查看详细图片
(PDF, 332kB)
图2. MAX7312评估板原理图(2/2)

固件程序

固件程序(如下所示)通过MAXQ2000的通用输入/输出(GPIO)端口、利用逐位仿真的I²C接口与MAX7312进行通信。MAXQ2000的20MHz系统时钟可以使逐位仿真的I²C接口速率达到400kHz。用户可以通过修改头文件maxqi2c.h选择I²C接口的速率以及用作SDA和SCL的GPIO口,详细信息请参考应用笔记3588:“MAXQ2000微控制器软件I²C驱动”。

MAX7312评估板上电后,MAXQ2000自动检测MAX7312的I²C地址。然后启动程序配置MAX7312端口1的GPIO产生LED的滚动显示效果。端口2的GPIO 8和9配置为输入端口,固件程序通过这些端口读取按钮状态。

该游戏挑战的是玩家在红光和绿光LED灯滚动并且在中心位置相遇时按下按钮。如果LED显示相遇时按下按钮,MAXQ2000即可捕捉这一操作,并且点亮全屏的LED,表示玩家在游戏中获胜。

表1列出了整个游戏过程中使用的所有I²C操作。

表1. I²C操作

I²C/SMBus Protocol Application Purpose Device Slave Address Register Address
Read port 2 input register Read the states of the pushbuttons 0x40 0x01
01000000b 00000001b
Write configuration registers to port 1 Configure the I/O direction for port 1 0x40 0x06
01000000b 00000110b
Write configuration registers to port 2 Configure port 2 GPIOs 8 and 9 as input ports 0x40 0x07
01000000b 00000111b
Write output port register to port 1 Turn LED lights on or off 0x40 0x02
01000000b 00000010b

可以下载该示例应用的源程序。