ImageVerifierCode 换一换
格式:DOCX , 页数:35 ,大小:308.55KB ,
资源ID:8001451      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8001451.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮数字电路与逻辑设计实验实验报告下.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北邮数字电路与逻辑设计实验实验报告下.docx

1、北邮数字电路与逻辑设计实验实验报告下北京邮电大学电路实验中心实验报告班级: xxx 学院: xxx 实 验 室: xxx 审阅教师: 姓名(班内序号): xxx学号: xxx 实验时间: xxx 评定成绩: 目录一、任务要求 21基本要求 22提高要求 2二、系统设计 21设计思路 22总体框图 43分块设计 5(1)分频器模块 5(2)44键盘输入模块 5(3)数码管显示模块 6(4)88 LED点阵显示模块 6(5)LCD液晶屏显示模块 6(6)中心模块 6三、仿真波形及波形分析 61分频器模块 6244键盘输入模块 73数码管显示模块 7488 LED点阵显示模块 85LCD液晶屏显示模

2、块 86中心模块 8四、源程序 91分频器模块 9244键盘输入模块 93数码管显示模块 11488 LED点阵显示模块 125LCD液晶屏显示模块 196中心模块 23五、功能说明及资源利用情况 26六、故障及问题分析 27七、总结和结论 27一、任务要求本电路可供甲乙二人进行猜拳游戏。通过不同的按键控制,选择多种出拳方式,显示猜 拳的结果,实现猜拳游戏,防止了作弊的可能。1基本要求1、甲乙双方各用 44 键盘中的三个按键模拟“石头”、“剪刀”、“布”,一个按键为“确 认”。44 键盘第一行为甲,第二行为乙;2、裁判用 44 键盘第三行的一个按键模拟“开”,一个按键为“准备”,一个按键为“复

3、 位”;3、裁判宣布“准备”后,甲乙双方分别选择出拳方式并确认;4、裁判“开”以后,用点阵的左右三列同时显示甲乙双方的猜拳选择(如下图所示), 并用两个数码管显示甲乙的猜拳比分;图 1甲“布”,乙“剪刀”;甲“剪刀”,乙“石头”5、猜拳游戏为五局三胜制。若甲乙双方出拳一致,则比分保持不变,双方重新出拳;6、比赛结束后,用 88 点阵显示甲乙获胜方;7、复位后游戏重新开始。2提高要求1、点阵显示增加游戏开机动画、结束动画;2、为游戏增加音效;3、在 LCD1602 液晶屏上显示甲乙双方的猜拳比分;4、自拟其他功能。二、系统设计1设计思路本电路分为6个模块,分别是中心模块(包含状态机)、88 LE

4、D点阵显示模块、数码管显示模块、LCD液晶屏显示模块、44键盘输入模块、分频器模块,各模块使用VHDL语言设计,顶层连接使用Quartus II原理图设计。分频器模块负责将50MHz时钟分成低频信号,供其他模块使用。中心模块负责读取44键盘输入模块的输入,并控制状态机和其他模块的输出显示。88 LED点阵显示模块负责接收中心模块的信号,显示相应的图案。数码管显示模块和LCD液晶屏显示模块负责接收中心模块的信号,显示比分。44键盘输入模块负责读取键盘输入,并将其输出到中心模块。2总体框图图 2系统流程图图 3逻辑框图图 4 BDF原理图3分块设计(1)分频器模块输入clkin为50MHz时钟,输

5、出clkout为1KHz时钟,作为中心模块、88 LED点阵显示模块、数码管显示模块、44键盘输入模块的时钟信号。(2)44键盘输入模块44键盘输入模块负责读取键盘输入,并将其输出到中心模块。输出KBcol为4位二进制信号,是键盘的遍历扫描信号。输入KBrow为4位二进制信号,是键盘的检测信号。输出resultout为5位二进制信号,是44键盘输入模块所检测出的所按的按键,其中第一位代表键盘按下,后四位用二进制数表示所按的按键。(3)数码管显示模块数码管显示模块负责接收中心模块的信号,显示比分。输入A、B分别为2位二进制信号,代表甲、乙的得分。输出cat为8位二进制信号,控制8个数码管的使能端

