2024-09-01
售卖作品
00

普中51-单核-A3&A4开发板原理图

在这里插入图片描述

用到数码管、LED、矩阵按键

描述:

(1)按键是0到15

(2)按键07对应着小灯07

(3)有三个小灯的引脚和数码管驱动的引脚重复了,所以实际上只用了5个小灯。

(4)初始状态下8个小灯全部点亮数码管所技术的分数为0。

(5)按键8开始游戏,5个小灯会随机点亮一个。在4秒内用户需要给出对应的按键进行打地鼠。如果4秒了用户还没有打地鼠,那么会随机点亮另一外的小灯。

(6)小灯带4秒的时候还没有被打分数不扣分。打地鼠打错了也不扣分。但是也可以自己添加逻辑达到扣分的要求。

(7)按键9结束游戏,小灯全部点亮,回到初始状态。

仿真图:

在这里插入图片描述

在这里插入图片描述

一部分代码:

c
if ( counter_Whac == 0 ) /* 游戏只有一次不然只有复位 结束游戏后这个变量要变 */ { randomNumber = ramdomSeed % 5; /* 生成随机数 */ ledpTempV = (unsigned char) (0x01 << randomNumber); /* 随机数 亮某一个灯 */ ledpTempV = ( (ledpTempV & 0x1c) << 3) + (ledpTempV & 0x03); P2 = ~ledpTempV; /* 点亮随机灯 */ timeifg_Whac = 0; time_Whac = 0; KeyValue = 66; /*按键初始化 */ while ( !timeifg_Whac ) /* 4s后timeifg_Whac会成为1 */ { KeyScan(); /* KeyValue 的值改变为0 到7 */ if ( KeyValue != 66 ) /*按键值一旦改变就说明按下了 */ { if ( randomNumber == map[KeyValue] ) /* 如果是随机数的值 */ { score_Whac++; /* 加一分 */ seg_disp[0] = score_Whac / 1000; /* 整除 取下千位数字 */ seg_disp[1] = score_Whac % 1000 / 100; seg_disp[2] = score_Whac % 100 / 10; seg_disp[3] = score_Whac % 10; P2 = 0xff; break; /* 继续游戏 */ }else if ( KeyValue == 9 ) { counter_Whac = 1; /* 结束游戏 */ P2 = 0x1c; /* 小灯全部点亮 表示游戏结束 */ break; }else{ /*按错按键不处理 */ break; } } } if ( timeifg_Whac == 1 ) /* 打地鼠超时 不处理 */ { } }

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

代码和仿真打开下载:

bash
http://dt3.8tupian.net/2/28880a65b16880.pg3

在这里插入图片描述

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!