五进制加减法计数器工作原理
- 格式:doc
- 大小:3.49 MB
- 文档页数:2
做一个五进制的加减法计数器标准化管理部编码-[99968T-6889628-J68568-1689N]一、做一个五进制的加减法计数器,输入控制端为1时,做加法,为0时,做减法,用JK触发器实现。
第一步:根据要求进行逻辑抽象,得出电路的原始状态图。
取输入数据变量为X,检测的输出变量为Z,该电路的功能是五进制计数器。
当X=1时,计数器作加“1”运算,设初态为S0。
状态由S做加1运算,状态转为S1,输出为0;状态S1做加1运算,转为状态S2,输出为0;状态S2做加1运算,转为状态S3,输出为0;状态S3做加1运算,转为状态S4,输出为0;当状态S4继续做加1运算时,状态由S4转到S,输出为1。
当X=0时,计数器作减“1”运算。
状态由S做减1运算,此时产生借位,状态转为S 4,输出为1;状态S4做减1运算,转为状态S3,输出为0;状态S3做减1运算,转为状态S2,输出为0;状态S2做减1运算,转为状态S1,输出为0;状态S1做减1运算,状态由S1转为状态S,输出为0。
由此得出状态转换图:第二步:状态编码。
该电路是五进制计数器,有五种不同的状态,分别用S0、S1、S2、S3、S4表示五种状态,这五种状态不能作状态化简。
在状态编码时,依据2n+1<N<2n,当N=5时,n=3,选触发器的个数n=3。
触发器按自然态序变化,采用二进制计数编码。
设S0=000,S1=001,S2=010,S3=011,S4=100。
用JK 触发器构成逻辑电路,JK 触发器的特性方程Q n+1=J Q n + K Q n 。
XQ 3 00 011110(1)Z=X Q n3 + X Q 3n Q 2n Q 1nXQ 3 0111 10(b) Q 3n+1=X Q 2n Q 1n + X Q 3n Q 2n Q 1nQ 2n Q 1nXQ 3n 00 01 11 1000 01 11 102n+1=X Q 3n + X Q 2n Q 1n + X Q 2n Q 1n + X Q 2n 1nQ 2n Q 1n XQ 3n00 01 1110 (4)Q 1n+1=X Q 3n + Q 2n Q 1n + X Q 3n Q 1n 再由JK 触发器特性方程求出各个触发器的驱动方程:J 1= X Q 3n + X Q 3n + Q 2nK 1 = X Q 3nJ 2 = X Q 1n + X Q 3nK 2 = X Q 3n + X Q 1n + X Q 1n J 3 = X Q 2n Q 1n + X Q 2n Q 1n K 3 = X Q 2n Q 1n第四步:画出逻辑电路图:第五步:检测该电路是否有自启动能力:电路有三个无效状态:101,110,111。
计数器计算原理
计数器是一种用于计算和存储输入脉冲信号数量的电子器件。
它通常由触发器和逻辑电路组成,以便能够进行二进制计数。
计数器的原理基于触发器的工作原理。
触发器是一种时序电路,可以存储和传递数据。
常见的触发器有D触发器、JK触发器
和T触发器。
触发器的输出可以反馈到输入,形成闭环,实
现存储和传递数据的功能。
计数器的工作过程如下:当输入脉冲信号到达计数器时,触发器的状态会按照逻辑电路的设计进行改变。
每当触发器状态发生改变时,计数器的值就会增加或减少一个单位。
例如,一个
4位二进制计数器可以计数从0到15的十进制数字。
计数器可以通过逻辑电路的设计实现不同的计数模式。
常见的计数模式有正向计数、逆向计数、同步计数和异步计数等。
在正向计数模式下,计数器的值按照递增顺序依次增加;在逆向计数模式下,计数器的值按照递减顺序依次减少。
同步计数指的是计数器在接收到外部触发信号时才进行计数,而异步计数则是指计数器可以随时接收到触发信号进行计数。
总之,计数器通过触发器和逻辑电路的协同工作,能够实现对输入脉冲信号数量的计数和存储。
它在数字电路和计算机系统中有着广泛的应用。
引言计数器是数字系统中用的较多的基本逻辑器件,也是现代最常用的时序电路之一,它不仅能记录输入时钟脉冲的个数,还可以实现分频、定时、产生节拍脉冲和脉冲序列。
例如,计算机中的时序发生器、分频器、指令计数器等都要使用计数器。
计数器的种类不胜枚举,按触发器动作动作分类,可以分为同步计数器和异步计数器;按照计数数值增减分类,可以分为加计数器、减计数器和可逆计数器;按照编码分类,又可以分为二进制码计数器、BCD码计数器、循环码计数器。
此外,有时也会按照计数器的计数容量来区分,如五进制、十进制计数器等等。
1设计构思及理论根据电路的设计要求,要实现二―五―十进制计数,可以先实现十进制计数,然后通过倍频产生五进制计数和二进制计数;也可以先实现二进制计数和五进制计数,然后把它们连接起来进而产生十进制计数。
对比以上两种方法,明显后面的方法比较容易实现,而且实现所需的门电路也比较少,因而选择用第二种方法来进行设计。
1.1 二进制计数的原理二进制计数的原理图如图1.1.1所示,可以用一个T触发器接成一个'T触发器,这样在时钟的作用下,每来一个时钟触发器的输出与前一个状态相反,这样就够成了一个二进制计数器。
图1.1.1 二进制计数原理图图1.1.2 二进制计数波形图1.2 五进制计数的原理五进制计数的原理图如图2.2.1所示,要进行五进制计数,至少要有3个存储状态的触发器,本原理图中选用两个JK 触发器和一个'T 触发器构成五进制计数器,在时钟的作用下就可以进行五进制计数。
图1.2.1 五进制计数原理图图1.2.2 五进制计数波形图2 系统电路的设计及原理说明2.1 系统框图及说明图2.1.1 十进制计数框图图2.1.2 二-五进制计数框图根据设计的要求,在构成十进制计数器时,只需将二进制计数器和五进制计数器级联起来,即将二进制计数器的输出作为五进制计数器的时钟输入接起来就可以实现十进制计数了。
而在进行二-五进制计数时,可以将五进制计数器的输出作为二进制计数器的时钟输入,外部时钟输入到五进制计数器的时钟输入端即可在一个外部输入时钟的控制下分u oClk u ou 1别产生二进制计数和五进制计数了。
jk触发器组成的同步五进制计数器同步计数器是现代电子器件中常用的一种数字电路。
在同步计数器中,计数器每一次增加1时,输出数值会按照特定的计数规律进行变化。
其中,JK触发器是同步计数器中常用的一个组成部分。
多个JK触发器可以组合成一个同步计数器,将其用于数字电路的设计中,可以实现同步计数功能的实现。
下面将详细介绍一下JK触发器的组成和同步五进制计数器的实现方法。
JK触发器的组成JK触发器由逻辑门电路和存储器电路组成。
逻辑门电路中包含两个输入引脚J 和K。
存储器电路中包含一个输出引脚Q和一个反输出引脚Q'。
当输入脚J=1,K=0时,JK触发器进入SET状态,Q=1,Q'=0。
当输入脚J=0,K=1时,JK触发器进入RESET状态,Q=0,Q'=1。
当输入脚J=K=1时,JK 触发器进入保持状态,Q不发生变化。
同步五进制计数器的实现方法同步五进制计数器由五个JK触发器组成,将它们级联起来,以实现五进制计数器的功能。
每个JK触发器的CLK输入都连接到时钟信号源,且每个JK触发器的J、K输入信号均相互不同。
这样,在计数器每一次完成一个完整计数周期后,输出信号会按照特定的规律变化。
具体来说,同步五进制计数器的计数规律如下:00001、00010、00100、01000、10000、00001……其中,五进制数码对应的二进制数码分别为00001、00010、00100、01000、10000。
每一次计数器完成一个完整的计数周期之后,输出信号的值会按照上述规律依次变化。
总结JK触发器在数字电路中的应用非常广泛,尤其是在同步计数器的设计中,其作用尤为重要。
通过组合多个JK触发器,可以实现数字电路中的计数功能,从而实现复杂电子设备的数字控制。
同步五进制计数器是一种常见的计数器类型,其实现方法相对简单,易于在数字电路中应用。
五进制计数器状态表1. 任务背景在计算机科学中,计数器是一种用于记录和存储数字的设备或算法。
它可以按照特定的规则进行递增或递减操作,并将结果显示出来。
五进制计数器是一种特殊类型的计数器,它使用五个不同的数字(0、1、2、3和4)来表示数字。
2. 五进制计数系统五进制计数系统是一种基于5的数字系统,它使用0到4这五个数字来表示所有的数值。
与十进制系统不同,五进制系统没有使用6及以上的数字。
在五进制系统中,每一位上的数字都表示该位上所包含的5的幂次。
例如,第一个位置上的数字表示50(即1),第二个位置上的数字表示51(即5),第三个位置上的数字表示5^2(即25),以此类推。
3. 五进制计数器状态表为了方便理解和记录五进制计数器在不同状态下所对应的值,我们可以使用一个状态表来展示这些信息。
下面是一个示例:状态第三位第二位第一位0 0 0 01 0 0 12 0 1 03 0 1 14 1 0 0…在这个状态表中,每一行代表一个五进制数。
第一列是该状态的编号,从0开始递增。
第二、三、四列分别表示该状态下的第一位、第二位和第三位数字。
4. 状态转换规则五进制计数器的状态转换规则可以根据实际需求进行定义。
以下是一个示例的状态转换规则:•当前状态为0时,下一个状态为1;•当前状态为1时,下一个状态为2;•当前状态为2时,下一个状态为3;•当前状态为3时,下一个状态为4;•当前状态为4时,下一个状态回到0。
根据这个规则,我们可以继续填充上述的五进制计数器状态表。
例如:状态第三位第二位第一位…9 4 4 410 0 011 0 112 和和和和和和和和和和0 2…在这个示例中,我们可以看到状态表中的数字逐渐递增,直到9。
当达到9时,我们需要将第一位、第二位和第三位都设置为4,并将下一个状态设置为10。
这样就完成了从9到10的进位操作。
5. 应用场景五进制计数器可以应用于各种需要使用五进制计数系统的场景中。
以下是一些可能的应用场景:5.1 时间表示在某些文化中,时间以五进制进行表示。
计数器的原理计数器是数字电路中广泛使用的逻辑部件,是时序逻辑电路中最重要的逻辑部件之一。
计数器除用于对输入脉冲的个数进行计数外,还可以用于分频、定时、产生节拍脉冲等。
计数器按计数脉冲的作用方式分类,有同步计数器和异步计数器;按功能分类,有加法计数器、减法计数器和既具有加法又有减法的可逆计数器;按计数进制的不同,又可分为二进制计数器、十进制计数器和任意进制计数器。
一、计数器的工作原理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位二进制加法计数器的状态表。
五进制加减法编号:17 河北工业大学计算机软件技术基础课程设计报告一、题目:17五进制加减法二、设计思路1、总体设计(1)用户输入两个五进制无符号整数,计算得到它们的和、差并输出(2)程序运行时,提示用户输入两个五进制整数(3)程序计算后,输出运算结果2、各功能模块的设计1) 单个字符与数字的转换在字符转数字时,’0’~’4’只需减去’0’即可;同样的,数字转字符时,只需加上’0’。
2) 求两个数据的和从低位向高位逐位相加,每位数字相加时,实际是三个数字相加:两个加数的当前位数字和低位向当前位的进位。
要将两个加数的数组元素转换成相应的数字再相加,相加后转换为字符存入存放和的字符数组中。
最后对存放和的字符数组求逆序,使得高位存放在下标为0的元素中。
3) 当输入大于4的数时程序显示错误,退出循环,当输入小于4的数时程序正常运行,主要用循环模式来实现,如果与条件不相符,就退出循环。
4) 求两个数据的差从低位向高位逐位相减,每位数字相减时,实际是三个数字相减,要将两个加减数的数组元素转换成相应的数字再相减,相加后转换为字符存入存放和的字符数组中。
最后对存放和的字符数组求逆序,使得高位存放在下标为0的元素中。
3、设计中的主要困难及解决方案1)困难1 相减时高位的零无法去掉不影响运行结果2)困难2 乘法没有编出来4、你所设计的程序最终完成的功能1)说明你编制的程序能完成的功能用户输入两个五进制无符号整数,计算得到它们的和、差并输出。
2)准备的测试数据及运行结果准备测试数据34210234 243102 运行结果第1页/共7 页三、程序清单本程序清单:#include char s1[100],s2[100],s3[100],s4[100],t;int i=0,k=0,max,min,c=0,h,N,M,x,d=0; void math(int a,char s);void main() { cout N=i; } math(N,s1);//排逆序while(s2[k]!=‘\\0’)//计算字符长度{ k++;M=k; } math(M,s2);//排逆序if(M>N) { min=N;max=M; } else if(M max=N;min=M; } else { max=N; min=N; 编号:17 第2页/共7 页编号:17 } for(int f=0;f’4’) {cout break; } else if(s2[f]>‘4’) {cout break; } for(int u=N;u>=0;u--) cout for(int e=M;e>=0;e--) cout for(int j=0;j=5) { h-=5; c=1; } else c=0; s3[j]=h+’0’;//数字转字符} if(M>N) { for(int j=min;j=5){h-=5;c=1; } else 第3页/共7 页c=0; s3[j]=h+’0’; } } else if(M=5){h-=5;c=1; } else c=0; s3[j]=h+’0’; } } if(c==0) { math(max,s3);//排逆序for(int p=0;p cout} else if(c==1) { s3[max]=‘1’; math(max+1,s3);//排逆序for(int p=0;p cout} for(int o=N;o>=0;o--)cout for(int q=M;q>=0;q--)cout if(M h=s1[z]-’0’-(s2[z]-’0’)-d;//字符转数字编号:17 第4页/共7 页cout编号:17 if(h h+=5; d=1; else d=0; s4[z]=h+’0’;//数字转字符} for(int b=min;b h=s1-’0’-d; if(h} else d=0; s4=h+’0’; } math(max,s4);//排逆序for(x=0;x cout else if(M>N) { for(intz=0;z} else c=0; s4[z]=h+’0’; } for(int b=min;b { h=s2-’0’-d; if(h { 第5页/共7 页编号:17} h+=5; d=1; else d=0; s4=h+’0’; } s4[max]=‘-’; math(max+1,s4);//排逆序for(x=0;x cout for(int w=max;;w--)//当两个字符数组长度相等时字符数组比较大小if(s1[w]!=s2[w]){} for(int w=0;w h=s1[w]-’0’-(s2[w]-’0’)-d; if(h h+=5; d=1; break; if(s1[w]>s2[w]) } else } math(max,s4);//排逆序for(x=0;x cout s4[w]=h+’0’; else if(s1[w]for(int w=0;w h=s2[w]-’0’-(s1[w]-’0’)-d; if(h h+=5; d=1; 第6页/共7 页编号:17 } void math(int a,char s)//排逆序函数{ for(int j=0;j {} t=s[j]; s[j]=s[a-1-j]; s[a-1-j]=t;} } { } s4[max-1]=‘0’; cout}else d=0; } s4[w]=h+’0’; s4[max]=‘-’; math(max+1,s4);//排逆序for(x=0;x cout else cout四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价:通过对课程的设计,使我知道自身的不足,以及C++的深奥,相信自己会在假期中增强对C++的了解及应用. 五、收获及心得体会1、通过本次课程设计,自己在哪些方面的能力有所提高。
河北工业大学计算机软件技术基础(VC)课程设计报告一、题目:17五进制加减法二、设计思路1、总体设计(1)由用户输入两个五进制无符号整数,计算得到它们的和、差并输出(2)程序运行时,提示用户输入两个五进制整数(3)程序计算后,输出运算结果2、各功能模块的设计1)单个字符与数字的转换在字符转数字时,'0'~'4'只需减去'0'即可;同样的,数字转字符时,只需加上'0'。
2)求两个数据(字符数组中)的和从低位向高位逐位相加,每位数字相加时,实际是三个数字相加:两个加数的当前位数字和低位向当前位的进位。
要将两个加数的数组元素(字符型)转换成相应的数字再相加,相加后转换为字符存入存放和的字符数组中。
最后对存放和的字符数组求逆序,使得高位存放在下标为0的元素中。
3)当输入大于4的数时程序显示错误,退出循环,当输入小于4的数时程序正常运行,主要用循环模式来实现,如果与条件不相符,就退出循环。
4)求两个数据(字符数组中)的差从低位向高位逐位相减,每位数字相减时,实际是三个数字相减,要将两个加减数的数组元素(字符型)转换成相应的数字再相减,相加后转换为字符存入存放和的字符数组中。
最后对存放和的字符数组求逆序,使得高位存放在下标为0的元素中。
3、设计中的主要困难及解决方案1)困难1相减时高位的零无法去掉不影响运行结果2)困难2乘法没有编出来4、你所设计的程序最终完成的功能1)说明你编制的程序能完成的功能由用户输入两个五进制无符号整数,计算得到它们的和、差并输出。
2)准备的测试数据及运行结果准备测试数据34210234243102运行结果三、程序清单本程序清单:#include<iostream.h>char s1[100],s2[100],s3[100],s4[100],t;int i=0,k=0,max,min,c=0,h,N,M,x,d=0; void math(int a,char s[]);void main(){cout<<"please input number:";cin.getline(s1,100);cout<<"please input number:";cin.getline(s2,100);while(s1[i]!='\0') //计算字符长度{i++;N=i;}math(N,s1); //排逆序while(s2[k]!='\0') //计算字符长度{k++;M=k;}math(M,s2); //排逆序if(M>N){min=N;max=M;}else if(M<N){max=N;min=M;}else{max=N;min=N;}for(int f=0;f<max;f++) //当输入大于4的数时程序输出错误{if(s1[f]>'4'){cout<<"error";cout<<endl;break;}else if(s2[f]>'4'){cout<<"error";cout<<endl;break;}for(int u=N;u>=0;u--)cout<<s1[u];cout<<"+";for(int e=M;e>=0;e--)cout<<s2[e];cout<<"=";for(int j=0;j<min;j++) //加法运算{h=s1[j]-'0'+s2[j]-'0'+c; //字符转数字if(h>=5){h-=5;c=1;}elsec=0;s3[j]=h+'0'; //数字转字符}if(M>N){for(int j=min;j<max;j++){h=s2[j]-'0'+c;if(h>=5){h-=5;c=1;}else编号:17c=0;s3[j]=h+'0';}}else if(M<N){for(int j=min;j<max;j++){h=s1[j]-'0'+c;if(h>=5){h-=5;c=1;}elsec=0;s3[j]=h+'0';}}if(c==0){math(max,s3); //排逆序for(int p=0;p<max;p++)cout<<s3[p];}else if(c==1){s3[max]='1';math(max+1,s3); //排逆序for(int p=0;p<max+1;p++)cout<<s3[p];}cout<<endl;for(int o=N;o>=0;o--)cout<<s1[o];cout<<"-";for(int q=M;q>=0;q--)cout<<s2[q];cout<<"=";if(M<N) //减法运算{for(int z=0;z<min;z++){h=s1[z]-'0'-(s2[z]-'0')-d; //字符转数字{h+=5;d=1;}elsed=0;s4[z]=h+'0'; //数字转字符}for(int b=min;b<max;b++){h=s1[b]-'0'-d;if(h<0){h+=5;d=1;}elsed=0;s4[b]=h+'0';}math(max,s4); //排逆序for(x=0;x<max;x++)cout<<s4[x];}else if(M>N){for(int z=0;z<min;z++){h=s2[z]-'0'-(s1[z]-'0')-d;if(h<0){h+=5;d=1;}elsec=0;s4[z]=h+'0';}for(int b=min;b<max;b++){h=s2[b]-'0'-d;if(h<0){d=1;}elsed=0;s4[b]=h+'0';}s4[max]='-';math(max+1,s4); //排逆序for(x=0;x<max+1;x++)cout<<s4[x];}else{for(int w=max;;w--) //当两个字符数组长度相等时字符数组比较大小if(s1[w]!=s2[w])break;if(s1[w]>s2[w]){for(int w=0;w<min;w++){h=s1[w]-'0'-(s2[w]-'0')-d;if(h<0){h+=5;d=1;}elsed=0;s4[w]=h+'0';}math(max,s4); //排逆序for(x=0;x<max;x++)cout<<s4[x];}else if(s1[w]<s2[w]){for(int w=0;w<min;w++){h=s2[w]-'0'-(s1[w]-'0')-d;if(h<0){h+=5;d=1;elsed=0;s4[w]=h+'0';}s4[max]='-';math(max+1,s4); //排逆序for(x=0;x<max+1;x++)cout<<s4[x];}else{s4[max-1]='0';cout<<s4[max-1];}}cout<<endl;break;}}void math(int a,char s[]) //排逆序函数{for(int j=0;j<a/2;j++){t=s[j];s[j]=s[a-1-j];s[a-1-j]=t;}}四、对该设计题目有何更完善的方案1、对自己完成程序进行自我评价:通过对课程的设计,使我知道自身的不足,以及C++的深奥,相信自己会在假期中增强对C++的了解及应用.五、收获及心得体会1、通过本次课程设计,自己在哪些方面的能力有所提高。
目录<一>、前言 (1)一、设计题目 (2)二、题目功能及要求 (2)三、总体方案设计 (2)四、单元电路设计 (2)(一)、电路的结构设计 (2)(二)、元器件参数设计 (6)五、整体电路分析 (6)六、元器件明细 (7)七、设计结果验证 (7)八、电路的使用说明书 (8)九、心得体会 (8)十、参考资料 (8)前言一转眼,大二已经结束了,在这一学年里我们学了电路、模拟电子技术和数字电子技术等许多课程,学习和掌握了电子方面的很多理论知识。
为了让我们更好的掌握所学的电子理论知识,并将理论联系到实际中,学校特地的为我们安排了这次的电子线路实训。
让我们在掌握了模电、数电理论的基础上,进行理论联系实际和体会电子技术应用的初级训练。
在实训的过程中,我们自己设计自己焊接,运用课堂上所学的理论知识对实际问题进行分析和解决,并弄懂所做电路的工作原理,搞清电路中各元器件的功能、作用,同时学习查阅资料,自学一些课外知识。
增强了我们分析问题和解决问题的能力,培养和训练了我们制作电子电路的基本技能,提高了我们各方面的综合能力,为我们今后更好的适应社会的需求打下了基础。
这样电子线路实训的机会是很难得,大学四年这样的机会并不多,所以我很珍惜这次的实训,非常认真的对待它。
最后在自己的努力和老师的指导、同学的帮助下,我顺利的完成了这次的电子线路的实训。
一、设计题目五进制计数器二、题目功能及要求设计一个五进制计数器,实现0-5的循环计数。
要求用555电路来实现脉冲的产生,其他常用芯片可自己选择。
三、总体方案设计该五进制计数器的控制系统框图如下图所示。
由计数控制器、状态译码器、计数器、秒脉冲发生器和数码显示器组成。
计数控制器主要用于记录计数器的工作状态,通过译码器来控制数码显示器,脉冲发生器产生整个定时系统的时基脉冲,通过计数器实现计数。
其中脉冲发生器用555电路来实现,计数器选用十进制计数器74160,计数控制器是一个与非门,选用用74ls00,译码器则用7448来实现。
计数器基本工作原理
计数器是一种电子设备,用于记录和显示输入的脉冲或触发器信号的数量。
它通常用于计量系统、计时器、频率测量和数字信号处理等应用中。
计数器的基本工作原理是通过输入信号的上升沿或下降沿触发器来生成一个二进制计数序列。
每当输入信号发生一次触发,计数器的计数值就会增加一。
计数器一般由多个触发器组成,每个触发器可以存储一个比特(bit)的信息。
触发器之间通过时钟信号进行同步,在时钟脉冲的作用下,触发器的状态由低电平(0)转变为高电平(1),或由高电平(1)转变为低电平(0)。
常见的计数器有二进制计数器和BCD(二进制编码十进制)计数器。
二进制计数器是指每个触发器的输出值只有两个可能的状态,即0和1。
BCD计数器则是用四位的二进制码来表示十进制数。
计数器可以实现不同的计数模式,如正向计数、逆向计数和循环计数等。
正向计数是指计数器从零开始逐渐增加到最大值,然后重新从零开始。
逆向计数则是计数器从最大值逐渐减小到零,然后重新从最大值开始。
循环计数是指计数器在达到最大值后不会重新从零开始,而是继续向上或向下计数。
计数器还可以通过预设值来设置初始计数值和最大计数值。
预设值可以通过外部输入信号或内部设置来改变计数器的工作模
式和范围。
总之,计数器是一种实现计数和记录输入信号数量的基本电子元件,它通过触发器和计数逻辑电路实现对脉冲信号的计数和处理。
五进制减法对于CD40192
当CR为低电平,置数端LD也为低电平时,数据直接从置数端
D0、D1、D2、D3 置
入计数器。
当CR为低电平,LD为高电平时,执行计数功能。
执行减计数时,减计数端CPd
接计数脉冲,加计数端CPu接高电平。
加法计数
输入脉冲数0 1 2 3 4 5 6 7 8 9
输出Q
3
0 0 0 0 0 0 0 0 1 1
Q
2
0 0 0 0 1 1 1 1 0 0
Q
1
0 0 1 1 0 0 1 1 0 0
Q
0 1 0 1 0 1 0 1 0 1
减计数
为了实现五进制减法,即当Q3Q2Q1Q0=1001时,让置数端LD=0,置入数D3D2D1D0=0100。
即让Q3、Q0分别连到与非门74LS00的输入端,与非门输出端接LD,
同时,D3、D2、D1、D0分别接逻辑电平0、1、0、0,CR接逻辑电平0。
电路图如下:
五进制加法
对于CD40192
当清除端CR为高电平“1”时,计数器直接清零;CR置低电平则执行其它功能。
当CR为低电平,LD为高电平时,执行计数功能。
执行加计数时,减计数端CPd
接高电平,计数脉冲由CPu 输入;
为了实现五进制加法,即当 Q3Q2Q1Q0=0101时,让CR=1,计算器直接清零。
即让Q2、Q0分别连到与非门74LS00的输入端,该与非门输出端连到第二个与非门
的输入端,第二个与非门起非门的作用,输出端接到CR端,同时,LD接逻辑电平1。
电路图如下:。