/A-small-game-using-MSC-52

MCS51 单片机的一些小程序,小游戏

Primary LanguageC

MCS52 单片机打地鼠游戏

Keil C51

项目简介

用51单片机实现模拟打地鼠小游戏,灯亮表示地鼠探头,你需要在半秒内按下旁边的按钮,表示把地鼠打回去,这样你可以赢得一分,如果连续三次没有将地鼠打回去,则游戏失败,你只能重新开始。

本游戏提供暂停和继续功能。

output

Update

  • 4月28日:增加驱动电路,提高稳定性

食用方法

  • 下载或clone项目,打开\protues\mouse.pdsprj,进入仿真界面
  • 关于软件版本配置,可以参看我的bilibili,https://www.bilibili.com/video/BV1Qe411W7H6/

文件说明

  • proteus文件夹中为proteus仿真

  • code文件夹中为源代码

    • src目录为所有的.c文件

    • dependence目录为所有的.h文件

    • 其他目录都为中间文件或配置文件

函数命名

  • _ 开头的函数表示只在所在文件当中起作用,不对外展现接口,例如_LCD_delay()只在LCD.C中被调用;

  • 硬件的接口函数的命名规则硬件名(大写)_函数名,提供提供接口,在_func.c中进行声明,如LCD_clear()表示LCD屏幕的清空,在LCD_func.h中声明

实现思路

  • 硬件代码和逻辑代码独立,硬件代码编译完后向外提供接口函数

  • main.c中实现硬件软件的初始化与随机数的更新

  • random.c中生成随机数

  • tasks.c中利用外部中断和定时器中断实现主要的逻辑功能和时序控制

  • update.c作为对tasks.c的补充,完成在正常工作状态下的逻辑,包括 LED 的控制,键盘扫描,LCD 显示屏控制,计分策略等

TODO

  • 在单片机和外围电路之间增加驱动电路
  • 使用状态机,实现更多功能