欢迎来到天天文库
浏览记录
ID:957245
大小:638.34 KB
页数:32页
时间:2017-10-20
《北邮数电实验掷骰子游戏电路的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、掷骰子游戏电路的设计与实现数字电路与逻辑设计实验报告学院:电子工程学院班级:学号姓名:指导老师:目录一、设计课题的任务要求31、基本要求32、提高要求3二、系统设计31、设计思路32、总体框图43、分块设计6三、仿真波形及波形分析71、第1局分出胜负72、第2——5局分出胜负83、第6局之后分出胜负9四、源程序91、主程序92、响铃程序26五、功能说明及资源利用情况301、基本功能302、附加功能303、管口配置304、资源利用情况31六、故障及问题分析311、按键次数与局数不一致312、比较输赢结果与预期不同323、数码管偶尔会出现乱码显示324
2、、伪随机数产生有规律,随机性较差32七、总结和结论321、选题总结322、心得体会32一、设计课题的任务要求1、基本要求1、电路可供甲乙二人游戏,游戏者甲使用的按键为BTN0,游戏者乙使用的按键为BTN1。2、每按一次按键,代表掷一次骰子,可随机得到1~6范围内的两个数字。3、甲乙按键产生的随机数字分别用数码管DISP0-DISP1、DISP2-DISP3显示,并用DISP7显示比赛局数,比赛结束用8×8点阵显示获胜方,并伴有声音效果。4、具体游戏规则如下:(1)第一局比赛,甲乙依次各按一次按键,按键所得两数之和为7或11者胜;若无人取胜,则进行第
3、二局比赛;(2)第二局比赛,甲乙每人各按一次按键,按键所得二数之和与第一局比赛相同者获胜,若无人获胜,则进行第三局比赛,重复进行步骤(2),直到出现胜者为止。(3)在第六局比赛时,若重复进行步骤(2)仍未出现胜者,以按键所得两数之和最大者为获胜方,若依然未分出胜负,重复比大小直到出现胜者为止。2、提高要求1、增加多人游戏的功能,数码管可分时记录显示每个游戏者的骰子点数。2、点阵显示增加游戏开机动画、结束动画,并伴有乐曲播放。3、自拟其它功能。二、系统设计1、设计思路1、开机及复位时,出现开机画面及音乐,进入待机状态;2、设置甲方投掷按钮、乙方投掷按
4、钮、复位按钮三个按键,玩家按相应的按钮进行投掷,数码管显示其投掷的两个随机数,并显示进行的局数;3、若比赛进行中有玩家获胜,则点阵显示获胜玩家,同时蜂鸣器响起提示结束;4、数码管显示中,新的一局开始时,即甲玩家投掷后,乙玩家上局的投掷结果应该消失,等待新的投掷;5、按照骰子的结构,投掷的结果应该为1—6的随机数,应该尽可能地产生等概率的随机数,共有36种组合情况:1112131415162122232425263132333435364142434445465152535455566162636465666、局数的显示应该在乙投掷后,甲投掷前改变;
5、7、按照既定的游戏规则,系统应该以局数为指标,对比赛的输赢进行评判,要充分考虑到每一种情况下的判决问题;8、复位时,要回到起始状态,初始化信号,等待新一局游戏开始。2、总体框图顶层框图对外接口框图逻辑划分框图状态转移图逻辑流程图3、分块设计VHDL支持模块化设计,可将大规模设计项目分解成若干个小项目,还可以把已有的设计项目作为一个模块调用。根据实验设计思路及所要完成的功能,将分为以下几个模块进行实现:1、蜂鸣器模块当在开机或复位状态时,蜂鸣器响开机音乐,在游戏过程中蜂鸣停止,当有玩家获胜时蜂鸣器鸣;2、点阵显示模块当在开机或复位状态及游戏过程中,点
6、阵显示开机画面,当有玩家获胜时,点阵显示获胜玩家;3、数码管显示模块分别显示甲、乙投掷的随机数以及局数,复位时甲乙熄灭、局数归零;4、按键防抖模块对甲、乙按键进行防抖,用于准确判断按键的次数,得以确定局数;5、分频模块按照不同模块的需要进行分频;6、局数记录与显示模块用于对局数的记录和显示,并用于输赢判断中,按照不同的局数使用不同的判别规则;7、随机数产生与显示模块当玩家按按钮时产生两个随机数;1、按规则判决模块以局数为标准按照既定规则进行输赢判决。一、仿真波形及波形分析1、第1局分出胜负分析:如图所示,jushu为1时,甲投掷和jiasum为7,
7、乙投掷和yisum为8,所以Jia_win为1,表示甲胜利;复位后全部归0。分析:如图所示为点阵显示,dianzhencom为绿色列,dianzhenred为红色列,dianzhenhang为行扫描,当甲获胜时出现如图所示图形,为“甲”,当重置时,点阵回复为开机画面“VS”。2、第2——5局分出胜负分析:如图,1——3局没有分出胜负,第4局时,乙投掷出10和前一局相同,而甲投掷的4与前一局不相同,因此乙获胜,Yi_win信号为1;之后按Restart复位后,全部归0。3、第6局之后分出胜负分析:如图所示,前五局没有分出胜负,第六局开始比较大小,甲投
8、掷出6,乙投掷出10大于6,因此乙获胜,Yi_win为1;之后令Restart为1,即复位后,全部置0。一、源程序1、主程
此文档下载收益归作者所有