二位十进制计数器
二进制十进制同步加法计数器 逻辑ic芯片

二进制十进制同步加法计数器逻辑ic芯片二进制十进制同步加法计数器是一种逻辑集成电路(IC)芯片,可用于进行二进制的加法和计数操作。
它主要由逻辑门和触发器构成,能够实现数字计数与加法运算的功能。
在本文中,我将详细介绍二进制十进制同步加法计数器的工作原理、设计流程以及应用场景。
首先,让我们了解一下二进制和十进制的概念。
二进制是一种由0和1组成的数制,用来表示数字和进行计算。
而十进制是指以10为基数的数制,由0至9的数字组成。
二进制数字的加法和十进制数字的加法有着类似的原理,但操作方法稍有不同。
二进制十进制同步加法计数器的主要功能是进行加法和计数操作。
它能够将输入的二进制数值与当前内部存储的数值相加,并将结果输出。
在进行计数操作时,只需要连续输入0、1的脉冲信号即可完成对二进制数值的计数。
二进制十进制同步加法计数器的实现主要依赖于逻辑门和触发器。
逻辑门用来实现不同输入信号的逻辑运算,而触发器则用于存储并传递逻辑运算的结果。
常见的逻辑门有AND门、OR门、NOT门等,触发器常用的有RS触发器、D触发器等。
在设计二进制十进制同步加法计数器时,需要根据具体的需求来选择适当的逻辑门和触发器,并将它们按照一定的电路连接方式进行组合,以实现所需的功能。
以下是一个简单的设计流程供参考:1.确定计数器的位数:根据需求确定计数器需要的位数,决定计数范围和精度。
2.选择逻辑门和触发器:根据计数器的位数和功能需求选择适当的逻辑门和触发器。
3.连接逻辑门和触发器:按照设计需求将选择好的逻辑门和触发器进行连接,形成计数器的核心电路。
4.确定输入和输出信号:确定计数器的输入信号和输出信号,并设计合适的接口电路进行连接。
5.进行测试和调试:将设计好的电路进行实物搭建,并通过信号发生器等设备产生输入信号进行测试和调试。
二进制十进制同步加法计数器的应用场景非常广泛。
例如,在数字电路和计算机体系结构中,计数器被广泛用于时序控制、频率分频等功能的实现。
两片74ls192组成两位十进制减法计数器真值表

两片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,我们可以实现一个复杂的两位十进制减法计数器,从而在计算机编程和电子电路设计中发挥重要的作用。
十进制加法计数器

在数字系统中,常需要对时钟脉冲的个数进行计数,以实现测量、运算和控制等功能。
具有计数功能的电路,称为计数器。
计数器是一种非常典型、应用很广的时序电路,计数器不仅能统计输入时钟脉冲的个数,还能用于分频、定时、产生节拍脉冲等。
计数器的类型很多,按计数器时钟脉冲引入方式和触发器翻转时序的异同,可分为同步计数器和异步计数器;按计数体制的异同,可分为二进制计数器、二—十进制计数器和任意进制计数器;按计数器中的变化规律的异同,可分为加法计数器、减法计数器和可逆计数器。
二进制加法计数器运用起来比较简洁方便,结构图和原理图也比其它进制的简单明了,但二进制表示一个数时,位数一般比较长。
十进制是我们日常生活中经常用到的,不用转换,所以设计十进制加法计数器比设计二进制加法计数器应用广泛,加法器是以数据的累加过程,日常生活中,数据的累加普遍存在,有时候需要一种计数器对累加过程进行运算处理,所以设计十进制加法计数器应广大人们生活的需要,对我们的生活有一个积极地促进作用,解决了生活中许多问题,所以会设计十进制加法计数器使我们对数字电路的理论和实践知识的充分结合,也使我们对电子技术基础有了深刻的了解,而且增强了我们对电子技术基础产生了浓厚的兴趣,这次课程设计使我受益匪浅!一、设计题目 (3)二、设计目的 (3)三、设计依据 (3)四、设计内容 (3)五、设计思路 (4)六、设计方案 (7)七、改进意见 (10)八、设计总结 (11)九、参考文献 (12)一、设计题目十进制加法计数器二、设计目的1.学习电子电路设计任务。
2.通过课程设计培养学生自学能力和分析问题、解决问题的能力。
3.通过设计使学生具有一定的计算能力、制图能力以及查阅手册、使用国家技术标准的能力和一定的文字表达能力。
三、设计依据1.用JK触发器组成。
2.实现同步或异步加法计数。
四、设计内容1.复习课本,收集查阅资料,选定设计方案;2.绘制电气框图、电气原理图;3.对主要元器件进行计算选择,列写元器件的规格及明细表;4.设计总结及改进意见;5.参考资料;6.编写说明书。
verilog二位十进制计数

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技术与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进制计数器,每秒加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; }}。
计数器原理
计数器原理计数器是数字系统中用的较多的基本逻辑器件,它的基本功能是统计时钟脉冲的个数,即实现计数操作,它也可用与分频、定时、产生节拍脉冲和脉冲序列等。
例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。
计数器的种类很多。
按构成计数器中的各触发器是否使用一个时钟脉冲源来分,可分为同步计数器和异步计数器;按进位体制的不同,可分为二进制计数器、十进制计数器和任意进制计数器;按计数过程中数字增减趋势的不同,可分为加法计数器、减法计数器和可逆计数器;还有可预制数和可编计数器等等。
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该计数器能同步并行预置数据,具有清零置数,计数和保持功能,具有进位输出端,可以串接计数器使用。
数显两位十进制计数器电路设计报告
东北大学秦皇岛分校计算机与通信工程学院电子线路课程设计压力测量数显电路专业名称班级学号学生姓名指导教师设计时间课程设计任务书专业学号学生姓名(签名):设计题目:压力测量数显电路一、设计实验条件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、显示器是由两个译码器和两个数码管构成。
二位十进制可逆计数器连线
二位十进制可逆计数器连线
二位十进制可逆计数器连线是一种电子电路设计,用于实现对十进制数字进行计数的功能。
这种计数器具有一个非常有用的特性,即可以实现正向计数和逆向计数。
在二位十进制可逆计数器中,使用两个二进制计数器来表示十进制的数值。
每个计数器由几个触发器和逻辑门组成,它们按照二进制的规则进行计数。
在正向计数模式下,计数器从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码计数器电路工作原理二位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. 锁存:当一个计数周期结束时,锁存器会将最后一个计数器的值保存下来,并在下一个计数周期的开始时将其作为时钟信号的输入传递给下一个计数器。
- 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 仿真波形。