全球旧事资料 分类
一个大循环结构,对于俄罗斯方块的程序设计,首先产生一个伪随机数,其范围是06,然后程序根据此数值所对应的图形模块装入ram的固定区域内,紧接着将此图像写入led所对应的显示缓冲区中,显示程序将缓冲区内的内容显示在led上,如果没有控制键按下,图形将自动向下移动。如果有键按下,程序将根据按下的键来改变图形存储区的值,同时程序将判断图形是否已到达边界,当图形最上层到达显示区顶部,则游戏结束,此时将清楚显示缓冲的内容,游戏重新开始。
2.8x8led显示原理8x8led显示屏的原理图如下
f由于人眼的视觉暂留现象,通过逐行扫描显示的方式来显示要显示的内容,当每一行扫描的时间很小时人眼观察的将是一幅完整的图像。
3.硬件电路仿真图
4.图形显示
8x8led一共有64个led,可以从下至上一次对其编号,对于显示类的基本操作是任意点亮一个点,熄灭一个点,任意点亮
(0
64)个点,灭掉
个点,如此一来游戏的第一个关键点就完成了。
我们将ram中从21h单元到28h单元作为led的显示缓冲区,这里面的每一位对应led的一个点,led将实时显示缓冲区的内容,也就是当此缓冲区内容一改变,led上看到的也会做出相应的改变。同时在俄罗斯方块中那些方块被存放在一个类似于一维的数组之中,每一个方块对应四个小方块,根据伪随机数将这四个小方块对应的值装入ram固定的区域内。如果要显示方块只需将这些方块所对应的点写入缓冲区。5.消层算法
设置循环变量数R28,即总共至少要扫描8次,每一次循环过程中检测此行是否已满,也就是检测这一行所对应的存储单元是否全为一,如果全为一则将消去此行,即将此行对应的ram清零。同时将此行上面ram的内容按每列依次下移,下移完之后重新将R20,又从第一行开始检测。此行不全为零时只需将R2R21。直到R29消层过程结束。6.旋转算法
首先要确定一个旋转中心,假如旋转中心的编号是34,将34除以8,商是4存入R1余数是2存入R2,及时用商和余数建立坐标系。此时若以此为旋转中心的图形需要旋转,则将每一个小方块对应编号除以8,商减去R1,余数减去R2,而每一个方块一次将旋转90
f度,所以有公式x1y1x2y2
x2y1y2x1
其中x1,y1为旋转之前的坐标,x2y2为旋转之后的坐标。旋转完之后将x2加上R1将y2
加上R2,然后将x2乘以8再加上y2。执行四次此过程旋转结束。
7.实物焊接
器件:stc51单片机一块,8x8led显示模块一块,电阻10k10个,开关5个,与门,12m
晶振一个,电容3个。
首先按照目的进行进行元器件布r
好听全球资料 返回顶部