欢迎来到天天文库
浏览记录
ID:40212995
大小:2.02 MB
页数:15页
时间:2019-07-26
《打地鼠-fpga实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字系统设计——打地鼠1.功能介绍2.存在问题3.解决方案4.设计总结打地鼠功能介绍:闯三关打中地鼠,拼得40分打中地鼠,拼得80分得分过百晋级晋级通关功能介绍:功能介绍:模块功能描述(1)MOUSESETTING设置地鼠各个洞穴的编码,随机产生地鼠(2)键盘扫描电路:对键盘进行行扫描,根据列的信号判断按键(3)GRAPH对点阵进行逐行扫描显示编码(4)LED显示电路显示键盘的按键或者通关的走马灯(5)SCORE计算分数并编码1.如何随机地产生地鼠?采用伪随机产生,将地鼠可能出现的位置提前编写好,
2、根据时钟选取其中的任一个存在问题及解决方案实现方案:OM1<="010000000";OM2<="100000000";OM3<="000010000";OM4<="001000000";OM5<="000001000";OM6<="000000010";OM7<="000000100";OM8<="010000000";OM9<="000100000";OM10<="000000001";OM11<="100000000";OM12<="000001000";OM13<="000000100";
3、OM14<="001000000";OM15<="000010000";OM16<="000000001";--16个老鼠可能出现的地方OUT_MOS<=OM1WHENClkrandom=0ELSEOM2WHENClkrandom=1ELSEOM3WHENClkrandom=2ELSEOM4WHENClkrandom=3ELSEOM5WHENClkrandom=4ELSEOM6WHENClkrandom=5ELSEOM7WHENClkrandom=6ELSEOM8WHENClkrandom=7EL
4、SEOM9WHENClkrandom=8ELSEOM10WHENClkrandom=9ELSEOM11WHENClkrandom=10ELSEOM12WHENClkrandom=11ELSEOM13WHENClkrandom=12ELSEOM14WHENClkrandom=13ELSEOM15WHENClkrandom=14ELSEOM16WHENClkrandom=15;2.如何区分表现地鼠出现,地鼠被打死?我采用8X8的红绿黄三色点阵,绿色的点表示边界,红色的点表示出现的地鼠,黄色的点表示被打
5、死的地鼠。存在问题及解决方案实现方案:在算法中,我将该8X8的点阵上的64个点整个得作为一个VECTOR,0表示该点亮,1表示该点灭。例如:BASIC<="1101101111011011000000001101101111011011000000001101101111011011";--显示“井”字绿色边界同理:E1<="0011111100111111111111111111111111111111111111111111111111111111"WHENOUT_MOS(1)='1'ELSE
6、EN;--区域一的点亮了,老鼠出现在区域一E1G<="0011111100111111111111111111111111111111111111111111111111111111"WHENOUT_MOS(1)='1'ANDEDS_RKN3(1)='0'ELSEEN;--区域一的老鼠被打死3.如何用点阵显示出地鼠来?对点阵采用行扫描的形式,其实同一时刻只有同一行的点阵上的点才可能亮,但是由于扫描的频率较高,根据视觉暂留效应,看上去是一同出现存在问题及解决方案实现方案:ROW<="11111111
7、"WHENRESET='1'ELSE"01111111"WHENROWW=0ELSE"10111111"WHENROWW=1ELSE"11011111"WHENROWW=2ELSE"11101111"WHENROWW=3ELSE"11110111"WHENROWW=4ELSE"11111011"WHENROWW=5ELSE"11111101"WHENROWW=6ELSE"11111110"WHENROWW=7;--点阵行扫描的显示CR<="11111111"WHENRESET='1'ELSEWHA
8、T_OUT(1TO8)WHENROWW=0ANDC=0ELSEWHAT_OUT(9TO16)WHENROWW=1ANDC=0ELSEWHAT_OUT(17TO24)WHENROWW=2ANDC=0ELSEWHAT_OUT(25TO32)WHENROWW=3ANDC=0ELSEWHAT_OUT(33TO40)WHENROWW=4ANDC=0ELSEWHAT_OUT(41TO48)WHENROWW=5ANDC=0ELSEWHAT_OUT(49TO56)WHENROWW=6ANDC=0E
此文档下载收益归作者所有