FPGA定时器24s倒计时.doc
篮球24S可控计时器
EDA设计基础实验课程论文题目篮球24S可控计时器学院通信与电子工程学院专业班级电子101学生姓名大彬哥指导教师大力会2013年6月18日摘要本次设计是基于FPGA的篮球计时器设计,利用Verilog HDL语言和Quartus II软件以及FPGA的实验操作平台来实现的。
重点是用硬件语言Verilog HDL来描述篮球计时,偏重于软件设计。
本次通过Verilog HDL语言编写一个具有显示24秒倒计时功能的计时器,计时器为24秒递减计时其计时间隔为1秒;计时器递减计时到零时,数码显示器不灭灯,同时发出光电报警信号等。
关键词:Verilog HDL语言 Quartus II软件篮球计时器AbstractThis design is the basketball timer design based on FPGA, using Verilog HDL language and Quartus II software and FPGA experimental platform to achieve. The focus is on using Verilog language HDL to describe time basketball, focused on the software design. Through this Verilog HDL language with a display timer of 24 seconds countdown timer, timer of 24 seconds decrease time the time interval of 1 second; timer decrease time to zero, digital display does not light, issued at the same time, photoelectric alarm signal.Keywords: Verilog HDL Quartus II basketball timer目录摘要 (I)Abstract (II)目录 (1)前言 (2)第一章计时器概述 (3)1.1篮球竞赛24秒计时器功能 (3)1.2 设计任务及要求 (3)1.2.1基本要求 (3)1.2.2 设计任务及目标 (3)1.2.3 主要参考器件: (3)第二章电路设计原理与单元模块 (4)2.1 设计原理 (4)2.2 设计方案 (5)2.3 单元模块 (6)2.3.1 8421BCD码递减计数器模块 (6)2.3.2 时钟模块 (8)2.3.3 辅助时序控制模块 (9)2.3.4 译码显示模块 (10)第三章安装与测试 (13)3.1 电路的安装 (13)3.2 电路的调试 (13)3.3编译和仿真波形 (13)3.3.1 仿真分析及结论 (14)3.3.2 故障分析和解决 (14)第四章实验体会 (15)结论 (16)结论 (16)致谢 (17)参考文献 (18)附录 (19)前言数字电子技术课程设计是数字电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。
可控二十四秒倒计时报警及其显示电路设计
设计课题:篮球比赛二十四秒倒计时及其报警篮球比赛二十四秒倒计时及其报警一、设计任务与要求1.本设计只要用于篮球比赛中的24秒倒计时及其报警。
2.在设计完成后应该实现这样的功能:首先,按下“手动复位”弹键,使计数器回归24,当按下“手动开始”弹键时,计数器开始从24秒倒计时,直到计数为0时,报警器开始工作,此时若按下“手动复位”弹键,则报警器停止工作,计数器回归24秒。
若在计数中按下“手动复位”弹键,则计数器回归24秒,当再次按下“手动开始”弹键时,计数器再次工作。
3.总的来说,计时器的功能包括:计数、复位、暂停、报警。
二、方案设计与论证计时器主要分为四个模块:计数模块、显示模块、报警模块以及1Hz脉冲输出模块。
设计思路:采用74LS192芯片的倒计数端实现二十四数制的倒计。
先利用一块NE555芯片搭建多谐振荡器,使其输出信号的频率为1Hz,这正好可以作为74LS192的输入时钟信号,则此时的二十四数制的计数器就变成了二十四秒计时7三、单元电路设计、参数计算、元器件的选择1.总体框图及其思路根据前面提到的设计思路可先画出总设计的基本构想框图,如上所示。
由总体框图可以清楚的看到本设计由四个最基本的模块组成,分别为:计数模块、显示模块、报警模块以及1Hz脉冲输出模块。
基本原理:计数脉冲负责产生一个频率为1Hz的脉冲信号,此信号作为计数器计数脉冲,因此,计数器就成为了最小单位为1秒的计时器了;计数器采用置数法连接,每当循环一周即24秒之后置数端有效,从而实现24秒的计时;当计时器从24倒计到0时,利用此时的输出信号特点可以控制蜂鸣器工作,从而实现报警;显示部分包括对二进制数的重新编码和显示,74LS48用来对二进制数重新编码,而此时可以用七段数码管作为显示。
综合起来就可以完成计时和报警等功能。
2. 各个模块设计○1计数模块的设计计数模块设计原理图基本原理:首先预置数,令置数状态时输出为24。
PL端为置数端,当PL 为0时,计数器输出为24。
24秒倒计时牌
1 设计任务描述1.1设计题目:24秒倒计时牌1.2设计要求1.2.1 设计目的(1)掌握24秒倒计时牌的组装方法与技巧;(2)掌握元器件的实现功能与使用;(3)能够通过对元器件组装来实现各种功能的电路;1.2.2 基本要求(1)可手动暂停,还原;(2)到0时有长报警,到倒数5秒时每秒有一声短报警;(3)可显示计数,每过十秒有一次闪烁;1.2.3 发挥部分(1)24秒可调;2 设计思路24秒倒计时器牌的核心部分是倒计时部分,我选择了两个74HC290连级来实现,因为它有置数端和预置端,可完成可调的倒计时器。
本次设计有基本要求:可手动暂停、还原;每十秒显示器闪烁一次;到倒数5秒时每秒有一声短报警,到0秒时是长报警,发挥部分是24秒可调。
首先是要给计时器提供一个秒脉冲发生器,由于555定时器内部的比较器灵敏度非常高,输出驱动电流大,功能灵活,而且采用差分电路形式,用555定时器组成的多谐振荡器的振荡频率手电源电压和温度变化的影响很小,因此采用555定时器来提供发生脉冲。
手动暂停还原中,由于需要暂时锁住显示器显示的数,所以可以在秒脉冲的输出端加一个开关,当要计数时关闭开关进行计数,需要暂停时断开开关终止秒脉冲的输入,即可实现手动暂停还原此时显示器保持原来的数字。
每十秒显示器闪烁一次,若想有闪烁效果需要给需要给显示器提供5~10赫兹的脉冲信号才能有闪烁效果,只要当个位为“0000”时闪烁即为每十秒闪烁一次,通过各种门电路把“0000”的信号与5~10赫兹的脉冲信号共同作用提供给显示器。
到5秒时开始每秒都有一次短报警,到0秒时是长报警,则十位输出是“0000”,5秒时个位的最高位也为零,使个位输出“101”、“100”、“011”、“010”、“001”时有效列真值表,通过门来连接;当为“000”时,为长报警。
给短报警一个500赫兹的脉冲信号,给长报警一个1000赫兹的脉冲信号,再通过一个或门来控制输出那个报警信号提供给报警电路。
FPGA定时器24s倒计时
设计一个用于篮球比赛的定时器。
要求:(1)定时时间为24秒,按递减方式计时,每隔1秒,定时器减1;(2)定时器的时间用两位数码管显示;(3)设置两个外部控制开关,开关K1控制定时器的直接复位/启动计时,开关K2控制定时器的暂停/连续计时;当定时器递减计时到零(即定时时间到)时,定时器保持零不变,同时发出报警信号,报警信号用一个发光二极管指示。
(4)输入时钟脉冲的频率为1kHz。
(5)用Verilog HDL语言设计,用Modelsim软件做功能仿真,用Quartus II综合。
(6)将设计代码和仿真代码写在作业本上。
module gcount(out,sel,clock_1k,clear,pause,gcon);input clock_1k,clear,pause;output [6:0] out;output sel,gcon;reg [6:0] out;reg sel,gcon;reg [3:0] cnt_sl,cnt_sh,count;reg [9:0] fenpin;wire clock_1 = fenpin[9]; // 1Hz;always @(posedge clock_1k or negedge clear)beginif (!clear)fenpin <= 10'b0;elsefenpin <= fenpin + 1;end//cnt_slalways@(posedge clock_1 or negedge clear)//always@(posedge clock_1 or negedge clear or posedge pause)beginif(!clear)cnt_sl<=4'h4;else if (!pause)cnt_sl<=cnt_sl;else if (cnt_sh == 0 && cnt_sl == 0)cnt_sl<=4'h0;else if (cnt_sl == 0)cnt_sl<=4'h9;elsecnt_sl<=cnt_sl-1;end//cnt_shalways@(posedge clock_1 or negedge clear)//always@(posedge clock_1 or negedge clear or posedge pause) beginif(!clear)cnt_sh<=4'h2;else if (!pause)cnt_sh <= cnt_sh;else if (cnt_sh == 0 && cnt_sl == 0)cnt_sh<=4'h0;else if (cnt_sl == 0)cnt_sh<=cnt_sh-1;elsecnt_sh <= cnt_sh;end//gcon//always@(posedge clock_1 or negedge clear)always@(cnt_sh or cnt_sl)beginif (cnt_sh == 0 && cnt_sl == 0)gcon<=1;elsegcon <= 0;end//regalways@(posedge clock_1k or negedge clear)beginif(!clear)sel<=0;elsesel <= ~sel;endalways @(sel)count = (sel == 0)?cnt_sh:cnt_sl;always @(count)begincase(count)4'b0000: out=7'b011_1111;4'b0001: out=7'b000_0110;4'b0010: out=7'b101_1011;4'b0011: out=7'b100_1111;4'b0100: out=7'b110_0110;4'b0101: out=7'b110_1101;4'b0110: out=7'b111_1101;4'b0111: out=7'b000_0111;4'b1000: out=7'b111_1111;4'b1001: out=7'b110_1111;default: out=7'b000_0000;endcaseendendmodule`timescale 1ns/1ns`include"./gcount.v"module test;reg Clock_1k,Clear,Pause;wire [6:0] Out;wire Sel,Gcon;initialbeginClock_1k<=0;Clear<=1;Pause<=1;#100 Clear<=0;#100 Clear<=1;#5000 Pause<=0;#5000 Pause<=1;#5000 Clear<=0;#5000 Clear<=1;endalways #1 Clock_1k<=~Clock_1k;gcount m(.out(Out),.sel(Sel),.clock_1k(Clock_1k),.clear(Clear),.pause(Pause),.gcon(Gcon));endmodule。
二十四秒倒计时器的设计(数字电子技术)
数字电子技术设计性实验方案设计题目:24秒倒计时器分院物理与电子工程学院专业物理学班级2010级物本(1)班学号2010405270姓名龙大洪2013年6月23日目录0 设计要求 (1)1 设计思路 (1)1.1 设计方框图 (1)1.2 元件选用 (2)2 电路及工作原理 (2)2.1 电路图 (2)2.2 工作原理 (3)2.2.1 预置数据 (3)2.2.2个位减计数 (3)2.2.3十位减计数 (3)2.2.4脉冲封锁电路 (3)0 设计要求一、计数开始时数码显示为24二、计时开始后数码显示由24递减三、计时到00时停止计时四、秒脉冲可直接用实验箱1HZ信号1 设计思路1.1 设计方框图十位减计数个位减计数1HZ减计数脉冲借位脉十位数码管个位数码管预置数预置数输入预置数封锁脉冲电路与非预置数减计数1.2 元件选用减计数器使用74LS192十进制可逆计数器;数码管选用实验箱带有CD4511的数码管;秒脉冲可直接用实验箱的1HZ时钟信号;与非门选用74LS00。
2 电路及工作原理2.1 电路图2.2 工作原理2.2.1 预置数据十位:D3D2D1D0=0010 数码管显示的十位是2个位D3D2D1D0=0100 数码管显示的个位是42.2.2个位减计数个位器件74LS192如下接:CR=0,LD=1,CPu=1,CPd接脉冲。
个位数字由9减到0循环2.2.3十位减计数十位器件74LS192如下接:CR=0,LD=1,CPu=1,CPd接个位BO借位端。
十位数字由2减到0。
(注:当个位十位为00时由脉冲封锁,不在进行减计数。
)2.2.4脉冲封锁电路本电路封锁脉冲直接由两个与非门构成接CPd 个位1HZ脉冲VCC5VU6A74LS00DU7A74LS00DVCC2143接BO十位当十位个位为00时,由十位BO端输出为低电平,再与1HZ脉冲经过如上电路,使得CPd(个位)输入为零。
脉冲不在起作用,显示00不在自动进行减计数,直到重新置数。
24S篮球倒计时器
Hale Waihona Puke • 泪滴化焊盘:执行菜单命令【工具】/ 【泪滴焊 盘】。 • 在PCB编辑环境下,单击菜单命令【文件】/【装
配输出】/【Generates pick and place files】。
底层和顶层电路
PCB图
总结
• 通过这次学习让我们这组人学会了如何手
工绘制元件,如何设置带子件的元器件。 通过此次项目的实施,更好的掌握了PCB 的设计方法,设计步骤。在这过程中虽然 出现过很多问题,但通过老师和同学的帮 助,也都迎刃而解了
• 布线规则:菜单命令【设计】/【规则】。要求:
VCC GND线宽40mil 安全间距15mil 信号线25mil。
• 首先局部布线电源、地线: • 执行菜单命令【自动布线】/【网络】,光标变为
十字形,单击GND / VCC网络中的任意焊盘或着 飞线,系统自动对GND / VCC布线,然后进行修 改。
• • • •
绘制带子件的元件
• (1)新建元件:执行【工具】/【新元件】/,在弹出的 • • • • • •
【New Component Name】对话框中输入新元件名。 (2)绘制第一个子件。添加第一个子件的引脚执行菜单 【放置】/【引脚】在图中放置,设置引脚属性。 注意放 置前把可视栅格、捕获栅格都设为5mil。 (3)为每个子件添加电源、地线。 (4)设置隐藏引脚。 (5)绘制第二个子件。执行【工具】/【创建元件】,然 后粘贴、复制就行了。 (6)设置元件属性。双击SCH Library面板上的【编辑】 按钮,打开元件编辑器,对元件盖属性。 (7)为元件添加封装。在属性对话框中,点右下角【追 加】,选FootPrint,弹出对话框对元件进行封装设置。
绘制的元件截图
数字电路课程设计_24秒倒计时
赣南师院物理与电子信息学院数字电路课程设计报告书姓名:班级:学号:时间:图1 总原理框图1.1 555定时器555定时器是一种多用途的数字-模拟混合集成电路,用它可以构成施密特触发器、单稳态触发器和多谐振荡器。
本设计用LM555CM定时器设计一个多谐振荡器给电路提供脉冲信号,产生的脉冲信号用由74LS192进行计数,且设置周期为1秒。
1.1.1555定时器管脚名称和功能图2 555的管脚名称1脚为接地端,也是芯片的公共端。
2脚为C2比较器的信号输入端V2l又称为触发端。
它们输入的信号可以图3 555定时器的内部结构1.1.3 555定时器的功能表输入各级输出T 1状态D RV 1l V 2L V 1C V 2C触发器输出Q 1+n输出V OT 1状态0 ⨯ ⨯ ⨯ ⨯0 低电平 导通 1 (32)V CC (31V CC ) 0 1 0 低电平 导通 1 (32)V CC (31V CC ) 0 0 1 高电平 截止 1 (32)V CC (31V CC ) 1 0 0 高电平 截止 1(32)V CC (31V CC ) 11Q不变不变表1 555定时器的功能表1.274LS192十进制同步加减计数器图5 74LS192的内部结构图1.2.374LS192的功能表表2 74LS192的功能表1.374LS48七段译码器本设计中用共阴极七段显示数码管,为使七段显示数码管能正常工作,将74LS190连接到74LS48,74LS48将高低电平信号译成数码管可读信号,从而实现数字的显示。
1.3.174LS48的引脚排列图6 74LS48的引脚排列1.3.274LS48的真值表表3 74LS48的逻辑功能真值表1.4共阴极数码管数码管有共阴和共阳之分,本设计使用共阴数码管,因为译码器使用为74LS48,相应的数码管要用相应的译码器才能实现译码和显示数字。
1.4.1共阴数码管的引脚排列和简易符号图7 八段共阴数码管图8 数码管简易图1.4.2 共阴数码管的内部结构图9 共阴数码管内部结构2电路分析和仿真结果由上对各个元件进行的简介以及相关的原理图,下面对电路进行分部分析。
基于FPGA的24小时时钟
XXXXXX课程设计报告电子线路设计课程设计报告[24小时时钟电路设计]小组成员:XXXXXXXXXXXXXX 院(系):电气信息工程学院年级专业:20XX级电子信息工程指导老师:XX XX XX 联系电话:XXXXXXXXX二〇XX年XX月摘要本设计为24小时时钟设计,具有时、分、秒计数显示功能,以24小时循环计时的时钟电路;具有时、分校准以及清零的功能。
本设计采用EDA技术,以硬件描述语言VHDL为系统逻辑描述手段设计文件,在QUARTUSⅡ工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数字钟。
系统由主控模块、分频模块、译码模块以及显示组成。
经编译和仿真所设计的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,由按键输入进行数字钟的清零功能。
关键词时钟,QUARTUSⅡ,VHDL,FPGAAbstractThe design for the 24-hour clock design, with hours, minutes, seconds count display, a 24-hour cycle of the clock timing circuit; with hours, minutes, and cleared the calibration function.This design uses EDA technology to hardware description language VHDL description of the means for the system logic design documents, software tools in QUARTUSⅡenvironment, using top-down design approach, from the various modules together to build a basic FPGA-based digital clock.System by the control module, frequency module, decoding module and display components. The compilation and simulation of the design process, in the download validation of programmable logic devices, the system can complete the hours, minutes, seconds, respectively, indicated by the key input for clear digital clock function.Keywords clock,QUARTUSⅡ,VHDL,FPGA目录摘要 (Ⅰ)ABSTRACT (Ⅱ)1 绪论 (1)1.1 题目意义 (1)1.2 设计要求 (1)2 设计的基本原理 (2)2.1 设计原理 (2)2.2 设计流程 (3)3 设计方案 (4)3.1 设计思路 (4)3.2 模块图和功能 (4)3.2.1 分频模块 (4)3.2.2 主控模块 (5)3.2.3 译码模块 (8)3.2.4 顶层模块 (10)4 测试 (11)4.1 模块仿真 (11)4.1.1 分频模块 (12)4.1.2 主控模块 (13)4.1.3 译码模块 (14)4.2 顶层模块仿真 (15)5 结论 (16)6 参考文献 (17)1 绪论1.1 题目意义现在是一个知识爆炸的新时代。
24秒倒计时器的设计和制作(停在00)
24秒倒计时器的设计和制作一、计时器概述1、计时器的特点及应用24秒倒计时。
24秒计数芯片的置数端清零端共用一个开关,比赛开始后,24秒的置数端无效,24秒的倒数计时器的倒数计时器开始进行倒计时,逐秒倒计到零。
选取“00”这个状态,通过组合逻辑电路给出截断信号,让该信号与时钟脉冲在与门中将时钟截断,使计时器在计数到零时停住。
2、设计任务及要求1、用小规模集成电路设计24秒倒计时电路;2、用555定时器产生1Hz的标准脉冲信号;3、当计时器显示00,同时报警;4、计时器应具有清零、启动、暂停/继续计时等控制功能。
二、电路设计原理及单元模块1、设计原理24秒计时器的总体参考方案框图如图1所示。
它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序控制电路(简称控制电路)等五个模块组成。
图1—方案框图其中计数器和控制电路是系统的主要模块。
计数器完成24秒计时功能,而控制电路完成计数器的直接清零、启动计数、暂停/连续计数、译码显示电路的显示与灭灯、定时时间到报警等功能。
秒脉冲发生器产生的信号是电路的时钟脉冲和定时标准,但本设计对此信号要求并不太高,故电路可采用555集成电路或由TTL与非门组成的多谐振荡器构成。
译码显示电路由74LS48和共阴极七段LED显示器组成。
报警电路在实验中可用发光二极管和鸣蜂器代替。
2、设计方案此计时器的设计采用模块化结构,主要由以下3个组成,即计时模块、控制模块、以及译码显示模块。
在设计此计时器时,采用模块化的设计思想,使设计起来更加简单、方便、快捷。
此电路是一时钟产生,触发,倒计时计数,译码显示、报警为主要功能,在此结构的基础上,构造主体电路和辅助电路两个部分。
3、单元模块3.1各个元器件功能3.1.1、555定时器555 定时器的内部电路框图如图3-1-1所示。
图3-1-1 555内部电路框它内部包括两个电压比较器,三个等值串联电阻,一个RS 触发器,一个放电管T 及功率输出级。
基于fpga的倒计时时钟实验报告总结
基于FPGA的倒计时时钟实验报告总结一、实验目的本实验旨在通过FPGA技术,设计一个能够进行倒计时的时钟电路,并进行相应的功能验证。
二、实验内容1. 确定实验目标:设计一个基于FPGA的倒计时时钟电路,实现倒计时功能。
2. 学习FPGA设计工具:熟悉并掌握FPGA设计工具的使用方法,包括逻辑综合、时序分析等。
3. 编写时钟电路代码:利用Verilog硬件描述语言编写时钟电路的代码。
4. 进行仿真验证:对时钟电路进行仿真验证,确保设计的正确性和稳定性。
5. 下板实验验证:将设计好的时钟电路下载到FPGA开发板上,进行实际验证。
三、实验步骤与结果分析1. 设计倒计时时钟电路通过学习资料和实验指导,我们利用Verilog HDL进行倒计时时钟电路的设计,并对其功能进行初步测试。
初步测试结果表明,设计的倒计时时钟电路能够正常工作。
2. 时钟电路仿真验证我们利用FPGA设计工具对时钟电路进行了仿真验证,通过时序分析和波形仿真,确认了时钟电路的正确性和稳定性。
仿真结果显示,时钟电路能够准确地进行倒计时操作。
3. 下板实验验证将设计好的时钟电路下载到FPGA开发板上进行实际验证。
经过实际测试,我们发现倒计时时钟电路能够稳定可靠地进行倒计时操作,符合设计要求。
四、实验总结通过本次实验,我们深入学习了FPGA技朰,并成功设计并验证了基于FPGA的倒计时时钟电路。
实验中我们克服了一些困难,如时钟电路设计的复杂性和仿真验证的精确性等。
我们顺利完成了实验目标,掌握了FPGA设计工具的使用方法,提高了自己的实践能力和动手能力。
这次实验为我们今后在FPGA领域的研究打下了坚实的基础,也对我们的专业素养、工程实践能力提出了更高的要求。
五、改进建议在今后的实验中,我们可以进一步深入研究FPGA技术,探索更多的应用场景,提高我们的设计水平。
注重团队合作、创新思维,不断提升自己的综合素质和实践能力,为将来的科研工作和工程实践打下更加坚实的基础。
24s倒计时计时器项目报告书
1设计内容及功能本课程设计是可编程控制器的简单应用,设计了篮球竞赛24s计时器。
此计时器功能齐全,可以直接复位、启动、暂停和连续,以及具有光电报警功能,同时应用了七段数码管来显示时间。
此计时器有了启动、暂停和连续的功能,可以方便的实现断点计时功能,当计时器递减到零时,会发出光电报警信号。
本设计完成的中途计时功能,实现了在许多特定的场合进行时间追踪的功能,在社会生活中也具有广泛的实用价值。
设计创作来源:篮球NBA竞赛倒计时秒表。
外观设计成小屋的样式,是考虑到我们即将毕业,面临到房价上涨我们必须面对。
倒计时数码管设计成挂历的样式,是觉得大学时光流逝的太快,已经不能用分钟来计算,只能以秒来计算,要学会珍惜大学时光。
篮球竞赛计时系统的主要功能包括:进攻方24秒倒计时和计时结束警报提示。
攻方24秒倒计时,当比赛准备开始,屏幕上显示24秒字样,当比赛开始后,倒计时从24.秒逐渐倒数到00。
这一模块主要是利用可编程控制器和74LS48来实现;警报提示:当计数器计时到零时,给出提示音。
2设计原理及系统方案设计2.1 设计原理24秒计时器包括计数器、译码显示电路、光电报警电路、彩灯闪烁、控制电路部分组成。
其中计数器和控制电路是系统的主要模块。
计数器完成24秒计时功能,而控制电路完成计数器的直接复位、启动计数、暂停/连续计数及彩灯的闪烁,译码显示电路的显示与灭灯、定时时间到报警等功能。
译码显示电路由74LS48、共阴极七段数码管、LED显示器组成。
报警电路可用发光二极管和蜂鸣器代替。
2.2 计时部分用可编程控制器的加减计时器完成计时器的倒计时功能,减使能端有效时开始键计数,开始时为24s,然后从23.9s开始倒计时,直到时间减到零;开关控制计数器使能端无效时,计数暂停,从而计数器的加使能端有效,实现计数的连续。
2.3 译码电路用PLC的三个输出口去选通芯片74LS48,四个输出口输出作为74LS48的输入,经74LS48译码输出送给三个七段数码管,显示24s的倒计时。
24秒倒计时
P2=0xdf;
P0=table[i%10]; delay_ms(5);
}
}
void main(void)
{
while(1)
{
action1();
action2();
}
}
void delay_ms(unsigned int j) //delay
EX0=1;//打开外部中断0;
IT1=1; //外中断跳变产生中断;从高电平向低电平跳变时;对应操作:按下键P3.3时
EX1=1;//打开外部中断1;
EA=1; //打开总中断;
while(1) //程序循环
{
if(scan()==6) pause_flag=~ pause_flag;//是否有暂停键按下;
sbit key3= P3^4; //按键K3
sbit key4= P3^5; //按键K4
sbit key5= P3^6; //按键K5
sbit key6= P3^7; //按键K6
void main(void)
{
TMOD=0x11;
TR0=1;
ET0=1;
void delay(unsigned int );//函数申明
void display(unsigned int );
void main(void) // 主程序
{
P0=0Xfe;//初始化
IT0=1; //外中断跳变产生中断;从高电平向低电平跳变时;对应操作:按下键P3.2时
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
24秒倒计时牌-数电
1 设计任务描述1.1设计题目:24秒倒计时牌1.2 设计要求1.2.1 设计目的(1) 掌握倒计时器的构成,原理和设计原理;(2)熟悉集成电路的使用方法。
1.2.2 基本要求(1) 可手动暂停、还原;(2) 到0时有长报警,到倒数5秒时每秒有一声短报警;(3) 显示倒数的秒数,每过十秒闪烁1次。
1.2.3 发挥部分(1) 可以实现24秒可调。
2 设计思路设计思路:本设计包括脉冲发生器、分频器、计数器、译码与显示电路、报警电路和控制电路等五个部分组成。
计时电路递减计时,每隔1秒钟,计时器减1。
其中计数器和控制电路是系统的主要部分。
计数器完成24秒计时功能,而控制电路完成计数器的直接清零、启动计数器、暂停/连续计数、译码显示电路的显示等功能用74LS192组成减计数器,然后预先置数为24秒,再用由555定时器组成的多谐振荡器产生10000HZ的秒脉冲,经过四个分频电路变成1HZ,再通过由74LS192所组成的减计数器,由74LS192的输出端接74LS48显示译码器,最后接七段显示器。
就可以实现24秒递减的功能。
用一个单刀双掷开关的其中两端分别接地和5V电源端,剩下的一端和由555定时器组成的多谐振荡器和分频器产生1HZ的秒脉冲通过一个与非门和一个非门来控制减数过程中的暂停与连续功能,再用一个单刀双掷开关来控制74LS192的置数段来控制电路的启动与清零的功能。
要实现减数到5秒时每减一秒就要一次短报警,就要当计数器减的个位为零时通过或门和与非门使输出为高电平时再与一个由555组成的单稳态触发器相与,通过控制频率的范围来实现报警的长短。
同理可以实现到0秒时实现长时间报警。
用一个单稳态触发器与当个位为零时用一个与门相与,再通过一个发光二极管,当计数器减到20、10、00时,实现闪烁。
3 设计方框图4 各部分电路设计及参数计算4.1秒信号产生电路设计及其参数计算4.1.1 秒信号产生电路设计图4.1.1 秒脉冲发生器本电路中的振荡器是由555定时器构成的多谐振荡器。
基于FPGA的倒计时定时器
基于FPGA的倒计时定时器数电实验设计报告实验名称:倒计时定时器实验目的:1.掌握组合逻辑与时序逻辑电路的设计方法及调试方法2.熟练掌握常用MSI逻辑芯片的功能及使用方法3.初步掌握VerilogHDL数字系统设计方法4.熟悉PLD实验箱的结构和使用及QuartuII软件的基本操作5.掌握采用QuartuII软件和实验箱设计实现逻辑电路的基本过程设计要求:一、倒计时定时器:用开关或按键进行定时设置倒计时计数状态用两位数码管显示计时结束时用彩灯或声响作为提电路设计过程:加法计数功能,UP为加法脉冲输入端1.关于74192芯片减法计数功能,Down为减法脉冲输入端可实现减法计数:74HC192减法计数到0000时,借位Bo=0两位:两片74HC192加法计数到1111时进位Co=0 U1151109111454ABCD~LOADCLRUPDOWNQAQBQCQD~BO~CO32671312UPDown CLR某某LL某某某H↓HHLH↓HLQDQCQBQA预置数据清零加法计数器减法计数器74192N2.计到零停止计数功能,设置启动开关,启动前停在预置值3.运用两片74192级联,组成倒计时计数器,个位减到0,十位开始减法计数.OUTPUTOUTPUTOUTPUTOUTPUTOUTPUTOUTPUTOUTPUTQAQBQCQDCONBONCOUNTERQAQBQCQDCONBONLDNABCDDNUPCLROUTPUTintVCCLDNABCDDNUPCLRint1CO UNTER7419274192gndINPUTVCC十位个位GNDfreqdivGgndINPUTVCCCLRCLKint5FREQ.DIVIDERDV2DV4DV8DV16742074 00int4int6INPUTVCC74007400int8int7OUTPUTled14.加入译码器完成数码管显示设计原理图:数码管动态扫描原理图:分析统图:管脚分配方案:。
基于FPGA的篮球24秒倒计时系统设计
基于FPGA的篮球24秒倒计时系统设计一、功能描述 本工程包含了两个按键和4位数码管显示,共同实现一个篮球24秒倒计时、并具有暂停和重新计数复位的功能。
具体功能如下: 1. 数码管显示秒十位、秒个位、0.1秒和0.01秒。
2. 上电后,数码管显示2399,表示时间是23.99秒。
3. 按下按键1,进入倒计时状态,进行倒计时,一直计到0000后停止。
4. 在倒计时状态时,再次按下按键1,则暂停计时;再按下按键1,则继续倒计时。
5. 在任何时刻,按下按键2,则复位显示为2399。
二、平台效果图 1.Altera核心板效果图 2.Xilinx核心板效果图 三、实现过程 首先根据所需要的功能,列出工程顶层的输入输出信号列表。
我们可以把工程划分成三个模块,分别是倒计时模块、BCD译码模块和数码管显示模块。
1.倒计时模块 倒计时模块实现的是24s倒计时功能,其输出两组计数信号cnt_s和cnt_ms。
例如当时间为23.99时,cnt_s的值为23,cnt_ms的值为99;当时间为08.12时,cnt_s的值为8,cnt_ms的值为12。
模块还实现了暂停和重开始功能,按下按键1开始倒计时,再次按下则暂停,再次按下则开始,无论何时按下按键2,恢复到23.99。
本模块的信号列表如下: 2.BCD译码模块 由于倒计时模块输出的是2进制的cnt_s和cnt_ms,但数码管是个位和十位分别显示的。
例如当cnt_s值为10时,也就是8b00001010,而送给数码管的个位值为4b0000,十位值为4b0001。
这个转换过程也就是BCD译码,也就是本模块要实现的功能。
此处介绍二进制转BCD码的硬件实现,采用左移加3的算法,具体描述如下:(此处以8-bit 二进制码为例) 1、左移要转换的二进制码1位 2、左移之后,BCD码分别置于百位、十位、个位 3、如果移位后所在的BCD码列大于或等于5,则对该值加3 4、继续左移的过程直至全部移位完成 举例:将十六进制码0xFF转换成BCD码 本模块的信号列表如下: 由于秒和毫秒都要译码,所以要例化两个BCD译码模块。
FPGA时分秒电子钟24小时计
设计一个具有时、分、秒计时的电子钟,按24小时计时。
要求:(1)数字钟的时间用六位数码管分别显示时、分、秒;(2)用两个控制键,对数字钟分别进行分、时校正;(3)用Verilog HDL语言设计,用Modelsim软件做功能仿真,用Quartus II综合。
(4)将设计代码和仿真代码写在作业本上。
module countersmh(out,sel,dp,clock_128,clear,corr_min,corr_hour);input clock_128,clear,corr_min,corr_hour;output [6:0] out;output [2:0] sel;output dp;reg [6:0] out;reg [2:0] sel;reg [3:0] cnt_sl,cnt_sh,cnt_ml,cnt_mh,cnt_hl,cnt_hh,count;reg [15:0] fenping;wire clock_1=fenping[1];always @(posedge clock_128 or negedge clear)beginif (!clear)fenping <= 16'b0;elsefenping <= fenping + 1;end//cnt_slalways@(posedge clock_1 or negedge clear)beginif(!clear)cnt_sl<=4'b0;else if (cnt_sl == 9)cnt_sl<=4'b0;elsecnt_sl<=cnt_sl+1;end//cnt_shalways@(posedge clock_1 or negedge clear)beginif(!clear)cnt_sh<=4'b0;else if (cnt_sh == 5 && cnt_sl == 9)cnt_sh<=4'b0;else if (cnt_sl == 9)cnt_sh<=cnt_sh+1;elsecnt_sh <= cnt_sh;end//cnt_mlalways@(posedge clock_1 or negedge clear)beginif(!clear)cnt_ml<=4'b0;else if (cnt_sh == 5 && cnt_sl == 9 && cnt_ml == 9)cnt_ml<=4'b0;else if (corr_min == 0)beginif(cnt_ml == 9)cnt_ml<=4'b0;else cnt_ml<=cnt_ml+1;endelse if (cnt_sh == 5 && cnt_sl == 9)cnt_ml<=cnt_ml+1;elsecnt_ml <= cnt_ml;end//cnt_mhalways@(posedge clock_1 or negedge clear)beginif(!clear)cnt_mh<=4'b0;else if (cnt_sh == 5 && cnt_sl == 9 && cnt_ml == 9 && cnt_mh == 5) cnt_mh<=4'b0;else if (corr_min == 0)beginif(cnt_mh == 5 && cnt_ml == 9)cnt_mh<=4'b0;else if(cnt_ml == 9)cnt_mh<=cnt_mh+1;else cnt_mh <= cnt_mh;endelse if (cnt_sh == 5 && cnt_sl == 9 && cnt_ml == 9)cnt_mh<=cnt_mh+1;elsecnt_mh <= cnt_mh;//cnt_hlalways@(posedge clock_1 or negedge clear)beginif(!clear)cnt_hl<=4'b0;else if ( cnt_hh == 2 && cnt_hl == 3 && cnt_mh == 5 && cnt_ml == 9 && cnt_sh == 5 && cnt_sl == 9 )cnt_hl<=4'b0;else if ( cnt_hl == 9 && cnt_mh == 5 && cnt_ml == 9 && cnt_sh == 5 && cnt_sl == 9 ) cnt_hl<=4'b0;else if (corr_hour == 0)beginif(cnt_hh == 2 && cnt_hl == 3)cnt_hl<=4'b0;else if(cnt_hl == 9)cnt_hl<=4'b0;else cnt_hl<=cnt_hl+1;endelse if (cnt_mh == 5 && cnt_ml == 9 && cnt_sh == 5 && cnt_sl == 9)cnt_hl<=cnt_hl+1;elsecnt_hl <= cnt_hl;end//cnt_hhalways@(posedge clock_1 or negedge clear)beginif(!clear)cnt_hh<=4'b0;else if ( cnt_hh == 2 && cnt_hl == 3 && cnt_mh == 5 && cnt_ml == 9 && cnt_sh == 5 && cnt_sl == 9 )cnt_hh<=4'b0;else if (corr_hour == 0)beginif(cnt_hh == 2 && cnt_hl == 3)cnt_hh<=4'b0;else if (cnt_hl == 9)cnt_hh <= cnt_hh+1;else cnt_hh <= cnt_hh;endelse if (cnt_hl == 9 && cnt_mh == 5 && cnt_ml == 9 && cnt_sh == 5 && cnt_sl == 9)cnt_hh<=cnt_hh+1;cnt_hh <= cnt_hh;end//selalways@(posedge clock_128 or negedge clear ) beginif(!clear)sel<=0;else if(sel==3'b101)sel <= 3'b000;elsesel <= sel+1;endalways @(sel)begincase(sel)3'b000: count=cnt_hh;3'b001: count=cnt_hl;3'b010: count=cnt_mh;3'b011: count=cnt_ml;3'b100: count=cnt_sh;3'b101: count=cnt_sl;default: count=0;endcaseend//decoderwire dp;assign dp = (sel == 3'b011 || sel == 3'b001)?1'b1:1'b0;always @(count)begincase(count)4'd0: out=7'b011_1111;4'd1: out=7'b000_0110;4'd2: out=7'b101_1011;4'd3: out=7'b100_1111;4'd4: out=7'b110_0110;4'd5: out=7'b110_1101;4'd6: out=7'b111_1101;4'd7: out=7'b000_0111;4'd8: out=7'b111_1111;4'd9: out=7'b110_1111;default: out=7'b000_0000;endcaseendendmodule`timescale 1ns/1ns`include"./countersmh.v"module test;reg Clock_128,Clear,Corr_min,Corr_hour;wire [6:0] Out;wire [2:0] Sel;wire Dp;initialbeginClock_128=0;Clear=1;Corr_min=1;Corr_hour=1;#50 Clear=0;#50 Clear=1;#1000 Corr_min=0;#1000 Corr_min=1;#100 Corr_hour=0;#1000 Corr_hour=1;endalways #2 Clock_128=~Clock_128;countersmhm(.out(Out),.sel(Sel),.dp(Dp),.clock_128(Clock_128),.clear(Clear),.corr_min(Corr_min),.corr_ho ur(Corr_hour));endmodule。
基于FPGA的篮球倒计时的设计和实现 (优选.)
篮球倒计时1功能概述篮球是一种以将篮球投入对方篮框里的对抗性体育运动,与足球、排球一起被称为“三大球”,是当今世界上最为广泛和受到关注的体育运动之一。
24秒进攻规则是篮球比赛中非常重要的一项规则,保证了篮球运动的激烈性和观赏性。
其主要内容时当某队在比赛中获得新的球权时,或在掷球入界中当球在场上被队员合法触及时,拥有球权的队必须在获得球后的24秒钟内投篮。
完成投篮的条件是:(1)在24秒钟结束之前,球必须离开队员的手;(2)球离开队员的手后,球必须与篮圈接触。
如果在24秒钟哨响前球出手后未接触篮圈,为24秒钟违例。
发球权判给对方。
可想而知,倒数计时系统非常适用于这项比赛规则。
篮球24秒倒计时是倒计时系统的一个典型运用。
实际上,倒计时系统是一个非常常见的电路系统,生活中我们见到的如香港回归倒计时、某大型活动倒计时、评估倒计时等都属于此类。
与单片机等实现模式相比,FPGA倒计时系统大大简化,整体性能和可靠性得到提高。
在篮球24秒倒计时的模块架构设计方面,只需要一级架构下的BCD译码模块、倒计时模块和数码管显示模块,即可实现24秒倒计时功能。
具体功能要求:本项目包含2个按键和4位数码管显示,要求共同实现一个篮球24秒的倒计时,并具有暂停和重新计数复位的功能。
具体功能如下:1. 数码管显示秒十位、秒个位、0.1秒和0.01秒。
2. 上电后,数码管显示2399,表示的时间是23.99秒。
3. 按下按键S0,进入倒计时状态,进行倒计时,一直计到0000后停止。
4. 在倒计时状态时,再次按下按键S0,则暂停计时;再按下按键S0,则继续倒计时。
5. 在任何时刻,按下按键S1,则复位显示为2399。
2 设计思路我们把本项目设计划分成三个模块:倒计时模块、BCD译码模块和数码管显示模块。
如下:FPGA顶层模块的信号列表如下:倒计时模块——实现的是24s倒计时功能,其输出两组计数信号cnt_s和cnt_ms。
例如,当时间为23.99时,cnt_s的值为23,cnt_ms的值为99;当时间为08.12时,cnt_s的值为8,cnt_ms的值为12。
24秒倒计时
目录摘要第一章计时器概述24秒计时器功能设计任务及要求大体要求设计任务及目标要紧参考器件:第二章电路设计原理与单元模块2.1 设计原理2.2 设计方案2.3 单元模块8421BCD码递减计数器模块时钟模块辅助时序操纵模块第三章实验仿真第四章实验体会致谢参考文献附录摘要:本课程设计,设计了24秒计时器。
此计时器功能齐全,能够直接循环、启动、暂停和持续和具有光电报警功能,同时应用了四段数码管来显示时刻。
此计时器有了循环、启动、暂停和持续功能,能够方便地实现断点计时功能,当计时器递减到零时,会发出光电报警信号。
第一章计时器概述24秒计时器功能本设计要紧能完成:显示24秒倒计时功能;系统设置外部操作开关,操纵计时器的直接循环、启动和暂停/持续功能;在直接循环时,数码管显示器灭灯;计时器为24秒递减计时其计时刻隔为1秒;在直接启动时,计时器递减计时到零时,数码显示器不灭灯,同时发出光电报警信号等。
设计任务及要求本次课程设计应达到的目的(1) 综合运用相关课程中所学到的理论知识去独立完成某一设计课题;(2) 通过查阅手册和相关文献资料,培育学生独立分析和解决问题的能力;(3) 进一步熟悉经常使用芯片和电子器件的类型及特性,并把握合理选用器件的原那么;(4) 学会电路的设计与仿真;(5) 培育严肃认真的工作作风和严谨的科学态度。
设计任务及目标(1) 具有24秒计时功能;(2) 设置外部操作开关,操纵计数器的直接循环/启动和暂停/持续功能;(3) 计时器为24秒递减计时,计时刻隔为1秒;(4) 计时到零时数码管不能灭灯,同时发出光电报警。
(5) 并用相关仿真软件对电路进行仿真。
要紧参考器件:555 7474(1) 74192(2)第二章电路设计原理与单元模块2.1 设计原理24秒计时器的整体参考方案框图如图2-1所示。
它包括秒脉冲发生器、计数器、译码显示电路、报警电路和辅助时序操纵电路(简称操纵电路)等五个模块组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
设计一个用于篮球比赛的定时器。
要求:
(1)定时时间为 24 秒,按递减方式计时,每隔 1 秒,定时器减1;
(2)定时器的时间用两位数码管显示;
(3)设置两个外部控制开关,开关 K1 控制定时器的直接复位 / 启动计时,开关 K2 控制定时器的暂停 / 连续计时;当定时器递减计时到零(即定时时间到)时,定时器保持零不变,同
时发出报警信号,报警信号用一个发光二极管指示。
(4)输入时钟脉冲的频率为 1kHz。
(5)用 Verilog HDL语言设计,用Modelsim 软件做功能仿真,用Quartus II 综合。
(6)将设计代码和仿真代码写在作业本上。
module gcount(out,sel,clock_1k,clear,pause,gcon);
input clock_1k,clear,pause;
output [6:0] out;
output sel,gcon;
reg [6:0] out;
reg sel,gcon;
reg [3:0] cnt_sl,cnt_sh,count;
reg wire [9:0] fenpin;
clock_1 = fenpin[9]; // 1Hz;
always @(posedge clock_1k or negedge clear)
begin
if (!clear)
fenpin <= 10'b0;
else
fenpin <= fenpin + 1;
end
//cnt_sl
always@(posedge clock_1 or negedge clear)
//always@(posedge clock_1 or negedge clear or posedge pause) begin
if(!clear)
cnt_sl<=4'h4;
else if (!pause)
cnt_sl<=cnt_sl;
else if (cnt_sh == 0 && cnt_sl == 0)
cnt_sl<=4'h0;
else if (cnt_sl == 0)
cnt_sl<=4'h9;
else
cnt_sl<=cnt_sl-1;
end
//cnt_sh
always@(posedge clock_1 or negedge clear)
//always@(posedge clock_1 or negedge clear or posedge pause) begin
if(!clear)
cnt_sh<=4'h2;
else if (!pause)
cnt_sh <= cnt_sh;
else if (cnt_sh == 0 && cnt_sl == 0)
cnt_sh<=4'h0;
else if (cnt_sl == 0)
cnt_sh<=cnt_sh-1;
else
cnt_sh <= cnt_sh;
end
//gcon
//always@(posedge clock_1 or negedge clear)
always@(cnt_sh or cnt_sl)
begin
if (cnt_sh == 0 && cnt_sl == 0)
gcon<=1;
else
gcon <= 0;
end
//reg
always@(posedge clock_1k or negedge clear)
begin
if(!clear)
sel<=0;
else
sel <= ~sel;
end
always @(sel)
count = (sel == 0)?cnt_sh:cnt_sl;
always @(count)
begin
case(count)
4'b0000: out=7'b011_1111;
4'b0001: out=7'b000_0110;
4'b0010: out=7'b101_1011;
4'b0011: out=7'b100_1111;
4'b0100: out=7'b110_0110;
4'b0101: out=7'b110_1101;
4'b0110: out=7'b111_1101;
4'b0111: out=7'b000_0111;
4'b1000: out=7'b111_1111;
4'b1001: out=7'b110_1111;
default: out=7'b000_0000;
endcase
end
endmodule
`timescale 1ns/1ns
`include"./gcount.v"
module test;
reg Clock_1k,Clear,Pause;
wire [6:0] Out;
wire Sel,Gcon;
initial
begin
Clock_1k<=0;
Clear<=1;
Pause<=1;
#100 Clear<=0;
#100 Clear<=1;
#5000 Pause<=0;
#5000 Pause<=1;
#5000 Clear<=0;
#5000 Clear<=1;
end
always #1 Clock_1k<=~Clock_1k;
gcount
m(.out(Out),.sel(Sel),.clock_1k(Clock_1k),.clear(Clear),.pause(Pause),.gcon(Gco n));
endmodule。