数字电路技术实验十进制计数器
基于原理图的十进制计数器的设计(FPGA)

实验一:基于原理图的十进制计数器设计一、 实验目的:1. 熟悉和掌握ISE Foudation 软件的使用;2. 掌握基于原理图进行FPGA 设计开发的全流程;3. 理解和掌握“自底向上”的层次化设计方法;4. 温习数字电路设计的基础知识。
二、 实验原理:完成一个具有数显输出的十进制计数器设计,原理图如图2.1所示。
图2.1 十进制计数器原理图本实验为完成设计,采用了自底向上的设计流程。
自底向上设计是一种设计程序的过程和方法,是在设计具有层次结构的大型程序时,先设计一些较下层的程序,即去解决问题的各个不同的小部分,然后把这些部分组合成为完整的程序。
自底向上设计是从底层(具体部件)开始的,实际中无论是取用已有模块还是自行设计电路,其设计成本和开发周期都优于自顶向下法;但由于设计是从最底层开始的,所以难以保证总体设计的最佳性,例如电路结构不优化、能够共用的器件没有共用。
在现代许多设计中,是混合使用自顶向下法和自顶向上法的,因为混合应用可能会取得更好的设计效果。
一般来说,自顶向下设计方法适用于设计各种规模的数字系统,而自底向上的设计方法则更适用于设计小型数字系统。
十进制计数器七段数码管显示译码器使能控制端时钟端 异步清零端FPGA1、七段数码管译码器的设计七段数码管属于数码管的一种,是由7段二极管组成。
按发光二极管单元衔接方式分为共阳极数码管和共阴极数码管。
本实验使用共阴数码管。
它是指将一切发光二极管的阴极接到一同构成公共阴极(COM)的数码管。
共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平相应字段就点亮,当某一字段的阳极为低电平相应字段就不亮。
显示译码器,一般是将一种编码译成十进制码或特定的编码,并通过显示器件将译码器的状态显示出来。
根据显示的要求,可以得到七段显示译码器产生的各段LED输出与输入的二进制对应关系:表2.1七段字符显示真值表最小项译码器输出能产生输入变量的所有最小项,而任何一个组合逻辑函数都可以变换为最小项之和的标准形式,故采用译码器和门电路可实现任何单输出或多输出的组合逻辑函数。
数电实验报告十进制计数器设计

