- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
eda四人抢答器实验报告
eda四人抢答器实验报告
篇一:EDA实验四人抢答器报告
五 邑 大 学 实 验 报 告
实 验 课 程 名 称:
院系名称: 信 息 学 院专业名称: 电子信息工程 实验项目名称: 四人抢答器班级: 学号:
报告人:
一. 设计方案
设计是以Verilog HDL语言为基础设计的电子抢答器,在设计过程中先将系统模块化,然后逐步实现,根据设计功能要求,该设计主要包括按键抢答输入,数码管显示组号,蜂鸣器报警电路,倒计时电路和数码管显示倒计时电路。抢答器整体结构图,如图1
图1
该系统可实现要求中的基本功能,K1,K2,K3,K4为抢答开关,按下该键(Ki=0)进行抢答,释放该键(Ki=1)不抢答;按下START键后,20秒倒计时开始,由倒计时模块输出时间到译码模块,译码模块控制LED2显示倒计时间。在20秒内,当有一路抢答键最先按下,抢答成功者组号由抢答模块直接输出组号对应的数码管的二进制编码,使数码管LED1直接显示其组号,SPEAKER鸣响,停止倒计时,同时封锁其它各路抢答信号;若在20秒内没有抢答键按下,LED2显示00,LED1显示“F”,表示超时,封锁所有抢答信号,需按下START,才可以开始下一次抢START为抢答开始开关。
二. 设计的实现
(一) 抢答模块
程序代码:
module qiangda(clk,start,key,seg_zuhao,s_out,chaoshi,block);
input clk,start,chaoshi; //定义时钟信号,抢答开始信号,超时信号输入 input [3:0]key; ////四路抢答输入端口 output reg[7:0] seg_zuhao; //输出七段数码管
output reg s_out,block;//输出锁存信号和蜂鸣器信号 reg [3:0]out;
reg speaker; //蜂鸣器控制 integer i;
always @(posedge clk or negedge start or posedge chaoshi) begin
if(!start) begin
seg_zuhao=8' //数码管显示“-” block=0; out=4'd0; speaker=1'b0; end
else if(chaoshi==1) begin block<=1;seg_zuhao<=8'endelse if(!block)begin
if(key==4'b0111)beginout=4'd1;seg_zuhao=8' //数码管显示组号“1”block=1; //封锁其它人抢答speaker=1'b1; //蜂鸣器end
else if(key==4'b1011) begin out=4'd2;
seg_zuhao=8' //数码管显示组号“2” block=1;
speaker=1'b1; end
else if(key==4'b1101) begin
out<=4'd3;
seg_zuhao=8' //数码管显示组号“3” block=1;
speaker=1'b1; end
else if(key==4'b1110)
beginout=4'd4;
seg_zuhao=8' //数码管显示组号“4”block=1;
speaker=1'b1;end
else seg_zuhao=8'end end
always@(posedge clk) //蜂鸣器部分 begin
if(speaker==1) begin
if(i< begin s_out<=1;i<=i+1;end //设计蜂鸣时长为0.5秒 else s_out<=0; end
else begin s_out<=0;i<=0;end end
endmodule
说明:本段程序实现基本的抢答功能,block为锁存信号,当有一组按下抢答按钮后,系统锁存,其他组别抢答无效;同时通过speaker向蜂鸣器发出信号,蜂鸣器响一下表示抢答成功;于此同时信号block输送给倒计时模块,用于停止倒计时;seg_zuhao为静态显示抢答成功的组号,预置数为”-”;当接受到超时信号chaoshi时,系统锁存,所有组抢答无效,同时seg_zuhao输出“F”,表示超时。
(
文档评论(0)