6、。输出disp为7位二进制信号,控制数码管所显示的图案。(4)88 LED点阵显示模块88 LED点阵显示模块负责接收中心模块的信号,显示相应的图案。输入A、B分别为2位二进制信号,代表甲、乙的出拳结果,其中“11”表示甲或乙获胜,显示结束动画。输入en为点阵的使能端,start为开机动画控制信号。输出row为8位二进制信号,是点阵的扫描信号。输出colr为8位二进制信号,是红色点阵的数据信号。输出colg为8位二进制信号,是绿色点阵的数据信号。(5)LCD液晶屏显示模块LCD液晶屏显示模块负责接收中心模块的信号,显示比分。时钟clk直接使用50MHz信号。输入rst为LCD液晶屏模块的复位信

7、号,输入A、B分别为2位二进制信号,代表甲、乙的得分。输出rs、en、rw、data_out为LCD液晶屏的控制和数据信号。(6)中心模块中心模块负责读取44键盘输入模块的输入,并控制状态机和其他模块的输出显示。输入KB为5位二进制信号,是44键盘输入模块所检测出的所按的按键。输出LEDen控制LED点阵模块的使能端,LEDstart为LED点阵模块的开机动画控制信号。输出LEDA、LEDB分别为2位二进制信号,代表甲、乙的出拳结果,其中“11”表示甲或乙获胜,显示结束动画。输出DISPA、DISPB分别为2位二进制信号,代表甲、乙的得分。三、仿真波形及波形分析1分频器模块分频比太大,不易仿真

8、。244键盘输入模块图 5 44键盘输入模块仿真模块为时钟下降沿有效,resultout4为有按键按下的信号,resultout0.3为按下的按键。仿真中遍历了所有按键的情况,在resultout中对应有1631的所有情况(没有按顺序)。在中心模块编写时,考虑了防抖的问题,检测到按下多次按键与按下一次按键的效果相同,所以在此模块中没有必要加入防抖。3数码管显示模块图 6数码管显示模块仿真时钟clk为0时,DISP7点亮,显示甲的得分,时钟clk为1时,DISP6点亮,显示乙的得分。输入A、B遍历了甲、乙得分的所有结果,对应disp为数码管的显示,状态表示0分,0状态表示1分,m状态表示2分,y

9、状态表示3分。488 LED点阵显示模块图 7 88 LED点阵显示模块仿真此模块状态太多,只仿真了部分状态。输入A、B的0-2状态分别代表石头、剪刀、布,3状态代表甲或乙获胜。输出colr为甲的出拳结果,colg为乙的出拳结果。5LCD液晶屏显示模块此模块使用50MHz信号,不易仿真。实现功能与数码管显示模块类似。6中心模块图 8中心模块仿真此模块状态太多,只仿真了部分状态。仿真中模拟按下了3个按键,第一个是裁判的“准备”键,按键抬起后结束开机动画,进入选手输入状态,LEDen和LEDstart都变为0。第二个是乙按下“剪刀”(甲默认出“布”),按键抬起后LEDB的信号发生变化。第一个是裁判

10、的“开”键,按键抬起后结算双方出拳结果,给乙+1分(DISPB),同时显示双方出拳结果,LEDen变为1。四、源程序1分频器模块library ieee;use ieee.std_logic_1164.all;entity fenpinqi12 is port( clkin:in std_logic; -时钟信号输入 clkout:out std_logic); -时钟信号输出end fenpinqi12;architecture aroneMHZ of fenpinqi12 issignal data:integer range 0 to 24999;signal Q:std_logic;b

11、eginprocess(clkin) begin if rising_edge(clkin) then -检测输入时钟上升沿 if(data=24999) then -此句为你想要的分频比,data=0,1,2,3,4.9的分频比为1,2,3,,10 data=0; Q=not Q; else data=data+1; end if; end if;clkout CASE KBrow IS WHEN 0111= result result result result result CASE KBrow IS WHEN 0111= result result result result resu

12、lt CASE KBrow IS WHEN 0111= result result result result result CASE KBrow IS WHEN 0111= result result result result result NULL; END CASE; END IF; resultout=result;END PROCESS P1; P2:process(clk) begin IF (clkevent and clk=1) THEN -模4计数器,对应键盘的4列 IF temp=3 THEN temp=0; ELSE temp KBcol KBcol KBcol KBc

