八路数字抢答器控制系统_第1页
八路数字抢答器控制系统_第2页
八路数字抢答器控制系统_第3页
八路数字抢答器控制系统_第4页
八路数字抢答器控制系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目:八路数字抢答器控制系统

一、大作业摘要74系列常用集成电路设计的数码显示八路抢答器电路组成、设计思路及功能。该抢答器除具有基本的抢答功能外,还具有定时、计时和报警功能。主持人通过时间预设开关预设供抢答的时间,系统将完成自动倒计时。若在规定的时间内有人抢答,则计时将自动停止;若在规定的时间内无人抢答,则系统中的蜂鸣器将发响,提示主持人本轮抢答无效,实现报警功能。。二、设计的背景、目的和意义

1.随着科技的发展,现在的抢答器向着数字化、智能化的方向发展。这就必然提高了智能抢答器的制造成本2.鉴于现在小规模的知识竞赛越来越多,操作简单,经济实用的小型抢答器肯定很有市场。因此,我选择简易逻辑数字抢答器这一课题。

三、设计任务及要求一般来说,设计一台数字抢答器,必须能够准确判断出第一位抢答者,并且通过数显、蜂鸣这些途径能让人们很容易得知谁是抢答成功者,并设置一定的回答限制时间,让抢答者在规定时间内答题,主持人根据答题结果控制抢答器的清零复位,掌握比赛的进程。所以我在设计8路数字抢答器的模块需要满足鉴别、抢答报警、回答倒计时、数显等功能,具体设计要求如下:(1)抢答器可容纳八组选手,并为每组选手设置一个按钮供抢答者使用;为主持人设置一个控制按钮,用来控制系统清零(组别显示数码管灭灯)和抢答开始;(2)电路具有对第一抢答信号的锁存、鉴别和显示等功能。在主持人将系统复位并发出抢答指令后,若参赛选手按下抢答按钮,则该组别的信号立即被锁存,并在组别显示器上显示该组别,同时扬声器也给出音响提示,此时,电路具备自锁功能,使其他抢答按钮不起作用。(3)抢答器具有限时回答问题的功能,当主持人启动倒计时开始键后,要求计时器采用倒计时,同时最后计时器倒计时到00时扬声器会发出声响提示;。

四、确定输入和输出变量

输入:各组的抢答按钮keyin1、keyin2、keyin3、keyin4、keyin5、keyin6、keyin7,clk:时钟信号。rst:复位信号输出:各组的抢答按钮显示端sel【2:0】数码管选择输出display【7:0】数码管显示输出六、整体设计框图七、输入和输出变量对应部件说明input:clk:时钟信号rst:复位信号keyin[7:0]:八位抢答按键output:sel【2:0】数码管选择输出display【7:0】数码管显示输出八、方案论证方案1:基于单元电路原理实现方案2:基于verilog原理实现方案论证以上两种实现方法中,第一种方法电路较复杂不便于制作,可靠性低,实现起来很困难;而第二种方法只需要软件仿真出来,在一块EDA实验箱上就能实现,制作简单,而且成本低。综合比较之下,我决定采用第二种方案实现本课题。根据第二种方案的的框图所示,整个系统分为以下几个模块来分别实现:1.抢答判别模块:它的功能是鉴别八组中是那组抢答成功并且把抢答成功的组别信号输出给锁存模块。2.复位控制模块:给节目主持人设置一个控制开关,用来控制系统的清零和抢答的开始。3.锁存模块:该电路的作用是当第一个抢答者抢答后,对第一个抢答者的组别进行锁存并显示在数码管上,后面的抢答者信号全都无响应,直到主持人按下复位键。4.显示报警模块:就是把各个模块的输入的不同信号经过译码成BCD码然后直接在数码管上显示,还可以加上蜂鸣器的声音,更能给观众一个准确、简明的数字。5.在以上功能实现后,还可以扩展实现一些其他功能,比如答题倒计时等功能。4.抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如,30秒)。当主持人启动"开始"键后,定时器进行减计时。5.参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。

状态图

