




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
短学期课程设计报告设计名称: 电子技术课程设计 设计题目: 拔河游戏机电路 院 (系): 信息科学与技术学院 年 级: 2014级 组 号: 第11组 指导教师: 西 南 交 通 大 学2016年7月 小组成员及内容分工学号姓名年级2014专业班级物联一班完成的主要内容1.完成代码程序编写2.组织每日项目进度安排与总结3.对每日的工作进行汇总4.设计所显示的图案学号2014112245姓名陈伟年级2014专业班级物联一班完成的主要内容1.PCB板的设计2.原理图的设计3.检查电路原理图的准确性4.对电路进行调试和更正学号2014112245姓名陈伟年级2014专业班级物联一班完成的主要内容1.对电路的调试和更正2.完成PCB板的打孔3.完成元器件的焊接4.撰写实习报告目录一、绪论31.1设计目的31.2 设计要求3二、方案设计32.1概论设计32.2各子系统模块42.3使用器件说明5三、详细设计53.1主程序53.2各功能与算法63.3引脚锁定93.4原理图及PCB绘制9四、测试及使用说明104.1测试步骤104.2实验结果10五、结论12六、实习总结12附录131、电路原理图132、PCB板图143.verilog代码14 一、绪论1.1设计目的通过设计一个简易拔河比赛游戏机。a熟练掌握EDA软件QUARTUSII的使用方法;b能利用EDA软件QUARTUSII进行一个电子技术综合问题的设计;c掌握FPGA系统各种外围接口的灵活运用,培养实验的仿真及下载技能;d掌握按键分配、CLOCK调用、LED数码管等外围接口的VerilogHDL语言编程;e通过软件编程和仿真理解并体会VHDL语言的常用编写语言和语法规;f培养分析、寻找和排除电子电路中常见故障的能力1.2 设计要求1.设计一个模拟拔河游戏机比赛的逻辑电路。2.电路使用15个电平指示灯排成一排,开机后只有中间一个点亮,以此作为拔河的中心线。3.比赛双方各持一个按键,迅速不断的按动产生脉冲,谁按得快,亮点向谁方向移动。每按一次,亮点移动一次。4.移动到任何一方终端指示灯点亮,这一方得胜,此时双方按键均无作用,输出保持,只有经裁判按动复位后,恢复到中心线。5.两个数码管显示比分,在比赛结束时会有音乐播放,根据不同的获胜方,会有不同的音乐播放。注:本拔河游戏设计为三局两胜制,但必须比赛三局。二、方案设计2.1概论设计1由于拔河游戏机是通过按键输入快慢来判断胜负的,在按按键的同时由于按键自身机械原因会产生许多不必要的抖动,这种抖动会引起一系列不必要的误差,所以我们在玩家1、2的输入端都加上了消除按键抖动的模块,让游戏更具有公平性。 2设计一个分频器,用来对比赛信号的输出频率进行控制。可以这样理解:我要怎样认为参赛一方获得了暂时的领先优势呢,答案是我可以设计参赛方按键若干次后才认为亮点向它那方移动一次。这样可以更真实的反应比赛过程。这个设想我通过分频器来实现。当然,老师给出的要求是领先按一次就认为亮点移动一次,我就可以直接把我的分频器改为不变分频,这样只需在分频程序里改动一点数据即可,也容易做到。为了硬件验证的简单同时兼顾程序的可扩展性,我这里的分频器以三分频来设计。即先设计一个三分频器。 3设计一个四位16进制计数器。 4设计胜利次数统计和显示的模块。这一模块由计数器和译码器两个部分组成,其实就是之前我们做的七段数码管显示。该部分里的计数器的使能端始终保持1,而把复位键作为胜利次数显示的复位键。5子模块设计完后进行整体组合2.2各子系统模块分频模块:分频模块将系统50MHz频率进行分频,得到10kHz和25Hz的频率,10kHz频率用于数码管的动态扫描,25Hz的频率用于对按键和复位的时序控制。控制模块:控制模块共有四个输入,其中K1,K2代表两个拔河的用户,K3,K4分别用于游戏复位控制和分数清零控制。LED灯模块:此模块由15个LED灯组成,代表拔河的绳子,开始时最中间的红色LED灯亮,当哪一方按键更快时就往哪个方向运动。数码管模块:数码管用于显示比赛双方的比分,复位后为0:0。音乐模块:音乐模块储存了两首歌,粉刷匠和康定情歌,在某一方获胜时会播放对应的歌曲。消抖模块:用于对按键的消抖。2.3使用器件说明15个LED灯,一个两位数码管,一个三极管,一个蜂鸣器,四个开关,电阻若干,FPGA板一块。三、详细设计3.1主程序顶层通过对各个子模块的调用,构成一个完整功能的电路。module baheyouxiji(k1, k2, rst, nrst,_50MHz,led,segout,wx,beep);input _50MHz,k1,k2,rst,nrst;output14:0 led;output 1:0 wx;output6:0 segout;output beep;wire _25HzOut,_10000HzOut,key1,key2;wire1:0 left,right;wire3:0 q;fpq(_10000HzOut,_25HzOut,_50MHz);/调用分频模块xiaodou(k1, k2, _25HzOut,key1,key2);/调用消抖模块bahe(k1, k2, rst, nrst, _25HzOut, q, left, right);/调用控制模块led(q,_25HzOut, led);/调用LED灯显示模块shumaguan(left, right, _10000HzOut, segout, wx);/调用数码管显示模块yinyue (_50MHz,left,right,beep);/ 调用音乐播放模块endmodule3.2各功能与算法a.控制模块代码见附录输入拔河双方的按键k1,k2、游戏复位rst和分数复位nrst以及25Hz的时钟信号,输出Q,左边分数left和右边分数rightb.LED灯显示模块代码见附录用25Hz的频率作为LED灯的时序控制。中间变量Q代表了灯左移或者右移了多少位置,运用译码算法对Q进行译码,得到LED灯的显示。输出15LED接到相应的LED控制位上。c.数码管模块代码见附录输入左边分数left和右边分数right,10kHz,输出七段数码管segout和位选信号wx。d.音乐模块根据各个音调对应的频率,将简谱转化为为相应的频率就可以输出音乐了。State代表的是有多少个音符(以四分符为单位一)。输入系统时钟信号,左边比分left和右边比分right。当左边分数加上右边分数为3时,音乐开始播放。e.分频模块分频器设计的原理和思想其实就是一个计数器,只是把进位端作为分频输出端,而把其他不需要的端口设计省略。计数周期由程序内预置的计数上限来自由控制。f.消抖模块消抖模块的设计主要是为了处理由于按键自身的条件在按下或者是松开时会产生的抖动而设计的,这样可以让游戏更公平合理。经查阅资料得,每当人按下或者松开按键时,程序中每次下降沿都会产生一次检测,如果连续两次都检测到按键已被按下,则确定该按键按下有效,产生一个输出波形,供给后面模块使用。3.3引脚锁定3.4原理图及PCB绘制a.原理图绘制在绘制原理中发现芯片有多个GND引脚,在询问老师之后,明白了最好是将它们接在一起。其中芯片的VP引脚,一开始也搞不懂是什么。在老师的讲解下,明白了是板子电源的输入端,并且推荐使用9V。b.PCB的绘制遵照着教程进行元件的导入、元件位置的确定以及交互式排线。因为开始的时候,原理图并没有完全确定,所以元件是分批次导入的。第一次导入了90%以上的元器件,最后修改的芯片以及电源通过再次更新进入PCB版图。虑的因素有很多。比如整块电路板的供电与散热,比如铜线的长短与粗细,再比如布线的美观等等。首要的任务就是布线一定要正确,该联通的要联通,其次,要尽量美观,走线尽量是水平和竖直的,也是为了能更好地布线,防止斜着布线时走线过于混乱,最终出现布线不通的情况。由于是第一次进行布线,再加上时间比较紧急,所以布线的时候,没有特别注意美观这一层面的要求,主要是考虑了布线的正确性以及联通性。为了符合实验室制作板子的要求,将信号线宽设置为0.8mm,而焊盘内径设置为0.8mm或者1.0mm。四、测试及使用说明4.1测试步骤a.先在quartus上进行仿真测试,测试各个模块对应功能的是否能够实现。b.在quartus上编译通过后锁定引脚,下载到开发板上,测试整个系统的完整性。4.2实验结果在quartus上进行仿真测试后,下载到开发板上进行验证。并得到了预期的结果。测试结果如下图:五、结论各个模块工作正常,将模块整合后,整个系统也能够正常的工作,测试结果符合设计的要求。六、实习总结经过本次实验的训练,让我对一个电子产品从功能要求,逻辑设计,电路原理图设计,PCB设计,电路焊接,电路调试的全过程有了一个清晰的把握与认识。这次实习让我清楚了一个完整的器件,从功能的提出、功能的设计、功能的调试,最后转化为实际的东西。而不仅仅是书上的一些图片。同时也让我对数字电路有了更加深刻的理解,以前不太明白的时序,以及对软件的不熟悉在这次实习中都得到了极大的提升。也发现自己在动手能力方面的不足,比如在焊接的时候,总是焊得不理想,不容易达到标准的要求。这方面还需要提升。附录1、电路原理图2、PCB板图1.3.verilog代码拔河模块module bahe(k1, k2, rst, nrst, _25H, q, left, right);input k1; /input k2; /input rst; /?o?ao?1input nrst; /?1input _25H; /output 3:0 q; /?o?led?o?o?3?output 1:0 left; /?oyoy?11o?3?output 1:0 right; /?oyoy?11o?3?reg 3:0q; reg n;reg 1:0left,right; /reg?always (negedge rst or posedge _25H or negedge nrst) begin if(rst) begin q=7;n=1;end /q,led?D|? no1?1?a else if(nrst) begin left=0;right=0;end /? else if(n) /?D?o1?1o?a? begin if(left+right)=3) n=0; else begin case(k1,k2) / ?1?| 2b01: q=q+1; / led? 2b10: q=q-1; / led? default: q=q; / ?3? endcase / case(q) 4b0000:begin n=0;left=left+1;end /?+1?no1?11? 4b1110:begin n=0;right=right+1;end /?+1?no1?11? default:n=n; /?3? endcase end end endendmodule拔河灯显示module led(q, _25HzOut, led);input 3:0 q;input _25HzOut;output 14:0 led; reg 14:0 led; always(posedge _25HzOut) case(q) 4d0:led=15b000000000000001; 4d1:led=15b000000000000010; 4d2:led=15b000000000000100; 4d3:led=15b000000000001000; 4d4:led=15b000000000010000; 4d5:led=15b000000000100000; 4d6:led=15b000000001000000; 4d7:led=15b000000010000000; / 中点 4d8:led=15b000000100000000; 4d9:led=15b000001000000000; 4d10:led=15b000010000000000; 4d11:led=15b000100000000000; 4d12:led=15b001000000000000; 4d13:led=15b010000000000000; 4d14:led=15b100000000000000; default:led=led; endcaseendmodule比赛分数显示模块module shumaguan(left, right, _10000H, segout, wx);input 1:0 left;input 1:0 right;input _10000H;output 6:0 segout; /y?1?3?output 1:0 wx; reg 1:0 wx; reg7:0 count; reg 6:0 segout; reg 1:0 seg_in; always(posedge _10000H) if(count=3) count=0; else begin case(count) 2b00:begin seg_in=left;wx=2b01;count=count+1;end 2b10:begin seg_in=right;wx=2b10;count=count+1;end default:count=count+1; endcase endalways(seg_in) case(seg_in) /g f e d c b a/ 2d0:segout=7b0111111; /0 2d1:segout=7b0000110; /1 2d2:segout=7b1011011; /2 2d3:segout=7b1001111; /3 default:segout=segout; endcase endmodule消抖模块module xiaodou(key1, key2, _25H,k1, k2);input key1; / 按键1input key2; / 按键2input _25H; /脉冲25Hzoutput k1;output k2;assign k1=(a1|a2|a3); /assign k2=(b1|b2|b3); / 采用3个或门消抖reg a1,a2,a3,b1,b2,b3;always (posedge _25H)begin a1=key1;a2=a1;a3=a2; b1=key2;b2=b1;b3=b2;endendmodule音乐播放模块module yinyue (sys_clk,left,right,beep); input sys_clk; /?3?48MHz input 1:0left; input 1:0right; output beep; /?3? reg beep_r; /? reg 7:0 state1; reg 7:0 state2; /? reg 15:0 count; reg 15:0 count_end; reg 23:0 count1; /?2?y:D=F/2K parameter L_5 = 16d63775, /?5 L_6 = 16d56818, /?6 M_1 = 16d47801, /?D?1 M_2 = 16d42589, /?D?2 M_3 = 16d37936, /?D?3 M_5 = 16d31887, /?D?5 M_6 = 16d28409, M_7 = 16d25303, /?D?6 H_1 = 16d23900, H_2 = 16d21276, H_3 = 16d18968, H_4 = 16d17895, H_5 = 16d15943, H_6 = 16d14204, H_7 = 16d12709; /?1 parameter TIME = 12000000; /?3?(250ms) assign beep = beep_r; /?3?/* ?3?o?* 1|?o?y?*/always(posedge sys_clk)beginif(left+right)=3)begin count = count + 1b1; /?y?1 if(count = count_end) begin count = 16h0; /?y? beep_r = !beep_r; /?3? end endend/* ?3?o?* 1|?o2?y2?3?*/always (posedge sys_clk)beginif(left+right)=3)begin if(count1 right) begin count1 = 24d0; if(state1 = 8d147)state1= 8d0; elsestate1= state1+ 1b1; case(state1) 8d0,8d1: count_end = L_5; 8d2,8d3,8d4,8d5,8d6,8d7,8d8: count_end = M_1 ; 8d9,8d10: count_end = M_3; 8d11,8d12,8d13,8d14: count_end = M_2; 8d15: count_end = M_1; 8d16,8d17: count_end = M_2; 8d18,8d19: count_end = M_3; 8d20,8d21,8d22,8d23,8d24: count_end = M_1; 8d25,8d26: count_end = M_3; 8d27,8d28: count_end = M_5; 8d29,8d30,8d31,8d32,8d33: count_end = M_6; 8d34,8d35,8d36,8d37,8d38: count_end = M_6; 8d39,8d40,8d41,8d42: count_end = M_5; 8d43,8d44,8d45: count_end = M_3; 8d46,8d47: count_end = M_1; 8d48,8d49,8d50,8d51: count_end = M_2; 8d52: count_end = M_1; 8d53,8d54: count_end = M_2; 8d55,8d56: count_end = M_3; 8d57,8d58,8d59,8d60: count_end = M_1; 8d61,8d62,8d63: count_end = L_6; 8d64,8d65: count_end = M_5; 8d66,8d67,8d68,8d69: count_end = M_1; 8d70,8d71,8d72,8d73: count_end = M_1; 8d74,8d75: count_end = M_6; 8d76,8d77,8d78,8d79: count_end = M_5; 8d80,8d81,8d82: count_end = M_3; 8d83,8d84: count_end = M_1; 8d85,8d86,8d87,8d88: count_end = M_2; 8d89: count_end = M_1; 8d90,8d91: count_end = M_2; 8d92,8d93: count_end = M_6; 8d94,8d95,8d96,8d97: count_end = M_5; 8d98,8d99,8d100: count_end = M_3; 8d101,8d102: count_end = M_5; 8d103,8d104,8d105,8d106: count_end = M_6; 8d107,8d108,8d109,8d110: count_end = M_6; 8d111,8d112: count_end = H_1; 8d113,8d114,8d115,8d116: count_end = M_5; 8d117,8d118,8d119: count_end = M_3; 8d120,8d121: count_end = M_1; 8d122,8d123,8d124,8d125: count_end = M_2; 8d126: count_end = M_1; 8d127,8d128: count_end = M_2; 8d129,8d130: count_end = M_3; 8d131,8d132,8d133,8d134: count_end = M_1; 8d135,8d136,8d137: count_end = L_6; 8d138,8d139: count_end = M_5; 8d140,8d141,8d142,8d143: count_end = M_1; 8d144,8d145,8d146,8d147: count_end = M_1; default: count_end = 16h0; endcase end else if(leftright) begin count1= 24d0; if(state2 = 8d139) state2= 8d0; else state2= state2+ 2b1; case (state2) 8d0,8d1,8d2,8d3: count_end =M_3; 8d4,8d5,8d6: count_end =M_5;/中音5,3个节拍 8d7: count_end =M_6;/中音6 8d8,8d9,8d10: count_end =H_1;/高音1,3个节拍 8d11:count_end =H_2; /高音2 8d12:count_end =M_6; /中音6 8d13:count_end =H_1; /高音1 8d14,8d15:count_end =M_5; /中音5 8d16,8d17,8d18: count_end =H_5;/高音5 8d19:count_end =H_1; /倍高音1 8d20:count_end =H_6; /高音6 8d21:count_end =H_5;/高音5 8d22:count_end =H_3;/高音3 8d23:count_end =H_5;/高音5 8d24,8d25,8d26,8d27,8d28,8d29,8d30,8d31,8d32,8d33,8d34:count_end =H_2; /高音2 8d35:count_end =H_3;/高音3 8d36 ,8d37:count_end =M_7; /中音7 8d38,8d39:count_end =M_6;/中音6 8d40,8d41,8d42:count_end =M_5; /中音5 8d43:count_end =M_6;/中音6 8d44,8d45:count_end =H_1;/高音1 8d52:count_end =M_6;/中音6 8d53:count_end =M_5;/中音5 8d54:count_end =M_5; /中音6 8d55:count_end =H_1;/高音1 8d56,8d57,8d58,8d59,8d60,8d61,8d62,8d63:count_end =M_5;/中音5 8d64,8d65, 8d66:count_end =H_3;/高音3 8d67:count_end =H_5;/高音5 8d68,8d69:count_end =M_7;/中音7 8d70,8d71:count_end =H_2;/高音2 8d72:count_end =M_6; /中音6 8d73:count_end =H_1;/高音1 8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 效应分析题目及答案解析
- 掰手腕作文500字初中初一作文(13篇)
- 最美的青春初三作文最美的青春作文10篇范文
- 时间小主人课件
- 物理性质和社会变迁探究之浮力的教案
- 三农项目融资策划与实施方案手册
- 蓝色痛风预防和护理
- 统编版(部编版)小学三年级语文上学期第五单元分类训练题:句子练习(附答案)
- 纪念英雄的课件
- 快乐的一天300字10篇
- GB/T 15155-1994滤波器用压电陶瓷材料通用技术条件
- 传媒公司员工劳动合同(标准版)
- 复变函数与积分变换全套课件
- 做一名优秀教师课件
- 企业标准编写模板
- 商场开荒保洁计划书
- 设备出厂检验报告
- DBJ 53-T-46-2012 云南省城镇道路及夜景照明工程施工验收规程
- 西方文明史(第五版)英文版全书ppt完整版课件整本书电子教案最全教学教程
- 商务英语翻译实务完整版教学ppt课件全套教程
- 非器质性失眠症临床路径
评论
0/150
提交评论