基于单片机的俄罗斯方块游戏机课程设计 下载本文

图5.2实物主界面图图5.3实物速度设置界面图

图5.4实物游戏界面图图5.5实物游戏得分界面图

5.6实物游戏结束界面图

6.心得体会

我在这次中主要负责软件的调试以及协调好软硬键的通讯。软件调试中,发现了乱码的现象,开始调试是弄不清是软件的问题还是硬件的问题,这给了我一个很大的教训,软件硬件不能同时调试,只有确认一个没问题后才能更好的调试另一个。最后发现是由软件引起数据冲突造成的。此外还出现的各种各样的BUG,例如游戏得分系统和人机通讯系统也会出现问题,有个问题更是莫名其妙,比如按着按着出现界面停顿现象,甚至出现了死机现象,而实际游戏中这种现象是万万不允许的。开始以为是电平干扰所引起的,但是接稳定的电压也会出现这种情

9

况。回去检查代码时已经是1000多行代码了,从主函数慢慢往下看,虽然注释的比较详细但是问题却很难找到,然而BUG事实却摆在那里。不修复则游戏无法进行。我终于体会到程序员的辛苦和无奈。只能回到最初的流程图从底层驱动函数和算法逻辑慢慢整理,才发现我的程序出现的多么大的问题,没有用好指针,指针出现了问题给程序带来的灾难性的后果。还有一些变量的初始化没有赋值,

初始化指针中没用明确的指向,函数没有返回。这些都是细节问题,任何一个关键变量没有用好都会出现很大的问题。更重要的教训是编程思路一定要清晰,这就要求编写代码之前流程图都要画好。还有就是编写程序时头脑要清醒不能打疲劳战,有时候变量的赋值过程中脑袋里想的是赋值为1而键盘中赋值的确实0;这种情况也是最难找的,因为是自己写的程序,潜意识以为是正确的,就去找别处的错误了。只有一个一个的找才能找出来。找到之后,真的很后悔当初的粗心

10

参考文献

[1]张毅刚.单片机原理及接口技术[M].北京:人民邮电出版社,2013:220-240 [2]郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2012:230-240 [3]韩旭,王娣. C语言从入门到精通[M].北京:清华大学出版社,2010:244-260

[4]胡仁喜. Altium Designer 16从入门到精通[M].北京:机械工业出版社,2016:118-168 [5]王东锋,董冠强.单片机C语言应用100例[M].北京:电子工业出版社,2009:182-200

11

附录1

整体电路原理图:

PCB图:

12