#include "reg51.h"
#include "intrins.h"
/*阅读代码前应知晓:
·单片机LED点阵为8*8。受矩阵按键数量(4*4)所限,本实现将每2*2个LED看作
一个灯,因此点灯规模为4*4。
·每一个灯叫做一个Block。其从左到右、从上到下的序号为1-16。
·16个矩阵按键序号的编排同Block。
·P0口高位对应最左侧LED,列数据最高位对应最上方LED。
·本人水平有限,程序不周之处敬请评论告知,感激不尽!
*/
typedef unsigned char uchar;
sfr Row=0x80;
sfr KeyMat=0x90;
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;
uchar isBlockLit[16];//存储每一个Block是否被点亮。
uchar ColLitRow[4]={
0,0,0,0};//存储从左到右每一个灯列内的点灯情况。
uchar KeyValue;//当前矩阵按键的序号。
char MatData[]={
-1,-1,-1,-1,-1,-1,
-1, 1, 2, 3, 4,-1,
-1, 5, 6, 7, 8,-1,
-1, 9,10,11,12,-1,
-1,13,14,15,16,-1,
-1,-1,-1,-
51单片机实现点灯游戏(Flip Game),4×4
最新推荐文章于 2024-06-20 13:12:09 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)