有一种常见的益智小游戏:游戏中,屏幕会显示一组10位数字,并很快消失,玩家通过瞬时记忆,输入相同的内容,如正确,进入下一关;错误,将重新开始随着关卡后移,屏幕显示数组的时间会越来越短,以提高难度
51虽然是一款最基础的单片机,但这次,我想实现上面的游戏功能。
需要的外设:(如图)51开发板 ,集成一体的红外接收头 遥控器 LCD1602
先预想好按键功能:
分析几个问题:
1、产生随机数的方法:rand函数,种子则通过定时器的TH 和TL读取
2、红外遥控数据的读取:好在开发板接到的是单片机的外部中断1引脚 P3.3 通过外部中断,读取按键数据按照红外协议即可
3、存储游戏记录:好不容易玩到成绩很高的记录,一定要存储下来,这里利用开发板上的AT24C02可实现,通过单片机IO口模拟IIC的存取,记录游戏最高记录
4、游戏中原本该按确认键(或其他),结果按错了:做一个按键过滤机制,当前游戏处于某一状态下,其他按键按下无效。
有了上面的几条分析,在写程序的时候就会顺利很多。下面贴出来主要函数的代码:
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !