用74390和7448设计100以内任意进制计数器

合集下载

二-五-十进制异步加法计数器74LS90

二-五-十进制异步加法计数器74LS90

2. 二-五-十进制异步加法计数器74LS90 ★ 从计数器命名可知:74LS90可以实现二进制、五进制加法计数功能,如果按照“低位片循环一周,向高位片进一位”的级联扩展方式,将二进制加法计数单元和五进制加法计数单元联系起来,就可以实现十进制加法计数器,此时,整个计数器组成了异步时序逻辑电路的结构,因此,74LS90被称为二-五-十进制异步加法计数器。

与74LS197的使用类似,74LS90通过级联组成十进制异步加法计数器时,也存在两种方式,下文中将详细介绍。

74LS90的芯片封装图和功能示意图如图8.3.16所示。

图8.3.17 二-五-十进制异步加法计数器74LS90 (a )芯片封装图 (b )功能示意图★ 分析图8.3.17,将得到的74LS90的管脚信息总结如下:74LS90的逻辑功能端包括2个下降沿有效的输入时钟信号端 和 、4个高有效的输入控制端 ,以及4个输出状态端 。

表8.3.10为74LS90的功能表,完整地表达了74LS90的逻辑功能。

表8.3.10 二-五-十进制异步加法计数器74LS90的功能表★ 分析表8.3.10,将得到的74LS90的逻辑功能完整总结如下:◆ 异步置9、高有效,为置数控制端。

0123 Q Q Q Q 、、、10 CLK CLK B 0A 0B 99A R R S S 、、、B 9A 9 S S 、74LS90没有提供输入数据端,当时, ,即输出状态被直接置为9。

◆ 异步清零、高有效, 为清零控制端。

◆ 计数器在不置数、不清零的前提下,时钟脉冲的下降沿工作,完成计数功能,有以下四种情况。

▲ 时钟信号从输入,则完成二进制加法计数,对应输出状态为; ▲ 时钟信号从输入,完成五进制加法计数,对应输出状态排列为 ,工作循环为000到100的递增循环, 为最高位; ▲ 时钟信号从 输入,且将二进制计数器的输出状态 作为五进制计数器的时钟信号,接入,则组成了“二进制单元先运行,五进制单元后运行”的级联结构,由此实现十进制加法计数功能,其输出状态排列为; ▲ 时钟信号从 输入,且将五进制计数器的输出最高位状态作为二进制计数器的时钟信号,接入,则组成了“五进制单元先运行,二进制单元后运行”的级联结构,由此实现的十进制加法计数器的输出状态排列为。

100进制同步计数器设计

100进制同步计数器设计