else if (EN) begin
if (!LOAD) Q1 <= DATA;
else if (Q1<9) Q1 <= Q1+1;
else Q1 <= 4'b0000;
end
end
always @(Q1)
if (Q1==4'h9) COUT = 1'b1;
else COUT = 1'b0;
Endmodule
二、仿真波形
三、电路图
四、引脚配置(约束文件)
五、思考与探索
1.本试验没有连接到实验板测试,不过可以将输出信号接至LED灯口,发光为高电平,根据发光的顺序判断计数器是否正常工作
2.遇到的问题,时钟信号上升沿和下降沿判断错误
3.二进制码->格雷码:从最右边该位的值,最左边一位不变
input EN;
input RST;
input LOAD;
input [3:0] DATA;
output [3:0] DOUT;
output COUT;
reg [3:0] Q1 ;
reg COUT ;
assign DOUT = Q1;
always @(posedge CLK or negedge RST) begin
实验报告
2017年12月7日成绩:
姓名
学号
班级
专业
课程名称
《数字电路实验》
任课老师
指导老师
机位号
实验序号
12
实验名称
十进制计数器设计
实验时间
2017.12.7
实验地点
一教225
数电实验之计数器

计数器一实验目的1、掌握中规模集成计数器的逻辑功能及使用方法。
2、学习运用集成电路芯片计数器构成N位十进制计数器的方法。
二实验原理计数器是一个用以实现计数功能的时序器件,它不仅可以用来记忆脉冲的个数,还常用于数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。
计数器种类很多,按构成计数器中的各个触发器输出状态更新是否受同一个CP脉冲控制来分,有同步和异步计数器,根据计数制的不同,分为二进制、十进制和任意进制计数器。
根据计数的增减趋势分,又分为加法、减法和可逆计数器。
另外,还有可预置数和可编程功能的计数器等。
目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器芯片。
如:异步十进制计数器74LS90,4位二进制同步计数器74LS93,CD4520,4位十进制计数器74LS160、74LS162;4位二进制可预置同步计数器CD40161、74LS161、74LS163;4位二进制可预置同步加/减计数器CD4510、CD4516、74LS191、74LS193;BCD码十进制同步加/减计数器74LS190、74LS192、CD40192等。
使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列就能正确使用这些器件。
例如74LS192同步十进制可逆计数器,具有双时钟输入十进制可逆计数功能;异步并行置数功能;保持功能和异步清零功能。
74192功能见表表19.1*表中符号和引脚符号的对应关系:CR = CLR—清零端;LD= LOAD—置数端(装载端)CP U = UP—加计数脉冲输入端CP D = DOWN—减计数脉冲输入端CO——非同步进位输出端(低电平有效)BO——非同步借位输出端(低电平有效)D3 D2 D1 D0 = D C B A—计数器数据输入端Q D Q C Q B Q A—计数器数据输出端根据功能表我们可以设计一个特殊的12进制的计数器,且无0数。
如图19.1所示:当计数器计到13时,通过与非门产生一个复位信号,使第二片74LS192(时十位)直接置成0000,而第一片74LS192计时的个位直接置成0001;从而实现了1——12的计数。
十进制计数器实验报告

when 4=>seg7<="1100110";
when 5=>seg7<="1101101";
when 6=>seg7<="1111101";
when 7=>seg7<="0000111";
when 8=>seg7<="1111111";
when 9=>seg7<="1100111";
2,建完工程后,再建一个VHDL FILE,打开VHDL编辑器对话框.
3,按照实验原理和自己的想法,在VHDL编辑窗口编写Verilog程序.
4,编写完Verilog程序后,保存起来.注意顶体名跟程序实体名要一致.
5,对自己编写的Verilog程序进行编译并仿真,对程序的错误进行修改.
6,编译仿真无误后,进行管脚分配.分配完成后,再进行全编译一次,以使管脚分配生效.
signal seg7:std_logic_vector(6 downto 0);
signal countnum: integer range 0 to 9;
signal clk_1k: std_logic;
begin
r<="011111";
process(clk)
variable cnt1:integer range 0 to 5000;
end if;
else
cnt1:=cnt1+1;
end if;
end if;
end process;
十进制加法计数器

十进制加法器设计1课程设计的任务与要求 课程设计的任务1、综合应用数字电路知识设计一个十进制加法器。
了解各种元器件的原理及其应用。
2、了解十进制加法器的工作原理。
3、掌握multisim 软件的操作并对设计进行仿真。
4、锻炼自己的动手能力和实际解决问题的能力。
5、通过本设计熟悉中规模集成电路进行时序电路和组合电路设计的方法,掌握十进制加法器的设计方法。
课程设计的要求1、设计一个十进制并运行加法运算的电路。
2、0-9十个字符用于数据输入。
3、要求在数码显示管上显示结果。
2十进制加法器设计方案制定 加法电路设计原理图1加法运算原理框图如图1所示第一步置入两个四位二进制数。
例如(1001)2,(0011)2和(0101)2,(1000),同时在两个七段译码显示器上显示出对应的十进制数9,3和5,8。
2第二步将置入的数运用加法电路进行加法运算。
第三步前面所得结果通过另外两个七段译码器显示。
即:加法运算方式,则(1000)2+(0110)2=(1110)2 十进制8+6=14 并在七段译码显示出14。
运算方案通过开关S1——S8接不同的高低电平来控制输入端所置的两个一位十进制数,译码显示器U8和U9分别显示所置入的两个数。
数A直接置入四位超前进位加法器74LS283的A4——A1端,74LS283的B4——B1端接四个2输入异或门。
四个2输入异或门的一输入端同时接到开关S1上,另一输入端分别接开关S5——S8,通过开关S5——S8控制数B的输入,通过加法器74LS283完成两个数A和B的相加。
由于译码显示器只能显示0——9,所以当A+B>9时不能显示,我们在此用另一片芯片74LS283完成二进制码与8421BCD码的转换,即S>9(1001)2时加上3(0011)2,产生的进位信号送入译码器U10来显示结果的十位,U11显示结果的个位。
3十进制加法器电路设计加法电路的实现用两片4位全加器74LS283和门电路设计一位8421BCD码加法器。
数字电路 实验 计数器及其应用 实验报告

实验六计数器及其应用一、实验目的1.学习用集成触发器构成计数器的方法2.掌握同步计数的逻辑功能、测试方法及功能扩展方法3.掌握构成任意进制计数器的方法二、实验设备和器件1.+5V直流电源2.双踪示波器3.连续脉冲源4.单次脉冲源5.逻辑电平开关6.逻辑电平显示器7.译码显示器8.CC4013×2(74LS74)CC40192×3(74LS192)CC4011(74LS00)CC4012(74LS20)三、实验原理计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。
计数器种类很多。
计数器计数时所经历的独立状态总数为计数器的模(M)。
计数器按模可分为二进计数器(M=2n)、十进计数器(M=10n)和任意进制计数器(M≠2n、M≠10n)。
按计数脉冲输入方式不同,可分为同步计数和异步计数。
按计数值增减趋势分为:加法计数器、减法计数器和可逆(加/减)计数器。
1.用D触发器构成异步二进制加/减计数器图6-1是用四只D触发器构成的四位二进制异步加法计数器,它的连接特点是将每只D触发器接成T 触发器,再由低位触发器的Q端和高一位的CP端相连接。
若将图6-1稍加改动,即将低位触发器的Q端与高一位的CP端相连接,即构成了一个4位二进制减法计数器。
2.中规模十进制计数器、十六进制计数器(1)CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能。
当清除端CR为高电平“1”时,计数器直接清零;CR置低电平则执行其它功能。
当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3置入计数器。
当CR为低电平,LD为高电平时,执行计数功能。
执行加计数时,减计数端CP D接高电平,计数脉冲由CP U输入;在计数脉冲上升沿进行8421码十进制加法计数。
执行减计数时,加计数端CP U接高电平,计数脉冲由减计数端CP D 输入,表6-2为8421码十进制加、减计数器的状态转换表。
电子线路基础数字电路实验7 时序逻辑电路设计

实验七时序逻辑电路设计一、实验目的1. 学习用集成触发器构成计数器的方法。
2. 熟悉中规模集成十进制计数器的逻辑功能及使用方法。
3. 学习计数器的功能扩展。
4. 了解集成译码器及显示器的应用。
二、实验原理计数器是一种重要的时序逻辑电路,它不仅可以计数,而且用作定时控制及进行数字运算等。
按计数功能计数器可分加法、减法和可逆计数器,根据计数体制可分为二进制和任意进制计数器,而任意进制计数器中常用的是十进制计数器。
根据计数脉冲引入的方式又有同步和异步计数器之分。
1. 用D触发器构成异步二进制加法计数器和减法计数器:图10—1是用四只D触发器构成的四位二进制异步加法计数器,它的连接特点是将每只D触发器接成T'触发器形式,再由低位触发器的Q端和高一位的CP端相连接,即构成异步计数方式。
若把图10—1稍加改动,即将低位触发器的Q端和高一位的CP端相连接,即构成了减法计数器。
图10—1本实验采用的D触发器型号为74LS74A,引脚排列见前述实验。
2. 中规模十进制计数器中规模集成计数器品种多,功能完善,通常具有予置、保持、计数等多种功能。
74LS182同步十进制可逆计数器具有双时钟输入,可以执行十进制加法和减法计数,并具有清除、置数等功能。
引脚排列如图10—2所示。
其中LD−−置数端;CP u−−加计数端;CP D−−减计数端;DO−−非同步进位输出端;CO−−非同步借位输出端;Q A、Q B、Q C、Q D−−计数器输出端;D A、D B、D C、D D−−数据输入端;CR−−清除端。
表10—1为74LS192功能表,说明如下:当清除端为高电平“1”时,计数器直接清零(称为异步清零),执行其它功能时,CR置低电平。
当CR为低电平,置数端LD为低电平时,数据直接从置数端D A、D B、D C、D D置入计数器。
当CR为低电平,LD为高电平时,执行计数功能。
执行加计数时,减计数端CP D接高电平,计数脉冲由加计数端Cp u输入,在计数脉冲上升沿进行842编码的十进制加法计数。
实验四两位十进制计数器显示实验

实验四两位十进制计数器显示实验——综合实验一、实验目的1、学生在掌握所学知识(模拟电路、数字电路、VHD语言等)的基础之上,通过进行该实验可将有关知识的连贯起来,提高自己本身的综合能力。
2、该实验的参考程序有错,学生通过该实验可以深入的了解和掌握EDA。
二、实验要求1、编写计数器程序。
2、编写扫描显示程序。
3、组成两位十进制计数器的显示功能。
三、实验设备1、计算机一台2、EDA——Ⅳ实验箱一台四、实验提示(1)该实验应该分为三部分完成:计数器模块、扫描显示模块和综合部分。
(2)输入信号:计数信号、手动清零、手动允许和手动复位信号。
(3)输出信号:七段码输出信号和位选编码信号。
(4)接口引脚的分配,参考附录三。
五、实验报告要求1、分别叙述计数器和扫描显示的工作原理和设计原理。
2、绘制它们的程序流程图并进行程序分析。
3、详细叙述和总结实验过程并进行仿真实验与硬件实验的分析。
参考1、LED显示程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tled isport(din: in std_logic_vector(7 downto 0);sn: out std_logic_vector(2 downto 0);clk: in std_logic;LED7: out std_logic_vector(6 downto 0));end tled;architecture behv of tled issignal he: std_logic_vector(3 downto 0);signal ds: std_logic_vector(2 downto 0);beginprocess (din)begin。
when "0000" => LED7 <="0111111"; --"0" / 39hwhen "0001" => LED7 <="0000110"; --"1" / 06hwhen "0010" => LED7 <="1011011"; --"2" / 5Bhwhen "0011" => LED7 <="1001111"; --"3" / 4Fhwhen "0100" => LED7 <="1100110"; --"4" / 66hwhen "0101" => LED7 <="1101101"; --"5" / 6Dhwhen "0110" => LED7 <="1111101"; --"6" / 7Dhwhen "0111" => LED7 <="0000111"; --"7" / 07hwhen "1000" => LED7 <="1111111"; --"8" / 7Fhwhen "1001" => LED7 <="1101111"; --"9" / 6Fhwhen "1010" => LED7 <="1110111"; --"A" / 77hwhen "1011" => LED7 <="1111100"; --"b" / 7Chwhen "1100" => LED7 <="0111001"; --"C" / 39hwhen "1101" => LED7 <="1011110"; --"d" / 5Ehwhen "1110" => LED7 <="1111001"; --"E" / 79hwhen "1111" => LED7 <="1110001"; --"F" / 71hwhen others => LED7 <="0000000"; --"不显示示"end case;sn <= ds; --"位选信号"end process;end behv;参考2、十进制计数器程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY cntA isport(CLK,RST,EN :in std_logic;Dout : out std_logic_VECTOR ( 3 Downto 0 );Cy : out std_logic);end cntA ;architecture Cm of cntA isbeginProcess (CLK,RST,EN)Variable Cqi : std_logic_VECTOR ( 3 Downto 0 );BeginIf RST ='1' Then Cqi :=(Others =>'0');Elsif CLK'Event and CLK='1' thenIf EN='1' thenIf Cqi < "1010" then Cqi :=Cqi;else Cqi :=(others =>'0');end If;end If;end If;IF Cqi="1110" Then Cy <= '1' ;Dout <= "0000";else Cy <='0';Dout <= Cqi;end If;END Process;End Cm;参考3、顶层原理图。