显示倒计时倒计时停止显示序号报警灯报警倒计时停止不再显示任何编号有人抢答键按下上电复位有人抢答键按下倒计时小于5秒初始30秒结束moduleqiangdaqi(//模块声明,input表示输入,output表时输出inputclk,//主时钟输入,时序逻辑电路得根本inputrst,//复位,按下按键则程序回归到上电时的初始状态input[7:0]keyin,//八个按键输入outputreg[3:0]disp_en,//3位输出outputreg[7:0]display,//数码管输出outputregout_led);reg[2:0]sel;reg[9:0]count;//计数器计数寄存器regclk_1hz,flag;//clk_1hz:主时钟经过2000分频后的信号reg[4:0]t;//30秒倒计时reg[3:0]disp;//数码管显示数据存储reg[3:0]data;//按键号存储reg[16:0]count_1k;regclk_1k;always@(posedgeclkornegedgerst)beginif(!rst)beginclk_1k<=0;count_1k<=0;endelseif(count_1k==16'd25000)begincount_1k<=0;clk_1k<=~clk_1k;endelsecount_1k<=count_1k+1;endalways@(posedgeclk_1k)//第一个ALWAYS语句块,主时钟CLK的下降沿触发,if(count<500)//实现计数器的计数count=count+1;//如果count<=999,就一直往上加elseebegincount=0;//知道加到1000,就把count清零,clk_1hz取反clk_1hz=~clk_1hz;//从而实现主时钟的2000分频endalways@(posedgeclkornegedgerst)//第二个ALWAYS语句块,CLK上升沿及RST下降begin//沿触发if(!rst)begindata<=4'b1010;//如果按下复位键rst,则把数据位清零flag<=1'b0;//把FLAG标志信号清零endelseif(!flag&&t)//如果没有按下复位键而且t不为0case(keyin[7:0])//根据按键的不同来实现不同的输出,同时把标志8'b00000001:begindata<=4'b0001;flag<=1;end//位FLAG置1.8'b00000010:begindata<=4'b0010;flag<=1;end8'b00000100:begindata<=4'b0011;flag<=1;end8'b00001000:begindata<=4'b0100;flag<=1;end8'b00010000:begindata<=4'b0101;flag<=1;end8'b00100000:begindata<=4'b0110;flag<=1;end8'b01000000:begindata<=4'b0111;flag<=1;end8'b10000000:begindata<=4'b1000;flag<=1;enddefault:begindata<=data;flag<=flag;end//不是上述情况,维持DATAendcase//以及FLAG不变else//这两句没有用处endalways@(posedgeclk_1hzornegedgerst)//第三个always语句块,clk_1hzbegin//上升沿以及rst下降沿触发if(!rst)beginout_led<=1;//如果复位键按下,则把t初始为30t<=30;endelseif(t>0&&!flag)//如果t比0大,而且flag为0t<=t-1;

elsebegin//t减一t<=t;end //对于其他情况,维持t之前的值endalways@(posedgeclk_1kornegedgerst)//产生数码管扫描信号,经三八译码器输出数码begin//管位选信号//第四个ALWAYS语句块,CLK上升沿及RST下降if(!rst)sel[2:0]<=3'b000;//把sel计数器初始化为0elsebeginsel[2:0]<=sel[2:0]+3'b001;//每来一个个时钟增加一endendalways@(*)//*表示有变化,程序里所有的信号只要有变化begin//本语句就会被触发case(sel[2:0])3'b000:begindisp[3:0]=t/10;disp_en[3:0]=4'b1110;end//当sel是000的时候,取倒计时t的十位3'b001:begindisp[3:0]=t%10;disp_en[3:0]=4'b1101;end//001时,取倒计时的各位3'b010:begindisp[3:0]=4'b1111;disp_en[3:0]=4'b1111;end//010时,配合下面的always语句块,实现全灭3'b011:begindisp[3:0]=4'b1010+clk_1hz;disp_en[3:0]=4'b1111;end//配合clk_1hz,以及下面的语句块,3'b100:begindisp[3:0]=4'b1010+clk_1hz;disp_en[3:0]=4'b1111;end//实现,倒计时中‘。’的闪烁3'b101:begindisp[3:0]=4'b1010+clk_1hz;disp_en[3:0]=4'b1011;end3'b110:begindisp[3:0]=4'b1111;disp_en[3:0]=4'b1111;end//110时,配合下面的always语句块,实现全灭

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论