- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的四路抢答器的Verilog HDL代码.doc
module qiangda4(clk,clr,inputEn,add,stu,inputL1,inputL2,inputL3,inputL4,Led1,Led2,Led3,Buzzer);
// 开始声明各个端口
//输入口
input clk,clr,inputEn,add,stu,inputL1,inputL2,inputL3,inputL4;
//输出口
output [0:7] Led1; //倒计时时使用的LED控制端
output [0:7] Led2; //数码管控制端
output [0:7] Led3; //分数显示数码管控制端
output Buzzer; //蜂鸣器
//各个寄存器变量声明
reg [0:7] Led1;
reg [0:7] Led2;
reg [0:7] Led3;
reg cnt=32b0;
reg Buzzer;
reg score=4’hf;//分数显示寄存器
//配置寄存器,EnFlat是表明开始抢答的标志位
reg EnFlat=1b0;
//BuClk是蜂鸣器的标志位
reg BuClk=1b0;
//BuL是做蜂鸣器的延时用
reg [0:7]BuL=8d0;
//抢答选手标志位
reg answer=3’d0;
//各组分数标志位
reg score1=4’d5;
reg score2=4’d5;
reg score3=4’d5;
reg score4=4’d5;
//------------初始化模块---------------
always @ (posedge clk)//捕捉时钟
begin
//初始化各按键并开始抢答
begin
if(inputEn==1b0)
begin
//初始化各个标志位和参数
EnFlat=1b1;
//倒计时开始时8个Led灯全亮
Led1=8
//组号显示静态数码管(数码管为共阳极)的控制端,有8位
Led2=8
//分数显示数码管控制端
Led3=8
//蜂鸣器标志位
BuClk=1b0;
//蜂鸣器的控制管脚,低电平为发声音
Buzzer=1b1;
end
end
//--------抢答模块-------
begin
if(EnFlat==1b1)
begin
//如果按键1按下
if(inputL1==1b0)
begin
//禁止其他选手抢答
EnFlat=1b0;
//选手标志位改变,用于加减分数模块
answer=3’d1;
//静态数码管显示序号1 ,及显示选手对应的组号
Led2=8hf9;
//指示蜂鸣器发声
BuClk=1b1;
end
//如果按键2按下
else if(inputL2==1b0)
begin
//禁止其他选手抢答
EnFlat=1b0;
answer=3’d2;
Led2=8ha4;
BuClk=1b1;
end
//如果按键3按下
else if(inputL3==1b0)
begin
//禁止其他选手抢答
EnFlat=1b0;
answer=3’d3;
Led2=8hb0;
BuClk=1b1;
end
//如果按键4按下
else if(inputL4==1b0)
begin
//禁止其他选手抢答
EnFlat=1b0;
answer=3’d4;
Led2=8h99;
BuClk=1b1;
end
end
end
//-------------------加减分数模块----------------
//第一组加减分
if(answer ==3’d1)
begin
if(add)
score1=score1+1;
//当主持人判定选手的回答正确时,按下add键进行加分操作
else
if(stu)
score1=score1-1;
//当主持人判定选手的回答错误时,按下stu键进行减分操作
score=score1;//把第一组的分数赋值给分数寄存器
end
//第二组加减分
if(answer ==3’d2)
begin
if(add)
score2=score2+1;
//当主持人判定选手的回答正确时,按下add
您可能关注的文档
- 小数加减法竖式计算题库.doc
- 北师大版四年级上册不确定性教案设计.doc
- 小燕鱼的故事.ppt
- 小班汉语拼音教案.doc
- 北师大版高中数学必修1第二章函数分节练习及答案(函数概念、函数单调性、简单的幂函数和函数奇偶性练习).doc
- 小班认识餐具课件PPT社会领域.ppt
- 二年级---余数的妙用.doc
- 小草也美丽.ppt
- 二年级上体育教学计划(精选3篇).doc
- 医学生求职个人简历.doc
- 2020-2021学年江苏省南京市鼓楼区九年级上学期历史期末试题及答案.pdf
- 2020-2021学年山东省临沂市兰山区八年级下学期期末数学试题及答案.pdf
- 2020-2021学年山东省德州市武城县八年级上学期第二次月考物理试题及答案.pdf
- 2020-2021年四川成都市简阳市六年级上册期中数学试卷及答案(北师大版).pdf
- 2018-2022年江苏中考语文真题:小说阅读分项汇编.pdf
- 项目管理第一PPT模板 (2).pptx
- 项目管理第一PPT模板 (3).pptx
- 项目管理第一PPT模板 (4).pptx
- 项目管理第一PPT模板 (10).pptx
- 项目管理第一PPT模板 (15).pptx
文档评论(0)