找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2969|回复: 0
打印 上一主题 下一主题
收起左侧

FPGA数字抢答器的设计 Verilog程序

[复制链接]
跳转到指定楼层
楼主
数字抢答器的设计
            (1)具有4个抢答按键;
           210秒内有效抢答,并倒计时显示,若10秒内无人抢答,进行声光报警。
           3)在有效时间内,将第一个按下按键的组员的编号进行锁存、并显示其编号,其他的组员再按无效。
          4)具有主持人复位按键,当复位键后,才可抢答并启动倒计时。


部分代码(Verilog):(已实现上述功能,且测试无误)
module digital_answer(a,b,c,d,reset,clk,beep,led,seg,deg);

/********** **********
**a,b,c,d是四个抢答按键。(低电平抢答有效)
**reset是主持人复位键(也是开始)
**beep是声音报警
**led是光报警
**Nixie_tube[0]Nixie_tube[1]是数码管倒计时显示Nixie_tube[2]显示空白
**Nixie_tube[3]是抢答者编号显示数码管
**clk是时钟
**seg数码管段选
**deg数码管位选
**clk选择48M(clock1)
********** ***********/
                input a,b,c,d,reset,clk;
                output beep;
                output [3:0] led;
                output [7:0] seg;
                output [7:0] deg;
               
                reg beep;
                reg [3:0] led;
                reg [3:0] Nixie_tube;
                reg [7:0] seg;
                reg [7:0] deg;
               
                reg [3:0] data;                        //显示选手编号a,b,c,d
                reg input_flag,count_flag;
                reg [14:0] count1;                //2400分频(产生1khz),作用与数码管动态显示
                reg [8:0] count2;                        //500分频(每0.5s翻转一次产生1hz信号计数)
                reg div_1khz,div_1hz;
                reg [3:0] count_one,count_ten;
                reg [3:0] led_n;
                reg [2:0] cnt;
                //reg [3:0] dat;                                
               
               
               
                /****1Khz信号产生****/
                always @(posedge clk)
                        begin
                                if(count1=='d24000)
                                        begin div_1khz<=~div_1khz;count1<=0;end
                                else
                                        begin count1<=count1+1'b1;end
                        end
                        
                /****1hz信号产生****/
                always @(posedge div_1khz)
                        begin
                                if(count2=='d500)
                                        begin div_1hz<=~div_1hz;count2<=0;end
                                else
                                        begin count2<=count2+1'b1;end

                        end

全部代码51hei下载地址:
digital_answer.zip (1.42 KB, 下载次数: 65)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表