二位十进制计数器
二进制十进制同步加法计数器 逻辑ic芯片
![二进制十进制同步加法计数器 逻辑ic芯片](https://img.taocdn.com/s3/m/88078f90d05abe23482fb4daa58da0116c171f9e.png)
二进制十进制同步加法计数器逻辑ic芯片二进制十进制同步加法计数器是一种逻辑集成电路(IC)芯片,可用于进行二进制的加法和计数操作。
它主要由逻辑门和触发器构成,能够实现数字计数与加法运算的功能。
在本文中,我将详细介绍二进制十进制同步加法计数器的工作原理、设计流程以及应用场景。
首先,让我们了解一下二进制和十进制的概念。
二进制是一种由0和1组成的数制,用来表示数字和进行计算。
而十进制是指以10为基数的数制,由0至9的数字组成。
二进制数字的加法和十进制数字的加法有着类似的原理,但操作方法稍有不同。
二进制十进制同步加法计数器的主要功能是进行加法和计数操作。
它能够将输入的二进制数值与当前内部存储的数值相加,并将结果输出。
在进行计数操作时,只需要连续输入0、1的脉冲信号即可完成对二进制数值的计数。
二进制十进制同步加法计数器的实现主要依赖于逻辑门和触发器。
逻辑门用来实现不同输入信号的逻辑运算,而触发器则用于存储并传递逻辑运算的结果。
常见的逻辑门有AND门、OR门、NOT门等,触发器常用的有RS触发器、D触发器等。
在设计二进制十进制同步加法计数器时,需要根据具体的需求来选择适当的逻辑门和触发器,并将它们按照一定的电路连接方式进行组合,以实现所需的功能。
以下是一个简单的设计流程供参考:1.确定计数器的位数:根据需求确定计数器需要的位数,决定计数范围和精度。
2.选择逻辑门和触发器:根据计数器的位数和功能需求选择适当的逻辑门和触发器。
3.连接逻辑门和触发器:按照设计需求将选择好的逻辑门和触发器进行连接,形成计数器的核心电路。
4.确定输入和输出信号:确定计数器的输入信号和输出信号,并设计合适的接口电路进行连接。
5.进行测试和调试:将设计好的电路进行实物搭建,并通过信号发生器等设备产生输入信号进行测试和调试。
二进制十进制同步加法计数器的应用场景非常广泛。
例如,在数字电路和计算机体系结构中,计数器被广泛用于时序控制、频率分频等功能的实现。
两片74ls192组成两位十进制减法计数器真值表
![两片74ls192组成两位十进制减法计数器真值表](https://img.taocdn.com/s3/m/e9b14e45a36925c52cc58bd63186bceb19e8ed16.png)
两片74ls192组成两位十进制减法计数器真值表两片74ls192组成两位十进制减法计数器,可以用于计算机编程和电子电路设计中。
74ls192是一款2x24位的动态存储器,可以在192位时钟周期内读写,具有高吞吐量和低延迟的特点。
在两位十进制减法计数器中,需要将输入的两位二进制数减去所需的减法值,并将结果存储在计数器的二进制位中。
为了实现这一功能,可以使用两片74ls192来实现一个简单的两位十进制减法计数器。
下面是两片74ls192组成的两位十进制减法计数器真值表的扩展:| 计数器 | 输入 | 减法值 | 真值表 || ---- | ---- | ---- | ---- || 1 | 10 | 0 | 00000000 || 2 | 11 | 1000 | 00000011 || 3 | 12 | 001000 | 00000010 || 4 | 13 | 101000 | 00000011 || 5 | 14 | 010010 | 00000010 || 6 | 15 | 001101 | 00000010 || 7 | 16 | 101100 | 00000011 || 8 | 17 | 011100 | 00000010 || 9 | 18 | 110101 | 00000011 || 10 | 19 | 101110 | 00000010 || 11 | 20 | 011011 | 00000010 || 12 | 21 | 101011 | 00000011 || 13 | 22 | 010010 | 00000010 || 14 | 23 | 001101 | 00000010 || 15 | 24 | 101101 | 00000011 || 16 | 25 | 011001 | 00000010 || 17 | 26 | 101100 | 00000011 || 18 | 27 | 011011 | 00000010 || 19 | 28 | 101111 | 00000011 || 20 | 29 | 011100 | 00000010 || 21 | 30 | 101011 | 00000011 || 22 | 31 | 011101 | 00000010 || 23 | 32 | 110101 | 00000011 || 24 | 33 | 011100 | 00000010 || 25 | 34 | 101100 | 00000011 || 26 | 35 | 011011 | 00000010 || 27 | 36 | 101101 | 00000011 || 28 | 37 | 011001 | 00000010 || 29 | 38 | 101100 | 00000011 || 30 | 39 | 011011 | 00000010 || 31 | 40 | 110101 | 00000011 |通过使用两片74ls192,我们可以实现一个复杂的两位十进制减法计数器,从而在计算机编程和电子电路设计中发挥重要的作用。
十进制加法计数器
![十进制加法计数器](https://img.taocdn.com/s3/m/3bccc61c964bcf84b9d57b80.png)
在数字系统中,常需要对时钟脉冲的个数进行计数,以实现测量、运算和控制等功能。
具有计数功能的电路,称为计数器。
计数器是一种非常典型、应用很广的时序电路,计数器不仅能统计输入时钟脉冲的个数,还能用于分频、定时、产生节拍脉冲等。
计数器的类型很多,按计数器时钟脉冲引入方式和触发器翻转时序的异同,可分为同步计数器和异步计数器;按计数体制的异同,可分为二进制计数器、二—十进制计数器和任意进制计数器;按计数器中的变化规律的异同,可分为加法计数器、减法计数器和可逆计数器。
二进制加法计数器运用起来比较简洁方便,结构图和原理图也比其它进制的简单明了,但二进制表示一个数时,位数一般比较长。
十进制是我们日常生活中经常用到的,不用转换,所以设计十进制加法计数器比设计二进制加法计数器应用广泛,加法器是以数据的累加过程,日常生活中,数据的累加普遍存在,有时候需要一种计数器对累加过程进行运算处理,所以设计十进制加法计数器应广大人们生活的需要,对我们的生活有一个积极地促进作用,解决了生活中许多问题,所以会设计十进制加法计数器使我们对数字电路的理论和实践知识的充分结合,也使我们对电子技术基础有了深刻的了解,而且增强了我们对电子技术基础产生了浓厚的兴趣,这次课程设计使我受益匪浅!一、设计题目 (3)二、设计目的 (3)三、设计依据 (3)四、设计内容 (3)五、设计思路 (4)六、设计方案 (7)七、改进意见 (10)八、设计总结 (11)九、参考文献 (12)一、设计题目十进制加法计数器二、设计目的1.学习电子电路设计任务。
2.通过课程设计培养学生自学能力和分析问题、解决问题的能力。
3.通过设计使学生具有一定的计算能力、制图能力以及查阅手册、使用国家技术标准的能力和一定的文字表达能力。
三、设计依据1.用JK触发器组成。
2.实现同步或异步加法计数。
四、设计内容1.复习课本,收集查阅资料,选定设计方案;2.绘制电气框图、电气原理图;3.对主要元器件进行计算选择,列写元器件的规格及明细表;4.设计总结及改进意见;5.参考资料;6.编写说明书。
verilog二位十进制计数
![verilog二位十进制计数](https://img.taocdn.com/s3/m/fda7c94a6d85ec3a87c24028915f804d2b16878f.png)
verilog二位十进制计数下面是一个使用Verilog设计的二位十进制计数器的示例代码:```verilogmodule CNT10 (clk, rst, dout);//二位十进制计数器0~99input clk,rst;output reg [7:0] dout;reg q3;reg [3:0] q1;//低位reg [3:0] q2;//高位always @ (posedge clk or negedge rst) beginif (!rst) q1 <= 4'b0000; else if (q1<9) q1 <= q1+1; else q1 <= 4'b0000; endalways @ (posedge clk or negedge rst or posedge q1) beginif (!rst) q3 <= 1'b0; else if (q1<9) q3 <= 1'b0; else q3 <= 1'b1;endalways @ (posedge clk or negedge rst) beginif (!rst) q2 <= 4'b0000; else if (q2<9) begincase (q3)1'b1: q2 <= q2+1;default: q2 <= q2;endcaseelse beginif (q1<9) q2 <= q2; else q2 <= 4'b0000;endendalways @ (*) begindout <= {q2, q1};end```这个计数器可以对输入的时钟信号进行计数,并在输出端输出二位十进制的计数值。
它使用了三个寄存器来存储计数值的高位、低位和进位信号,并通过逻辑判断和计数器的级联实现了二位十进制的计数功能。
太原理工大学EDA实验报告-2位十进制加法器
![太原理工大学EDA实验报告-2位十进制加法器](https://img.taocdn.com/s3/m/7c6c083b2f60ddccda38a053.png)
实验报告课程名称:EDA技术与FPGA应用设计课设题目:2位十进制计数器实验地点:信息学院楼CPLD实验室专业班级:学号:学生姓名:指导教师:张文爱2016年4月1日实验二2位十进制计数器一、实验目的1.熟悉ispDesignEXPERT System、QuartusII的原理图设计流程的全过程。
2.学习简单时序电路的设计方法。
3.学习EDA设计的仿真和硬件测试方法。
二、实验原理2位十进制计数器参考原理图如图1所示,也可以采用其他元件实现。
图1.用74LS390设计一个有时钟使能的2位十进制计数器三、实验任务(1)设计2位十进制计数器电路。
(2)在EDA环境中输入原理图。
(3)对计数器进行仿真分析、引脚锁定、硬件测试。
四、实验步骤1、设计电路原理图设计含有时钟使能及进位扩展输出的十进制计数器。
可以选用双十进制计数器74LS390或者十进制计数器74LS160和其他一些辅助元件来完成。
2、计数器电路的实现。
绘制过程中应特别注意图形设计规则中信号标号和总线的表达方式。
若将一根细线变成一粗线显示的总线,可以先单机使其变红,再选Option选项中的Line Style;若在某线上加信号标号,也应该点击该线某处使其变成红色,然后键入标号名称,标有相同标号的线段可视为连接线段,不必直接连接。
总线可以以标号方式进行连接。
3、编程测试。
五、实验结果图2.用74LS390设计一个有时钟使能的2位十进制计数器六、实验感想通过本次实验学会了简单时序电路的设计方法。
学会了使用QuartusII软件调用元器件库进行原理图设计的方法和设计流程。
这次实验让我学会了用FPGA设计电路并且学会了FPGA的设计过程和实现方法。
提高了动手能力,加深了对所学知识的理解。
这次EDA实验,提高了动手能力,加深了对所学知识的理解。
2位10进制计数器
![2位10进制计数器](https://img.taocdn.com/s3/m/85a3209ba1116c175f0e7cd184254b35eefd1ade.png)
//设计一个2位10进制计数器,每秒加1,在LED上显示#include "reg51.h"#define THCO 0xee#define TLCO 0x0#define THC1 0xee#define TLC1 0x0unsigned char code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char Data_Buffer[2]={0,0};unsigned int count=0;sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;void main(){TMOD=0x11;TH0=THCO;TL0=TLCO;TR0=1;ET0=1;TH1=THC1;TL1=TLC1;TR1=1;ET1=1;EA=1;while(1);}void timer1() interrupt 3{static unsigned char Bit1;TH1=THC1;TL1=TLC1;count++;if(count>200){count=0;Bit1++;if(Bit1>99)Bit1 = 0;Data_Buffer[0]=Bit1/10;Data_Buffer[1]=Bit1%10; }}void timer0() interrupt 1{static unsigned char Bit=0;TH0=THCO;TL0=TLCO;Bit++;if(Bit>=2)Bit=0;P1|=0x0f;P0=Duan[Data_Buffer[Bit]]; switch(Bit){case 0: P10=0;break;case 1: P11=0;break;}}实验5思考题#include "reg51.h"#define THCO 0xee#define TLCO 0x00#define THC1 0xee#define TLC1 0x00unsigned char code Duan[]={0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned char Data_number[4]={1,2,3,4};unsigned char Data_time[2]={0,0};sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit key=P3^2;int mode=0,Bit1=0,Bit=0;void main(){TMOD=0x11;TH0=THCO;TL0=TLCO;TR0=1;ET0=1;EX0=1;IT0=1;TH1=THC1;TL1=TLC1;TR1=0;ET1=1;EA=1;while(1);}void tans_mode() interrupt 0{int t;if(key==0){for(t=0;t<1000;t++);if(key==0){while(!key);mode++;if(mode==3)mode=0;Bit=0;if(mode==2){TR1=1;Bit1=0;}else{TR1=0;}}}}void timer1() interrupt 3{static unsigned int count=0;TH1=THC1;TL1=TLC1;count++;if(count>200){count=0;Bit1++;if(Bit1>99)Bit1=0;Data_time[0]=Bit1/10;Data_time[1]=Bit1%10; }}void timer0() interrupt 1{TH0=THCO;TL0=TLCO;P1=0x0f;if(mode==0){P0=Duan[0];}if(mode==1){Bit++;if(Bit>=4)Bit=0;P0=Duan[Data_number[Bit]]; }if(mode==2){Bit++;if(Bit>=2)Bit=0;P0=Duan[Data_time[Bit]];}switch(Bit){case 0: P10=0;break; case 1: P11=0;break; case 2: P12=0;break; case 3: P13=0;break; }}。
计数器原理
![计数器原理](https://img.taocdn.com/s3/m/ee921863804d2b160b4ec0f2.png)
计数器原理计数器是数字系统中用的较多的基本逻辑器件,它的基本功能是统计时钟脉冲的个数,即实现计数操作,它也可用与分频、定时、产生节拍脉冲和脉冲序列等。
例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。
计数器的种类很多。
按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。
1、用D触发器构成异步二进制加法/减法计数器图1 3位二进制异步加法器如上图1所示,是由3个上升沿触发的D触发器组成的3位二进制异步加法器。
图中各个触发器的反相输出端与该触发器的D输入端相连,就把D触发器转换成为计数型触发器T。
将上图加以少许改变后,即将低位触发器的Q端与高一位的CP端相连,就得到3位二进制异步减法器,如下所示:图2 3位二进制异步减法器2、异步集成计数器74LS9074LS90为中规模TTL集成计数器,可实现二分频、五分频和十分频等功能,它由一个二进制计数器和一个五进制计数器构成。
其引脚排列图和功能表如下所示:图3 74LS90的引脚排列图表1 74LS90的功能表3、中规模十进制计数器74LS192(或CC40192)74LS192是同步十进制可逆计数器,它具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如下所示:图4 74LS192的引脚排列及逻辑符号(a )引脚排列 (b) 逻辑符号图中:PL 为置数端,U CP 为加计数端,D CP 为减计数端,U TC 为非同步进位输出端,TC为非同步借位输出端,P0、P1、P2、P3为计数器输入端,MR为清除端,Q0、Q1、DQ2、Q3为数据输出端。
其功能表如下:表2 74LS192的功能表4、4位二进制同步计数器74LS161该计数器能同步并行预置数据,具有清零置数,计数和保持功能,具有进位输出端,可以串接计数器使用。
数显两位十进制计数器电路设计报告
![数显两位十进制计数器电路设计报告](https://img.taocdn.com/s3/m/8e609083ec3a87c24028c471.png)
东北大学秦皇岛分校计算机与通信工程学院电子线路课程设计压力测量数显电路专业名称班级学号学生姓名指导教师设计时间课程设计任务书专业学号学生姓名(签名):设计题目:压力测量数显电路一、设计实验条件Multisim实验室二、设计任务及要求1.熟悉译码器、555定时器、计数器和七位数码管的功能,并熟练应用;2.掌握555定时器产生脉冲的原理和方法;3.选择合适的器件来构成脉冲信号发生器;4.学会利用计数器构成不同进制的计数器;5.设计压力测量数显电路。
三、设计报告的内容1.设计题目与设计任务(设计任务书)2.前言(绪论)(设计的目的、意义等)3.设计主体(各部分设计内容、分析、结论等)4.结束语(设计的收获、体会等)5.参考资料四、设计时间与安排1、设计时间:2周2、设计时间安排:熟悉实验设备、收集资料:2 天设计图纸、实验、计算、程序编写调试: 5天编写课程设计报告:2 天答辩:1 天1、绪论随着计算机科学与技术迅猛地发展,用数字电路进行信号处理的优势也更加的突出。
数字电路具有精度高、稳定性好、抗干扰能力强、程序软件控制等一系列优点。
为了充分发挥数字电路在信号处理上的强大功能,我们可以先将拟信号按比例转换成数字信号,然后送到数字电路进行处理,最后将处理结果根据需要转换成相应的模拟信号输出。
自20世纪七十年代开始,这种用数字电路处理模拟信号的所谓“数字化”浪潮已经席卷了电子技术几乎左右的领域。
现在,学校给我提供了这次机会,我将利用所学的数电知识,仿真一个压力测试数电电路,以求更好掌握数电知识。
此次课程设计的目的是学会利用555定时器产生脉冲信号,熟练应用计数器、译码器和数码器构成压力测试数显电路。
通过此次的课程设计掌握数字信号的基本元件和知识,以实践的方式加深知识的掌握程度,扩展我们的思维。
2、系统设计(一)设计结构1、由555脉冲信号发生器产生脉冲信号;2、100进制计数器有两个74LS160计数器串联构成;3、显示器是由两个译码器和两个数码管构成。
二位十进制可逆计数器连线
![二位十进制可逆计数器连线](https://img.taocdn.com/s3/m/a2d08f53793e0912a21614791711cc7930b77861.png)
二位十进制可逆计数器连线
二位十进制可逆计数器连线是一种电子电路设计,用于实现对十进制数字进行计数的功能。
这种计数器具有一个非常有用的特性,即可以实现正向计数和逆向计数。
在二位十进制可逆计数器中,使用两个二进制计数器来表示十进制的数值。
每个计数器由几个触发器和逻辑门组成,它们按照二进制的规则进行计数。
在正向计数模式下,计数器从0开始,每次增加1,直到达到最大值,然后重新从0开始计数。
例如,在一个二位十进制可逆计数器中,计数序列为00,01,02,...,08,09,10,11,00,01,...
而在逆向计数模式下,计数器从最大值开始,每次减少1,直到达到0,然后重新从最大值开始计数。
例如,在一个二位十进制可逆计数器中,计数序列为99,98,97,...,12,11,10,09,99,98,...
为了实现正向和逆向计数之间的转换,需要添加一些逻辑电路。
这些电路可以根据输入的控制信号来切换计数模式。
通常,一个开关用于切换正向和逆向计数模式。
除了正向和逆向计数模式,二位十进制可逆计数器还可以实现其他功
能,如清零、保持当前值等。
这些功能可以通过添加更多的逻辑电路来实现。
总之,二位十进制可逆计数器是一种非常实用的电路设计,可以在许多应用中使用。
无论是进行正向计数还是逆向计数,它都可以提供方便和灵活的计数功能。
二位bcd码计数器电路工作原理
![二位bcd码计数器电路工作原理](https://img.taocdn.com/s3/m/3011aa93b8f3f90f76c66137ee06eff9aef84906.png)
二位bcd码计数器电路工作原理二位BCD码计数器电路工作原理引言:二进制编码十进制(Binary-Coded Decimal,简称BCD)是一种常用的数据表示方法,将十进制数的每一位都用4位二进制数表示,称为BCD 码。
BCD码计数器电路是一种常见的计数器电路,用于计数和显示十进制数字。
本文将详细介绍二位BCD码计数器电路的工作原理,并逐步回答有关该主题的问题。
第一步:什么是BCD码?BCD码是一种使用4位二进制数表示一个十进制数的编码方式。
在BCD 码中,每一位二进制数的取值范围为0000到1001,分别对应十进制的0到9。
由于使用了4位二进制数,BCD码的每一位可以使用一位数码管进行显示。
第二步:二位BCD码计数器电路的结构二位BCD码计数器电路包含两个独立的计数器模块,每个模块负责计数和显示一个十进制位数。
两个计数器模块之间通过电路连接,共享一个时钟信号。
第三步:每个计数器模块的结构和工作原理每个计数器模块通常由三个主要组件构成:计数器、锁存器和数码管显示。
- 计数器:计数器用于存储当前的BCD码值,并根据时钟信号的输入进行计数。
计数器模块中的每个计数器可以存储4位BCD码值,所以可以表示0到9的十进制数。
- 锁存器:锁存器用于在计数完成时保存最后一个计数器的值,以便在下一个计数周期开始时将其作为时钟信号的输入传递给下一个计数器。
- 数码管显示:每个计数器模块都包含一个数码管用于显示当前计数器的值。
数码管显示可以通过将BCD码转换为对应的数码管段亮灭来实现。
第四步:工作原理1. 初始化:当启动计数器电路时,需要将计数器模块中的计数器值初始化为0。
2. 计数:计数器模块根据时钟信号的输入进行计数。
一般情况下,计数器通过下降沿触发进行计数。
每个计数器从0开始计数,当计数器的值达到9时,它会自动归零并将进位信号传递给下一个计数器。
3. 锁存:当一个计数周期结束时,锁存器会将最后一个计数器的值保存下来,并在下一个计数周期的开始时将其作为时钟信号的输入传递给下一个计数器。
十进制计数器码十进制加法计数器的状态表
![十进制计数器码十进制加法计数器的状态表](https://img.taocdn.com/s3/m/90c9e58ad4bbfd0a79563c1ec5da50e2524dd109.png)
举例
将二进制数1010转换为十进制数,可以表示为1×2^3 + 0×2^2 + 1×2^1 + 0×2^0 = 8 + 0 + 2 + 0 = 10。
十进制计数器的原理
法运算。
它具有十个不同的状态,可 以表示从0到9的十个不同的
十进制数。
在每个时钟周期内,计数器的 状态会根据输入的二进制数进 行更新,从而实现二进制数的
加法运算。
02
十进制计数器码
二进制到十进制的转换
总结词
二进制到十进制的转换是将二进制数转换为十进制数的过程,可以通过逐位乘以权值并求 和得到。
详细描述
故障排除效率。
05
总结
计数器的发展历程
手动计数器
早期计数器采用机械或手动方式,主 要用于简单的计数和计测。
电子ห้องสมุดไป่ตู้数器
随着电子技术的发展,电子计数器开 始出现,具有更高的精度和可靠性。
集成电路计数器
随着集成电路的普及,计数器被集成 到芯片中,实现了更小体积、更低功 耗和更高性能。
智能计数器
现代智能计数器结合了传感器、微处 理器和通信技术,具有自动识别、数 据处理和远程控制等功能。
计数速度 十进制加法计数器的计数速度较 快,适用于需要高速计数的应用 场景,而十进制计数器码的计数 速度较慢。
未来计数器的发展趋势
集成化
智能化
未来计数器将进一步向集成化发展,实现 更小体积、更低功耗和更高性能。
结合传感器、微处理器和通信技术,实现 自动识别、数据处理和远程控制等功能。
实验2`有时钟输入的两位十进制计数器原理图输入设计
![实验2`有时钟输入的两位十进制计数器原理图输入设计](https://img.taocdn.com/s3/m/bd05a7ec998fcc22bcd10d28.png)
三、实验注意事项 1、输入文件名不能用汉字或关键字、非法字符; 、输入文件名不能用汉字或关键字、非法字符; 2、注意文件在编译连接时的路径; 、注意文件在编译连接时的路径; 3、注意引脚分配与对应的 芯片相匹配; 、注意引脚分配与对应的FPGA芯片相匹配; 芯片相匹配 4、注意信号标号与总路线的表达方式。 、注意信号标号与总路线的表达方式。 四、实验设备 GW48EDA系统,计算机一台,打印机一台 系统, 系统 计算机一台, 五、实验思考 1、用VHDL编写有时钟输入的两位十进制计数器源程序。 编写有时钟输入的两位十进制计数器源程序。 、 编写有时钟输入的两位十进制计数器源程序 2、 对仿真波形结果进行分析。 、 对仿真波形结果进行分析。 3、写出验证性实验报告 、写出验证性实验报告.
图3-4 用74390设计一个有时钟使能的两位十进制计数器原理
图3-5 调出元件74390
图3-6 从Help中了解74390的 详细功能
1、设计电路原理图,频率计的核心元件之一是含有时钟使能及进位扩展输出的十进 、设计电路原理图, 制计数器。为此这里拟用一个双十进制计数74390和其它一些辅助元件来完成。电路 和其它一些辅助元件来完成。 制计数器。为此这里拟用一个双十进制计数 和其它一些辅助元件来完成 原理图如图3-4所示。图中,74390连接成两个独立的十进制计数器,待测频率信号 原理图如图 所示。图中, 连接成两个独立的十进制计数器, 所示 连接成两个独立的十进制计数器 clk通过一个与门进入 通过一个与门进入74390的计数器 的时钟输入端 的计数器1的时钟输入端 通过一个与门进入 的计数器 的时钟输入端1CLKA,与门的另一端由计数使 , 能信号enb控制:当enb = '1' 时允许计数;enb = '0' 时禁止计数。计数器 的4位输出 控制: 时允许计数; 时禁止计数。计数器1的 位输出 能信号 控制 q[3]、q[2]、q[1]和q[0]并成总线表达方式即 并成总线表达方式即q[3..0],由图 左下角的 左下角的OUTPUT输出 、 、 和 并成总线表达方式即 ,由图3-4左下角的 输出 端口向外输出计数值,同时由一个4输入与门和两个反相器构成进位信号进入第 输入与门和两个反相器构成进位信号进入第2个计 端口向外输出计数值,同时由一个 输入与门和两个反相器构成进位信号进入第 个计 数器的时钟输入端2CLKA。 数器的时钟输入端 。 个计数器的4位计数输出是 第2个计数器的 位计数输出是 个计数器的 位计数输出是q[7]、q[6]、q[5]和q[4],总线输出信号是 、 、 和 ,总线输出信号是q[7..4]。这 。 两个计数器的总的进位信号,即可用于扩展输出的进位信号由一个6输入与门和两个 两个计数器的总的进位信号,即可用于扩展输出的进位信号由一个 输入与门和两个 反相器产生, 输出。 是计数器的清零信号 是计数器的清零信号。 反相器产生,由cout输出。clr是计数器的清零信号。 输出 2、计数器电路实现,在此首先从实现图 所示的电路的绘制和测试开始,用鼠标双 所示的电路的绘制和测试开始, 、计数器电路实现,在此首先从实现图3-4所示的电路的绘制和测试开始 击“Enter Symbol”窗中 窗中Symbol Libraries栏的 栏的e:\maxplus2\max2lib\mf的宏功能元 的宏功能元 窗中 栏的 件库,于是可以在Symbol Files栏中看到绝大多数 系列的元件(图3-5)。这些器 栏中看到绝大多数74系列的元件 )。这些器 件库,于是可以在 栏中看到绝大多数 系列的元件( )。 件的详细功能及其它们的逻辑真值表可以通过查阅“ 选项来获得。 件的详细功能及其它们的逻辑真值表可以通过查阅“Help”选项来获得。为了查阅 选项来获得 74390的功能,可如图 所示,在Help菜单中选 的功能, 所示, 菜单中选Old-Style Macrofunctions项,然后 的功能 可如图3-6所示 菜单中选 项 选Counters项。 项
数电用集成计数器构成任意进制计数器
![数电用集成计数器构成任意进制计数器](https://img.taocdn.com/s3/m/9a23f1d5bb68a98270fefaba.png)
计数器级联后构成任意进制计数器
1. 整体反馈清零或置数方式:
组合逻辑
i
k
CP
M进制 进位 M进制
计数器
计数器
反馈清0(或置数)
模 = 终态值 – 初态值 + 1
以两片M进制计数器为例:
先将两片级联构成MM进制, 再在MM个状态中利用反馈 法选取其中N个状态做循环计 数,即构成了N进制(N<M2) 计数器。
解:先将74290连成十进制, 再构造 7进制计数器。 74290为异步清零
计数状态Q3Q2Q1Q0为: 00000001 … 0110 (0111)
解: 74163为同步清零,计数状态 Q3Q2Q1Q0应为:
00000001 … 0100
则:R0(1) R0(2) Q2Q1Q0
则: Rd = Q2
令 N= N’ M’
则可先将两片M进制计数器分 别用反馈法置成 N’和 M’ 进制 计数器,然后再将二者级联, 即构成了N进制计数器。
例. 试用四位二进制计数器74161设计一个45分频器。
解: 45进制计数器的进位信号就是输入时钟信号的45分频, 因 45 进制可被分解为 5×9 进制, 故可先用两片74161分别构成5进制和9进制,再级联成45进制。
CP
Q2
Q3
RCO MAX /MIN
74191
EN RCO
Q0
1
0
1
0
1
0
0
1
0
1
LD EN D/U
01
0
QD001QD11QD22QD33
Q1
01100110011001
Q2
1 1 1 Q0 0 Q10 Q2 Q0 3 0 0 0 Q1 4 Q51Q6 Q1 7 1 0
两位十进制加法计数器真值表
![两位十进制加法计数器真值表](https://img.taocdn.com/s3/m/fa9a97190622192e453610661ed9ad51f01d549a.png)
两位十进制加法计数器真值表引言在数字电路中,计数器是一种非常重要的组件,用于计算和记录输入脉冲的数量。
其中,加法计数器是一种特殊的计数器,它可以实现对输入信号进行加法运算,并输出加法结果。
本文将详细介绍两位十进制加法计数器的真值表及其相关内容。
什么是两位十进制加法计数器?两位十进制加法计数器是一种数字电路组件,用于实现两个十进制数的加法运算。
它由一系列逻辑门和触发器组成,可以将两个十进制数相加,并输出加法结果。
该计数器通常由两个4位二进制加法器和一些辅助逻辑门构成。
两位十进制加法计数器的真值表真值表是一种用于展示逻辑电路输入输出关系的表格。
对于两位十进制加法计数器来说,真值表展示了输入信号和输出结果之间的对应关系。
下面是一个简化的两位十进制加法计数器的真值表:输入A 输入B 进位输出和进位输出0 0 0 00 00 0 1 01 00 1 0 01 00 1 1 10 01 0 0 01 01 0 1 10 01 1 0 10 01 1 1 11 1从上表可以看出,输入A和输入B对应的是两个待相加的十进制数,进位是上一位相加的结果进位,输出和是相加的结果,进位输出表示是否有进位产生。
通过真值表,我们可以清晰地了解两位十进制加法计数器的工作原理和输出结果。
两位十进制加法计数器的工作原理两位十进制加法计数器的工作原理可以通过以下步骤来说明:步骤1:输入信号首先,将待相加的两个十进制数分别输入到两个4位二进制加法器中,并将上一位的进位输入到第一个加法器中。
步骤2:二进制加法两个4位二进制加法器将输入的十进制数转换为二进制,并进行二进制加法运算。
其中,第一个加法器的输出和进位输出作为第二个加法器的输入。
步骤3:输出结果根据两个加法器的输出和进位输出,得到两个十进制数的相加结果和进位输出结果。
步骤4:输出信号将得到的相加结果和进位输出结果输出到外部电路,以供后续处理或显示。
通过以上步骤,两位十进制加法计数器可以实现对两个十进制数的相加操作,并输出相加结果。
两位十进制计数器VHDL.
![两位十进制计数器VHDL.](https://img.taocdn.com/s3/m/68f185155a8102d276a22fb8.png)
电子科技大学实验报告学生姓名:范仁森学号:2011032030016 指导教师:杜涛学生姓名:李彦龙学号:2012032030019学生姓名:万金山学号:2011032030030一、实验室名称:计算机大楼309二、实验项目名称:两位十进制计数器在7段数码管显示的设计三、实验原理:用FPGA板上的晶振频率为33.86MHz的时钟进行2的25次方分频作为基准频率,然后用两位十进制计数器计数,计数结果输出至七段数码管显示器的数据端。
再将时钟进行2的19次方分频作为数码管扫描频率,接到数码管的共阴极端。
其中七段数码管由8个(a,b,c,d,e,f,g,dp)按照一定位置排列的发光二极管构成,通常采取共阴极或者共阳极的设计,将8个二极管的同一极接在一起,通过分别控制另外的8个电极的电平,使二极管导通(发光)或截止(不发光)。
四、实验目的:1、掌握七段数码管译码器的工作原理;2、掌握设计两位十进制计数器。
3、学会运用波形仿真测试检验程序的正确性。
五、实验内容:用VHDL设计两位十进制计数器在7段数码管显示的设计,并在VHDL描述的测试平台下对译码器进行功能仿真,给出仿真的波形,并在FPGA板上测试。
六、实验器材(设备、元器件):电脑一台,Active-HDL,30MHz FPGA开发板七、实验步骤:程序:顶层BDE设计U1部分:div25:将晶振信号进行2的25次方分频作为计数基准频率library IEEE;use IEEE.STD_LOGIC_1164.all;use ieee.std_logic_unsigned.all;entity div25 isport(clk : in STD_LOGIC;clr : in STD_LOGIC;div_25 : out STD_LOGIC);end div25;architecture div25 of div25 issignal count:std_logic_vector(24 downto 0);----为分频器设置一个中间信号beginprocess(clk,clr)beginif(clr='1')thencount<="0000000000000000000000000"; ----初始化elsif(clk'event and clk='1')then ----上升延触发if (count="1111111111111111111111111")then ----将时钟频率分频至接近1Hzcount<="0000000000000000000000000";---进位elsecount<=count+1; ---计数end if ;end if;end process;div_25<=count(24);----输出1Hz信号end div25;U3部分:count ---十进制的个位计数器library IEEE;use IEEE.STD_LOGIC_1164.all;use ieee.std_logic_unsigned.all;entity count isport(clk : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;count_4:out std_logic_vector(3 downto 0);cin:out std_logic);end count;architecture count of count issignal count_3:std_logic_vector(3 downto 0); ----计数十位数需要4位2进制begincount_4<=count_3;process(clk,clr)beginif(clr='1')thencount_3<="0000";初始化cin<='0';初始化elsif(clk'event and clk='1')then-----上升沿触发if(en='1')thenif(count_3="1001")then-----进位count_3<="0000";----进位cin<='1';-----输出进位信号elsecount_3<=count_3+1;计数cin<='0';重置进位信号end if;end if;end if;end process;end count;U4部分:count 十进制的十位计数器library IEEE;use IEEE.STD_LOGIC_1164.all;use ieee.std_logic_unsigned.all;entity count isport(clk : in STD_LOGIC;clr : in STD_LOGIC;en : in STD_LOGIC;count_4:out std_logic_vector(3 downto 0);cin:out std_logic);end count;architecture count of count issignal count_3:std_logic_vector(3 downto 0);begincount_4<=count_3;process(clk,clr)beginif(clr='1')thencount_3<="0000";-----初始化cin<='0';elsif(clk'event and clk='1')thenif(en='1')thenif(count_3="1001")then-----十进制计数count_3<="0000";----进位重置cin<='1';----输出进位信号elsecount_3<=count_3+1;-----计数cin<='0';-----进位信号重置end if;end if;end if;end process;end count;U2部分:div19 -----将晶振信号进行2的19次方分频作为扫描频率library IEEE;use IEEE.STD_LOGIC_1164.all;use ieee.std_logic_unsigned.all;entity div19 isport(clk : in STD_LOGIC;clr : in STD_LOGIC;div_19 : out STD_LOGIC);end div19;architecture div19 of div19 issignal count:std_logic_vector(18 downto 0);beginprocess(clk,clr)beginif(clr='1')thencount<="0000000000000000000";-----初始化elsif(clk'event and clk='1')thenif (count="1111111111111111111")thencount<="0000000000000000000";-----进位重置elsecount<=count+1;------计数end if ;end if;end process;div_19<=count(18);-----出接近64Hz的扫描信号end div19;U5部分:mux2----将两位十进制进行扫描输出library IEEE;use IEEE.STD_LOGIC_1164.all;entity mux2 isport(a : in STD_LOGIC;counter1 : in STD_LOGIC_VECTOR(3 downto 0);counter2 : in STD_LOGIC_VECTOR(3 downto 0);dout : out STD_LOGIC_VECTOR(3 downto 0));end mux2;architecture rtl of mux2 isprocess(a,counter1,counter2)beginif (a='0')thendout<=counter1;----输出个位elsif(a='1')thendout<=counter2;------输出十位end if;end process;end rtl;U6部分:decoder -----将两位十进制的数转换为七段显示码输出至显示管library IEEE;use IEEE.STD_LOGIC_1164.all;entity decoder7 isport(din : in STD_LOGIC_VECTOR(3 downto 0);dout : out STD_LOGIC_VECTOR(6 downto 0));end decoder7;architecture rtl of decoder7 issignal indata:std_logic_vector(3 downto 0);indata<=din;----载入数据process(indata)begincase indata iswhen"0000"=>dout<="1111110";------输出0when"0001"=>dout<="0110000";-----输出1when"0010"=>dout<="1101101";-----输出2when"0011"=>dout<="1111001";-----输出3when"0100"=>dout<="0110011";----输出4when"0101"=>dout<="1011011";-----输出5when"0110"=>dout<="0011111";-----输出6when"0111"=>dout<="1110000";-----输出7when"1000"=>dout<="1111111";-----输出8when"1001"=>dout<="1111011";-----输出9when others=>dout<="0000000";-----输出0 end case;end process;end rtl;仿真:在ise上FPGA板上I/O接口选择clk P79, clr P109, en P114, com1 P135, com2 P133,dout1 P138,dout2 P139,dout3 P140,dout4 P141,dout5 P143,dout6 P144,dout7 P146.在ise上继续编译,最后program下载进FPGA。
计数器的原理
![计数器的原理](https://img.taocdn.com/s3/m/9991ca18de80d4d8d15a4fde.png)
计数器的原理计数器是数字电路中广泛使用的逻辑部件,是时序逻辑电路中最重要的逻辑部件之一。
计数器除用于对输入脉冲的个数进行计数外,还可以用于分频、定时、产生节拍脉冲等。
计数器按计数脉冲的作用方式分类,有同步计数器和异步计数器;按功能分类,有加法计数器、减法计数器和既具有加法又有减法的可逆计数器;按计数进制的不同,又可分为二进制计数器、十进制计数器和任意进制计数器。
一、计数器的工作原理1、二进制计数器(1)异步二进制加法计数器图1所示为用JK触发器组成的4位异步二进制加法计数器逻辑图。
图中4个触发器F0~F3均处于计数工作状态。
计数脉冲从最低位触发器F0的CP端输入,每输入一个计数脉冲,F0的状态改变一次。
低位触发器的Q端与高位触发器的CP端相连。
每当低位触发器的状态由1变0时,即输出一负跳变脉冲时,高位触发器翻转。
各触发器置0端R D并联,作为清0端,清0后,使触发器初态为0000。
当第一个计数脉冲输入后,脉冲后沿使F0的Q0由0变1,F1、F2、F3均保持0态,计数器的状态为0001;当图1 4位异步二进制加法计数器第二个计数脉冲输入后,Q0由1变为0,但Q0的这个负跳变加至F1的CP端,使Q1由0变为1,而此时F3、F2仍保持0状态,计数器的状态为0010。
依此类推,对于F0来说,每来一个计数脉冲后沿,Q0的状态就改变,而对于F1、F2、F3来说,则要看前一位输出端Q 是否从1跳到0,即后沿到来时,其输出端的状态才改变,否则Q1、Q2、Q3端的状态同前一个状态一样。
这样在第15个计数脉冲输入后,计数器的状态为1111,第16个计数脉冲输入,计数器恢复为0000。
由上述分析可知,一个4位二进制加法计数器有24=16种状态,每经过十六个计数脉冲,计数器的状态就循环一次。
通常把计数器的状态数称之为计数器的进制数(或称计数器的模),因此,4位二进制计数器也可称之为1位十六进制(模16)计数器。
表1所示为4位二进制加法计数器的状态表。
数字电路二进制十进制计数器
![数字电路二进制十进制计数器](https://img.taocdn.com/s3/m/0d45eb10842458fb770bf78a6529647d272834be.png)
CP
计数脉冲
n个触发器 组合电路
Z
进位输出
图6.5.1 计数器旳基本构造框图
1
(1)按模值
二进制计数器 十进制计数器 任意进制计数器
(2)按存储器旳状态变 化是否同步进行
同步计数器 异步计数器
加法计数器
(3)按逻辑功能 减法计数器 可逆计数器
2
一、二进制计数器
模值M=2n, 计数范围:0~2n-1
9
一、二进制计数器
2.异步二进制计数器(由SSI构成) (1)加法计数器 ①基本构造
a.T′FF形式 b.CP1=CP,CPi =
Qi-1 上升沿触发 Qi-1 下降沿触发
n
c. Z Qj
j 1
( i=2,3,…,n )
10
②电路实例 例2 用DFF构成旳3位二进制异步加法计数器电
路,如图6.5.5所示。
7
一、二进制计数器
1.同步二进制计数器(由SSI构成)
(2)减法计数器
①基本构造
a.CP1=CP2=…=CPn=CP
b.TFF形式 i1
c.T1=1,Ti Qj (i 2,3, , n)
n
j 1
d. Z Qj
j 1
8
同步计数器小结:
同步计数器旳特点是:在计数过程中,应 该翻转旳触发器是同步翻转旳,不需要逐 层推移。因而同步计数器旳稳定时间只取 决于单级触发器旳翻转时间(与位数多少 无关),计数速度快。因为计数脉冲要同 步加到各级触发器旳CP输入端,就要求给 出计数脉冲旳电路具有较大旳驱动能力。
16
③应用:
74161旳同步级联方式
17
一、二进制计数器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA技术及应用讲座作业
题目:基于EDA的二位十进制计数器
学校:中南大学
学科专业:生物医学工程
学生:
学号: 0405080704 任课教师:
完成日期: 2011 年 5 月 19日
基于EDA的二位十进制计数器
一实验目的
1了解QuartusII软件及基本操作;
2熟悉图形编辑器 Graphic Editor File 的设计方法;
3熟悉VHDL 语言设计方法;
4掌握简单计数器的图形设计方法和VHDL语言设计方法。
二任务要求
用两种EDA设计方法设计一个二位十进制计数器,具体要求如下:
1能累加计时;
2能循环计时(当计时到我们所需的数值时,能清零继续计数);
3能通过一个开关来选择计数器进制数;
4要求分别用图形设计方法和VHDL语言两种方法实现该设计;
5分析比较两种设计方法。
三计数器原理及其EDA实现方法
计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。
在EDA设计中,可以采用两种方法来实现简单的计数器。
采用图形设计方法,设计者可以调用设计软件提供的库元件,如基本的逻辑器件与门、或门、四位十进制计数器74160等等,并将这些元件以一定方式连接,从而构成目标计数器;采用VHDL语言设计方法,设计者只要根据VHDL语言规则定义目标计数器的管脚,并描述目标计数器的功能,然后设计软件便可以自动综合出目标计数器,采用这种设计方法,设计者不用考虑实际可用硬件的构成方式,因此很灵活方便。
本作业将利用Alter公司的设计软件Quartus II 9.1分别采用以上两种方法来实现一个二位十进制计数器,该计数器有两个可选进制24进制和12进制,可以通过一个开关来改变进制。
该计数器在输入时钟的驱动下可以在00到24(或12)间循环计数,并将当前计数的十位和个位以BCD码输出。
四具体方案
4.1 图形设计方法
1设计思路
我采用了两个同步十进制计数器74160来实现二位十进制计数器,其原理图如图1所示。
图1中将个位计数器ONES的输出H0[0]-H0[3]通过一个或非门连接到十位计数器TENS的时钟输入,从而实现个位到十位的进位。
当H0[0]-H0[3],由“1001”变为“0000时”,或非门将产生一个上升沿,从而触发十位数计数器加1。
74160具有一个异步清零脚(CLRN)和一个同步置数脚(LDN),我采用了同步置数脚来实现该计数器的循环计数。
图1中24进制计数情况下,当两个计数器的输出为23(即“00100011”)时,通过一个与非门产生一个下降沿并输入到两个计数器的同步置数端,从而实现了循环计数。
12进制计数时,只要输出为
11(即“00010001”)时便产生置数信号。
图1中多路复用器Multiplexer用来选择进制数,由开关SWI控制,如果SWI为高电平,则选通A->Y 的通道,即选择了24进制计数;如果SWI为高电平,刚选通B->Y通道,即选择了12进制计数。
2
4.2 VHDL语言设计方法
1设计思路及代码
利用VHDL语言设计电路,只要正确描述目标电路的功能,然后由设计软件综合而到最终的逻辑电路。
下面是设计该二位十进制计数器的程序代码,其功能与上面图形设计方法所得计数器基本一样,只是多一个复位功能。
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity Counter24VHDL is
port(Rst:in std_logic;--复位,低电平有效
hCLK:in std_logic; --时钟输入
SWI:in std_logic;--开关输入,用于选择24(高电平)或12(低电平)进制计数hour0,hour1:out std_logic_vector(3 downto 0));--个位与十位BCD码输出
end entity Counter24VHDL;
architecture one of Counter24VHDL is
signal hour0_t,hour1_t:std_logic_vector(3 downto 0); --个位与十位缓冲器
begin
process(Rst,hCLK,SWI)
begin
if Rst='0' then
hour0_t<="0000" ;hour1_t<="0000";
elsif hCLK'event and hCLK='1' then
if SWI='1' and hour0_t="0011"and hour1_t="0010"then
hour0_t<="0000";hour1_t<="0000";
elsif SWI='0' and hour0_t="0001"and hour1_t="0001"then
hour0_t<="0000";hour1_t<="0000";
elsif hour0_t="1001"then
hour0_t<="0000";hour1_t<=hour1_t+1;
else
hour0_t<=hour0_t+1;
end if;
end if;
hour0<=hour0_t;
hour1<=hour1_t;
end process;
end one;
2 仿真波形。