13、ol KBcol dispA:=1111110;-0 WHEN 01= dispA:=0110000;-1 WHEN 10= dispA:=1101101;-2 WHEN 11= dispA:=1111001;-3 WHEN OTHERS= dispA:=0000000; END CASE; CASE B IS -将乙得分变为数码管显示信号 WHEN 00= dispB:=1111110;-0 WHEN 01= dispB:=0110000;-1 WHEN 10= dispB:=1101101;-2 WHEN 11= dispB:=1111001;-3 WHEN OTHERS= dispB:=

14、0000000; END CASE; CASE clk IS -时钟为0时显示甲,时钟为1时显示乙,相当于扫描 WHEN 0= disp=dispA; cat disp=dispB; cat disp=0000000; cat=11111111; END CASE; END PROCESS P3;END behavioral;488 LED点阵显示模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY LEDshow IS PORT( clk:IN STD_LOGIC;-时钟 en:I

15、N STD_LOGIC;-使能端 A:IN STD_LOGIC_VECTOR(1 DOWNTO 0); -甲的出拳 B:IN STD_LOGIC_VECTOR(1 DOWNTO 0); -乙的出拳 start:IN STD_LOGIC;-开始动画控制 colr:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -红色数据信号 colg:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-绿色数据信号 row:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -扫描信号END LEDshow; ARCHITECTURE behavioral O

16、F LEDshow IS signal temp:INTEGER RANGE 0 TO 8;signal temp1:INTEGER RANGE 0 TO 5;signal data:integer range 0 to 249;signal clk_2Hz,Q:STD_LOGIC;signal A0:STD_LOGIC_VECTOR(0 to 7);signal A1:STD_LOGIC_VECTOR(0 to 7);signal A2:STD_LOGIC_VECTOR(0 to 7);signal A3:STD_LOGIC_VECTOR(0 to 7);signal A4:STD_LOGI

17、C_VECTOR(0 to 7);signal A5:STD_LOGIC_VECTOR(0 to 7);signal A6:STD_LOGIC_VECTOR(0 to 7);signal A7:STD_LOGIC_VECTOR(0 to 7);signal B0:STD_LOGIC_VECTOR(7 DOWNTO 0);signal B1:STD_LOGIC_VECTOR(7 DOWNTO 0);signal B2:STD_LOGIC_VECTOR(7 DOWNTO 0);signal B3:STD_LOGIC_VECTOR(7 DOWNTO 0);signal B4:STD_LOGIC_VE

18、CTOR(7 DOWNTO 0);signal B5:STD_LOGIC_VECTOR(7 DOWNTO 0);signal B6:STD_LOGIC_VECTOR(7 DOWNTO 0);signal B7:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN P1:PROCESS(clk_2Hz)BEGIN if start=0 then if A=00 then-甲出布 A0=00000000; A1=00000000; A2=11100000; A3=11100000; A4=11100000; A5=11100000; A6=00000000; A7=00000000

19、; elsif A=01 then-甲出剪刀 A0=00000000; A1=00000000; A2=00100000; A3=11000000; A4=11000000; A5=00100000; A6=00000000; A7=00000000; elsif A=10 then-甲出石头 A0=00000000; A1=00000000; A2=01000000; A3=11100000; A4=11100000; A5=01000000; A6=00000000; A7-显示“甲” A0=11111110; A1=10010010; A2=11111110; A3=10010010;

20、A4=11111110; A5=00010000; A6=00010000; A7-显示“获” A0=00101000; A1=11111110; A2=10101000; A3=01001010; A4=10111110; A5=01101000; A6=10101100; A7-显示“胜” A0=11100100; A1=10110100; A2=11111111; A3=10100100; A4=11111111; A5=10100100; A6=10100100; A7-显示笑脸 A0=00111100; A1=01000010; A2=10000001; A3=10100101; A

21、4=10000001; A5=10100101; A6=01011010; A7-显示笑脸 A0=00111100; A1=01000010; A2=10000001; A3=10100101; A4=10000001; A5=10100101; A6=01011010; A7-显示空白 A0=00000000; A1=00000000; A2=00000000; A3=00000000; A4=00000000; A5=00000000; A6=00000000; A7NULL; end case; end if; if B=00 then-乙出布 B0=00000000; B1=00000000; B2=00000111; B3=00000111; B4=00000111; B5=00000111; B6=00000000; B7=0000

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1