实验名称:100进制同步计数器设计专业班级:姓名:学号:实验日期:一、实验目的:1、掌握计数器的原理及设计方法;2、设计一个0~100的计数器;3、利用实验二的七段数码管电路进行显示;二、实验要求:1、用VHDL 语言进行描写;2、有计数显示输出;3、有清零端和计数使能端;三、实验结果:1. VHDL程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE my_pkg ISComponent nd2 -- 或门PORT (a,b: IN STD_LOGIC;c: OUT STD_LOGIC);END Component;Component led_decoderPORT (din:in std_logic_vector(3 downto 0 ); --四位二进制码输入seg:out std_logic_vector(6 downto 0) ); --输出LED七段码END Component;1Component CNT60 --2位BCD码60进制计数器PORT( CR:IN STD_LOGIC;EN:IN STD_LOGIC;CLK:IN STD_LOGIC;OUTLOW:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);OUTHIGH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );END Component;Component CNT100 --带使能和清零信号的100进制计数器PORT(CLK:IN STD_LOGIC;EN:IN STD_LOGIC;CLR:IN STD_LOGIC;OUTLOW:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);OUTHIGH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ); END Component;Component freq_div --50MHZ时钟分频出1HzPORT(clkinput : IN STD_LOGIC;output : OUT STD_LOGIC);END Component;Component jtd --交通灯控制器PORT(CLKIN:IN STD_LOGIC; --50MHZR1,G1,R2,G2,R3,G3,R4,G4:OUT STD_LOGIC; --红绿灯信号输出GAO,DI:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) --倒计时输出);END Component;END my_pkg;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE work.my_pkg.ALL; --打开程序包ENTITY Demo3 ISPORT (CRl:IN STD_LOGIC;ENl:IN STD_LOGIC;CLKIN: IN STD_LOGIC;LEDLOW,LEDHIGH: OUT STD_LOGIC_VECTOR(6 downto 0));END Demo3;ARCHITECTURE behv OF Demo3 ISSIGNAL CLKTEMP: STD_LOGIC; --定义中转信号SIGNAL LEDLOWTEMP,LEDHIGHTEMP:STD_LOGIC_VECTOR(3 downto 0);BEGINu1:freq_div PORT MAP(CLKIN,CLKTEMP); --位置关联方式u2:CNT60 PORTMAP(CR=>CRl,EN=>ENl,CLK=>CLKTEMP,OUTLOW=>LEDLOWTEMP,OUTHIGH=>LEDHIGHTE MP); --名字关联方式u3:led_decoder PORT MAP(LEDLOWTEMP,LEDLOW); --低位数码管输出u4:led_decoder PORT MAP(LEDHIGHTEMP,LEDHIGH); --高位数码管输出END behv;LIBRARY ieee;USE ieee.std_logic_1164.all;ENTITY freq_div ISPORT(clkinput : IN STD_LOGIC;output : OUT STD_LOGIC);END freq_div;ARCHITECTURE rt OF freq_div ISSIGNAL count_signal : INTEGER RANGE 0 TO 25000000;signal mid1 : STD_LOGIC ;BEGINPROCESS (clkinput)BEGINIF (clkinput'EVENT AND clkinput = '1') THENif count_signal=24999999 then --50MHz division to 1Hzcount_signal <= 0;mid1<= not mid1;elsecount_signal <= count_signal + 1;end if;output <= mid1;end if;END PROCESS;end rt;--文件名:decoder.vhdlibrary IEEE;use IEEE.STD_LOGIC_1164.ALL;entity led_decoder isPort (din:in std_logic_vector(3 downto 0 ); --四位二进制码输入seg:out std_logic_vector(6 downto 0) ); --输出LED七段码end led_decoder;architecture Behavioral of led_decoder isbeginprocess(din)begincase din iswhen "0000" =>seg<="1000000";--0when "0001" => seg<="1111001";--1when "0010" => seg<="0100100";--2when "0011" => seg<="0110000";--3when "0100" => seg<="0011001";--4when "0101" => seg<="0010010";--5when "0110" => seg<="0000010";--6when "0111" => seg<="1011000";--7when "1000" => seg<="0000000";--8when "1001" => seg<="0010000";--9when others => seg<="0000110";--Eend case;end process;end Behavioral;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT60 ISPORT(CR:IN STD_LOGIC;EN:IN STD_LOGIC;CLK:IN STD_LOGIC;OUTLOW:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);OUTHIGH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );END CNT60;ARCHITECTURE behav OF CNT60 ISBEGINPROCESS(CLK,CR,EN)BEGINif CR='1' thenOUTHIGH<="0000";OUTLOW<="0000";elsif EN ='1'thenIF CLK'EVENT AND CLK='1' THENIF OUTHIGH="1001" AND OUTLOW="1001" THENOUTHIGH<="0000";OUTLOW<="0000";ELSIF OUTLOW="1001" THENOUTHIGH<=OUTHIGH+1;OUTLOW<="0000";ELSE OUTLOW<=OUTLOW+1;END IF;END IF;END IF;END PROCESS;END behav;2.仿真结果以及说明①. 分频器仿真结果:经过多次仿真,发现按照实验要求分频出1HZ的频率是无法仿真出需要的结果的,因为时钟脉冲太多,QuartusII显示不了。

实验7_74ls90任意进制计数器共16页PPT

实验7_74ls90任意进制计数器共16页PPT

26、要使整个人生都过得舒适、愉快,这是不可能的,因为人类必须具备一种能应付逆境的态度。——卢梭

27、只有把抱怨环境的心情,化为上进的力量,才是成功的保证。——罗曼·罗兰

28、知之者不如好之者,好之者不如乐之者。——孔子

29、勇猛、大胆和坚定的决心能够抵得上器的精良。——达·芬奇

30、意志是一个强壮的盲人,倚靠在明眼的跛子肩上。——叔本华
谢谢!
16
实验7_74ls90任意进制计数器
46、法律有权打破平静。——马·格林 47、在一千磅法律里,没有一盎司仁 爱。— —英国
48、法律一多,公正就少。——托·富 勒 49、犯罪总是以惩罚相补偿;只有处 罚才能 使犯罪 得到偿 还。— —达雷 尔
50、弱者比强者更能得到法律的保护 。—— 威·厄尔

PROTEUS单片机100以内计数器设计

PROTEUS单片机100以内计数器设计

广东海洋大学寸金学院《单片机》期末考查(课程设计)论文题目:100以内计数器设计The counter design within 100系别:信息技术系专业:计算机科学与技术班级:计算机科学与技术4班姓名:黎明亮学号:2010103040444指导老师:叶伟慧职称:讲师日期:2013年6月28日广东海洋大学寸金学院教务处制第一章绪论 (3)1.1 W A VE6000软件说明 (3)1.2 PROTEUS软件说明 (3)1.2.1 软件的特点 (3)1.2.2 ISIS智能原理图输入系统 (3)1.3 MCS-51单片机系统简介 (4)第二章总体方案设计 (5)2.1 总体设计 (5)2.2 硬件设计 (5)2.2.1 硬件设计电路 (5)2.2.2 PROTEUS软件使用过程 (6)2.2.3元器件清单如下 (6)2.3 软件设计 (7)2.3.1 PROTEUS硬件属性分配 (7)2.3.2程序设计 (7)2.3.3编译成HEX文件步骤 (11)第三章综合测试 (12)3.1仿真工具栏 (13)3.2 仿真结果 (13)第四章总结鉴定 (14)参考文献 (15)课程设计心得体会(可自行加页): (16)评阅老师:日期: (16)第一章绪论一个单片机应用系统从提出任务到正式投入运行的过程,称为单片机的开发。

开发过程所用的设备即开发工具。

一般用计算机来调试单片机,所用开发工具为仿真器和调试器,两者一起构成硬件平台。

软件平台是指装入通用PC的软件开发调试系统,它的作用是编辑、汇编、编译、仿真与调试,称为WINDOWS下的集成开发环境。

集成开发环境是单片机厂家为用户提供的产品开发环境,包括单片机的硬件平台和软件平台。

20多年来,世界上出现过几种用于51系列单片机的开发软件,下面以伟福6000和Proteus为例。

1.1WA VE6000软件说明这个软件是南京伟福公司的单片机开发软件,一般就是用在C51单片机,具备双工作模式和真正的集成调试环境。

用74390和7448设计100以内任意进制计数器

用74390和7448设计100以内任意进制计数器

Multisim仿真图如下
这是一个六十三进制的逻辑图,原理在于当第63个脉冲到来时使74LS390N置零。

上图中,U2的B,C分别代表十位中的2和4,和为6。

U1A,B代表个位1和2,和为3。

当上述四个管脚同时得到高电平时,即计数到63时,CLR被置零,成为一个63进制计数器。

(本文档是一个免费文档,没什么特殊原因的话,希望你能下载)
这个电路也可以成为100以内任意进制计数器,当需做成N进制计数器,则在第N个脉冲到来后将CLR置零即可。

如76进制,则将U2的A,B,C接入与门U8A,将U1的B,C接入与门U5A。

在做上述仿真时,要注意调整显示器的导通电流,否则,可能会出不来上述效果。

最后,向昆工学妹问好。

《任意进制计数器》习题及参考答案

《任意进制计数器》习题及参考答案

任意进制计数器习题及参考答案习题1利用已有的集成计数器构成任意进制计数器的方法有哪些?试举例说明?解(1)直接选用已有的计数器。

例如,欲构成十二分频器,可直接选用十二进制异步计数器7492;(2)用两个模小的计数器串接,可以构成模为两者之积的计数器。

例如,用模6和模10计数器串接起来,可以构成模60计数器;(3)利用反馈法改变原有计数长度。

例如,用模10的计数器可以用反馈法构成模6的计数器。

如下图所示:习题2利用两片74LS160和必要的门电路构成五十进制计数器。

解中规模集成电路74LS160是同步十进制计数器。

用两片74LS160构成五十进制计数器的电路如下图示。

有关问题说明如下:(1)片1接成十进制N1,片2接成五进制N2,整个电路N1×N2=50即构成五十进制计数器。

N进制的计数器如由多片组成,其构成方法可以是串行进位方式或并行进位方式,上图采用的是串行进位方式。

(2)片1的EP和ET(教材用CEP和CET表示)恒为1,工作在计数状态。

片1每计到9(1001)时,进位输出端C(教材用TC)变为高电平,片2开始计数。

到0(0000)状态。

同时,在Q2端产生一个进位信号。

对整个电路而言,即是逢五十进一。

习题3 用74LS161二进制同步计数器实现模5计数器,请用两种方法。

解模5计数器的电路如下图所示。

中规模集成电路74LS161是4位二进制同步计数器,其功能同于74LS160(同步十进制计数器)。

图(a)为置零法(或称复位法)。

当输出为0100时,非门输出低电平使LD=0,输出端Q3 Q2 Q1 Q0=0000。

图(b)为置数法(或称置位法)。

当输出为1111时,进位端产生一个高电平进位信号,经反相器后使LD=0,数据输入端的预置数1011被置入。

于是计数器又将按1011 1100 1101 1110 1111的顺序进行计数。

请读者自行分析图(c)的工作原理。

习题4 74LS290的几种连接方式如下图所示,试分析图题6(a)(b)(c)(d)各为几分频电路。

100以内的十进制计数器EDA课设

100以内的十进制计数器EDA课设

目录一、摘要二、任务要求三、基本原理四、实现方法五、基本过程六、分析与结论七、课程总结一、摘要电子设计自动化EDA技术课的目的在于培养学生掌握可编程逻辑器件基本的编程方法与开发应用技能。

在掌握了EDA技术的基础知识、基本操作和Quartus II软件的基本应用与一般流程后,学习EDA技术最有效的方法就是进行EDA 技术的综合应用设计。

本次设计阐述了100以内的十进制计数器的设计思路、VHDL 源程序、管脚设置、时序仿真和逻辑综合结果及分析。

十进制计数器由BCD码(二—十进制码)来设计,把一个数拆为个位(低四位)和十位(高四位),首先设定初值然后计数,同时对部分二进制数进行十进制调整。

二、任务要求首先设定100以内的十进制计数初值,而后每来一次脉冲降沿,计数值加1,加到99,然后计数值回0。

三、基本原理十进制计数器由BCD码(二—十进制码)来设计,把一个数拆为个位FD (低四位)和十位SD(高四位)。

设定计数初值高四位H和低四位L,LD为‘1’时置数,否则开始计数。

当个位为9即二进制的1001时且十位非9时,再来一次脉冲(CLK为0)计数时,个位为0即低四位清零,十位加1即高4位加1;十位为9即1001,且个位非9时,个位加1;十位为9且个位也为9时,个位十位全为0即高、低四位都清零。

四、实现方法1.VHDL源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 ISPORT(CLK,LD:IN STD_LOGIC;H:IN STD_LOGIC_VECTOR(3 DOWNTO 0);L:IN STD_LOGIC_VECTOR(3 DOWNTO 0);FD:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); SD:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0)); END ENTITY CNT10;ARCHITECTURE ART OF CNT10 ISBEGINPROCESS(CLK) ISBEGINIF(CLK'EVENT AND CLK='0')THENIF(LD='1')THENSD<=H;FD<=L;ELSIF(LD='0')THENIF(FD="1001")THENIF(SD="1001")THENFD<="0000";SD<="0000";ELSEFD<="0000";SD<=SD+1;END IF;ELSEFD<=FD+1;END IF;END IF;END IF;END PROCESS;END ARCHITECTURE ART;2、生成器件管脚如图1-1所示图1-1五、基本过程1、打开Quartus II 6.0软件,新建工程文件CNT10.qpf,然后新建VHDL 文件CNT10.vhd,输入VHDL 源程序,如图1-2图1-22、编译输入成功的VHDL源程序文件,并调试修改错误,最终使编译成功,如图1-3图1-33、设置管脚,使之在空心圆处设置输入端口CLK、H(3~0)、L(3~0)、LD以及输出端口FD(3~0)、SD(3~0),如图1-4图1-44、查看生成的器件,新建CNT10.bsf文件,找到project里的CNT10,并双击,即可观察到如图1-5所示的器件CLK LDH[3..0] L[3..0]FD[3..0] SD[3..0]CNT10inst图1-55、新建.vwf文件,导入输入、输出端口,并设置输出端口时钟信号CLK的波形以及计数初值(例如00100011即23)然后保存文件,如图1-6图1-66、在图1-6的界面中,编译,得到输出波形如图1-7、1-8所示,并分析数据验证是否符合设计要求。

集成计数器实现任意进制计数器设计方法案例说明

集成计数器实现任意进制计数器设计方法案例说明

集成计数器实现任意进制计数器设计方法案例说明
二进制和十进制以外的进制统称为任意进制。

要构成任意进制的计数器,只有利用集成二进制或十进制计数器,用反馈置零法或反馈置数法来实现。

假设已有M进制计数器,要构成N进制计数器,有M>N和M<N这两种可能。

下面首先讨论N>M时的情况。

在N进制计数器的计数过程当中,设法跳过(M - N)个状态,就可得到N进制计数器。

实现跳越的方法有置数法和清零法两种。

(1)置数法
置数法适用于有预置数端的集成计数器。

通过预置数功能让计数器从某个预置状态开始计数,计满N个状态后产生置数信号,使计数器又进入预置数状态,然后重复上述过程。

图8.53为由74LS161用置数法构成的十二进制计数器。

图8.53 置数法构成的十二进制计数器
(2)清零法
清零法适用于有异步置零输入端的集成计数器。

计数器从全“0”状态开始计数,计满N个状态后产生清零信号,使计数器回到初态。

图8.54为74LS161用清零法构成的十二进制计数器。

Q Q Q Q
图8.54清零法构成的十二进制计数器
例:试用74LS160构成七进制计数器。

解:因为74LS160兼有异步置零和预置数功能,所以置数法和清零法均可采用。

图8.55所示电路是用置数法由74LS160构成的七进制计数器。

Q Q Q Q
图8.55 例题电路。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

仿真图如下
这是一个六十三进制的逻辑图,原理在于当第63个脉冲到来时使74390N置零。

上图中,U2的分别代表十位中的2和4,和为6。

U1代表个位1和2,和为3。

当上述四个管脚同时得到高电平时,即计数到63时,被置零,成为一个63进制计数器。

(本文档是一个免费文档,没什么特殊原因的话,希望你能下载)
1 / 2
这个电路也可以成为100以内任意进制计数器,当需做成N进制计数器,则在第N个脉冲到来后将置零即可。

如76进制,则将U2的接入与门U8A,将U1的接入与门U5A。

在做上述仿真时,要注意调整显示器的导通电流,否则,可能会出不来上述效果。

最后,向昆工学妹问好。

2 / 2。

相关文档
最新文档