摘 要
随着社会的发展进步,各式有趣的小电动玩具已经遍布我们得生活。大街上
随处可见拿着只有几个按键的打地鼠游戏机。简单的几个按键,就可以给人们带
来娱乐。
打地鼠游戏是电子技术发展的产物。打地鼠有软件版也有硬件版得。而软硬
件打地鼠的游戏规则类似。现在我们来讨论用单片机制作打地鼠游戏机。根据打
地鼠的游戏规则,先制定特定位置,在确认按下了该位置的按钮。这种规则很容
易用单片机实现。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶
入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用 STC89C52
单片机为核心控制元件,设计一个打地鼠游戏机。以单片机作为主控核心,与键
盘、蜂鸣器、数码管等模块组成核心主控制模块,在主控模块上设有 4×4 的矩
阵键盘、数码管和蜂鸣器。本系统运行稳定,其优点是硬件电路简单,软件功能
完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。
关键词:STC89C52 单片机 打地鼠游戏机 数码管 蜂鸣器
目录
引 言 ……………………………………………………………………………………………………………………1
一、系统设计............................................................................................................... 1
1.设计要求............................................................................................................ 1
2.系统框图............................................................................................................ 2
3.设计总思路........................................................................................................ 2
二、硬件设计............................................................................................................... 2
1. 原理方案的构思............................................................................................. 2
2.单元电路设计.................................................................................................... 3
2.1 单片机及译码器模块............................................................................. 3
2.1.1 工作原理图.................................................................................. 3
2.1.2 设计分析.............................................................................................. 3
2.2 矩阵灯模块............................................................................................. 3
2.2.1 工作原理图.................................................................................. 3
2.2.2 设计分析...................................................................................... 4
2.3 矩阵键盘模块......................................................................................... 4
2.3.1 工作原理图.................................................................................. 4
2.3.2 原理分析...................................................................................... 4
2.3 数码管动态显示模块............................................................................. 5
2.3.1 工作原理图.................................................................................. 5
2.3.2 设计分析...................................................................................... 5
2.3 蜂鸣器模块............................................................................................. 5
2.3.1 工作原理图.................................................................................. 5
2.3.2 设计分析...................................................................................... 6
三、软件设计............................................................................................................... 6
1.程序设计思路.................................................................................................... 6
2.程序流程框图.................................................................................................... 7
四、设计仿真............................................................................................................... 8
4.1 仿真原理图..................................................................................................... 8
4.2 仿真结果......................................................................................................... 8
五、游戏说明书........................................................................................................... 9
5.1 前言................................................................................................................. 9
5.2 运行说明:................................................................................................... 10
5.3 评分规则:................................................................................................... 10
五、心得体会............................................................................................................. 10
六、参考资料............................................................................................................. 10
七、附录..................................................................................................................... 11
附录一:原理图................................................................................................. 11
引 言
单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,
它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。它的
应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成
为高科技和工程领域的一项重大课题。
打地鼠游戏机是现代电子技术发展的产物。是一种按键式的游戏机。是人们
的休闲娱乐的好选择。单片机具有强大的控制功能和灵活的编程实现特性,它已
经融入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用
STC89C52 单片机为核心控制元件,设计一个打地鼠游戏机。以单片机作为主控
核心,4×4 矩阵键盘、蜂鸣器等模块组成核心主控制模块。
本文主要对使用单片机设计打打地鼠游戏机进行了分析,并介绍了基于单片
机打地鼠游戏机硬件组成。利用单片机产生随机数来点亮指定的位置的 led 发光
管。在判断是否按下了对应位置的按键。根据游戏规则判断是该加分还是加错。
错 5 次则本次游戏结束。并且本文分别从原理图,主要芯片,以及程序的调试来
详细阐述。
游戏流程是先由单片机产生随机数,点亮对应位置的 LED 灯,并记录被点亮
的位置。这时就开始扫描键盘,按键结果用来判断游戏规则。如果正确游戏积分
加 1,如果错误,失去一个生命值。生命值减到 0 则游戏结束。游戏期间还得用
数码管动态显示游戏的分数,游戏结束后显示 over。用单片机产生随机数类似
电脑上产生随机数。需要开系统时钟,即定时器。我们可以利用单片机的定时/
计数器 T0 来提供系统时钟。矩阵键盘需要扫描才能应用。
一、系统设计
1.设计要求
设计一个挑战反应速度的“打地鼠”游戏机。要求:以 LED 亮代表地鼠随机
出现在任何位置,以按键代表锤子,击中地鼠,一旦击中,数码管计分器分数增
1
加。按复位键重新开始游戏。
2.系统框图
图 1 系统框图
3.设计总思路
本设计利用单片机 P3 口连接 4×4 矩阵按键,作为功能控制键。P0 口连接
矩阵灯是用点阵连接成 4×4 的矩阵,与矩阵键盘的位置相对应。P0 口连接数码
管用于显示生命值(第一个数码管)、游戏积分(后 3 个数码管)和游戏结束时
显示 over。蜂鸣器用于添加游戏声音。
二、硬件设计
1. 原理方案的构思
先由单片机产生随机数,点亮对应位置的LED灯(地鼠出洞),并记录被点亮
的位置。这时就开始扫描键盘,按键地址与地鼠出现的位置即LED灯亮的位置(随
机数)进行比较,如果正确,游戏积分加1,如果错误,失去一个生命值。生命
值减到0则游戏结束。游戏期间还得用数码管动态显示游戏的分数,游戏结束后
显示over。用单片机产生随机数类似电脑上产生随机数。需要开系统时钟,即定
时器。我们可以利用单片机的定时/计数器T0来提供系统时钟。矩阵键盘需要扫
描才能应用。
2
2.单元电路设计
2.1 单片机及译码器模块
2.1.1 工作原理图
图 2-1 温控开关电路
2.1.2 设计分析
如图 2-1 所示,P0 口接 4 位 8 段数码管的段,P0.0 连接 a 脚,以此类推;
P2 口接数码管的位选端,P2.0 接第一位,以此类推;P3 口通过连接 4×4 个矩阵
键盘,游戏键盘,根据扫描检测到得按键值,依照相应游戏规则,判断游戏是否
加分;P1 口通过 74LS138 接 LED 矩阵。
74LS138 为 3 线-8 线译码器,当一个选通端(E1)为高电平,另两个选通
端((/E2))和(/E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在 Y0
至 Y7 对应的输出端以低电平译出。(即输出为 Y0 至 Y7 的非)比如:A2A1A0=110 时,
则 Y6 输出端输出低电平信号。用两片 74LS138 随机点亮 16 个矩阵 LED 灯。
2.2 矩阵灯模块
2.2.1 工作原理图
3
图 2-2 矩阵灯模块
2.2.2 设计分析
如图 2-2 所示,用 16 个发光二极管 LED1-LED16 一端并接在 VCC(+5V)上,
另一端分别通过两片 74LS138 芯片组合连接在 P1 口的 P1.0-P1.7 口线上。用来显
示随机产生的地鼠。
2.3 矩阵键盘模块
2.3.1 工作原理图
图 2-3 矩阵键盘模块
2.3.2 原理分析
如图 2-3 所示, 16 位矩阵键盘 K1-K16 一端分别接在 P3 口 P3.0-P3.3,另一端
都连接在 P3 口 P3.4-P3.7。当某一按键按下时,相应的口线发生电平变化,单片
机进行扫描来确定某一按键的按下,记录键值。进而判断是否与 LED 亮的位置是
4
否相同,确认是否打中地鼠。同时数码管显示电路显示生命值与游戏积分。
2.3 数码管动态显示模块
2.3.1 工作原理图
图 2-4 数码管动态显示模块
2.3.2 设计分析
如图 2-4 所示,输出模块采用数码管显示。本模块采用两个四位一体数码管
(共阳极)作为显示窗口,位控端接有三极管,用 8 个 PNP 三极管来驱动数码
管,既节约成本又简化电路。
2.3 蜂鸣器模块
2.3.1 工作原理图
图 2-4 蜂鸣器模块
5
2.3.2 设计分析
如图 2-5 所示, 单片机 P2.6 口线上接上一个 1KΩ电阻然后再通过一个 PNP
型三极管与蜂鸣器相连接组成蜂鸣器电路,接入 PNP 型三极管是为了增强蜂鸣
器的驱动电流。蜂鸣电路主要是完成提示和违规报警功能。
三、软件设计
1.程序设计思路
矩阵 LED 部分:是有单片机产生随机数点亮的。
按键比较部分:先由矩阵键盘扫描程序获得键值,利用该键值和点亮 LED 的
随机数进行比较。
数码管动态显示部分:比较过后通过数码管来显示的分值与生命值。通过先
打开位数开关,然后倒入显示的数来表示生命值与分值。
蜂鸣器部分:在程序的矩阵键盘扫描部分添加了蜂鸣器控制。即有键按下就
会发声。
6