实验九 可逆计数器的功能测试及应用电路
- 格式:doc
- 大小:269.50 KB
- 文档页数:7
计数器一实验目的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的计数。
数电实验报告:计数器及其应用数字电子技术实验报告实验四:计数器及其应用一、实验目的:1、熟悉常用中规模计数器的逻辑功能。
2、掌握二进制计数器和十进制计数器的工作原理和使用方法。
二、实验设备:1、数字电路实验箱;2、74LS90。
三、实验原理:1、计数是一种最简单基本运算,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时具有分频功能。
计数器按计数进制分有:二进制计数器,十进制计数器和任意进制计数器;按计数单元中触发器所接收计数脉冲和翻转顺序分有:异步计数器,同步计数器;按计数功能分有:加法计数器,减法计数器,可逆(双向)计数器等。
2、74LS90是一块二-五-十进制异步计数器,外形为双列直插,NC表示空脚,不接线,它由四个主从JK触发器和一些附加门电路组成,其中一个触发器构成一位二进制计数器;另三个触发器构成异步五进制计数器。
在74LS90计数器电路中,设有专用置“0”端R0(1),R0(2)和置“9”端S9(1)S9(2)。
其中前两个为异步清0端,后两个为异步置9端。
CP1, CP2为两个时钟输入端;Q0 ~Q3为计数输出端。
当R1=R2=S1=S2=0时,时钟从CP1引入,Q0输出为二进制;从CP2引入,Q3输出为五进制。
时钟从CP1引入,二Q0接CP1,则Q3Q2Q1Q0输出为十进制(8421码);时钟从CP2引入,而Q3接CP1,则Q0Q3Q2Q1输出为十进制(5421码)。
四、实验原理图及实验结果:1、实现0~9十进制计数。
1)实验原理图如下:(函数信号发生器:5V 3Hz 偏移2.5V方波)2)实验结果:解码器上依次显示0~9十个数字。
2、实现六进制计数。
1)实验原理图如下:(函数信号发生器:5V 3Hz 偏移2.5V方波)2)实验结果:解码器上依次显示0~5六个数字。
3、实现0、2、4、6、8、1、3、5、7、9计数。
1)实验原理图如下:(函数信号发生器:5V 3Hz 偏移2.5V方波)2)实验结果:解码器上依次显示0、2、4、6、8、1、3、5、7、9十个数字。
实验名称:十进制加减可逆计数器实验组别:⑨实验人:XJY 班级:光信1102 学号:U201114XXX目标要求:利用实验板实现十进制加减可逆计数器设计,具体要求为:拨码开关键SW1为自动可逆加减功能键,当SW1为HIGH时,计数器实现自动可逆模十加减计数功能,即4个七段数码管上几乎同步显示0—1—2—3—4—…9—8—7—…0—1…的模十自动可逆加减计数结果;当SW1为LOW时,计数器按拨码开关键SW0的选择分别执行加减计数功能。
即当SW0为HIGH时,计数器实现模十加计数功能,即4个七段数码管上几乎同步显示0—1—2—3—4—…9——0—1…的模十加计数结果;当SW0为LOW时,8—7…的模十减计数结果。
实现原理:源码清单:`timescale 1ns / 1ps////////////////////////////////////////////////////////////////////////////////// // Company:// Engineer://// Create Date: 14:24:13 12/09/2013// Design Name:// Module Name: xjy// Project Name:// Target Devices:// Tool versions:// Description://// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments://////////////////////////////////////////////////////////////////////////////////// module xjy(input clk,input SW1,input SW0,input clear,input reset,output reg[3:0] sl_reg,output reg [6:0]segdat_reg);reg [26:0] count;reg [3:0] q;reg x;always@(posedge clk)beginif(clear) beginsl_reg<=0;count<=0;endelsecount<=count+1;endalways@(posedge count[24]) //程序运行时用//always@(posedge count[4]) 程序模拟时使用beginif (reset) begin q<=0; x<=0; endelse begincase(SW1)1'd1:begincase(x)1'd0: beginif(q==4'd8) x<=1;q<=q+1;end1'd1: beginif(q==4'd1) x<=0;q<=q-1;endendcaseend1'd0:begincase(SW0)1'd0:beginif(q==4'd0) q<=4'd9;else q<=q-1;end1'd1:beginif(q==4'd9) q<=4'd0;else q<=q+1;endendcaseendendcaseendendalways@(q) // 数码管显示处理begincase(q)4'h0: segdat_reg = 7'b0000001; //04'h1: segdat_reg = 7'b1001111; //14'h2: segdat_reg = 7'b0010010; //24'h3: segdat_reg = 7'b0000110; //34'h4: segdat_reg = 7'b1001100; //44'h5: segdat_reg = 7'b0100100; //54'h6: segdat_reg = 7'b0100000; //64'h7: segdat_reg = 7'b0001111; //74'h8: segdat_reg = 7'b0000000; //84'h9: segdat_reg = 7'b0000100; //9default: segdat_reg = 7'b0111000; //Fendcaseendendmodule测试文件清单:`timescale 1ns / 1ps//////////////////////////////////////////////////////////////////////////////// // Company:// Engineer://// Create Date: 17:46:25 12/09/2013// Design Name: XJY// Module Name: D:/ISE/XJY/xjy/xjy_test.v// Project Name: xjy// Target Device:// Tool versions:// Description://// Verilog Test Fixture created by ISE for module: XJY //// Dependencies://// Revision:// Revision 0.01 - File Created// Additional Comments:////////////////////////////////////////////////////////////////////////////////// module xjy_test;// Inputsreg clk;reg SW1;reg clear;reg reset;// Outputswire [3:0] sl_reg;wire [6:0] segdat_reg;// Instantiate the Unit Under Test (UUT)XJY uut (.clk(clk),.SW1(SW1),.clear(clear),.reset(reset),.sl_reg(sl_reg),.segdat_reg(segdat_reg));always begin#10; clk=~clk;endinitial begin// Initialize Inputsclk = 0;SW1 = 0;SW0=1;clear =1;reset = 1;// Wait 60 ns for global cleat to finish#60;clear =0;// Wait 60 ns for global reset to finish#60;reset = 0;// Add stimulus hereendEndmodule管脚定义文件:#Created by Constraints Editor (xc3s100e-cp132-4) - 2013/12/10 NET "clk" TNM_NET = clk;TIMESPEC TS_clk = PERIOD "clk" 20 ns HIGH 50%;NET "segdat_reg[6]" LOC = L14;NET "segdat_reg[5]" LOC = H12;NET "segdat_reg[4]" LOC = N14;NET "segdat_reg[3]" LOC = N11;NET "segdat_reg[2]" LOC = P12;NET "segdat_reg[1]" LOC = L13;NET "segdat_reg[0]" LOC = M12;NET "sl_reg[0]" LOC = F12;NET "sl_reg[1]" LOC = J12;NET "sl_reg[2]" LOC = M13;NET "sl_reg[3]" LOC = K14;NET "clear" LOC = K3;NET "clk" LOC = B8;NET "SW1" LOC = L3;NET "clk" SLEW=FAST;NET "reset" LOC=B4;NET "SW0" LOC=P11;NET "SW1" LOC=L3;系统使用说明:clear 为程序开始按钮,定义为开发板的拨码开关SW3reset 为程序清零按钮,拨至低电位后显示清零,定义为拨码开关SW2SW1 为程序功能控制按钮,定义为拨码开关SW1SW0 为程序功能控制按钮,定义为拨码开关SW0系统功能与性能测试结果:实验开始之前将SW3,SW2,SW1,SW0,均调至HIGH实验开始调SW3(clear),SW2(reset)为LOW当SW1为HIGH时,计数器实现自动可逆模十加减计数功能,即4个七段数码管上几乎同步显示0—1—2—3—4—…9—8—7—…0—1…的模十自动可逆加减计数结果;当SW1为LOW时,计数器按拨码开关键SW0的选择分别执行加减计数功能。
PLC知识1.可逆计数器CNTR的计数功能如图2-41所示,当复位端0.03为ON时CNTR0046复位,当前值变为0000,此时既不进行加计数,也不进行减计数。
当0. 03变为OFF时计数器开始计数,其计数过程如下:1)若0.02 OFF、由0.01输入计数脉冲时为加计数器。
0. 01每输入一个计数脉冲,CNTR 0046的当前值加1。
当PV=#0200时,再输入一个计数脉冲时,PV值变为0000(有进位),计数完成标志C0046变为ON。
若再来一个计数脉冲时,PV =1,计数完成标志C0046变为OFF,且开始下一个循环的计数。
图2-41 CNTR应用示例a)梯形图b)语句表2)若0. 01 OFF、由0.02输入计数脉冲时为减计数器。
0.02每输入一个计数脉冲,CNTR 0046的当前值减1。
当PV= 0000时,再输入一个计数脉冲时,PV变为0200(有借位),同时计数完成标志C0046变为ON。
若再来一个计数脉冲时,PV= 0199,且计数完成标志C0046变为OFF,并开始下一个循环的计数。
当0.01和0.02同时输入计数脉冲时,计数器不计数。
2.可逆计数器的循环定时功能图2-42中,SCP端以P_Off(常OFF)作为输入条件,所以CNTR0000作为加计数器使用。
ACP端以P_1s与W0.00的串联作为输入条件,由P_1s产生的秒脉冲作为计数脉冲输入,此时计数器可作为定时器使用。
R端以0. 01与P_First_Cycle的并联作为复位条件,使CNTR 0000在PLC上电后的第一个扫描周期被复位。
图中若0.01为OFF,H0中的数据是#0500,请读者白行分析该图的功能。
图2-42 可逆计数器(CNTR)的循环定时功能a)梯形图b)语句表3.循环计数器容量的扩展在图2-43中,CNTR0000的计数完成标志常开触点连到CNT0001的计数脉冲输入端,就可以构成大容量的循环计数器。
实验九可逆计数器的功能测试及应用电路实验目的:(1)掌握可逆计数器74LS191、74LS191、74LS192、74LS193的逻辑功能及使用方法。
(2)熟悉可逆计数器实现任意进制的数码倒计时电路的工作原理。
实验仪器与器件:实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台.74LS191、74LS191、74LS191或74HC48、74LS00和74LS04。
实验内容:1测试74LS190和74LS191的逻辑功能,并用数码管显示,验证是否与表2—9—4一致,分别画出各单元的电路图,写出各自的状态实验原理:单时钟74LS191二进制同步加/减计数器的功能表如下:表2-9—4 单时钟74LS191二进制同步加/减计数器的功能表单时钟74LS191二进制同步加/减计数器是十进制的,其他功能与74LS191一样。
它的有效状态为0000~1001。
实验电路:如图所示是减计数时当计数器的状态变为0时的电路状态:RCO=0,MAX/=1;MIN实验现象与结果:该结果是当CTEN =0,D L =1,D U /=1时,A B C D Q Q Q Q 的 波形图;该结果是当CTEN =0,D L =1,D U /=1时, RCO 与MIN MAX /的波形图需要说明的是:当CTEN=DL=1时,电路保持原来的状态。
2测试74LS192和74LS193的逻辑功能,并用数码管显示,验证是否与表2-9—3及2—9—5一致。
画出测试电路图。
实验原理:双时钟74LS192同步十进制可逆计数器的功能表如下表所示,74LS192是十进制计数器。
表2—9—3双时钟74LS192同步十进制可逆计数器的功能表输入输出工作状态U CP UPDCPDOWNCLRDLDCBAABCDQQQQUTCDTC**H H ****0000 H H 异步清零** L L 1001 1001 H H 异步置数H ↑L H ****1001→0001→0000HHHL减法计数↑H L H **** 0000→1000→1001HLHH加法计数双时钟74LS193二进制同步加/减法计数器的功能表如下表所示,74LS193是一个十六进制的计数器。
实验六计数器及其应用一、实验目的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码十进制加、减计数器的状态转换表。
EDA设计基础实验课程论文题目可逆计数器的设计学院电子工程学院专业班级通信081班学生姓名王力宏指导教师大力会2013年6月12日摘要本设计介绍了Verilog-HDL语言在可逆计数器的具体应用,给出了仿真波形并下载到FPGA开发板上实际验证。
说明了实现电子电路的自动化设计(EDA)过程和EDA技术在现代数字系统中的重要地位及作用.关键词:Verilog-HDL EDA FPGA开发板仿真AbstractThis design describes the Verilog-HDL language in reversible counter the specific application, the simulation waveforms downloaded to the FPGA development board and the actual verification. Illustrates the realization of electronic circuit design automation (EDA) process and EDA technology in the modern digital systems in an important position and role. Keywords: State Machine Verilog-HDL EDA FPGA development board Simulation目录摘要 (I)Abstract (I)第1章绪论 (2)1.1 概述 (2)1.1.2 EDA的发展趋势 (2)1.2 硬件描述语言 (3)1.3 FPGA介绍 (4)第2章可逆计数器设计的基本理论 (6)2.1 设计原理 (6)2.2 电路设计系统仿真 (6)2.2.1 编辑文件 (6)2.3.2 创建工程 (6)2.3.2 仿真 (7)第3章系统的仿真结果 (9)3.1 编译成功 (9)3.2 波形图 (10)3.3 原理图 (11)第4章心得体会 (12)结论 (13)参考文献 (14)附录1 (15)致谢 (17)第1章绪论1.1 概述EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
可逆计数器可逆计数器是一种双向计数器,可以进行递增计数,也可以进行递减计数,根据计数控制信号的不同,在时钟脉冲的作用下,计数器可以进行加1或减1的操作。
下面描述的是一个位宽为4的可逆计数器,即该计数器在不同控制信号下可以分别实现加法计数和减法计数的功能。
rst为同步复位信号,当rst = 1时,dout = 4’b0000;当load = 1时,输入信号din通过dout 输出;若add_en = 1时,计数器在每个时钟上升沿实现加1的操作,即实现加法计数功能;若add_en = 0时,计数器在每个时钟上升沿实现减1的操作,即实现减法计数功能。
其verilog HDL 设计代码如下:1.module counter_i(clk, rst, load, add_en, din, dout);2. input clk, rst, load, add_en;3. input [3:0] din;4. output [3:0] dout;5. reg [3:0] dout;6.7. always @(posedge clk)8. begin9.if(rst == 1'b1)10. dout <= 4'b0000;11.else if(load == 1'b1)12. dout <= din;13.else if(add_en == 1'b1)14. begin15.if(dout == 4'b1111) //如果dout为15时,则输出清零;16. dout <= 4'b0000;17.else18. dout <= dout + 1'b1;19. end20.else21. begin22.if(dout == 4'b0000) //递减计数器计数到dout = 4'b0000时,则置位为4'b111123. dout <= 4'b1111;24.else25. dout <= dout - 1'b1;26. end27. end28.endmodule测试文件为:1.`timescale 1ns/1ps2.module counter_i_tb;3. reg clk, load, rst, add_en;4. reg [3:0] din;5. wire [3:0] dout;6.7. always8. begin9. #10 clk = ~clk;10. end11.12. initial13. begin14. clk = 1'b0;15. rst = 1'b0; load = 1'b0; add_en = 1'b0; din = 4'b0000;16. #10 rst = 1'b1; din = 4'b1001;17. #20 rst = 1'b0; load = 1'b1; din = 4'b1001;18. #100 rst = 1'b1; load = 1'b0;19. #10 rst = 1'b0; add_en = 1'b1;20. #40 add_en = 1'b0;21. end22. counter_i U1(.clk(clk), .rst(rst), .load(load), .add_en(add_en), .din(din), .dout(dout));23.endmodule在Modelsim中仿真得到波形图如下:。
实验九 可逆计数器的功能测试及应用电路 实验目的:
(1)掌握可逆计数器74LS191、74LS191、74LS192、74LS193的逻辑功能及使用方法。
(2)熟悉可逆计数器实现任意进制的数码倒计时电路的工作原理。
实验仪器与器件:
实验箱一个;双踪示波器一台;稳压电源一台;函数发生器一台。
74LS191、74LS191、74LS191或74HC48、74LS00和74LS04。
实验内容:
1测试74LS190和74LS191的逻辑功能,并用数码管显示,验证是否与表2-9-4一致,分别画出各单元的电路图,写出各自的状态
实验原理:单时钟74LS191二进制同步加/减计数器的功能表如下:
表2-9-4 单时钟74LS191二进制同步加/减计数器的功能表
单时钟74LS191二进制同步加/减计数器是十进制的,其他功能与74LS191一样。
它的有效状态为0000~1001.
实验电路:
如图所示是减计数时当计数器的状态变为0时的电路状态:RCO =0,
MIN MAX /=1;
CLK
D U / CTEN
D L
DCBA
A B C D Q Q Q Q
RCO
MIN MAX / 工作作状态
↑
↓ * H H ****
0000 H L H H 保持 * * * L DCBA DCBA H L 异步置数
↑
H
L
H
**** 1111 1111→
0001→0000
H H
L(瞬态) H(瞬态) L H 减计数
↑
L L H **** 0000→1110→
1111
H H →L (瞬态)
L H
加计数
实验现象与结果:
该结果是当CTEN =0,D L =1,D U /=1时,A B C D Q Q Q Q 的 波形图;
该结果是当CTEN =0,D L =1,D U /=1时, RCO 与MIN MAX /的波形图
需要说明的是:当CTEN=
D
L=1时,电路保持原来的状态。
2测试74LS192和74LS193的逻辑功能,并用数码管显示,验证是否与表2-9-3及2-9-5一致。
画出测试电路图。
实验原理:
双时钟74LS192同步十进制可逆计数器的功能表如下表所示,74LS192是十进制计数器。
表2-9-3双时钟74LS192同步十进制可逆计数器的功能表
输入输出工作
状态
U CP UP
D
CP
DOW
N
CLR
D
L
DCBA
A
B
C
D
Q
Q
Q
Q
U
TC
D
TC
**H H ****0000 H H 异步
清零**L L 1001 1001 H H 异步
置数
H ↑L H ****1001→
0001→
0000H
H
H
L
减法
计数
↑H L H ****0000→
1000→
1001H
L
H
H
加法
计数
双时钟74LS193二进制同步加/减法计数器的功能表如下表所示,74LS193是一个十六进制的计数器。
表2-9-5双时钟74LS193二进制同步加/减法计数器的功能表
U CP UP
D CP DOW
N CLR D L DCBA
A B C D Q Q Q Q U TC D TC
工作状态
* * H H **** 0000 H H 异步清零 * * L L 1001 1001 H H 异步置数 H ↑ L H **** 1111→0001→0000 H H H L 减法计数 ↑
H
L
H
****
0000→0001→1111
H L
H H 加法计数
74LS193和74LS193除了一个是十进制,一个是十六进制以外,其他功能一模一样。
实验电路:
实验现象: 当U CP =1, D CP 接CP 脉冲时且 CLR=0、D L =1时,此时为减法计数, A B C D Q Q Q Q 波形图如下:
当U CP =1, D CP 接CP 脉冲时且 CLR=0、D L =1时,此时为减法计数, U TC 与D TC 的波形图如下:
当D CP =1,U CP 接CP 脉冲时且 CLR=0、D L =1时,此时为加法计数,
A B C D Q Q Q Q 波形图如下:
当D CP =1, U CP 接CP 脉冲时且 CLR=0、D L =1时,此时为加法计数, U TC
与
TC的波形图如下:
D
3用74LS190或74LS191设计一个可预置60S倒计时的电路,参考电路如图2-9-4所示。
实验原理:将D
U/置为1,实现减法计数。
由于74LS190是十进制的计数器,所以将两片74LS190级联,即将低位片的RCO接到高位片的CLK端,就可实现低于100的任意加减法计数器。
本题的具体实现方法如下:级联后,将高位片的数据端置为0110,低位片的数据端置为0000;将两片74LS190的RCO端通过一个或门后与一个开关再通过一个与门接到
L端,所实现的功能是:当两片
D
74LS190的计数状态都减到0000时,RCO均为0,此时让两片74LS190置数为60,或者当开关闭合时,也让两片74LS190置数为60。
实验电路:
电路说明:为了简化电路,所以使用自带有译码功能的数码管。
实验现象与结果:
当开关闭合时,
L=0,数码管显示60,再将开关断开时,开始减法计数,有效
D
状态为60~0,如此,便实现了一个倒计时电路。